Module:siwa-noun/data: Difference between revisions

Jump to navigation Jump to search
no edit summary
No edit summary
No edit summary
(8 intermediate revisions by the same user not shown)
Line 114: Line 114:
elseif stem:match(v.."b.$") then
elseif stem:match(v.."b.$") then
data.forms["m"] = {s2 .. "pri", s2 .. "bġi"}
data.forms["m"] = {s2 .. "pri", s2 .. "bġi"}
loc = s3 .. "pṡi"
loc = s2 .. "pṡi"
elseif stem:match(v.."k.$") then
elseif stem:match(v.."k.$") then
data.forms["m"] = {s2 .. "ġi"}
data.forms["m"] = {s2 .. "ġi"}
Line 199: Line 199:
local s1, s2, s3 = sub(lenition(stem), 1, -2), sub(lenition(stem), 1, -3), sub(lenition(stem), 1, -4)
local s1, s2, s3 = sub(lenition(stem), 1, -2), sub(lenition(stem), 1, -3), sub(lenition(stem), 1, -4)
table.insert(data.categories, "Siwa i-declension nouns")
table.insert(data.categories, "Siwa i-declension nouns")
data.forms["ine"] = {}
data.forms["u"] = {stem}
data.forms["u"] = {stem}
if stem:match(v.."mm.$") then
if stem:match(v.."[mn][mn].$") then
data.forms["m"] = {s3 .. "ndi"}
data.forms["m"] = {s3 .. "ndi"}
loc = s3 .. "ndi"
loc = s3 .. "ndi"
Line 229: Line 230:
ill, ela, ade = s1 .. "ih", s1 .. "ih", s1 .. "ih"
ill, ela, ade = s1 .. "ih", s1 .. "ih", s1 .. "ih"
ine = s1 .. "idi"
ine = s1 .. "idi"
table.insert(data.forms["ine"], s1 .. "ỉ")
all, abl = s1 .. "ỉ", s1 .. "ỉ"
all, abl = s1 .. "ỉ", s1 .. "ỉ"
table.insert(data.forms["ine"], s1 .. "ỉa")
else
else
data.forms["m"] = {lenition(stem) .. "di"}
data.forms["m"] = {lenition(stem) .. "di"}
Line 236: Line 237:
all, abl = lenition(stem) .. "i", lenition(stem) .. "i"
all, abl = lenition(stem) .. "i", lenition(stem) .. "i"
ine = lenition(stem) .. "di"
ine = lenition(stem) .. "di"
end
table.insert(data.forms["ine"], (ine or loc) .. ce[1])
data.forms["ill"] = {(ill or loc) .. ce[2]}
data.forms["ela"] = {(ela or loc) .. ce[3]}
data.forms["ade"] = {(ade or loc) .. ce[4]}
data.forms["all"] = {(all or loc) .. ce[5]}
data.forms["abl"] = {(abl or loc) .. ce[6]}
end
})
data["o"] = {
params = {
[1] = {},
},
}
setmetatable(data["o"], {__call = function(self, args, data)
local stem = data.head
local s1, s2, s3 = sub(lenition(stem), 1, -2), sub(lenition(stem), 1, -3), sub(lenition(stem), 1, -4)
table.insert(data.categories, "Siwa o-declension nouns")
data.forms["u"] = {stem}
if stem:match("[ae]$") then
if stem:match(v.."[mn][mn].$") then
data.forms["m"] = {s3 .. "mmo"}
loc = s3 .. "mmoi"
elseif stem:match(v.."[bt].$") then
data.forms["m"] = {s2 .. "bmo"}
loc = s2 .. "bmoi"
elseif stem:match(v.."[mvn].$") then
data.forms["m"] = {s2 .. "mmo"}
loc = s2 .. "mmoi"
elseif stem:match(v.."[rhg].$") then
data.forms["m"] = {s2 .. "hmo"}
loc = s2 .. "hmoi"
elseif stem:match(v.."k.$") then
data.forms["m"] = {s2 .. (data.q == "s" and "gmo" or "hmo")}
loc = s2 .. (data.q == "s" and "gmoi" or "hmoi")
elseif stem:match(v.."l.$") then
data.forms["m"] = {s2 .. "lmo"}
loc = s2 .. "lmoi"
else
data.forms["m"] = {lenition(stem) .. "mo"}
loc = lenition(stem) .. "moi"
end
elseif stem:match("i$") then
if stem:match(v.."hhį.$") then
data.forms["m"] = {sub(lenition(stem), 1, -5) .. "ṡko"}
loc = sub(lenition(stem), 1, -5) .. "ṡkoi"
elseif stem:match(v.."[mn][mn].$") then
data.forms["m"] = {s3 .. "kko"}
loc = s3 .. "kkoi"
elseif stem:match(v.."[mnkg].$") then
data.forms["m"] = {s2 .. "kko"}
loc = s2 .. "kkoi"
elseif stem:match(v.."[lrs]k.$") or stem:match(v.."sġ.$") then
data.forms["m"] = {s2 .. "kko"}
loc = s2 .. "kkoi"
elseif stem:match(v.."l.$") then
data.forms["m"] = {s2 .. "lko"}
loc = s2 .. "lkoi"
elseif stem:match(v.."[rh].$") then
data.forms["m"] = {s2 .. "hko"}
loc = s2 .. "hkoi"
elseif stem:match(v.."ṡ.$") then
data.forms["m"] = {s2 .. "ṡko"}
loc = s2 .. "ṡkoi"
else
data.forms["m"] = {lenition(stem) .. "ko"}
loc = lenition(stem) .. "koi"
end
elseif stem:match("[ouyů].$") then
if stem:match(v.."[mn][mn].$") then
data.forms["m"] = {s3 .. "mma"}
loc = s3 .. "mmi"
elseif stem:match(v.."[mnv].$") then
data.forms["m"] = {s2 .. "mma"}
loc = s2 .. "mmi"
elseif stem:match(v.."[rhgk].$") then
data.forms["m"] = {s2 .. "hma"}
loc = s2 .. "hmi"
elseif stem:match(v.."l.$") then
data.forms["m"] = {s2 .. "lma"}
loc = s2 .. "lmi"
else
data.forms["m"] = {lenition(stem) .. "ma"}
ill, ela = lenition(stem) .. "n", lenition(stem) .. "n"
ine, ade, all, abl = lenition(stem) .. "mi", lenition(stem) .. "mi", lenition(stem) .. "mi", lenition(stem) .. "mi"
end
end
end
Line 245: Line 337:
data.forms["abl"] = {(abl or loc) .. ce[6]}
data.forms["abl"] = {(abl or loc) .. ce[6]}
-- TODO: add alternative forms with table.insert
for n, case in pairs(cases) do
if stem:match(v.."[mnkg]i$") then
table.insert(data.forms[case], s2 .. "kki" .. ce[n])
elseif stem:match(v.."[lrs]ki$") or stem:match(v.."sġi$") then
table.insert(data.forms[case], s2 .. "kki" .. ce[n])
end
end
end
end
})
})


return data
return data

Navigation menu