45,333
edits
No edit summary |
No edit summary |
||
(221 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
local sub = mw.ustring.sub | local sub = mw.ustring.sub | ||
local gsub = mw.ustring.gsub | |||
local match = mw.ustring.match | local match = mw.ustring.match | ||
local v = "([ | local v = "([aeiouyůõảẻỉỏủỷęo̊])" | ||
local nv = "([^aeiouyůõảẻỉỏủỷę])" | local nv = "([^aeiouyůõảẻỉỏủỷę])" | ||
local PAGENAME = mw.title.getCurrentTitle().text | local PAGENAME = mw.title.getCurrentTitle().text | ||
Line 14: | Line 15: | ||
local function exactly(source, pattern) | local function exactly(source, pattern) | ||
return source:match("^" .. pattern .. "$") | return source:match("^" .. pattern .. "$") | ||
end | |||
local function csub(term, foo, bar, n) | |||
local coalesced = term | |||
local patterns = { | |||
{"([aoueů])", "%1gįa"}, {"ue", "ugįa"}, {"ie", "ieįa"}, | |||
{"ay", "ębia"}, {"uo", "ubia"}, {"au", "abia"}, {"o[au]", "obia"}, | |||
{"e[uy]", "ůbia"}, {"iu", "ibia"}, {"ả", "ęgįa"}, {"ỏ", "obia"}, | |||
{"ủ", "ubia"}, {"ẻ", "egįa"}, {"ỉ", "igįa"}, {"ỷ", "ybia"}, {"ẻu", "ůbia"} | |||
} | |||
for _, pat in ipairs(patterns) do | |||
for _, case in ipairs(ce) do | |||
coalesced = gsub(term, pat[1] .. case .. "$", pat[2]) | |||
end | |||
end | |||
return coalesced | |||
end | end | ||
Line 20: | Line 39: | ||
data["a"] = { | data["a"] = { | ||
params = { | params = { | ||
["nolen"] = {}, -- No LENition | ["nolen"] = {type = "boolean"}, -- No LENition | ||
["ld"] = {}, -- Lenition Declension | ["ld"] = {type = "boolean"}, -- Lenition Declension | ||
["d"] = {}, -- vowel Deletion | ["d"] = {type = "boolean"}, -- vowel Deletion | ||
["d2"] = {type = "boolean"}, | |||
["s"] = {type = "boolean"}, -- Stressed | |||
}, | }, | ||
} | } | ||
setmetatable(data["a"], {__call = function(self, args, data) | setmetatable(data["a"], {__call = function(self, args, data) | ||
local stem = args.nolen and data.head or m_com.coalescence(m_com.lenition(data.head)) | local stem = args.nolen and data.head or m_com.coalescence(m_com.lenition(data.head), args.s) | ||
local s1, s2, s3 = sub(stem, 1, -2), sub(stem, 1, -3), sub(stem, 1, -4) | local s1, s2, s3 = sub(stem, 1, -2), sub(stem, 1, -3), sub(stem, 1, -4) | ||
table.insert(data.categories, "Siwa a-declension " .. data.pos) | table.insert(data.categories, "Siwa a-declension " .. data.pos) | ||
data.forms["u"] = {PAGENAME} | data.forms["u"] = {data.alt or PAGENAME} | ||
if args.ld then | if args.ld then | ||
data.forms["m"] = {(args.d and s1 or stem) .. "ka"} | data.forms["m"] = {(args.d2 and s2 or args.d and s1 or stem) .. "ka"} | ||
loc = (args.d and s1 or stem) .. "ki" | loc = (args.d2 and s2 or args.d and s1 or stem) .. "ki" | ||
na = true | na = true | ||
elseif stem:match(v.."mm.$") then | elseif stem:match(v.."mm.$") then | ||
Line 48: | Line 69: | ||
data.forms["m"] = {s2 .. "kka"} | data.forms["m"] = {s2 .. "kka"} | ||
loc = s2 .. "kki" | loc = s2 .. "kki" | ||
elseif stem:match( | elseif stem:match("m.$") then | ||
data.forms["m"] = {s2 .. (data.q == "s" and "mġa" or data.q == "l" and "mka" or "kka")} | data.forms["m"] = {s2 .. (data.q == "s" and "mġa" or data.q == "l" and "mka" or "kka")} | ||
loc = s2 .. (data.q == "s" and "mṡi" or data.q == "l" and "mki" or "kki") | loc = s2 .. (data.q == "s" and "mṡi" or data.q == "l" and "mki" or "kki") | ||
Line 58: | Line 79: | ||
loc = s2 .. (data.q == "s" and "pri" or "ḍgi") | loc = s2 .. (data.q == "s" and "pri" or "ḍgi") | ||
elseif stem:match(v.."[td].$") then | elseif stem:match(v.."[td].$") then | ||
data.forms["m"] = {s2 .. (data.q == "s" and "tra" or " | data.forms["m"] = {s2 .. (data.q == "s" and "tra" or "tka")} | ||
loc = s2 .. (data.q == "s" and "tri" or "tṡi") | loc = s2 .. (data.q == "s" and "tri" or "tṡi") | ||
elseif stem:match(v.."r.$") then | elseif stem:match(v.."r.$") then | ||
Line 67: | Line 88: | ||
loc = s2 .. "ki" | loc = s2 .. "ki" | ||
else | else | ||
data.forms["m"] = {(args.d and s1 or stem) .. "ka"} | data.forms["m"] = {(args.d2 and s2 or args.d and s1 or stem) .. "ka"} | ||
loc = (args.d and s1 or stem) .. "ki" | loc = (args.d2 and s2 or args.d and s1 or stem) .. "ki" | ||
na = true | na = true | ||
end | end | ||
Line 93: | Line 114: | ||
data["e"] = { | data["e"] = { | ||
params = { | params = { | ||
["nolen"] = {}, | ["nolen"] = {type = "boolean"}, | ||
["ld"] = {}, | ["ld"] = {type = "boolean"}, | ||
["d"] = {type = "boolean"}, | |||
["s"] = {type = "boolean"}, | |||
}, | }, | ||
} | } | ||
setmetatable(data["e"], {__call = function(self, args, data) | setmetatable(data["e"], {__call = function(self, args, data) | ||
local stem = args.nolen and data.head or m_com.coalescence(m_com.lenition(data.head)) | local stem = args.nolen and data.head or m_com.coalescence(m_com.lenition(data.head), args.s) | ||
local s1, s2, s3 = sub(stem, 1, -2), sub(stem, 1, -3), sub(stem, 1, -4) | local s1, s2, s3 = sub(stem, 1, -2), sub(stem, 1, -3), sub(stem, 1, -4) | ||
table.insert(data.categories, "Siwa e-declension " .. data.pos) | table.insert(data.categories, "Siwa e-declension " .. data.pos) | ||
data.forms["u"] = {PAGENAME} | data.forms["u"] = {data.alt or PAGENAME} | ||
if stem:match("[ | if stem:match("[aeẻ]$") then | ||
if args.ld then | if args.ld then | ||
data.forms["m"] = {stem .. "ri"} | data.forms["m"] = {(args.d and s1 or stem) .. "ri"} | ||
loc = stem .. "ri" | loc = (args.d and s1 or stem) .. "ri" | ||
na = true | na = true | ||
elseif stem:match(v.."ts.$") then | elseif stem:match(v.."ts.$") then | ||
Line 145: | Line 168: | ||
loc = s2 .. "ġġi" | loc = s2 .. "ġġi" | ||
else | else | ||
data.forms["m"] = {stem .. "ri"} | data.forms["m"] = {(args.d and s1 or stem) .. "ri"} | ||
loc = stem .. "ri" | loc = (args.d and s1 or stem) .. "ri" | ||
na = true | na = true | ||
end | end | ||
elseif stem:match("[io]$") then | elseif stem:match("[io]$") then | ||
if args.ld then | if args.ld then | ||
data.forms["m"] = {s1 .. "ie"} | if stem:match("o$") then | ||
data.forms["m"] = {s1 .. "ue", s1 .. "obi"} | |||
loc = s1 .. "uei" | |||
na = true | |||
else | |||
data.forms["m"] = {s1 .. "ie"} | |||
loc = s1 .. "iei" | |||
na = true | |||
end | |||
elseif stem:match(v.."mm.$") then | elseif stem:match(v.."mm.$") then | ||
data.forms["m"] = {s3 .. "mme"} | data.forms["m"] = {s3 .. "mme"} | ||
loc = s3 .. "mmei" | loc = s3 .. "mmei" | ||
elseif stem:match(v.."vv.$") then | |||
data.forms["m"] = {s3 .. "vve"} | |||
loc = s3 .. "vvei" | |||
elseif stem:match(v.."[mpbvnrlkg].$") then | elseif stem:match(v.."[mpbvnrlkg].$") then | ||
local stl = sub(stem, -2, -2) | local stl = sub(stem, -2, -2) | ||
Line 173: | Line 205: | ||
elseif stem:match("[uyů]$") then | elseif stem:match("[uyů]$") then | ||
if args.ld then | if args.ld then | ||
data.forms["m"] = {stem .. "me"} | data.forms["m"] = {(args.d and s1 or stem) .. "me"} | ||
loc = stem .. "mei" | loc = (args.d and s1 or stem) .. "mei" | ||
na = true | na = true | ||
elseif stem:match(v.."mm.$") then | elseif stem:match(v.."mm.$") then | ||
Line 186: | Line 218: | ||
loc = s2 .. (data.q == "s" and "gme" or "hme") | loc = s2 .. (data.q == "s" and "gme" or "hme") | ||
else | else | ||
data.forms["m"] = {stem .. "me"} | data.forms["m"] = {(args.d and s1 or stem) .. "me"} | ||
loc = stem .. "mei" | loc = (args.d and s1 or stem) .. "mei" | ||
na = true | na = true | ||
end | end | ||
Line 211: | Line 243: | ||
data["i"] = { | data["i"] = { | ||
params = { | params = { | ||
["nolen"] = {}, | ["nolen"] = {type = "boolean"}, | ||
["ld"] = {}, | ["ld"] = {type = "boolean"}, | ||
["s"] = {type = "boolean"}, | |||
}, | }, | ||
} | } | ||
setmetatable(data["i"], {__call = function(self, args, data) | setmetatable(data["i"], {__call = function(self, args, data) | ||
local stem = args.nolen and data.head or m_com.coalescence(m_com.lenition(data.head)) | local stem = args.nolen and data.head or m_com.coalescence(m_com.lenition(data.head), args.s) | ||
local s1, s2, s3 = sub(stem, 1, -2), sub(stem, 1, -3), sub(stem, 1, -4) | local s1, s2, s3 = sub(stem, 1, -2), sub(stem, 1, -3), sub(stem, 1, -4) | ||
table.insert(data.categories, "Siwa i-declension " .. data.pos) | table.insert(data.categories, "Siwa i-declension " .. data.pos) | ||
data.forms["ine"], data.forms["all"], data.forms["abl"] = {}, {}, {} | data.forms["ine"], data.forms["all"], data.forms["abl"] = {}, {}, {} | ||
data.forms["u"] = {PAGENAME} | data.forms["u"] = {data.alt or PAGENAME} | ||
if args.ld then | if args.ld then | ||
Line 230: | Line 263: | ||
all, abl = stem, stem | all, abl = stem, stem | ||
table.insert(data.forms["ine"], s1 .. "ỉa") | table.insert(data.forms["ine"], s1 .. "ỉa") | ||
table.insert(data.forms["all"], s1 .. "iddįibma") | if sub(stem, -1, -1) == "ỉ" then | ||
table.insert(data.forms["all"], s1 .. "iddįibma") | |||
table.insert(data.forms["abl"], s1 .. "iddįiska") | |||
end | |||
na = true | na = true | ||
else | else | ||
Line 240: | Line 275: | ||
na = true | na = true | ||
end | end | ||
elseif stem:match(v.."hh.$") then | |||
data.forms["m"] = {s3 .. "hdi"} | |||
loc = s3 .. "hdi" | |||
elseif stem:match(v.."[mn][mn].$") then | elseif stem:match(v.."[mn][mn].$") then | ||
data.forms["m"] = {s3 .. "ndi"} | data.forms["m"] = {s3 .. "ndi"} | ||
Line 257: | Line 295: | ||
data.forms["m"] = {s2 .. "sti"} | data.forms["m"] = {s2 .. "sti"} | ||
loc = s2 .. "sti" | loc = s2 .. "sti" | ||
elseif stem:match(v.."ṡ.$") then | |||
data.forms["m"] = {s2 .. "ṡti"} | |||
loc = s2 .. "ṡti" | |||
elseif stem:match(v.."[rhk].$") then | elseif stem:match(v.."[rhk].$") then | ||
data.forms["m"] = {s2 .. "hdi"} | data.forms["m"] = {s2 .. "hdi"} | ||
Line 269: | Line 310: | ||
all, abl = stem, stem | all, abl = stem, stem | ||
table.insert(data.forms["ine"], s1 .. "ỉa") | table.insert(data.forms["ine"], s1 .. "ỉa") | ||
table.insert(data.forms["all"], s1 .. "iddįibma") | if sub(stem, -1, -1) == "ỉ" then | ||
table.insert(data.forms["all"], s1 .. "iddįibma") | |||
table.insert(data.forms["abl"], s1 .. "iddįiska") | |||
end | |||
na = true | na = true | ||
else | else | ||
Line 282: | Line 325: | ||
table.insert(data.forms["ine"], (ine or loc) .. ce[1]) | table.insert(data.forms["ine"], (ine or loc) .. ce[1]) | ||
data.forms["ill"] = {(ill or loc) .. ce[2]} | data.forms["ill"] = {(ill or loc) .. ce[2]} | ||
data.forms["ela"] = {(ela or loc) .. ce[3]} | data.forms["ela"] = {(ela or loc) .. (match(stem, "[vg].$") and "ga" or ce[3])} | ||
data.forms["ade"] = {(ade or loc) .. ce[4]} | data.forms["ade"] = {(ade or loc) .. ce[4]} | ||
table.insert(data.forms["all"], (all or loc) .. ce[5]) | table.insert(data.forms["all"], (all or loc) .. ce[5]) | ||
table.insert(data.forms["abl"], (abl or loc) .. ce[6]) | table.insert(data.forms["abl"], (abl or loc) .. ce[6]) | ||
end | end | ||
Line 292: | Line 336: | ||
data["o"] = { | data["o"] = { | ||
params = { | params = { | ||
["nolen"] = {}, | ["nolen"] = {type = "boolean"}, | ||
["ld"] = {}, | ["ld"] = {type = "boolean"}, | ||
["s"] = {type = "boolean"}, | |||
["d"] = {type = "boolean"}, | |||
}, | }, | ||
} | } | ||
setmetatable(data["o"], {__call = function(self, args, data) | setmetatable(data["o"], {__call = function(self, args, data) | ||
local stem = args.nolen and data.head or m_com.coalescence(m_com.lenition(data.head)) | local stem = args.nolen and data.head or m_com.coalescence(m_com.lenition(data.head), args.s) | ||
local s1, s2, s3 = sub(stem, 1, -2), sub(stem, 1, -3), sub(stem, 1, -4) | local s1, s2, s3 = sub(stem, 1, -2), sub(stem, 1, -3), sub(stem, 1, -4) | ||
table.insert(data.categories, "Siwa o-declension " .. data.pos) | table.insert(data.categories, "Siwa o-declension " .. data.pos) | ||
data.forms["u"] = {PAGENAME} | data.forms["u"] = {data.alt or PAGENAME} | ||
if stem:match("[ae]$") then | if stem:match("[ae]$") then | ||
if args.ld then | if args.ld then | ||
data.forms["m"] = {stem .. "mo"} | data.forms["m"] = {(args.d and s1 or stem == "kode" and "koi" or stem == "mohe" and "moi" or stem) .. "mo"} | ||
loc = stem .. "moi" | loc = (args.d and s1 or stem) .. "moi" | ||
na = true | na = true | ||
elseif stem:match(v.."[ | elseif stem:match(v.."[mnv][mnv].$") then | ||
data.forms["m"] = {s3 .. "mmo"} | data.forms["m"] = {s3 .. "mmo"} | ||
loc = s3 .. "mmoi" | loc = s3 .. "mmoi" | ||
elseif stem:match(v.."hh.$") then | |||
data.forms["m"] = {s3 .. "hmo"} | |||
loc = s3 .. "hmoi" | |||
elseif stem:match(v.."[bt].$") then | elseif stem:match(v.."[bt].$") then | ||
data.forms["m"] = {s2 .. "bmo"} | data.forms["m"] = {s2 .. "bmo"} | ||
Line 327: | Line 376: | ||
loc = s2 .. "lmoi" | loc = s2 .. "lmoi" | ||
else | else | ||
data.forms["m"] = {stem .. "mo"} | data.forms["m"] = {(args.d and s1 or stem) .. "mo"} | ||
loc = stem .. "moi" | loc = (args.d and s1 or stem) .. "moi" | ||
na = true | na = true | ||
end | end | ||
elseif stem:match(" | elseif stem:match("[iỷ]$") then | ||
if args.ld then | if args.ld then | ||
data.forms["m"] = {stem .. "ko"} | data.forms["m"] = {(args.d and s1 or stem) .. "ko"} | ||
loc = stem .. "koi" | loc = (args.d and s1 or stem) .. "koi" | ||
na = true | 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"} | ||
loc = sub(stem, 1, -5) .. "ṡkoi" | loc = sub(stem, 1, -5) .. "ṡkoi" | ||
elseif stem:match(v.."[ | elseif stem:match(v.."hh.$") then | ||
data.forms["m"] = {s3 .. "kko"} | data.forms["m"] = {s3 .. "hko"} | ||
loc = s3 .. "kkoi" | loc = s3 .. "hkoi" | ||
elseif stem:match(v.."[mnv][mnv].$") then | |||
data.forms["m"] = {(sub(stem, -4, -4) == "o" and sub(stem, 1, -5) .. "õ" or s3) .. "kko"} | |||
loc = (sub(stem, -4, -4) == "o" and sub(stem, 1, -5) .. "õ" or s3) .. "kkoi" | |||
elseif stem:match(v.."[mnkg].$") then | elseif stem:match(v.."[mnkg].$") then | ||
data.forms["m"] = {s2 .. "kko"} | data.forms["m"] = {(sub(stem, -3, -3) == "o" and not args.s and s3 .. "õ" or s2) .. "kko"} | ||
loc = s2 .. "kkoi" | loc = (sub(stem, -3, -3) == "o" and not args.s and s3 .. "õ" or s2) .. "kkoi" | ||
elseif stem:match(v.."[lrs]k.$") or stem:match(v.."sġ.$") then | elseif stem:match(v.."[lrs]k.$") or stem:match(v.."sġ.$") then | ||
data.forms["m"] = {s2 .. "kko"} | data.forms["m"] = {s2 .. "kko"} | ||
Line 358: | Line 410: | ||
loc = s2 .. "ṡkoi" | loc = s2 .. "ṡkoi" | ||
else | else | ||
data.forms["m"] = {stem .. "ko"} | data.forms["m"] = {(args.d and s1 or stem) .. "ko"} | ||
loc = stem .. "koi" | loc = (args.d and s1 or stem) .. "koi" | ||
na = true | na = true | ||
end | end | ||
elseif stem:match("[ | elseif stem:match("[ouyůỏ]$") then | ||
if args.ld then | if args.ld then | ||
data.forms["m"] = { | local del = args.d and s1 or stem | ||
ill, ela = | data.forms["m"] = {del .. "ma"} | ||
ine, ade, all, abl = | ill, ela = del .. "n", del .. "n" | ||
ine, ade, all, abl = del .. "mi", del .. "mi", del .. "mi", del .. "mi" | |||
na = true | na = true | ||
elseif | elseif s1:match(v.."[bptd]$") then | ||
data.forms["m"] = {s2 .. "bma"} | |||
loc = s2 .. "bmi" | |||
elseif s1:match(v.."[mn][mn]$") then | |||
data.forms["m"] = {s3 .. "mma"} | data.forms["m"] = {s3 .. "mma"} | ||
loc = s3 .. "mmi" | loc = s3 .. "mmi" | ||
elseif | elseif s1:match(v.."[rhgk][rhgk]$") then | ||
data.forms["m"] = {s3 .. "hma"} | |||
loc = s3 .. "hmi" | |||
elseif s1:match(v.."[mnv]$") then | |||
data.forms["m"] = {s2 .. "mma"} | data.forms["m"] = {s2 .. "mma"} | ||
loc = s2 .. "mmi" | loc = s2 .. "mmi" | ||
elseif | elseif s1:match(v.."[rhgk]$") then | ||
data.forms["m"] = {s2 .. "hma"} | data.forms["m"] = {s2 .. "hma"} | ||
loc = s2 .. "hmi" | loc = s2 .. "hmi" | ||
elseif | elseif s1:match(v.."l$") then | ||
data.forms["m"] = {s2 .. "lma"} | data.forms["m"] = {s2 .. "lma"} | ||
loc = s2 .. "lmi" | loc = s2 .. "lmi" | ||
else | else | ||
data.forms["m"] = { | local del = args.d and s1 or stem | ||
ill, ela = | data.forms["m"] = {del .. "ma"} | ||
ine, ade, all, abl = | ill, ela = del .. "n", del .. "n" | ||
ine, ade, all, abl = del .. "mi", del .. "mi", del .. "mi", del .. "mi" | |||
na = true | na = true | ||
end | end | ||
Line 397: | Line 457: | ||
for n, case in pairs(cases) do | for n, case in pairs(cases) do | ||
if stem:match(v.."[mnkg]i$") and not na 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], (sub(stem, -3, -3) == "o" and s3 .. "õ" or s2) .. "kki" .. ce[n]) | ||
elseif (stem:match(v.."[lrs]ki$") or stem:match(v.."sġi$")) and not na 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]) | ||
Line 407: | Line 467: | ||
data["u"] = { | data["u"] = { | ||
params = { | params = { | ||
["nolen"] = {}, | ["nolen"] = {type = "boolean"}, | ||
["ld"] = {}, | ["ld"] = {type = "boolean"}, | ||
["s"] = {type = "boolean"}, | |||
}, | }, | ||
} | } | ||
setmetatable(data["u"], {__call = function(self, args, data) | setmetatable(data["u"], {__call = function(self, args, data) | ||
local stem = args.nolen and data.head or m_com.coalescence(m_com.lenition(data.head)) | local stem = args.nolen and data.head or m_com.coalescence(m_com.lenition(data.head), args.s) | ||
local s1, s2, s3 = sub(stem, 1, -2), sub(stem, 1, -3), sub(stem, 1, -4) | local s1, s2, s3 = sub(stem, 1, -2), sub(stem, 1, -3), sub(stem, 1, -4) | ||
table.insert(data.categories, "Siwa u-declension " .. data.pos) | table.insert(data.categories, "Siwa u-declension " .. data.pos) | ||
data.forms["u"] = {PAGENAME} | data.forms["u"] = {data.alt or PAGENAME} | ||
if stem:match("[aei]$") then | if stem:match("[aei]$") then | ||
Line 423: | Line 484: | ||
loc = stem .. "moi" | loc = stem .. "moi" | ||
na = true | na = true | ||
elseif stem:match(v.."[ | elseif stem:match(v.."[mnv][mnv].$") then | ||
data.forms["m"] = {s3 .. "mmo"} | data.forms["m"] = {s3 .. "mmo"} | ||
loc = s3 .. "mmoi" | loc = s3 .. "mmoi" | ||
elseif stem:match(v.."hh.$") then | |||
data.forms["m"] = {s3 .. "hmo"} | |||
loc = s3 .. "hmoi" | |||
elseif stem:match(v.."[btpd].$") then | elseif stem:match(v.."[btpd].$") then | ||
data.forms["m"] = {s2 .. "bmo"} | data.forms["m"] = {s2 .. "bmo"} | ||
Line 443: | Line 507: | ||
na = true | na = true | ||
end | end | ||
elseif stem:match("[ | elseif stem:match("[ouyỷů]$") then | ||
if args.ld then | if args.ld then | ||
data.forms["m"] = {stem .. "ma"} | data.forms["m"] = {stem .. "ma"} | ||
Line 455: | Line 519: | ||
data.forms["m"] = {s2 .. "mma", s2 .. "mmo"} | data.forms["m"] = {s2 .. "mma", s2 .. "mmo"} | ||
loc = s2 .. "mmi" | loc = s2 .. "mmi" | ||
elseif stem:match(v.."[bptd].$") then | |||
data.forms["m"] = {s2 .. "bma"} | |||
loc = s2 .. "bmi" | |||
elseif stem:match(v.."[rhgk].$") then | elseif stem:match(v.."[rhgk].$") then | ||
data.forms["m"] = {s2 .. "hma"} | data.forms["m"] = {s2 .. "hma"} | ||
Line 488: | Line 555: | ||
data["y"] = { | data["y"] = { | ||
params = { | params = { | ||
["nolen"] = {}, | ["nolen"] = {type = "boolean"}, | ||
["ld"] = {}, | ["ld"] = {type = "boolean"}, | ||
["s"] = {}, | ["s"] = {type = "boolean"}, | ||
["d"] = {type = "boolean"}, | |||
}, | }, | ||
} | } | ||
Line 502: | Line 570: | ||
data.forms["abl"] = {} | data.forms["abl"] = {} | ||
data.forms["u"] = {PAGENAME} | data.forms["u"] = {data.alt or PAGENAME} | ||
if stem:match("a$") then | if stem:match("a$") then | ||
if args.ld then | if args.ld then | ||
data.forms["m"] = {stem .. "mo"} | data.forms["m"] = {(args.d and s1 or stem) .. "mo"} | ||
loc = stem .. "moi" | loc = (args.d and s1 or stem) .. "moi" | ||
na = true | na = true | ||
elseif stem:match(v.."[mn][mn].$") then | elseif stem:match(v.."[mn][mn].$") then | ||
Line 522: | Line 590: | ||
loc = s2 .. "lmoi" | loc = s2 .. "lmoi" | ||
else | else | ||
data.forms["m"] = {stem .. "mo"} | data.forms["m"] = {(args.d and s1 or stem) .. "mo"} | ||
loc = stem .. "moi" | loc = (args.d and s1 or stem) .. "moi" | ||
na = true | na = true | ||
end | end | ||
Line 561: | Line 629: | ||
data.forms["m"] = {s2 .. "sti"} | data.forms["m"] = {s2 .. "sti"} | ||
loc = s2 .. "sti" | loc = s2 .. "sti" | ||
elseif stem:match(v.."ṡ.$") then | |||
data.forms["m"] = {s2 .. "ṡti"} | |||
loc = s2 .. "ṡti" | |||
elseif stem:match(v.."[rhk].$") then | elseif stem:match(v.."[rhk].$") then | ||
data.forms["m"] = {s2 .. "hdi"} | data.forms["m"] = {s2 .. "hdi"} | ||
Line 583: | Line 654: | ||
na = true | na = true | ||
end | end | ||
elseif stem:match("[ | elseif stem:match("[ouyỷů]$") then | ||
if args.ld then | if args.ld then | ||
data.forms["m"] = {stem .. "ma"} | data.forms["m"] = {stem .. "ma"} | ||
Line 601: | Line 672: | ||
loc = s2 .. "lmi" | loc = s2 .. "lmi" | ||
else | else | ||
data.forms["m"] = {stem .. "ma"} | data.forms["m"] = {(args.d and s1 or stem) .. "ma"} | ||
ill, ela = stem .. "n", stem .. "n" | ill, ela = (args.d and s1 or stem) .. "n", (args.d and s1 or stem) .. "n" | ||
ine, ade, all, abl = stem .. "mi", stem .. "mi", stem .. "mi", stem .. "mi" | ine, ade, all, abl = (args.d and s1 or stem) .. "mi", (args.d and s1 or stem) .. "mi", (args.d and s1 or stem) .. "mi", (args.d and s1 or stem) .. "mi" | ||
end | end | ||
end | end | ||
Line 609: | Line 680: | ||
table.insert(data.forms["ine"], (ine or loc) .. ce[1]) | table.insert(data.forms["ine"], (ine or loc) .. ce[1]) | ||
data.forms["ill"] = {(ill or loc) .. ce[2]} | data.forms["ill"] = {(ill or loc) .. ce[2]} | ||
data.forms["ela"] = {(ela or loc) .. ce[3]} | data.forms["ela"] = {(ela or loc) .. (match(stem, "[vg].$") and "ga" or ce[3])} | ||
data.forms["ade"] = {(ade or loc) .. ce[4]} | data.forms["ade"] = {(ade or loc) .. ce[4]} | ||
table.insert(data.forms["all"], (all or loc) .. ce[5]) | table.insert(data.forms["all"], (all or loc) .. ce[5]) | ||
Line 619: | Line 690: | ||
data["s"] = { | data["s"] = { | ||
params = { | params = { | ||
["nolen"] = {}, | ["nolen"] = {type = "boolean"}, | ||
["d"] = {}, | ["d"] = {type = "boolean"}, | ||
["s"] = {}, | ["d2"] = {type = "boolean"}, | ||
["s"] = {type = "boolean"}, | |||
}, | }, | ||
} | } | ||
setmetatable(data["s"], {__call = function(self, args, data) | setmetatable(data["s"], {__call = function(self, args, data) | ||
local stem = args.nolen and data.head or m_com.coalescence(m_com.lenition(data.head)) | local stem = args.nolen and data.head or m_com.coalescence(m_com.lenition(data.head), args.s) | ||
local s1, s2, s3 = sub(stem, 1, -2), sub(stem, 1, -3), sub(stem, 1, -4) | local s1, s2, s3 = sub(stem, 1, -2), sub(stem, 1, -3), sub(stem, 1, -4) | ||
table.insert(data.categories, "Siwa s-declension " .. data.pos) | table.insert(data.categories, "Siwa s-declension " .. data.pos) | ||
local s = args.s and " | local s = args.s and "hh" or "h" | ||
data.forms["u"] = {PAGENAME} | data.forms["u"] = {data.alt or PAGENAME} | ||
if stem:match(v.."d.s$") then | if stem:match(v.."d.s$") then | ||
Line 642: | Line 714: | ||
ine, all, abl = s1 .. "hi", s1 .. "hi", s1 .. "hi" | ine, all, abl = s1 .. "hi", s1 .. "hi", s1 .. "hi" | ||
else | else | ||
data.forms["m"] = {(args.d and s2 or s1) .. s .. " | data.forms["m"] = {(args.d2 and s3 or args.d and s2 or s1) .. s .. "i"} | ||
ill, ela, ade = (args.d and s2 or s1) | ill, ela, ade = (args.d2 and s3 or args.d and s2 or s1) .. "h", (args.d2 and s3 or args.d and s2 or s1) .. "h", (args.d2 and s3 or args.d and s2 or s1) .. "h" | ||
ine, all, abl = (args.d and s2 or s1) .. s.. " | ine, all, abl = (args.d2 and s3 or args.d and s2 or s1) .. s .. "i", (args.d2 and s3 or args.d and s2 or s1) .. s .. "i", (args.d2 and s3 or args.d and s2 or s1) .. s .. "i" | ||
end | end | ||
Line 659: | Line 731: | ||
params = { | params = { | ||
[2] = {}, | [2] = {}, | ||
["nolen"] = {}, | ["nolen"] = {type = "boolean"}, | ||
["s"] = {type = "boolean"}, | |||
["d"] = {type = "boolean"}, | |||
}, | }, | ||
} | } | ||
setmetatable(data["n"], {__call = function(self, args, data) | setmetatable(data["n"], {__call = function(self, args, data) | ||
local stem = args.nolen and data.head or m_com.coalescence(m_com.lenition(data.head)) | local stem = args.nolen and data.head or m_com.coalescence(m_com.lenition(data.head), args.s) | ||
local s1, s2, s3 = sub(stem, 1, -2), sub(stem, 1, -3), sub(stem, 1, -4) | local s1, s2, s3 = sub(stem, 1, -2), sub(stem, 1, -3), sub(stem, 1, -4) | ||
local sv = args[2] | local sv = args[2] | ||
table.insert(data.categories, "Siwa n-declension " .. data.pos) | table.insert(data.categories, "Siwa n-declension " .. data.pos) | ||
data.forms["u"] = {PAGENAME} | data.forms["u"] = {data.alt or PAGENAME} | ||
if sv:match("[aou]$") then | if sv:match("[aou]$") then | ||
data.forms["m"] = {stem .. "ta"} | data.forms["m"] = {stem .. "ta"} | ||
loc = | loc = match(stem, "on$") and s2 .. "õri" or s1 .. "ri" | ||
elseif sv:match("[ | elseif sv:match("[eiyůỉę]$") then | ||
data.forms["m"] = {s1 .. "s"} | data.forms["m"] = {s1 .. "s"} | ||
loc = s1 .. " | loc = s1 .. "s" .. (args.d and "" or "i") | ||
end | end | ||
Line 690: | Line 764: | ||
params = { | params = { | ||
[2] = {}, | [2] = {}, | ||
["nolen"] = {}, | ["nolen"] = {type = "boolean"}, | ||
["ut"] = {}, | ["ut"] = {type = "boolean"}, | ||
["s"] = {type = "boolean"}, | |||
}, | }, | ||
} | } | ||
setmetatable(data["t"], {__call = function(self, args, data) | setmetatable(data["t"], {__call = function(self, args, data) | ||
local stem = args.nolen and data.head or m_com.coalescence(m_com.lenition(data.head)) | local stem = args.nolen and data.head or m_com.coalescence(m_com.lenition(data.head), args.s) | ||
local s1, s2, s3 = sub(stem, 1, -2), sub(stem, 1, -3), sub(stem, 1, -4) | local s1, s2, s3 = sub(stem, 1, -2), sub(stem, 1, -3), sub(stem, 1, -4) | ||
local sv = args[2] | local sv = args[2] | ||
table.insert(data.categories, "Siwa t-declension " .. data.pos) | table.insert(data.categories, "Siwa t-declension " .. data.pos) | ||
data.forms["u"] = {PAGENAME} | data.forms["u"] = {data.alt or PAGENAME} | ||
if args.ut then | if args.ut then | ||
data.forms["m"] = {s2 .. "lda", | data.forms["m"] = {s2 .. "lda", s1 .. "tta"} | ||
loc = s1 .. "ttai" | |||
elseif sv:match("[aou]$") then | elseif sv:match("[aou]$") then | ||
data.forms["m"] = {stem .. "ta"} | data.forms["m"] = {stem .. "ta"} | ||
loc = stem .. "tai" | |||
elseif sv:match("[eiyů]$") then | elseif sv:match("[eiyů]$") then | ||
data.forms["m"] = {s1 .. "tsta", s1 .. "ddįa", s1 .. "tsitta"} | data.forms["m"] = {s1 .. "tsta", s1 .. "ddįa", s1 .. "tsitta"} | ||
loc = s1 .. "tsti" | |||
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]} | |||
for n, case in pairs(cases) do | |||
if sv:match("[eiyů]$") then | |||
table.insert(data.forms[case], s1 .. "ddįi" .. ce[n]) | |||
table.insert(data.forms[case], s1 .. "tsitti" .. ce[n]) | |||
end | |||
end | |||
end | end | ||
}) | }) | ||
Line 715: | Line 808: | ||
params = { | params = { | ||
[2] = {}, | [2] = {}, | ||
["nolen"] = {}, | ["nolen"] = {type = "boolean"}, | ||
["str"] = {type = "boolean"}, | |||
["s"] = {type = "boolean"}, | |||
}, | }, | ||
} | } | ||
setmetatable(data["l"], {__call = function(self, args, data) | setmetatable(data["l"], {__call = function(self, args, data) | ||
local stem = args.nolen and data.head or m_com.coalescence(m_com.lenition(data.head)) | local stem = args.nolen and data.head or m_com.coalescence(m_com.lenition(data.head), args.s) | ||
local s1, s2, s3 = sub(stem, 1, -2), sub(stem, 1, -3), sub(stem, 1, -4) | local s1, s2, s3 = sub(stem, 1, -2), sub(stem, 1, -3), sub(stem, 1, -4) | ||
table.insert(data.categories, "Siwa l-declension " .. data.pos) | table.insert(data.categories, "Siwa l-declension " .. data.pos) | ||
Line 729: | Line 824: | ||
} | } | ||
data.forms["u"] = {PAGENAME} | local dtl = { | ||
["aa"] = "ả", ["ee"] = "ẻ", ["ii"] = "ỉ", | |||
["oo"] = "ỏ", ["uu"] = "ủ", ["yy"] = "ỷ", | |||
} | |||
data.forms["u"] = {data.alt or PAGENAME} | |||
if sv:match("[aou]$") then | if sv:match("[aou]$") then | ||
Line 737: | Line 837: | ||
data.forms["m"] = {s1 .. "ri"} | data.forms["m"] = {s1 .. "ri"} | ||
end | end | ||
elseif | elseif sv:match("[eiyů]$") then | ||
if match("[ảẻỉỏủỷ]", sub(data.head, -1, -1)) then | if match("[ảẻỉỏủỷ]", sub(data.head, -1, -1)) then | ||
data.forms["m"] = {s1 .. lts[sub(stem, -1, -1)] .. "la"} | data.forms["m"] = {s1 .. lts[sub(stem, -1, -1)] .. "la"} | ||
Line 745: | Line 845: | ||
end | end | ||
for double, long in pairs(dtl) do | |||
data.forms["m"][1] = gsub(data.forms["m"][1], double, long) | |||
end | |||
end | end | ||
}) | }) | ||
Line 751: | Line 854: | ||
params = { | params = { | ||
[2] = {}, -- stressed vowel | [2] = {}, -- stressed vowel | ||
["h"] = {}, -- Human | ["h"] = {type = "boolean"}, -- Human | ||
["av"] = {}, | ["t"] = {type = "boolean"}, -- extra T | ||
["av"] = {type = "boolean"}, -- After Vowel | |||
["s"] = {type = "boolean"}, | |||
["d"] = {type = "boolean"}, | |||
["i"] = {type = "boolean"}, -- -i Subgroup | |||
}, | }, | ||
} | } | ||
Line 764: | Line 871: | ||
data.forms["u_sg"] = {PAGENAME} | data.forms["u_sg"] = {PAGENAME} | ||
if stem:match("m[ao]$") then | if stem:match("[iỉy]$") and args.i then | ||
data.forms["u_pl"] = {stem .. "gi"} | |||
data.forms["m_sg"] = {s2 .. "tṡa"} | |||
data.forms["m_pl"] = {s2 .. "tṡagi"} | |||
elseif stem:match("m[ao]$") then | |||
data.forms["m_sg"] = {s2 .. (exactly(sv, "[ou]") and "ṡi" or "ka")} | data.forms["m_sg"] = {s2 .. (exactly(sv, "[ou]") and "ṡi" or "ka")} | ||
data.forms["u_pl"] = {stem .. "gi"} | data.forms["u_pl"] = {stem .. "gi"} | ||
data.forms["m_pl"] = {s2 .. (exactly(sv, "[ou]") and "ṡi" or "ka") .. "gi"} | data.forms["m_pl"] = {s2 .. (exactly(sv, "[ou]") and "ṡi" or "ka") .. "gi"} | ||
elseif stem:match("mi$") then | elseif stem:match("mi$") then | ||
data.forms["m_sg"] = {s2 .. "ta"} | data.forms["m_sg"] = {s2 .. (args.t and "t" or "") .. "ta"} | ||
if stem | if stem:match(v.."..$") then table.insert(data.forms["m_sg"], s2 .. "tta") end | ||
data.forms["u_pl"] = {stem .. "gi", s2 .. " | data.forms["u_pl"] = {stem .. "gi"} | ||
data.forms["m_pl"] = {s2 .. "tagi", s2 .. "ttagi" | if stem:match(v.."..$") then | ||
table.insert(data.forms["u_pl"], s2 .. "mhi") | |||
table.insert(data.forms["u_pl"], s2 .. "mṡi") | |||
end | |||
data.forms["m_pl"] = {s2 .. (args.t and "t" or "") .. "tagi"} | |||
if stem:match(v.."..$") then table.insert(data.forms["m_pl"], s2 .. "ttagi") end | |||
elseif stem:match("[bpv]a$") then | elseif stem:match("[bpv]a$") then | ||
data.forms["m_sg"] = {s2 .. "u"} | data.forms["m_sg"] = {s2 .. "u"} | ||
data.forms["m_sg"][1] = gsub(data.forms["m_sg"][1], "uu", "ủ") | |||
data.forms["u_pl"] = {stem .. "gi"} | data.forms["u_pl"] = {stem .. "gi"} | ||
data.forms["m_pl"] = {s2 .. "ugi"} | data.forms["m_pl"] = {s2 .. "ugi"} | ||
data.forms["m_pl"][1] = gsub(data.forms["m_pl"][1], "uu", "ủ") | |||
elseif stem:match("[bpv]i$") then | elseif stem:match("[bpv]i$") then | ||
data.forms["m_sg"] = { | local repl = gsub(s2, "h$", "k"); repl = gsub(repl, "ḍ$", "hh"); repl = gsub(repl, "lp$", "ll") | ||
repl = gsub(repl, "p$", "ḥḥ"); repl = gsub(repl, "ṡ$", "ṡṡ") | |||
data.forms["m_sg"] = {repl .. "umi"} | |||
data.forms["u_pl"] = {stem .. "gi"} | data.forms["u_pl"] = {stem .. "gi"} | ||
if stem:match("[bp].$") then table.insert(data.forms["u_pl"], s2 .. "bṡi") end | if stem:match(v.."[bp].$") then table.insert(data.forms["u_pl"], s2 .. "bṡi") end | ||
data.forms["m_pl"] = { | data.forms["m_pl"] = {repl .. "umṡi"} | ||
elseif stem:match("[bpv]o$") then | elseif stem:match("[bpv]o$") then | ||
data.forms["u_pl"] = {stem .. "gi"} | data.forms["u_pl"] = {stem .. "gi"} | ||
Line 788: | Line 908: | ||
elseif stem:match("[tn][ao]$") then | elseif stem:match("[tn][ao]$") then | ||
data.forms["u_pl"] = {stem .. "gi"} | data.forms["u_pl"] = {stem .. "gi"} | ||
data.forms["m_sg"] = {s2 .. " | if stem:match(nv.."..$") and not stem:match("[tsḍlgġksṡrd]..$") then | ||
data.forms["m_sg"] = {s2 .. "ųa"} | |||
data.forms["m_pl"] = {s2 .. "ųagi"} | |||
else | |||
data.forms["m_sg"] = {s2 .. (args.s and "v" or "") .."va"} | |||
data.forms["m_pl"] = {s2 .. (args.s and "v" or "") .. "vagi"} | |||
end | |||
elseif stem:match("ni$") then | elseif stem:match("ni$") then | ||
if av then | if av then | ||
Line 797: | Line 922: | ||
end | end | ||
data.forms["m_sg"] = {s2 .. "įa"} | data.forms["m_sg"] = {s2 .. (match(s2, "h$") and "h" or "") .. "įa"} | ||
data.forms["m_pl"] = {s2 .. "įagi"} | data.forms["m_pl"] = {s2 .. (match(s2, "h$") and "h" or "") .. "įagi"} | ||
elseif stem:match("t[ao]$") then | |||
if args.s then | |||
data.forms["m_sg"] = {s2 .. "vva"} | |||
data.forms["m_pl"] = {s2 .. "vvagi"} | |||
elseif not s2:match("[tklrḍsṡgġ]$") then | |||
data.forms["m_sg"] = {s2 .. "ųa"} | |||
data.forms["m_pl"] = {s2 .. "ųagi"} | |||
else | |||
data.forms["m_sg"] = {s2 .. "va"} | |||
data.forms["m_pl"] = {s2 .. "vagi"} | |||
end | |||
data.forms["u_sg"] = {stem .. "gi"} | |||
elseif stem:match("t[ei]$") then | elseif stem:match("t[ei]$") then | ||
data.forms["u_pl"] = {stem .. "gi", s1 .. "si"} | data.forms["u_pl"] = {stem .. "gi", s1 .. "si"} | ||
Line 807: | Line 945: | ||
if args.h then | if args.h then | ||
data.forms["m_sg"] = {s2 .. " | data.forms["m_sg"] = {s2 .. (match(s2, "t$") and "" or "t") .. "ta"} | ||
data.forms["m_pl"] = {s2 .. " | data.forms["m_pl"] = {s2 .. (match(s2, "t$") and "" or "t") .. "tagi"} | ||
else | else | ||
data.forms["m_sg"] = {s2 .. "hi", s2 .. "ḥi"} | data.forms["m_sg"] = {s2 .. "hi", s2 .. "ḥi"} | ||
Line 814: | Line 952: | ||
end | end | ||
elseif stem:match("si$") then | elseif stem:match("si$") then | ||
data.forms["u_pl"] = {stem .. "gi", | data.forms["u_pl"] = {stem .. "gi", s2 .. "sġi"} | ||
data.forms["m_sg"] = {s2 .. "tta"} | data.forms["m_sg"] = {s2 .. (av and "tta" or "ta")} | ||
data.forms["m_pl"] = {s2 .. "ttagi"} | data.forms["m_pl"] = {s2 .. (av and "ttagi" or "tagi")} | ||
elseif stem:match("ṡi$") then | elseif stem:match("ṡi$") then | ||
data.forms["u_pl"] = {stem .. "gi"} | data.forms["u_pl"] = {stem .. "gi"} | ||
Line 827: | Line 965: | ||
elseif stem:match("[lr]i$") then | elseif stem:match("[lr]i$") then | ||
data.forms["u_pl"] = {s1 .. (av and "hi" or "igi")} | data.forms["u_pl"] = {s1 .. (av and "hi" or "igi")} | ||
data.forms["m_sg"] = {s2 .. "tṡa"} | data.forms["m_sg"] = {s2 .. (stem:match("dli$") and "dįa" or s1:match("r$") and "" or "l") .. "tṡa"} | ||
data.forms["m_pl"] = {s2 .. "tṡagi"} | data.forms["m_pl"] = {s2 .. (stem:match("dli$") and "dįagi" or s1:match("r$") and "" or "l") .. "tṡagi"} | ||
elseif stem:match("lu$") then | elseif stem:match("lu$") then | ||
data.forms["u_pl"] = {s1 .. (av and "hi" or "ugi")} | data.forms["u_pl"] = {s1 .. (av and "hi" or "ugi")} | ||
Line 835: | Line 973: | ||
elseif stem:match("k[ao]$") then | elseif stem:match("k[ao]$") then | ||
data.forms["u_pl"] = {stem .. "gi"} | data.forms["u_pl"] = {stem .. "gi"} | ||
data.forms["m_sg"] = {s2 .. "uni"} | data.forms["m_sg"] = {s2 .. (match(s2, "h$") and "h" or "") .. "uni"} | ||
data.forms["m_pl"] = {s2 .. "unhi"} | data.forms["m_pl"] = {s2 .. (match(s2, "h$") and "h" or "") .. "unhi"} | ||
elseif stem:match("ki$") then | elseif stem:match("ki$") then | ||
data.forms["u_pl"] = {s1 .. (av and "ṡi" or "igi")} | data.forms["u_pl"] = {s1 .. (av and "ṡi" or "igi")} | ||
data.forms["m_sg"] = {s2 .. "tṡa"} | data.forms["m_sg"] = {s2 .. "tṡa"} | ||
data.forms["m_pl"] = {s2 .. "tṡagi"} | data.forms["m_pl"] = {s2 .. "tṡagi"} | ||
data.forms["m_sg"][1] = gsub(data.forms["m_sg"][1], "kt", "ht") | |||
data.forms["m_pl"][1] = gsub(data.forms["m_pl"][1], "kt", "ht") | |||
elseif stem:match("g[aoi]$") then | elseif stem:match("g[aoi]$") then | ||
data.forms["u_pl"] = {stem .. "gi"} | data.forms["u_pl"] = {stem .. "gi"} | ||
Line 853: | Line 993: | ||
elseif stem:match("h[ao]$") then | elseif stem:match("h[ao]$") then | ||
data.forms["u_pl"] = {stem .. "gi"} | data.forms["u_pl"] = {stem .. "gi"} | ||
data.forms["m_sg"] = {s2 .. "ra"} | data.forms["m_sg"] = {(args.d and s3 or s2) .. "ra"} | ||
data.forms["m_pl"] = {s2 .. "ragi"} | data.forms["m_pl"] = {(args.d and s3 or s2) .. "ragi"} | ||
elseif stem:match("hi$") then | elseif stem:match("hi$") then | ||
data.forms["u_pl"] = {stem .. "gi"} | data.forms["u_pl"] = {stem .. "gi"} | ||
data.forms["m_sg"] = {s2 .. "tṡa"} | data.forms["m_sg"] = {(args.d and s3 or s2) .. "tṡa"} | ||
data.forms["m_pl"] = {s2 .. "tṡagi"} | data.forms["m_pl"] = {(args.d and s3 or s2) .. "tṡagi"} | ||
elseif stem:match("[ | elseif stem:match("[iỉy]$") then | ||
data.forms["u_pl"] = {stem .. "gi"} | data.forms["u_pl"] = {stem .. "gi"} | ||
data.forms["m_sg"] = {s1 .. "tṡa"} | data.forms["m_sg"] = {s1 .. "tṡa"} | ||
Line 866: | Line 1,006: | ||
if match(data.forms["u_pl"][1], "igi$") then | if match(data.forms["u_pl"][1], "igi$") then | ||
table.insert(data.forms["u_pl"], | table.insert(data.forms["u_pl"], sub(data.forms["u_pl"][1], 1, -4) .. "ęgi") | ||
end | end | ||
if match(data.forms["m_pl"][1], "igi$") then | if match(data.forms["m_pl"][1], "igi$") then | ||
table.insert(data.forms["m_pl"], | table.insert(data.forms["m_pl"], sub(data.forms["m_pl"][1], 1, -4) .. "ęgi") | ||
end | end | ||
end | end | ||
}) | }) | ||
data["aḍba"] = function(args, data) | |||
data.forms["u_pl"] = {"aḍba"} | |||
data.forms["m_pl"] = {"aubba"} | |||
end | |||
data["aumulhi"] = function(args, data) | data["aumulhi"] = function(args, data) | ||
Line 888: | Line 1,033: | ||
end | end | ||
data[" | data["bahpa"] = function(args, data) | ||
data.decl_type = "dual" | data.decl_type = "dual" | ||
table.insert(data.categories, "Siwa dual nouns") | table.insert(data.categories, "Siwa dual nouns") | ||
Line 895: | Line 1,040: | ||
data.forms["m_sg"] = {"baġa"} | data.forms["m_sg"] = {"baġa"} | ||
data.forms["m_pl"] = data.forms["m_sg"] | data.forms["m_pl"] = data.forms["m_sg"] | ||
end | end | ||
Line 911: | Line 1,047: | ||
data.forms["u"] = {"boġġi"} | data.forms["u"] = {"boġġi"} | ||
data.forms["m"] = {"boġġo"} | data.forms["m"] = {"boġġo"} | ||
end | end | ||
Line 931: | Line 1,060: | ||
data.forms["all"] = {"bủtniddįibma", "bủtnibma"} | data.forms["all"] = {"bủtniddįibma", "bủtnibma"} | ||
data.forms["abl"] = {"bủtniddįiska", "bủtniska"} | data.forms["abl"] = {"bủtniddįiska", "bủtniska"} | ||
end | |||
data["bỷ"] = function(args, data) | |||
data.decl_type = "irregular" | |||
table.insert(data.categories, "Siwa irregular nouns") | |||
data.forms["u"] = {"bỷ"} | |||
data.forms["m"] = {"bůbů"} | |||
end | end | ||
Line 940: | Line 1,076: | ||
data.forms["m_sg"] = {"daḍḍa"} | data.forms["m_sg"] = {"daḍḍa"} | ||
data.forms["m_pl"] = {"daḍḍagi"} | data.forms["m_pl"] = {"daḍḍagi"} | ||
end | |||
data["dirva"] = function(args, data) | |||
data.decl_type = "i" | |||
table.insert(data.categories, "Siwa i-declension nouns") | |||
data.forms["u"] = {"dirva"} | |||
data.forms["m"] = {"dirdi", "dihdi"} | |||
end | |||
data["ebo"] = function(args, data) | |||
data.decl_type = "coalescence" | |||
table.insert(data.categories, "Siwa diphthong-coalescence nouns") | |||
data.forms["u"] = {"ebo"} | |||
data.forms["m"] = {"ivve", "iobi"} | |||
data.forms["ine"] = {"ivveia", "iobia"} | |||
data.forms["ill"] = {"ivveita", "iobita"} | |||
data.forms["ela"] = {"ivveika", "iobika"} | |||
data.forms["ade"] = {"ivveima", "iobima"} | |||
data.forms["all"] = {"ivveibma", "iobibma"} | |||
data.forms["abl"] = {"ivveiska", "iobiska"} | |||
end | |||
data["eu"] = function(args, data) | |||
data.decl_type = "coalescence" | |||
table.insert(data.categories, "Siwa diphthong-coalescence nouns") | |||
data.forms["u"] = {"eu"} | |||
data.forms["m"] = {"eme"} | |||
end | |||
data["ẻgi"] = function(args, data) | |||
data.decl_type = "e" | |||
table.insert(data.categories, "Siwa e-declension nouns") | |||
data.forms["u"] = {"ẻgi"} | |||
data.forms["m"] = {"egįegi"} | |||
end | |||
data["ẻu"] = function(args, data) | |||
data.decl_type = "coalescence" | |||
table.insert(data.categories, "Siwa diphthong-coalescence nouns") | |||
data.forms["u"] = {"ẻu"} | |||
data.forms["m"] = {"ůbů"} | |||
end | |||
data["ẻulbi"] = function(args, data) | |||
data.decl_type = "y" | |||
table.insert(data.categories, "Siwa y-declension nouns") | |||
data.forms["u"] = {"ẻulbi"} | |||
data.forms["m"] = {"ẻulbimo"} | |||
data.forms["ill"] = {"ẻulbimoita"} | |||
data.forms["abl"] = {"ẻulbimoiska"} | |||
data.forms["ade"] = {"ẻulbimoima"} | |||
data.forms["all"] = {"ẻulbimoibma"} | |||
data.forms["ine"] = {"ẻulbimoįa"} | |||
data.forms["ela"] = {"ẻulbimoika"} | |||
end | |||
data["eulhi"] = function(args, data) | |||
data.forms["u_pl"] = {"eulhi"} | |||
data.forms["m_pl"] = {"eultṡagi"} | |||
end | |||
data["gảgi"] = function(args, data) | |||
data.decl_type = "a" | |||
table.insert(data.categories, "Siwa a-declension nouns") | |||
data.forms["u"] = {"gảgi"} | |||
data.forms["m"] = {"gęįagi"} | |||
end | |||
data["gųesi"] = function(args, data) | |||
data.decl_type = "e" | |||
table.insert(data.categories, "Siwa irregular nouns") | |||
table.insert(data.categories, "Siwa e-declension nouns") | |||
data.forms["u"] = {"gųesi"} | |||
data.forms["m"] = {"gųesse"} | |||
loc = "gųessei" | |||
data.forms["ine"] = {loc .. ce[1]} | |||
data.forms["ill"] = {loc .. ce[2]} | |||
data.forms["ela"] = {loc .. ce[3]} | |||
data.forms["ade"] = {loc .. ce[4]} | |||
data.forms["all"] = {loc .. ce[5]} | |||
data.forms["abl"] = {loc .. ce[6]} | |||
end | |||
data["goi"] = function(args, data) | |||
data.decl_type = "coalescence" | |||
table.insert(data.categories, "Siwa diphthong-coalescence nouns") | |||
data.forms["u"] = {"goi"} | |||
data.forms["m"] = {"goįo"} | |||
end | |||
data["ġey"] = function(args, data) | |||
data.decl_type = "coalescence" | |||
table.insert(data.categories, "Siwa diphthong-coalescence nouns") | |||
data.forms["u"] = {"ġey"} | |||
data.forms["m"] = {"ġůbů"} | |||
end | |||
data["hai"] = function(args, data) | |||
data.decl_type = "coalescence" | |||
table.insert(data.categories, "Siwa diphthong-coalescence nouns") | |||
data.forms["u"] = {"hai"} | |||
data.forms["m"] = {"hagįa"} | |||
end | |||
data["hie"] = function(args, data) | |||
data.decl_type = "coalescence" | |||
table.insert(data.categories, "Siwa diphthong-coalescence nouns") | |||
data.forms["u"] = {"hie"} | |||
data.forms["m"] = {"hiddįi"} | |||
end | |||
data["hỏ"] = function(args, data) | |||
data.decl_type = "coalescence" | |||
table.insert(data.categories, "Siwa diphthong-coalescence nouns") | |||
data.forms["u"] = {"hỏ"} | |||
data.forms["m"] = {"hobo"} | |||
end | |||
data["hůpṡi"] = function(args, data) | |||
table.insert(data.categories, "Siwa irregular nouns") | |||
data.forms["u_sg"] = {"hůpṡi"} | |||
data.forms["u_pl"] = {"hůpṡigi", "hůpṡęgi"} | |||
data.forms["m_sg"] = {"hůppohta"} | |||
data.forms["m_pl"] = {"hůppohtagi"} | |||
end | |||
data["įảlhi"] = function(args, data) | |||
data.forms["u_pl"] = {"įảlhi"} | |||
data.forms["m_pl"] = {"įảltṡagi"} | |||
end | |||
data["iḍmi"] = function(args, data) | |||
data.decl_type = "irregular" | |||
table.insert(data.categories, "Siwa irregular nouns") | |||
data.forms["u_sg"] = {"iḍmi"} | |||
data.forms["u_pl"] = {"iḍmigi", "iḍmęgi"} | |||
data.forms["m_sg"] = {"iḍḍa", "iḍḍetta", "iḍḍutta"} | |||
data.forms["m_pl"] = {"iḍḍagi", "iḍḍettagi", "iḍḍutagi"} | |||
end | |||
data["ie"] = function(args, data) | |||
data.decl_type = "coalescence" | |||
table.insert(data.categories, "Siwa diphthong-coalescence nouns") | |||
data.forms["u"] = {"ie"} | |||
data.forms["m"] = {"iddįi"} | |||
end | |||
data["ỉksả"] = function(args, data) | |||
data.decl_type = "coalescence" | |||
table.insert(data.categories, "Siwa diphthong-coalescence nouns") | |||
data.forms["u"] = {"ỉksả"} | |||
data.forms["m"] = {"ỉgsęgįi"} | |||
end | |||
data["ỉṡpa"] = function(args, data) | |||
data.decl_type = "dual" | |||
table.insert(data.categories, "Siwa dual nouns") | |||
data.forms["u_pl"] = {"ỉṡpa"} | |||
data.forms["m_pl"] = {"ỉṡva"} | |||
end | |||
data["ilkima"] = function(args, data) | |||
data.decl_type = "dual" | |||
table.insert(data.categories, "Siwa dual nouns") | |||
data.forms["u_pl"] = {"ilkima"} | |||
data.forms["m_pl"] = {"ilkia"} | |||
end | |||
data["ỉskanhi"] = function(args, data) | |||
data.forms["u_pl"] = {"ỉskanhi"} | |||
data.forms["m_pl"] = {"ỉskaįagi"} | |||
end | |||
data["iu"] = function(args, data) | |||
data.decl_type = "coalescence" | |||
table.insert(data.categories, "Siwa diphthong-coalescence nouns") | |||
data.forms["u"] = {"iu"} | |||
data.forms["m"] = {"ibi"} | |||
end | |||
data["kei"] = function(args, data) | |||
data.decl_type = "coalescence" | |||
table.insert(data.categories, "Siwa diphthong-coalescence nouns") | |||
data.forms["u"] = {"kei"} | |||
data.forms["m"] = {"keįe"} | |||
end | |||
data["keiḍgi"] = function(args, data) | |||
data.forms["u_sg"] = {"keiḍgi"} | |||
data.forms["u_pl"] = {"keiḍḍįa"} | |||
data.forms["m_sg"] = {"keihtṡa"} | |||
data.forms["m_pl"] = {"keihtṡagi"} | |||
end | |||
data["kelba"] = function(args, data) | |||
data.decl_type = "dual" | |||
table.insert(data.categories, "Siwa dual nouns") | |||
data.forms["u_sg"] = {"ketku"} | |||
data.forms["u_pl"] = {"kelba"} | |||
data.forms["m_sg"] = {"ketkume"} | |||
data.forms["m_pl"] = {"keḍma"} | |||
end | |||
data["kembo"] = function(args, data) | |||
table.insert(data.categories, "Siwa irregular nouns") | |||
data.forms["u_sg"] = {"kembo"} | |||
data.forms["u_pl"] = {"kảmbogi"} | |||
data.forms["m_sg"] = {"kảmoųi"} | |||
data.forms["m_pl"] = {"kảmoṡi"} | |||
end | |||
data["kengi"] = function(args, data) | |||
data.decl_type = "irregular" | |||
table.insert(data.categories, "Siwa irregular nouns") | |||
data.forms["u"] = {"kengi"} | |||
data.forms["m"] = {"kenda"} | |||
data.forms["ill"] = {"kendaita"} | |||
data.forms["abl"] = {"kendaiska"} | |||
data.forms["ade"] = {"kendaima"} | |||
data.forms["all"] = {"kendaibma"} | |||
data.forms["ine"] = {"kendaįa"} | |||
data.forms["ela"] = {"kendaika"} | |||
data.forms["u_sg"] = {"kengi"} | |||
data.forms["m_sg"] = {"kegna"} | |||
end | |||
data["kili"] = function(args, data) | |||
data.decl_type = "irregular" | |||
table.insert(data.categories, "Siwa irregular nouns") | |||
data.forms["u"] = {"kili"} | |||
data.forms["m"] = {"kidli"} | |||
end | |||
data["kiḍba"] = function(args, data) | |||
data.decl_type = "dual" | |||
table.insert(data.categories, "Siwa dual nouns") | |||
data.forms["u_sg"] = {"kita"} | |||
data.forms["u_pl"] = {"kiḍba"} | |||
data.forms["m_sg"] = {"kivva"} | |||
data.forms["m_pl"] = {"keubba"} | |||
end | |||
data["koḍba"] = function(args, data) | |||
data.decl_type = "dual" | |||
table.insert(data.categories, "Siwa dual nouns") | |||
data.forms["u_pl"] = {"koḍba"} | |||
data.forms["m_pl"] = {"kỏbba"} | |||
end | |||
data["koḍḍa"] = function(args, data) | |||
data.decl_type = "dual" | |||
table.insert(data.categories, "Siwa dual nouns") | |||
data.forms["u_pl"] = {"koḍḍa"} | |||
data.forms["m_pl"] = {"kỏhha"} | |||
end | |||
data["kůimpa"] = function(args, data) | |||
data.decl_type = "dual" | |||
table.insert(data.categories, "Siwa dual nouns") | |||
data.forms["u_sg"] = {"kůitton"} | |||
data.forms["m_sg"] = {"kůittos"} | |||
data.forms["u_pl"] = {"kůimpa"} | |||
data.forms["m_pl"] = {"kygįua", "kỷbba"} | |||
end | |||
data["kỷ"] = function(args, data) | |||
data.decl_type = "coalescence" | |||
table.insert(data.categories, "Siwa diphthong-coalescence nouns") | |||
data.forms["u"] = {"kỷ"} | |||
data.forms["m"] = {"kyby"} | |||
end | |||
data["kvỷ"] = function(args, data) | |||
data.decl_type = "coalescence" | |||
table.insert(data.categories, "Siwa diphthong-coalescence nouns") | |||
data.forms["u"] = {"kvỷ"} | |||
data.forms["m"] = {"kvyby"} | |||
end | |||
data["leḍba"] = function(args, data) | |||
data.decl_type = "dual" | |||
table.insert(data.categories, "Siwa dual nouns") | |||
data.forms["u_sg"] = {"lahton"} | |||
data.forms["u_pl"] = {"leḍba"} | |||
data.forms["m_sg"] = {"lahtos"} | |||
data.forms["m_pl"] = {"leḍma"} | |||
end | |||
data["lỉsġi"] = function(args, data) | |||
table.insert(data.categories, "Siwa irregular nouns") | |||
data.forms["u_sg"] = {"lỉsġi"} | |||
data.forms["m_sg"] = {"lihhįet"} | |||
end | |||
data["lįỏ"] = function(args, data) | |||
data.decl_type = "irregular" | |||
table.insert(data.categories, "Siwa irregular nouns") | |||
data.forms["u"] = {"lįỏ"} | |||
data.forms["m"] = {"lyra"} | |||
end | |||
data["lỷ"] = function(args, data) | |||
data.decl_type = "coalescence" | |||
table.insert(data.categories, "Siwa diphthong-coalescence nouns") | |||
data.forms["u"] = {"lỷ"} | |||
data.forms["m"] = {"lůbů"} | |||
data.forms["ine"] = {"lỷgįia", "lybia"} | |||
data.forms["ill"] = {"lỷgįita", "lybita"} | |||
data.forms["ela"] = {"lỷgįika", "lybika"} | |||
data.forms["ade"] = {"lỷgįima", "lybima"} | |||
data.forms["all"] = {"lỷgįibma", "lybibma"} | |||
data.forms["abl"] = {"lỷgįiska", "lybiska"} | |||
end | |||
data["madu"] = function(args, data) | |||
data.decl_type = "coalescence" | |||
table.insert(data.categories, "Siwa diphthong-coalescence nouns") | |||
data.forms["u"] = {"madu"} | |||
data.forms["m"] = {"mama"} | |||
end | |||
data["nảrri"] = function(args, data) | |||
data.decl_type = "irregular" | |||
table.insert(data.categories, "Siwa irregular nouns") | |||
data.forms["u_sg"] = {"nảrri"} | |||
data.forms["m_sg"] = {"nęręt"} | |||
end | |||
data["nảvi"] = function(args, data) | |||
data.decl_type = "coalescence" | |||
table.insert(data.categories, "Siwa diphthong-coalescence nouns") | |||
data.forms["u"] = {"nảvi"} | |||
data.forms["m"] = {"nęgįi"} | |||
end | |||
data["nay"] = function(args, data) | |||
data.decl_type = "coalescence" | |||
table.insert(data.categories, "Siwa diphthong-coalescence nouns") | |||
data.forms["u"] = {"nay"} | |||
data.forms["m"] = {"nęma"} | |||
end | |||
data["netsengųesi"] = function(args, data) | |||
data.decl_type = "e" | |||
table.insert(data.categories, "Siwa irregular nouns") | |||
table.insert(data.categories, "Siwa e-declension nouns") | |||
data.forms["u"] = {"netsengųesi"} | |||
data.forms["m"] = {"netsengųesse"} | |||
loc = "netsengųessei" | |||
data.forms["ine"] = {loc .. ce[1]} | |||
data.forms["ill"] = {loc .. ce[2]} | |||
data.forms["ela"] = {loc .. ce[3]} | |||
data.forms["ade"] = {loc .. ce[4]} | |||
data.forms["all"] = {loc .. ce[5]} | |||
data.forms["abl"] = {loc .. ce[6]} | |||
end | |||
data["nįarri"] = function(args, data) | |||
data.decl_type = "irregular" | |||
table.insert(data.categories, "Siwa irregular nouns") | |||
data.forms["u_sg"] = {"nįarri"} | |||
data.forms["m_sg"] = {"nįaret"} | |||
end | |||
data["niebini"] = function(args, data) | |||
table.insert(data.categories, "Siwa irregular nouns") | |||
data.forms["u_sg"] = {"niebini"} | |||
data.forms["u_pl"] = {"niebinhi", "niebinṡi"} | |||
data.forms["m_sg"] = {"nieigįa", "niẻddįa"} | |||
data.forms["m_pl"] = {"nieigįagi", "niẻddįagi"} | |||
end | |||
data["nige"] = function(args, data) | |||
data.decl_type = "coalescence" | |||
table.insert(data.categories, "Siwa diphthong-coalescence nouns") | |||
data.forms["u"] = {"nige"} | |||
data.forms["m"] = {"niddįi"} | |||
end | |||
data["oaḍbi"] = function(args, data) | |||
data.decl_type = "dual" | |||
table.insert(data.categories, "Siwa dual nouns") | |||
data.forms["u_sg"] = {"oadi"} | |||
data.forms["u_pl"] = {"oaḍbi"} | |||
data.forms["m_sg"] = {"vaika"} | |||
data.forms["m_pl"] = {"vaubbi", "vaubba"} | |||
end | |||
data["omna"] = function(args, data) | |||
data.decl_type = "dual" | |||
table.insert(data.categories, "Siwa dual nouns") | |||
data.forms["u_pl"] = {"omna"} | |||
data.forms["m_pl"] = {"ỏbba"} | |||
end | |||
data["ỏ"] = function(args, data) | |||
data.decl_type = "coalescence" | |||
table.insert(data.categories, "Siwa diphthong-coalescence nouns") | |||
data.forms["u"] = {"ỏ"} | |||
data.forms["m"] = {"obo", "ỏbo"} | |||
end | |||
data["pỷka"] = function(args, data) | |||
data.decl_type = "coalescence" | |||
table.insert(data.categories, "Siwa diphthong-coalescence nouns") | |||
data.forms["u"] = {"pỷka"} | |||
data.forms["m"] = {"pyby"} | |||
end | |||
data["retema"] = function(args, data) | |||
data.decl_type = "irregular" | |||
table.insert(data.categories, "Siwa irregular nouns") | |||
data.forms["u_sg"] = {"retema"} | |||
data.forms["u_pl"] = {"revva"} | |||
data.forms["m_sg"] = {"sitema"} | |||
data.forms["m_pl"] = {"sivva"} | |||
end | |||
data["rįaḍba"] = function(args, data) | |||
data.decl_type = "dual" | |||
table.insert(data.categories, "Siwa dual nouns") | |||
data.forms["u_sg"] = {"rįanna"} | |||
data.forms["u_pl"] = {"rįaḍba"} | |||
data.forms["m_sg"] = {"rįanka"} | |||
data.forms["m_pl"] = {"rįaubba"} | |||
end | |||
data["rủ"] = function(args, data) | |||
data.decl_type = "coalescence" | |||
table.insert(data.categories, "Siwa diphthong-coalescence nouns") | |||
data.forms["u"] = {"rủ"} | |||
data.forms["m"] = {"rumu"} | |||
end | |||
data["rỷ"] = function(args, data) | |||
data.decl_type = "coalescence" | |||
table.insert(data.categories, "Siwa diphthong-coalescence nouns") | |||
data.forms["u"] = {"rỷ"} | |||
data.forms["m"] = {"rymy"} | |||
end | |||
data["sảhpa"] = function(args, data) | |||
data.decl_type = "dual" | |||
table.insert(data.categories, "Siwa dual nouns") | |||
data.forms["u_sg"] = {"sảhta"} | |||
data.forms["u_pl"] = {"sảhpa"} | |||
data.forms["m_sg"] = {"sảhhųa"} | |||
data.forms["m_pl"] = {"sảmġa"} | |||
end | |||
data["saḍba"] = function(args, data) | |||
data.decl_type = "dual" | |||
table.insert(data.categories, "Siwa dual nouns") | |||
data.forms["u_sg"] = {"sata"} | |||
data.forms["u_pl"] = {"saḍba"} | |||
data.forms["m_sg"] = {"savva"} | |||
data.forms["m_pl"] = {"saubba"} | |||
end | |||
data["sambo"] = function(args, data) | |||
table.insert(data.categories, "Siwa irregular nouns") | |||
data.forms["u_sg"] = {"sambo"} | |||
data.forms["u_pl"] = {"sảmbogi"} | |||
data.forms["m_sg"] = {"sảmoųi"} | |||
data.forms["m_pl"] = {"sąmoṡi"} | |||
end | |||
data["sẻu"] = function(args, data) | |||
data.decl_type = "coalescence" | |||
table.insert(data.categories, "Siwa diphthong-coalescence nouns") | |||
data.forms["u"] = {"sẻu"} | |||
data.forms["m"] = {"sůbů"} | |||
end | |||
data["tiebba"] = function(args, data) | |||
data.decl_type = "dual" | |||
table.insert(data.categories, "Siwa dual nouns") | |||
data.forms["u_sg"] = {"tiemo"} | |||
data.forms["u_pl"] = {"tiebba"} | |||
data.forms["m_sg"] = {"tieka"} | |||
data.forms["m_pl"] = {"tiehba"} | |||
end | |||
data["tỏ"] = function(args, data) | |||
data.decl_type = "coalescence" | |||
table.insert(data.categories, "Siwa diphthong-coalescence nouns") | |||
data.forms["u"] = {"tỏ"} | |||
data.forms["m"] = {"tobo"} | |||
end | |||
data["totami"] = function(args, data) | |||
data.decl_type = "irregular" | |||
table.insert(data.categories, "Siwa irregular nouns") | |||
data.forms["u_sg"] = {"totami"} | |||
data.forms["u_pl"] = {"totamṡi"} | |||
data.forms["m_sg"] = {"todatta"} | |||
data.forms["m_pl"] = {"todattagi"} | |||
end | |||
data["tṡemi"] = function(args, data) | |||
table.insert(data.categories, "Siwa irregular adjectives") | |||
data.forms["u"] = {"tṡemi"} | |||
data.forms["m"] = {"tṡebi"} | |||
data.forms["ine"] = {"tṡebi" .. ce[1]} | |||
data.forms["ill"] = {"tṡebi" .. ce[2]} | |||
data.forms["ela"] = {"tṡebi" .. ce[3]} | |||
data.forms["ade"] = {"tṡebi" .. ce[4]} | |||
data.forms["all"] = {"tṡebi" .. ce[5]} | |||
data.forms["abl"] = {"tṡebi" .. ce[6]} | |||
end | |||
data["umpa"] = function(args, data) | |||
data.decl_type = "dual" | |||
table.insert(data.categories, "Siwa dual nouns") | |||
data.forms["u_sg"] = {"uba"} | |||
data.forms["u_pl"] = {"umpa"} | |||
data.forms["m_sg"] = {"oama"} | |||
data.forms["m_pl"] = {"ủppa"} | |||
end | |||
data["vả"] = function(args, data) | |||
data.decl_type = "coalescence" | |||
table.insert(data.categories, "Siwa diphthong-coalescence nouns") | |||
data.forms["u"] = {"vả"} | |||
data.forms["m"] = {"vęįa"} | |||
end | |||
data["ỷ"] = function(args, data) | |||
data.decl_type = "coalescence" | |||
table.insert(data.categories, "Siwa diphthong-coalescence nouns") | |||
data.forms["u"] = {"ỷ"} | |||
data.forms["m"] = {"yby"} | |||
end | end | ||
return data | return data |