45,647
edits
No edit summary |
No edit summary |
||
(374 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 = "[aeiouyůõảẻỉỏủỷę]" | local v = "([aeiouyůõảẻỉỏủỷęo̊])" | ||
local nv = "([^aeiouyůõảẻỉỏủỷę])" | |||
local PAGENAME = mw.title.getCurrentTitle().text | |||
local na = false -- does Not Apocopate | |||
local | local ine, ill, ela, ade, all, abl, loc | ||
local cases = {"ine", "ill", "ela", "ade", "all", "abl"} | |||
local ce = {"a", "ta", "ka", "ma", "bma", "ska"} -- Case Endings | |||
local m_com = require('Module:siwa-noun/common') | |||
local function exactly(source, pattern) | |||
return source:match("^" .. pattern .. "$") | |||
end | |||
local function | local function csub(term, foo, bar, n) | ||
local | local coalesced = term | ||
for | 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 | end | ||
return | return coalesced | ||
end | end | ||
local data = {} | |||
data["a"] = { | data["a"] = { | ||
params = { | params = { | ||
[ | ["nolen"] = {type = "boolean"}, -- No LENition | ||
["ld"] = {type = "boolean"}, -- Lenition Declension | |||
["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 = data.head | local stem = args.nolen and data.head or m_com.coalescence(m_com.lenition(data.head), args.s) | ||
local s2, s3 = sub( | local s1, s2, s3 = sub(stem, 1, -2), sub(stem, 1, -3), sub(stem, 1, -4) | ||
table.insert(data.categories, "Siwa | table.insert(data.categories, "Siwa a-declension " .. data.pos) | ||
data.forms["u"] = {data.alt or PAGENAME} | |||
data.forms[" | if args.ld then | ||
data.forms["m"] = {(args.d2 and s2 or args.d and s1 or stem) .. "ka"} | |||
loc = (args.d2 and s2 or args.d and s1 or stem) .. "ki" | |||
na = true | |||
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")} | ||
loc = s3 .. (data.q == "s" and "mṡi" or data.q == "l" and "mki" or "kki") | |||
elseif stem:match(v.."nn.$") then | elseif stem:match(v.."nn.$") then | ||
data.forms["m"] = {s3 .. (data.q == "s" and "nka" or "kka")} | data.forms["m"] = {s3 .. (data.q == "s" and "nka" or "kka")} | ||
loc = s3 .. (data.q == "s" and "nki" or "kki") | |||
elseif stem:match(v.."vv.$") then | elseif stem:match(v.."vv.$") then | ||
data.forms["m"] = { | data.forms["m"] = {s3 .. "gga"} | ||
loc = s3 .. "ggi" | |||
elseif stem:match(v.."[lrs]k.$") then | elseif stem:match(v.."[lrs]k.$") then | ||
data.forms["m"] = {s2 .. "kka"} | data.forms["m"] = {s2 .. "kka"} | ||
elseif stem:match( | loc = s2 .. "kki" | ||
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") | |||
elseif stem:match(v.."n.$") then | elseif stem:match(v.."n.$") then | ||
data.forms["m"] = {s2 .. (data.q == "s" and "nka" or "kka")} | data.forms["m"] = {s2 .. (data.q == "s" and "nka" or "kka")} | ||
loc = s2 .. (data.q == "s" and "nki" or "kki") | |||
elseif stem:match(v.."[pb].$") then | elseif stem:match(v.."[pb].$") then | ||
data.forms["m"] = {s2 .. (data.q == "s" and "pra" or "ḍga")} | data.forms["m"] = {s2 .. (data.q == "s" and "pra" or "ḍga")} | ||
elseif stem:match(v.." | loc = s2 .. (data.q == "s" and "pri" or "ḍgi") | ||
data.forms["m"] = {s2 .. (data.q == "s" and "tra" or " | elseif stem:match(v.."[td].$") then | ||
data.forms["m"] = {s2 .. (data.q == "s" and "tra" or "tka")} | |||
loc = s2 .. (data.q == "s" and "tri" or "tṡi") | |||
elseif stem:match(v.."r.$") then | elseif stem:match(v.."r.$") then | ||
data.forms["m"] = {s3 .. " | data.forms["m"] = {s2 .. "hka"} | ||
loc = s2 .. "hki" | |||
elseif stem:match(v.."ṡṡ.$") then | |||
data.forms["m"] = {s2 .. "ka"} | |||
loc = s2 .. "ki" | |||
else | |||
data.forms["m"] = {(args.d2 and s2 or args.d and s1 or stem) .. "ka"} | |||
loc = (args.d2 and s2 or args.d and s1 or stem) .. "ki" | |||
na = true | |||
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 stem:match(v.."nn.$") and data.q == "s" and not na then | |||
table.insert(data.forms[case], s3 .. "nṡi" .. ce[n]) | |||
elseif stem:match(v.."n.$") and data.q == "s" and not na then | |||
table.insert(data.forms[case], s2 .. "nṡi" .. ce[n]) | |||
elseif stem:match(v.."[pb].$") and data.q == "s" and not na then | |||
table.insert(data.forms[case], s2 .. "pṡi" .. ce[n]) | |||
end | |||
end | |||
end | |||
}) | |||
data["e"] = { | |||
params = { | |||
["nolen"] = {type = "boolean"}, | |||
["ld"] = {type = "boolean"}, | |||
["d"] = {type = "boolean"}, | |||
["s"] = {type = "boolean"}, | |||
}, | |||
} | |||
setmetatable(data["e"], {__call = function(self, args, data) | |||
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) | |||
table.insert(data.categories, "Siwa e-declension " .. data.pos) | |||
data.forms["u"] = {data.alt or PAGENAME} | |||
if stem:match("[aeẻ]$") then | |||
if args.ld then | |||
data.forms["m"] = {(args.d and s1 or stem) .. "ri"} | |||
loc = (args.d and s1 or stem) .. "ri" | |||
na = true | |||
elseif stem:match(v.."ts.$") then | |||
data.forms["m"] = {s3 .. "tsġi"} | |||
loc = s3 .. "tsġi" | |||
elseif stem:match(v.."ss.$") then | |||
data.forms["m"] = {s3 .. "sġi"} | |||
loc = s3 .. "sġi" | |||
elseif stem:match(v.."n.$") then | |||
data.forms["m"] = {s2 .. "di"} | |||
ill, ela, ade = s2 .. "h", s2 .. "h", s2 .. "h" | |||
all, abl = s2 .. "i", s2 .. "i" | |||
ine = s2 .. "di" | |||
elseif stem:match(v.."b.$") then | |||
data.forms["m"] = {s2 .. "pri", s2 .. "bġi"} | |||
loc = s2 .. "pṡi" | |||
elseif stem:match(v.."k.$") then | |||
data.forms["m"] = {s2 .. "ġi"} | |||
loc = s2 .. "ṡi" | |||
elseif stem:match(v.."m.$") then | |||
data.forms["m"] = {s2 .. "mmi"} | |||
loc = s2 .. "mmi" | |||
elseif stem:match(v.."v.$") then | |||
data.forms["m"] = {s2 .. "rri"} | |||
loc = s2 .. "rri" | |||
elseif stem:match(v.."t.$") then | |||
data.forms["m"] = {s2 .. "tri"} | |||
loc = s2 .. "tri" | |||
elseif stem:match(v.."s.$") then | |||
data.forms["m"] = {s2 .. "sġi"} | |||
loc = s2 .. "sġi" | |||
elseif stem:match(v.."l.$") then | |||
data.forms["m"] = {s2 .. "lli"} | |||
loc = s2 .. "lli" | |||
elseif stem:match(v.."[hġ].$") then | |||
data.forms["m"] = {s2 .. "ġgi"} | |||
loc = s2 .. "ġġi" | |||
else | |||
data.forms["m"] = {(args.d and s1 or stem) .. "ri"} | |||
loc = (args.d and s1 or stem) .. "ri" | |||
na = true | |||
end | |||
elseif stem:match("[io]$") then | |||
if args.ld then | |||
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 | |||
data.forms["m"] = {s3 .. "mme"} | |||
loc = s3 .. "mmei" | |||
elseif stem:match(v.."vv.$") then | |||
data.forms["m"] = {s3 .. "vve"} | |||
loc = s3 .. "vvei" | |||
elseif stem:match(v.."[mpbvnrlkg].$") then | |||
local stl = sub(stem, -2, -2) | |||
stl = stl:gsub("p", "b"); stl = stl:gsub("k", "g") | |||
data.forms["m"] = {s2 .. stl .. stl .. "e"} | |||
loc = s2 .. stl .. stl .. "ei" | |||
elseif 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("[uyů]$") then | |||
if args.ld then | |||
data.forms["m"] = {(args.d and s1 or stem) .. "me"} | |||
loc = (args.d and s1 or stem) .. "mei" | |||
na = true | |||
elseif stem:match(v.."mm.$") then | |||
data.forms["m"] = {s3 .. "mme"} | |||
loc = s3 .. "mme" | |||
elseif stem:match(v.."[mn].$") then | |||
data.forms["m"] = {s2 .. "mme"} | |||
loc = s2 .. "mme" | |||
elseif stem:match(v.."k.$") then | |||
data.forms["m"] = {s2 .. (data.q == "s" and "gme" or "hme")} | |||
loc = s2 .. (data.q == "s" and "gme" or "hme") | |||
else | |||
data.forms["m"] = {(args.d and s1 or stem) .. "me"} | |||
loc = (args.d and s1 or stem) .. "mei" | |||
na = true | |||
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 stem:match("o$") and na then | |||
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 | |||
}) | |||
data["i"] = { | |||
params = { | |||
["nolen"] = {type = "boolean"}, | |||
["ld"] = {type = "boolean"}, | |||
["s"] = {type = "boolean"}, | |||
}, | |||
} | |||
setmetatable(data["i"], {__call = function(self, args, data) | |||
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) | |||
table.insert(data.categories, "Siwa i-declension " .. data.pos) | |||
data.forms["ine"], data.forms["all"], data.forms["abl"] = {}, {}, {} | |||
data.forms["u"] = {data.alt or PAGENAME} | |||
if args.ld then | |||
if stem:match("[iỉ]$") then | |||
data.forms["m"] = {stem .. "d"} | |||
ill, ela, ade = stem .. "h", stem .. "h", stem .. "h" | |||
ine = stem .. "di" | |||
all, abl = stem, stem | |||
table.insert(data.forms["ine"], s1 .. "ỉa") | |||
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 | |||
else | |||
data.forms["m"] = {stem .. "di"} | |||
ill, ela, ade = stem .. "h", stem .. "h", stem .. "h" | |||
all, abl = stem .. "i", stem .. "i" | |||
ine = stem .. "di" | |||
na = true | |||
end | |||
elseif stem:match(v.."hh.$") then | |||
data.forms["m"] = {s3 .. "hdi"} | |||
loc = s3 .. "hdi" | |||
elseif stem:match(v.."[mn][mn].$") then | |||
data.forms["m"] = {s3 .. "ndi"} | |||
loc = s3 .. "ndi" | |||
elseif stem:match(nv.."[uo][mn].$") then | |||
data.forms["m"] = {s3 .. "õdi"} | |||
loc = s3 .. "õdi" | |||
elseif stem:match(v.."[mn].$") then | |||
data.forms["m"] = {s2 .. "ndi"} | |||
loc = s2 .. "ndi" | |||
elseif stem:match(v.."[vg].$") then | |||
data.forms["m"] = {s2 .. "ḍḍi"} | |||
if sub(stem, -2, -2) == "g" then table.insert(data.forms["m"], s2 .. "hdi") end | |||
ela, ade = s2 .. "ḍ", s2 .. "ḍ" | |||
ine, ill, all, abl = s2 .. "ḍḍi", s2 .. "ḍḍi", s2 .. "ḍḍi", s2 .. "ḍḍi" | |||
elseif stem:match(v.."s.$") then | |||
data.forms["m"] = {s2 .. "sti"} | |||
loc = s2 .. "sti" | |||
elseif stem:match(v.."ṡ.$") then | |||
data.forms["m"] = {s2 .. "ṡti"} | |||
loc = s2 .. "ṡti" | |||
elseif stem:match(v.."[rhk].$") then | |||
data.forms["m"] = {s2 .. "hdi"} | |||
loc = s2 .. "hdi" | |||
elseif stem:match(v.."l.$") then | |||
data.forms["m"] = {s2 .. "ldi"} | |||
loc = s2 .. "ldi" | |||
elseif stem:match("[iỉ]$") then | |||
data.forms["m"] = {stem .. "d"} | |||
ill, ela, ade = stem .. "h", stem .. "h", stem .. "h" | |||
ine = stem .. "di" | |||
all, abl = stem, stem | |||
table.insert(data.forms["ine"], s1 .. "ỉa") | |||
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 | |||
else | |||
data.forms["m"] = {stem .. "di"} | |||
ill, ela, ade = stem .. "h", stem .. "h", stem .. "h" | |||
all, abl = stem .. "i", stem .. "i" | |||
ine = stem .. "di" | |||
na = true | |||
end | |||
table.insert(data.forms["ine"], (ine or loc) .. ce[1]) | |||
data.forms["ill"] = {(ill or loc) .. ce[2]} | |||
data.forms["ela"] = {(ela or loc) .. (match(stem, "[vg].$") and "ga" or ce[3])} | |||
data.forms["ade"] = {(ade or loc) .. ce[4]} | |||
table.insert(data.forms["all"], (all or loc) .. ce[5]) | |||
table.insert(data.forms["abl"], (abl or loc) .. ce[6]) | |||
end | |||
}) | |||
data["o"] = { | |||
params = { | |||
["nolen"] = {type = "boolean"}, | |||
["ld"] = {type = "boolean"}, | |||
["s"] = {type = "boolean"}, | |||
["d"] = {type = "boolean"}, | |||
}, | |||
} | |||
setmetatable(data["o"], {__call = function(self, args, data) | |||
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) | |||
table.insert(data.categories, "Siwa o-declension " .. data.pos) | |||
data.forms["u"] = {data.alt or PAGENAME} | |||
if stem:match("[ae]$") then | |||
if args.ld then | |||
data.forms["m"] = {(args.d and s1 or stem == "kode" and "koi" or stem == "mohe" and "moi" or stem) .. "mo"} | |||
loc = (args.d and s1 or stem) .. "moi" | |||
na = true | |||
elseif stem:match(v.."[mnv][mnv].$") then | |||
data.forms["m"] = {s3 .. "mmo"} | |||
loc = s3 .. "mmoi" | |||
elseif stem:match(v.."hh.$") then | |||
data.forms["m"] = {s3 .. "hmo"} | |||
loc = s3 .. "hmoi" | |||
elseif stem:match(v.."[bt].$") 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.."[rhg].$") then | |||
data.forms["m"] = {s2 .. "hmo"} | |||
loc = s2 .. "hmoi" | |||
elseif stem:match(v.."k.$") then | |||
data.forms["m"] = {s2 .. (data.q == "s" and "gmo" or "hmo")} | |||
loc = s2 .. (data.q == "s" and "gmoi" or "hmoi") | |||
elseif stem:match(v.."l.$") then | |||
data.forms["m"] = {s2 .. "lmo"} | |||
loc = s2 .. "lmoi" | |||
else | |||
data.forms["m"] = {(args.d and s1 or stem) .. "mo"} | |||
loc = (args.d and s1 or stem) .. "moi" | |||
na = true | |||
end | |||
elseif stem:match("[iỷ]$") then | |||
if args.ld then | |||
data.forms["m"] = {(args.d and s1 or stem) .. "ko"} | |||
loc = (args.d and s1 or stem) .. "koi" | |||
na = true | |||
elseif stem:match(v.."hhį.$") then | |||
data.forms["m"] = {sub(stem, 1, -5) .. "ṡko"} | |||
loc = sub(stem, 1, -5) .. "ṡkoi" | |||
elseif stem:match(v.."hh.$") then | |||
data.forms["m"] = {s3 .. "hko"} | |||
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 | |||
data.forms["m"] = {(sub(stem, -3, -3) == "o" and not args.s and s3 .. "õ" or s2) .. "kko"} | |||
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 | |||
data.forms["m"] = {s2 .. "kko"} | |||
loc = s2 .. "kkoi" | |||
elseif stem:match(v.."l.$") then | |||
data.forms["m"] = {s2 .. "lko"} | |||
loc = s2 .. "lkoi" | |||
elseif stem:match(v.."[rh].$") then | |||
data.forms["m"] = {s2 .. "hko"} | |||
loc = s2 .. "hkoi" | |||
elseif stem:match(v.."ṡ.$") then | |||
data.forms["m"] = {s2 .. "ṡko"} | |||
loc = s2 .. "ṡkoi" | |||
else | |||
data.forms["m"] = {(args.d and s1 or stem) .. "ko"} | |||
loc = (args.d and s1 or stem) .. "koi" | |||
na = true | |||
end | |||
elseif stem:match("[ouyůỏ]$") then | |||
if args.ld then | |||
local del = args.d and s1 or stem | |||
data.forms["m"] = {del .. "ma"} | |||
ill, ela = del .. "n", del .. "n" | |||
ine, ade, all, abl = del .. "mi", del .. "mi", del .. "mi", del .. "mi" | |||
na = true | |||
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"} | |||
loc = s3 .. "mmi" | |||
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"} | |||
loc = s2 .. "mmi" | |||
elseif s1:match(v.."[rhgk]$") then | |||
data.forms["m"] = {s2 .. "hma"} | |||
loc = s2 .. "hmi" | |||
elseif s1:match(v.."l$") then | |||
data.forms["m"] = {s2 .. "lma"} | |||
loc = s2 .. "lmi" | |||
else | |||
local del = args.d and s1 or stem | |||
data.forms["m"] = {del .. "ma"} | |||
ill, ela = del .. "n", del .. "n" | |||
ine, ade, all, abl = del .. "mi", del .. "mi", del .. "mi", del .. "mi" | |||
na = true | |||
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 stem:match(v.."[mnkg]i$") and not na then | |||
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 | |||
table.insert(data.forms[case], s2 .. "kki" .. ce[n]) | |||
end | |||
end | |||
end | |||
}) | |||
data["u"] = { | |||
params = { | |||
["nolen"] = {type = "boolean"}, | |||
["ld"] = {type = "boolean"}, | |||
["s"] = {type = "boolean"}, | |||
}, | |||
} | |||
setmetatable(data["u"], {__call = function(self, args, data) | |||
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) | |||
table.insert(data.categories, "Siwa u-declension " .. data.pos) | |||
data.forms["u"] = {data.alt or PAGENAME} | |||
if stem:match("[aei]$") then | |||
if args.ld then | |||
data.forms["m"] = {stem .. "mo"} | |||
loc = stem .. "moi" | |||
na = true | |||
elseif stem:match(v.."[mnv][mnv].$") then | |||
data.forms["m"] = {s3 .. "mmo"} | |||
loc = s3 .. "mmoi" | |||
elseif stem:match(v.."hh.$") then | |||
data.forms["m"] = {s3 .. "hmo"} | |||
loc = s3 .. "hmoi" | |||
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"] = {stem .. "mo"} | |||
loc = stem .. "moi" | |||
na = true | |||
end | |||
elseif stem:match("[ouyỷů]$") then | |||
if args.ld then | |||
data.forms["m"] = {stem .. "ma"} | |||
ill, ela = stem .. "n", stem .. "n" | |||
ine, ade, all, abl = stem .. "mi", stem .. "mi", stem .. "mi", stem .. "mi" | |||
na = true | |||
elseif 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 .. "mmi" | |||
elseif stem:match(v.."[bptd].$") then | |||
data.forms["m"] = {s2 .. "bma"} | |||
loc = s2 .. "bmi" | |||
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"] = {stem .. "ma"} | |||
ill, ela = stem .. "n", stem .. "n" | |||
ine, ade, all, abl = stem .. "mi", stem .. "mi", stem .. "mi", stem .. "mi" | |||
na = true | |||
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 stem:match(v.."[mn][mn][oyuů]$") and not na then | |||
table.insert(data.forms[case], s3 .. "mmoi" .. ce[n]) | |||
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]) | |||
end | |||
end | |||
end | |||
}) | |||
data["y"] = { | |||
params = { | |||
["nolen"] = {type = "boolean"}, | |||
["ld"] = {type = "boolean"}, | |||
["s"] = {type = "boolean"}, | |||
["d"] = {type = "boolean"}, | |||
}, | |||
} | |||
setmetatable(data["y"], {__call = function(self, args, data) | |||
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) | |||
table.insert(data.categories, "Siwa y-declension " .. data.pos) | |||
data.forms["ine"] = {} | |||
data.forms["all"] = {} | |||
data.forms["abl"] = {} | |||
data.forms["u"] = {data.alt or PAGENAME} | |||
if stem:match("a$") then | |||
if args.ld then | |||
data.forms["m"] = {(args.d and s1 or stem) .. "mo"} | |||
loc = (args.d and s1 or stem) .. "moi" | |||
na = true | |||
elseif stem:match(v.."[mn][mn].$") then | |||
data.forms["m"] = {s3 .. "mmo"} | |||
loc = s3 .. "mmoi" | |||
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"] = {(args.d and s1 or stem) .. "mo"} | |||
loc = (args.d and s1 or stem) .. "moi" | |||
na = true | |||
end | |||
elseif stem:match("[ie]$") then | |||
if args.ld then | |||
if stem:match("i$") then | |||
data.forms["m"] = {stem .. "d"} | |||
ill, ela, ade = stem .. "h", stem .. "h", stem .. "h" | |||
ine = stem .. "di" | |||
all, abl = stem, stem | |||
table.insert(data.forms["ine"], s1 .. "ỉa") | |||
table.insert(data.forms["all"], s1 .. "iddįibma") | |||
table.insert(data.forms["abl"], s1 .. "iddįiska") | |||
na = true | |||
else | |||
data.forms["m"] = {stem .. "di"} | |||
ill, ela, ade = stem .. "h", stem .. "h", stem .. "h" | |||
all, abl = stem .. "i", stem .. "i" | |||
ine = stem .. "di" | |||
na = true | |||
end | |||
elseif stem:match(v.."[mn][mn].$") then | |||
data.forms["m"] = {s3 .. "ndi"} | |||
loc = s3 .. "ndi" | |||
elseif stem:match("[uo][mn].$") then | |||
data.forms["m"] = {s3 .. "õdi"} | |||
loc = s3 .. "õdi" | |||
elseif stem:match(v.."[mn].$") then | |||
data.forms["m"] = {s2 .. "ndi"} | |||
loc = s2 .. "ndi" | |||
elseif stem:match(v.."[vg].$") then | |||
data.forms["m"] = {s2 .. "ḍḍi"} | |||
if sub(stem, -2, -2) == "g" then table.insert(data.forms["m"], s2 .. "hdi") end | |||
ela, ade = s2 .. "ḍ", s2 .. "ḍ" | |||
ine, ill, all, abl = s2 .. "ḍḍi", s2 .. "ḍḍi", s2 .. "ḍḍi", s2 .. "ḍḍi" | |||
elseif stem:match(v.."s.$") then | |||
data.forms["m"] = {s2 .. "sti"} | |||
loc = s2 .. "sti" | |||
elseif stem:match(v.."ṡ.$") then | |||
data.forms["m"] = {s2 .. "ṡti"} | |||
loc = s2 .. "ṡti" | |||
elseif stem:match(v.."[rhk].$") then | |||
data.forms["m"] = {s2 .. "hdi"} | |||
loc = s2 .. "hdi" | |||
elseif stem:match(v.."l.$") then | |||
data.forms["m"] = {s2 .. "ldi"} | |||
loc = s2 .. "ldi" | |||
elseif stem:match("i$") then | |||
data.forms["m"] = {stem .. "d"} | |||
ill, ela, ade = stem .. "h", stem .. "h", stem .. "h" | |||
ine = stem .. "di" | |||
all, abl = stem, stem | |||
table.insert(data.forms["ine"], s1 .. "ỉa") | |||
table.insert(data.forms["all"], s1 .. "iddįibma") | |||
table.insert(data.forms["abl"], s1 .. "iddįiska") | |||
na = true | |||
else | |||
data.forms["m"] = {stem .. "di"} | |||
ill, ela, ade = stem .. "h", stem .. "h", stem .. "h" | |||
all, abl = stem .. "i", stem .. "i" | |||
ine = stem .. "di" | |||
na = true | |||
end | |||
elseif stem:match("[ouyỷů]$") then | |||
if args.ld then | |||
data.forms["m"] = {stem .. "ma"} | |||
ill, ela = stem .. "n", stem .. "n" | |||
ine, ade, all, abl = stem .. "mi", stem .. "mi", stem .. "mi", stem .. "mi" | |||
elseif stem:match(v.."[mn][mn].$") then | |||
data.forms["m"] = {s3 .. "mma"} | |||
loc = s3 .. "mmi" | |||
elseif stem:match(v.."[mvn].$") then | |||
data.forms["m"] = {s2 .. "mma"} | |||
loc = s2 .. "mmi" | |||
elseif stem:match(v.."[rhg].$") 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"] = {(args.d and s1 or stem) .. "ma"} | |||
ill, ela = (args.d and s1 or stem) .. "n", (args.d and s1 or stem) .. "n" | |||
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 | |||
table.insert(data.forms["ine"], (ine or loc) .. ce[1]) | |||
data.forms["ill"] = {(ill or loc) .. ce[2]} | |||
data.forms["ela"] = {(ela or loc) .. (match(stem, "[vg].$") and "ga" or ce[3])} | |||
data.forms["ade"] = {(ade or loc) .. ce[4]} | |||
table.insert(data.forms["all"], (all or loc) .. ce[5]) | |||
table.insert(data.forms["abl"], (abl or loc) .. ce[6]) | |||
end | |||
}) | |||
data["s"] = { | |||
params = { | |||
["nolen"] = {type = "boolean"}, | |||
["d"] = {type = "boolean"}, | |||
["d2"] = {type = "boolean"}, | |||
["s"] = {type = "boolean"}, | |||
}, | |||
} | |||
setmetatable(data["s"], {__call = function(self, args, data) | |||
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) | |||
table.insert(data.categories, "Siwa s-declension " .. data.pos) | |||
local s = args.s and "hh" or "h" | |||
data.forms["u"] = {data.alt or PAGENAME} | |||
if stem:match(v.."d.s$") then | |||
data.forms["m"] = {s3 .. "lhi"} | |||
ill, ela, ade = s3 .. "lh", s3 .. "lh", s3 .. "lh" | |||
ine, all, abl = s3 .. "lhi", s3 .. "lhi", s3 .. "lhi" | |||
elseif stem:match(v.."k.s$") then | |||
data.forms["m"] = {s1 .. "hi", s3 .. "hki"} | |||
ill, ela, ade = s1 .. "h", s1 .. "h", s1 .. "h" | |||
ine, all, abl = s1 .. "hi", s1 .. "hi", s1 .. "hi" | |||
else | else | ||
data.forms["m"] = { | data.forms["m"] = {(args.d2 and s3 or args.d and s2 or s1) .. s .. "i"} | ||
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.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 | ||
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]} | |||
end | end | ||
}) | }) | ||
data["n"] = { | |||
params = { | |||
[2] = {}, | |||
["nolen"] = {type = "boolean"}, | |||
["s"] = {type = "boolean"}, | |||
["d"] = {type = "boolean"}, | |||
}, | |||
} | |||
setmetatable(data["n"], {__call = function(self, args, data) | |||
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 sv = args[2] | |||
table.insert(data.categories, "Siwa n-declension " .. data.pos) | |||
data.forms["u"] = {data.alt or PAGENAME} | |||
if sv:match("[aou]$") then | |||
data.forms["m"] = {stem .. "ta"} | |||
loc = match(stem, "on$") and s2 .. "õri" or s1 .. "ri" | |||
elseif sv:match("[eiyůỉę]$") then | |||
data.forms["m"] = {s1 .. "s"} | |||
loc = s1 .. "s" .. (args.d and "" or "i") | |||
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]} | |||
end | |||
}) | |||
data["t"] = { | |||
params = { | |||
[2] = {}, | |||
["nolen"] = {type = "boolean"}, | |||
["ut"] = {type = "boolean"}, | |||
["s"] = {type = "boolean"}, | |||
}, | |||
} | |||
setmetatable(data["t"], {__call = function(self, args, data) | |||
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 sv = args[2] | |||
table.insert(data.categories, "Siwa t-declension " .. data.pos) | |||
data.forms["u"] = {data.alt or PAGENAME} | |||
if args.ut then | |||
data.forms["m"] = {s2 .. "lda", s1 .. "tta"} | |||
loc = s1 .. "ttai" | |||
elseif sv:match("[aou]$") then | |||
data.forms["m"] = {stem .. "ta"} | |||
loc = stem .. "tai" | |||
elseif sv:match("[eiyů]$") then | |||
data.forms["m"] = {s1 .. "tsta", s1 .. "ddįa", s1 .. "tsitta"} | |||
loc = s1 .. "tsti" | |||
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 | |||
}) | |||
data["l"] = { | |||
params = { | |||
[2] = {}, | |||
["nolen"] = {type = "boolean"}, | |||
["str"] = {type = "boolean"}, | |||
["s"] = {type = "boolean"}, | |||
}, | |||
} | |||
setmetatable(data["l"], {__call = function(self, args, data) | |||
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) | |||
table.insert(data.categories, "Siwa l-declension " .. data.pos) | |||
local sv = args[2] | |||
local lts = { | |||
["ả"] = "a", ["ẻ"] = "e", ["ỉ"] = "i", | |||
["ỏ"] = "o", ["ủ"] = "u", ["ỷ"] = "y", | |||
} | |||
local dtl = { | |||
["aa"] = "ả", ["ee"] = "ẻ", ["ii"] = "ỉ", | |||
["oo"] = "ỏ", ["uu"] = "ủ", ["yy"] = "ỷ", | |||
} | |||
data.forms["u"] = {data.alt or PAGENAME} | |||
if sv:match("[aou]$") then | |||
if match("[ảẻỉỏủỷ]", sub(data.head, -1, -1)) then | |||
data.forms["m"] = {s1 .. lts[sub(stem, -1, -1)] .. "ri"} | |||
else | |||
data.forms["m"] = {s1 .. "ri"} | |||
end | |||
elseif sv:match("[eiyů]$") then | |||
if match("[ảẻỉỏủỷ]", sub(data.head, -1, -1)) then | |||
data.forms["m"] = {s1 .. lts[sub(stem, -1, -1)] .. "la"} | |||
else | |||
data.forms["m"] = {s1 .. "la"} | |||
end | |||
end | |||
for double, long in pairs(dtl) do | |||
data.forms["m"][1] = gsub(data.forms["m"][1], double, long) | |||
end | |||
end | |||
}) | |||
data["animate"] = { | |||
params = { | |||
[2] = {}, -- stressed vowel | |||
["h"] = {type = "boolean"}, -- Human | |||
["t"] = {type = "boolean"}, -- extra T | |||
["av"] = {type = "boolean"}, -- After Vowel | |||
["s"] = {type = "boolean"}, | |||
["d"] = {type = "boolean"}, | |||
["i"] = {type = "boolean"}, -- -i Subgroup | |||
}, | |||
} | |||
setmetatable(data["animate"], {__call = function(self, args, data) | |||
local stem = data.head; local sv = args[2] | |||
local s1, s2, s3 = sub(stem, 1, -2), sub(stem, 1, -3), sub(stem, 1, -4) | |||
--local av = stem:match(v.."..$") and true or false -- After Vowel | |||
local av = args.av | |||
data.forms["u_sg"] = {PAGENAME} | |||
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["u_pl"] = {stem .. "gi"} | |||
data.forms["m_pl"] = {s2 .. (exactly(sv, "[ou]") and "ṡi" or "ka") .. "gi"} | |||
elseif stem:match("mi$") then | |||
data.forms["m_sg"] = {s2 .. (args.t and "t" or "") .. "ta"} | |||
if stem:match(v.."..$") then table.insert(data.forms["m_sg"], s2 .. "tta") end | |||
data.forms["u_pl"] = {stem .. "gi"} | |||
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 | |||
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["m_pl"] = {s2 .. "ugi"} | |||
data.forms["m_pl"][1] = gsub(data.forms["m_pl"][1], "uu", "ủ") | |||
elseif stem:match("[bpv]i$") then | |||
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"} | |||
if stem:match(v.."[bp].$") then table.insert(data.forms["u_pl"], s2 .. "bṡi") end | |||
data.forms["m_pl"] = {repl .. "umṡi"} | |||
elseif stem:match("[bpv]o$") then | |||
data.forms["u_pl"] = {stem .. "gi"} | |||
data.forms["m_sg"] = {s2 .. "oųi"} | |||
data.forms["m_pl"] = {s2 .. "oṡi"} | |||
elseif stem:match("[tn][ao]$") then | |||
data.forms["u_pl"] = {stem .. "gi"} | |||
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 | |||
if av then | |||
data.forms["u_pl"] = {s1 .. "ṡi", s1 .. "hi"} | |||
else | |||
data.forms["u_pl"] = {stem .. "gi"} | |||
end | |||
data.forms["m_sg"] = {s2 .. (match(s2, "h$") and "h" or "") .. "įa"} | |||
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 | |||
data.forms["u_pl"] = {stem .. "gi", s1 .. "si"} | |||
data.forms["m_sg"] = {s2 .. "ika"} | |||
data.forms["m_pl"] = {s2 .. "ikagi"} | |||
elseif stem:match("s[ao]$") then | |||
data.forms["u_pl"] = {stem .. "gi"} | |||
if args.h then | |||
data.forms["m_sg"] = {s2 .. (match(s2, "t$") and "" or "t") .. "ta"} | |||
data.forms["m_pl"] = {s2 .. (match(s2, "t$") and "" or "t") .. "tagi"} | |||
else | |||
data.forms["m_sg"] = {s2 .. "hi", s2 .. "ḥi"} | |||
data.forms["m_pl"] = {s2 .. "higi", s2 .. "ḥigi"} | |||
end | |||
elseif stem:match("si$") then | |||
data.forms["u_pl"] = {stem .. "gi", s2 .. "sġi"} | |||
data.forms["m_sg"] = {s2 .. (av and "tta" or "ta")} | |||
data.forms["m_pl"] = {s2 .. (av and "ttagi" or "tagi")} | |||
elseif stem:match("ṡi$") then | |||
data.forms["u_pl"] = {stem .. "gi"} | |||
data.forms["m_sg"] = {s2 .. (av and "hta" or "ohta")} | |||
data.forms["m_pl"] = {s2 .. (av and "hta" or "ohta") .. "gi"} | |||
elseif stem:match("[lr][ao]$") then | |||
data.forms["u_pl"] = {stem .. "gi"} | |||
data.forms["m_sg"] = {s2 .. "sta"} | |||
data.forms["m_pl"] = {s2 .. "stagi"} | |||
elseif stem:match("[lr]i$") then | |||
data.forms["u_pl"] = {s1 .. (av and "hi" or "igi")} | |||
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 .. (stem:match("dli$") and "dįagi" or s1:match("r$") and "" or "l") .. "tṡagi"} | |||
elseif stem:match("lu$") then | |||
data.forms["u_pl"] = {s1 .. (av and "hi" or "ugi")} | |||
data.forms["m_sg"] = {s2 .. "da"} | |||
data.forms["m_pl"] = {s2 .. "dagi"} | |||
elseif stem:match("k[ao]$") then | |||
data.forms["u_pl"] = {stem .. "gi"} | |||
data.forms["m_sg"] = {s2 .. (match(s2, "h$") and "h" or "") .. "uni"} | |||
data.forms["m_pl"] = {s2 .. (match(s2, "h$") and "h" or "") .. "unhi"} | |||
elseif stem:match("ki$") then | |||
data.forms["u_pl"] = {s1 .. (av and "ṡi" or "igi")} | |||
data.forms["m_sg"] = {s2 .. "tṡa"} | |||
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 | |||
data.forms["u_pl"] = {stem .. "gi"} | |||
if args.h then | |||
data.forms["m_sg"] = {s2 .. "tsa"} | |||
data.forms["m_pl"] = {s2 .. "tsagi"} | |||
else | |||
data.forms["m_sg"] = {s2 .. "ubi"} | |||
data.forms["m_pl"] = {s2 .. "ubigi", s2 .. "ubṡi"} | |||
end | |||
elseif stem:match("h[ao]$") then | |||
data.forms["u_pl"] = {stem .. "gi"} | |||
data.forms["m_sg"] = {(args.d and s3 or s2) .. "ra"} | |||
data.forms["m_pl"] = {(args.d and s3 or s2) .. "ragi"} | |||
elseif stem:match("hi$") then | |||
data.forms["u_pl"] = {stem .. "gi"} | |||
data.forms["m_sg"] = {(args.d and s3 or s2) .. "tṡa"} | |||
data.forms["m_pl"] = {(args.d and s3 or s2) .. "tṡagi"} | |||
elseif stem:match("[iỉy]$") then | |||
data.forms["u_pl"] = {stem .. "gi"} | |||
data.forms["m_sg"] = {s1 .. "tṡa"} | |||
data.forms["m_pl"] = {s1 .. "tṡagi"} | |||
end | |||
if match(data.forms["u_pl"][1], "igi$") then | |||
table.insert(data.forms["u_pl"], sub(data.forms["u_pl"][1], 1, -4) .. "ęgi") | |||
end | |||
if match(data.forms["m_pl"][1], "igi$") then | |||
table.insert(data.forms["m_pl"], sub(data.forms["m_pl"][1], 1, -4) .. "ęgi") | |||
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.forms["u_pl"] = {"aumulhi"} | |||
data.forms["m_pl"] = {"aumutṡagi"} | |||
end | |||
data["bahhi"] = function(args, data) | |||
data.decl_type = "irregular" | |||
table.insert(data.categories, "Siwa irregular nouns") | |||
data.forms["u"] = {"bahhi"} | |||
data.forms["m"] = {"baski"} | |||
end | |||
data["bahpa"] = function(args, data) | |||
data.decl_type = "dual" | |||
table.insert(data.categories, "Siwa dual nouns") | |||
data.forms["u_sg"] = {"bahhįo"} | |||
data.forms["u_pl"] = {"bahpa"} | |||
data.forms["m_sg"] = {"baġa"} | |||
data.forms["m_pl"] = data.forms["m_sg"] | |||
end | |||
data["boġġi"] = function(args, data) | |||
data.decl_type = "irregular" | |||
table.insert(data.categories, "Siwa irregular nouns") | |||
data.forms["u"] = {"boġġi"} | |||
data.forms["m"] = {"boġġo"} | |||
end | |||
data["bủtni"] = function(args, data) | |||
data.decl_type = "irregular" | |||
table.insert(data.categories, "Siwa irregular nouns") | |||
data.forms["u"] = {"bủtni"} | |||
data.forms["m"] = {"bủtnỉd"} | |||
data.forms["ine"] = {"bủtnỉa", "bủtnidia"} | |||
data.forms["ill"] = {"bủtnihta"} | |||
data.forms["ela"] = {"bủtnihka"} | |||
data.forms["ade"] = {"bủtnihma"} | |||
data.forms["all"] = {"bủtniddįibma", "bủtnibma"} | |||
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 | |||
data["dapsa"] = function(args, data) | |||
data.decl_type = "irregular" | |||
table.insert(data.categories, "Siwa irregular nouns") | |||
data.forms["u_sg"] = {"dapsa"} | |||
data.forms["u_pl"] = {"dapsagi"} | |||
data.forms["m_sg"] = {"daḍḍa"} | |||
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 | |||
return data | return data |