Module:siwa-noun/data: Difference between revisions

Jump to navigation Jump to search
no edit summary
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 args.ld then
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 args.ld then
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 args.ld then
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("edġe")
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("[^mpbvnrlkg]o$") and not args.ld then
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 args.ld then
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 args.ld then
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 args.ld then
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 args.ld then
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

Navigation menu