Module:siwa-noun/data: Difference between revisions

Jump to navigation Jump to search
no edit summary
No edit summary
No edit summary
Line 343: Line 343:
elseif stem:match(v.."[lrs]ki$") or stem:match(v.."sġi$") then
elseif stem:match(v.."[lrs]ki$") or stem:match(v.."sġi$") then
table.insert(data.forms[case], s2 .. "kki" .. ce[n])
table.insert(data.forms[case], s2 .. "kki" .. ce[n])
end
end
end
})
data["u"] = {
params = {
[1] = {},
},
}
setmetatable(data["u"], {__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 u-declension nouns")
data.forms["u"] = {stem}
if stem:match("[aei]$") then
if stem:match(v.."[mn][mn].$") then
data.forms["m"] = {s3 .. "mmo"}
loc = s3 .. "mmoi"
elseif stem:match(v.."[btpd].$") 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.."[rhgk].$") then
data.forms["m"] = {s2 .. "hmo"}
loc = s2 .. "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("[ouyů].$") then
if stem:match(v.."[mn][mn].$") then
data.forms["m"] = {s3 .. "mma", s3 .. "mmo"}
loc = s3 .. "mma"
elseif stem:match(v.."[mnv].$") then
data.forms["m"] = {s2 .. "mma", s2 .. "mmo"}
loc = s2 .. "mma"
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
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]}
-- TODO: add alternative forms with table.insert
for n, case in pairs(cases) do
if stem:match(v.."[mn][mn][oyuů]$") then
table.insert(data.forms[case], s3 .. "mmoi" .. ce[n])
elseif stem:match(v.."[mn][oyuů]$") or stem:match(v.."sġi$") then
table.insert(data.forms[case], s2 .. "mmoi" .. ce[n])
end
end
end
end

Navigation menu