45,337
edits
No edit summary |
No edit summary |
||
Line 3: | Line 3: | ||
local v = "([aeiouyůõảẻỉỏủỷę])" | local v = "([aeiouyůõảẻỉỏủỷę])" | ||
local PAGENAME = mw.title.getCurrentTitle().text | local PAGENAME = mw.title.getCurrentTitle().text | ||
local na = false | |||
local ine, ill, ela, ade, all, abl, loc | local ine, ill, ela, ade, all, abl, loc | ||
Line 28: | Line 29: | ||
data.forms["m"] = {stem .. "ka"} | data.forms["m"] = {stem .. "ka"} | ||
loc = stem .. "ki" | loc = stem .. "ki" | ||
na = true | |||
elseif stem:match(v.."mm.$") then | elseif stem:match(v.."mm.$") then | ||
data.forms["m"] = {s3 .. (data.q == "s" and "mġa" or data.q == "l" and "mka" or "kka")} | data.forms["m"] = {s3 .. (data.q == "s" and "mġa" or data.q == "l" and "mka" or "kka")} | ||
Line 61: | Line 63: | ||
data.forms["m"] = {stem .. "ka"} | data.forms["m"] = {stem .. "ka"} | ||
loc = stem .. "ki" | loc = stem .. "ki" | ||
na = true | |||
end | end | ||
Line 72: | Line 75: | ||
-- TODO: add alternative forms with table.insert | -- TODO: add alternative forms with table.insert | ||
for n, case in pairs(cases) do | for n, case in pairs(cases) do | ||
if stem:match(v.."nn.$") and data.q == "s" and not | if stem:match(v.."nn.$") and data.q == "s" and not na then | ||
table.insert(data.forms[case], s3 .. "nṡi" .. ce[n]) | table.insert(data.forms[case], s3 .. "nṡi" .. ce[n]) | ||
elseif stem:match(v.."n.$") and data.q == "s" and not | elseif stem:match(v.."n.$") and data.q == "s" and not na then | ||
table.insert(data.forms[case], s2 .. "nṡi" .. ce[n]) | table.insert(data.forms[case], s2 .. "nṡi" .. ce[n]) | ||
elseif stem:match(v.."[pb].$") and data.q == "s" and not | elseif stem:match(v.."[pb].$") and data.q == "s" and not na then | ||
table.insert(data.forms[case], s2 .. "pṡi" .. ce[n]) | table.insert(data.forms[case], s2 .. "pṡi" .. ce[n]) | ||
end | end | ||
Line 99: | Line 102: | ||
if args.ld then | if args.ld then | ||
data.forms["m"] = {stem .. "ri"} | data.forms["m"] = {stem .. "ri"} | ||
loc = lenition(" | loc = lenition("ri") | ||
na = true | |||
elseif stem:match(v.."ts.$") then | elseif stem:match(v.."ts.$") then | ||
data.forms["m"] = {s3 .. "tsġi"} | data.forms["m"] = {s3 .. "tsġi"} | ||
Line 138: | Line 142: | ||
data.forms["m"] = {stem .. "ri"} | data.forms["m"] = {stem .. "ri"} | ||
loc = stem .. "ri" | loc = stem .. "ri" | ||
na = true | |||
end | end | ||
elseif stem:match("[io]$") then | elseif stem:match("[io]$") then | ||
Line 143: | Line 148: | ||
data.forms["m"] = {s1 .. "ie"} | data.forms["m"] = {s1 .. "ie"} | ||
loc = s1 .. "iei" | loc = s1 .. "iei" | ||
na = true | |||
elseif stem:match(v.."mm.$") then | elseif stem:match(v.."mm.$") then | ||
data.forms["m"] = {s3 .. "mme"} | data.forms["m"] = {s3 .. "mme"} | ||
Line 154: | Line 160: | ||
data.forms["m"] = {s1 .. "ue", s1 .. "obi"} | data.forms["m"] = {s1 .. "ue", s1 .. "obi"} | ||
loc = s1 .. "uei" | loc = s1 .. "uei" | ||
na = true | |||
else | else | ||
data.forms["m"] = {s1 .. "ie"} | data.forms["m"] = {s1 .. "ie"} | ||
loc = s1 .. "iei" | loc = s1 .. "iei" | ||
na = true | |||
end | end | ||
elseif stem:match("[uyů]$") then | elseif stem:match("[uyů]$") then | ||
Line 162: | Line 170: | ||
data.forms["m"] = {stem .. "me"} | data.forms["m"] = {stem .. "me"} | ||
loc = stem .. "mei" | loc = stem .. "mei" | ||
na = true | |||
elseif stem:match(v.."mm.$") then | elseif stem:match(v.."mm.$") then | ||
data.forms["m"] = {s3 .. "mme"} | data.forms["m"] = {s3 .. "mme"} | ||
Line 174: | Line 183: | ||
data.forms["m"] = {stem .. "me"} | data.forms["m"] = {stem .. "me"} | ||
loc = stem .. "mei" | loc = stem .. "mei" | ||
na = true | |||
end | end | ||
end | end | ||
Line 186: | Line 196: | ||
-- TODO: add alternative forms with table.insert | -- TODO: add alternative forms with table.insert | ||
for n, case in pairs(cases) do | for n, case in pairs(cases) do | ||
if stem:match(" | if stem:match("o$") and na then | ||
table.insert(data.forms[case], s1 .. "obi" .. ce[n]) | table.insert(data.forms[case], s1 .. "obi" .. ce[n]) | ||
elseif stem:match("[ae]$") and na then | |||
table.insert(data.forms[case], stem .. "h" .. ce[n]) | |||
end | end | ||
end | end | ||
Line 214: | Line 226: | ||
all, abl = s1 .. "ỉ", s1 .. "ỉ" | all, abl = s1 .. "ỉ", s1 .. "ỉ" | ||
table.insert(data.forms["ine"], s1 .. "ỉa") | table.insert(data.forms["ine"], s1 .. "ỉa") | ||
na = true | |||
else | else | ||
data.forms["m"] = {stem .. "di"} | data.forms["m"] = {stem .. "di"} | ||
Line 219: | Line 232: | ||
all, abl = stem .. "i", stem .. "i" | all, abl = stem .. "i", stem .. "i" | ||
ine = stem .. "di" | ine = stem .. "di" | ||
na = true | |||
end | end | ||
elseif stem:match(v.."[mn][mn].$") then | elseif stem:match(v.."[mn][mn].$") then | ||
Line 249: | Line 263: | ||
all, abl = s1 .. "ỉ", s1 .. "ỉ" | all, abl = s1 .. "ỉ", s1 .. "ỉ" | ||
table.insert(data.forms["ine"], s1 .. "ỉa") | table.insert(data.forms["ine"], s1 .. "ỉa") | ||
na = true | |||
else | else | ||
data.forms["m"] = {stem .. "di"} | data.forms["m"] = {stem .. "di"} | ||
Line 254: | Line 269: | ||
all, abl = stem .. "i", stem .. "i" | all, abl = stem .. "i", stem .. "i" | ||
ine = stem .. "di" | ine = stem .. "di" | ||
na = true | |||
end | end | ||
Line 283: | Line 299: | ||
data.forms["m"] = {stem .. "mo"} | data.forms["m"] = {stem .. "mo"} | ||
loc = stem .. "moi" | loc = stem .. "moi" | ||
na = true | |||
elseif stem:match(v.."[mn][mn].$") then | elseif stem:match(v.."[mn][mn].$") then | ||
data.forms["m"] = {s3 .. "mmo"} | data.forms["m"] = {s3 .. "mmo"} | ||
Line 304: | Line 321: | ||
data.forms["m"] = {stem .. "mo"} | data.forms["m"] = {stem .. "mo"} | ||
loc = stem .. "moi" | loc = stem .. "moi" | ||
na = true | |||
end | end | ||
elseif stem:match("i$") then | elseif stem:match("i$") then | ||
Line 309: | Line 327: | ||
data.forms["m"] = {stem .. "ko"} | data.forms["m"] = {stem .. "ko"} | ||
loc = stem .. "koi" | loc = stem .. "koi" | ||
na = true | |||
elseif stem:match(v.."hhį.$") then | elseif stem:match(v.."hhį.$") then | ||
data.forms["m"] = {sub(stem, 1, -5) .. "ṡko"} | data.forms["m"] = {sub(stem, 1, -5) .. "ṡko"} | ||
Line 333: | Line 352: | ||
data.forms["m"] = {stem .. "ko"} | data.forms["m"] = {stem .. "ko"} | ||
loc = stem .. "koi" | loc = stem .. "koi" | ||
na = true | |||
end | end | ||
elseif stem:match("[ouyů].$") then | elseif stem:match("[ouyů].$") then | ||
Line 339: | Line 359: | ||
ill, ela = stem .. "n", stem .. "n" | ill, ela = stem .. "n", stem .. "n" | ||
ine, ade, all, abl = stem .. "mi", stem .. "mi", stem .. "mi", stem .. "mi" | ine, ade, all, abl = stem .. "mi", stem .. "mi", stem .. "mi", stem .. "mi" | ||
na = true | |||
elseif stem:match(v.."[mn][mn].$") then | elseif stem:match(v.."[mn][mn].$") then | ||
data.forms["m"] = {s3 .. "mma"} | data.forms["m"] = {s3 .. "mma"} | ||
Line 355: | Line 376: | ||
ill, ela = stem .. "n", stem .. "n" | ill, ela = stem .. "n", stem .. "n" | ||
ine, ade, all, abl = stem .. "mi", stem .. "mi", stem .. "mi", stem .. "mi" | ine, ade, all, abl = stem .. "mi", stem .. "mi", stem .. "mi", stem .. "mi" | ||
na = true | |||
end | end | ||
end | end | ||
Line 367: | Line 389: | ||
-- TODO: add alternative forms with table.insert | -- TODO: add alternative forms with table.insert | ||
for n, case in pairs(cases) do | for n, case in pairs(cases) do | ||
if stem:match(v.."[mnkg]i$") and not | if stem:match(v.."[mnkg]i$") and not na then | ||
table.insert(data.forms[case], s2 .. "kki" .. ce[n]) | table.insert(data.forms[case], s2 .. "kki" .. ce[n]) | ||
elseif (stem:match(v.."[lrs]ki$") or stem:match(v.."sġi$")) and not | elseif (stem:match(v.."[lrs]ki$") or stem:match(v.."sġi$")) and not na then | ||
table.insert(data.forms[case], s2 .. "kki" .. ce[n]) | table.insert(data.forms[case], s2 .. "kki" .. ce[n]) | ||
end | end | ||
Line 393: | Line 415: | ||
data.forms["m"] = {stem .. "mo"} | data.forms["m"] = {stem .. "mo"} | ||
loc = stem .. "moi" | loc = stem .. "moi" | ||
na = true | |||
elseif stem:match(v.."[mn][mn].$") then | elseif stem:match(v.."[mn][mn].$") then | ||
data.forms["m"] = {s3 .. "mmo"} | data.forms["m"] = {s3 .. "mmo"} | ||
Line 411: | Line 434: | ||
data.forms["m"] = {stem .. "mo"} | data.forms["m"] = {stem .. "mo"} | ||
loc = stem .. "moi" | loc = stem .. "moi" | ||
na = true | |||
end | end | ||
elseif stem:match("[ouyů]$") then | elseif stem:match("[ouyů]$") then | ||
Line 417: | Line 441: | ||
ill, ela = stem .. "n", stem .. "n" | ill, ela = stem .. "n", stem .. "n" | ||
ine, ade, all, abl = stem .. "mi", stem .. "mi", stem .. "mi", stem .. "mi" | ine, ade, all, abl = stem .. "mi", stem .. "mi", stem .. "mi", stem .. "mi" | ||
na = true | |||
elseif stem:match(v.."[mn][mn].$") then | elseif stem:match(v.."[mn][mn].$") then | ||
data.forms["m"] = {s3 .. "mma", s3 .. "mmo"} | data.forms["m"] = {s3 .. "mma", s3 .. "mmo"} | ||
Line 433: | Line 458: | ||
ill, ela = stem .. "n", stem .. "n" | ill, ela = stem .. "n", stem .. "n" | ||
ine, ade, all, abl = stem .. "mi", stem .. "mi", stem .. "mi", stem .. "mi" | ine, ade, all, abl = stem .. "mi", stem .. "mi", stem .. "mi", stem .. "mi" | ||
na = true | |||
end | end | ||
end | end | ||
Line 445: | Line 471: | ||
-- TODO: add alternative forms with table.insert | -- TODO: add alternative forms with table.insert | ||
for n, case in pairs(cases) do | for n, case in pairs(cases) do | ||
if stem:match(v.."[mn][mn][oyuů]$") and not | if stem:match(v.."[mn][mn][oyuů]$") and not na then | ||
table.insert(data.forms[case], s3 .. "mmoi" .. ce[n]) | table.insert(data.forms[case], s3 .. "mmoi" .. ce[n]) | ||
elseif (stem:match(v.."[mn][oyuů]$") or stem:match(v.."sġi$")) and not | elseif (stem:match(v.."[mn][oyuů]$") or stem:match(v.."sġi$")) and not na then | ||
table.insert(data.forms[case], s2 .. "mmoi" .. ce[n]) | table.insert(data.forms[case], s2 .. "mmoi" .. ce[n]) | ||
end | end | ||
Line 473: | Line 499: | ||
data.forms["m"] = {stem .. "mo"} | data.forms["m"] = {stem .. "mo"} | ||
loc = stem .. "moi" | loc = stem .. "moi" | ||
na = true | |||
elseif stem:match(v.."[mn][mn].$") then | elseif stem:match(v.."[mn][mn].$") then | ||
data.forms["m"] = {s3 .. "mmo"} | data.forms["m"] = {s3 .. "mmo"} | ||
Line 488: | Line 515: | ||
data.forms["m"] = {stem .. "mo"} | data.forms["m"] = {stem .. "mo"} | ||
loc = stem .. "moi" | loc = stem .. "moi" | ||
na = true | |||
end | end | ||
elseif stem:match("i$") then | elseif stem:match("i$") then | ||
Line 497: | Line 525: | ||
all, abl = s1 .. "ỉ", s1 .. "ỉ" | all, abl = s1 .. "ỉ", s1 .. "ỉ" | ||
table.insert(data.forms["ine"], s1 .. "ỉa") | table.insert(data.forms["ine"], s1 .. "ỉa") | ||
na = true | |||
else | else | ||
data.forms["m"] = {stem .. "di"} | data.forms["m"] = {stem .. "di"} | ||
Line 502: | Line 531: | ||
all, abl = stem .. "i", stem .. "i" | all, abl = stem .. "i", stem .. "i" | ||
ine = stem .. "di" | ine = stem .. "di" | ||
na = true | |||
end | end | ||
elseif stem:match(v.."[mn][mn].$") then | elseif stem:match(v.."[mn][mn].$") then | ||
Line 532: | Line 562: | ||
all, abl = s1 .. "ỉ", s1 .. "ỉ" | all, abl = s1 .. "ỉ", s1 .. "ỉ" | ||
table.insert(data.forms["ine"], s1 .. "ỉa") | table.insert(data.forms["ine"], s1 .. "ỉa") | ||
na = true | |||
else | else | ||
data.forms["m"] = {stem .. "di"} | data.forms["m"] = {stem .. "di"} | ||
Line 537: | Line 568: | ||
all, abl = stem .. "i", stem .. "i" | all, abl = stem .. "i", stem .. "i" | ||
ine = stem .. "di" | ine = stem .. "di" | ||
na = true | |||
end | end | ||
end | end |