Module:siwa-noun/data: Difference between revisions
Jump to navigation
Jump to search
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 |