45,333
edits
No edit summary |
No edit summary |
||
(126 intermediate revisions by the same user not shown) | |||
Line 18: | Line 18: | ||
local function csub(term, foo, bar, n) | local function csub(term, foo, bar, n) | ||
local coalesced = term | |||
local patterns = { | local patterns = { | ||
{"([aoueů])", "%1gįa"}, {"ue", "ugįa"}, {"ie", "ieįa"}, | {"([aoueů])", "%1gįa"}, {"ue", "ugįa"}, {"ie", "ieįa"}, | ||
Line 25: | Line 26: | ||
} | } | ||
for _, | for _, pat in ipairs(patterns) do | ||
for _, | for _, case in ipairs(ce) do | ||
coalesced = gsub(term, pat[1] .. case .. "$", pat[2]) | |||
end | end | ||
end | end | ||
return | return coalesced | ||
end | end | ||
Line 41: | Line 42: | ||
["ld"] = {type = "boolean"}, -- Lenition Declension | ["ld"] = {type = "boolean"}, -- Lenition Declension | ||
["d"] = {type = "boolean"}, -- vowel Deletion | ["d"] = {type = "boolean"}, -- vowel Deletion | ||
["d2"] = {type = "boolean"}, | |||
["s"] = {type = "boolean"}, -- Stressed | ["s"] = {type = "boolean"}, -- Stressed | ||
}, | }, | ||
Line 49: | Line 51: | ||
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 86: | 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 | ||
data.forms["ine"] = { | 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) .. ce[3]} | ||
Line 123: | Line 125: | ||
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("[aeẻ]$") then | if stem:match("[aeẻ]$") then | ||
Line 184: | Line 186: | ||
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 219: | Line 224: | ||
end | end | ||
data.forms["ine"] = { | 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) .. ce[3]} | ||
Line 249: | Line 254: | ||
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 270: | 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 287: | 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 312: | Line 323: | ||
end | end | ||
table.insert(data.forms["ine"], | 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) .. (match(stem, "[vg].$") and "ga" or ce[3])} | data.forms["ela"] = {(ela or loc) .. (match(stem, "[vg].$") and "ga" or ce[3])} | ||
Line 318: | Line 329: | ||
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 335: | Line 347: | ||
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"] = {(args.d and s1 or stem) .. "mo"} | 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" | loc = (args.d and s1 or stem) .. "moi" | ||
na = true | na = true | ||
Line 345: | Line 357: | ||
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 365: | Line 380: | ||
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"] = {(args.d and s1 or stem) .. "ko"} | data.forms["m"] = {(args.d and s1 or stem) .. "ko"} | ||
Line 373: | Line 388: | ||
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.."hh.$") then | |||
data.forms["m"] = {s3 .. "hko"} | |||
loc = s3 .. "hkoi" | |||
elseif stem:match(v.."[mnv][mnv].$") then | elseif stem:match(v.."[mnv][mnv].$") then | ||
data.forms["m"] = {(sub(stem, -4, -4) == "o" and sub(stem, 1, -5) .. "õ" or s3) .. "kko"} | data.forms["m"] = {(sub(stem, -4, -4) == "o" and sub(stem, 1, -5) .. "õ" or s3) .. "kko"} | ||
Line 396: | Line 414: | ||
na = true | na = true | ||
end | end | ||
elseif stem:match("[ | elseif stem:match("[ouyůỏ]$") then | ||
if args.ld then | if args.ld then | ||
local del = args.d and s1 or stem | local del = args.d and s1 or stem | ||
Line 403: | Line 421: | ||
ine, ade, all, abl = del .. "mi", del .. "mi", del .. "mi", del .. "mi" | 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"} | data.forms["m"] = {s2 .. "bma"} | ||
loc = s2 .. "bmi" | loc = s2 .. "bmi" | ||
elseif | 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" | ||
Line 427: | Line 448: | ||
end | end | ||
data.forms["ine"] = { | 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) .. ce[3]} | ||
Line 456: | Line 477: | ||
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 466: | Line 487: | ||
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 483: | 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 512: | Line 536: | ||
end | end | ||
data.forms["ine"] = { | 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) .. ce[3]} | ||
Line 546: | 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 | ||
Line 605: | 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 651: | Line 678: | ||
end | end | ||
table.insert(data.forms["ine"], | 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 665: | Line 692: | ||
["nolen"] = {type = "boolean"}, | ["nolen"] = {type = "boolean"}, | ||
["d"] = {type = "boolean"}, | ["d"] = {type = "boolean"}, | ||
["d2"] = {type = "boolean"}, | |||
["s"] = {type = "boolean"}, | ["s"] = {type = "boolean"}, | ||
}, | }, | ||
Line 675: | Line 703: | ||
local s = args.s and "hh" or "h" | 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 686: | 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 .. "i"} | 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) .. "h", (args.d and s2 or s1) .. "h", (args.d and s2 or s1) .. "h" | 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 .. "i", (args.d and s2 or s1) .. s .. "i", (args.d and s2 or s1) .. s .. "i" | 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"] = { | 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) .. ce[3]} | ||
Line 714: | Line 742: | ||
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 .. "s" .. (args.d and "" or "i") | loc = s1 .. "s" .. (args.d and "" or "i") | ||
end | end | ||
data.forms["ine"] = { | 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) .. ce[3]} | ||
Line 737: | Line 765: | ||
[2] = {}, | [2] = {}, | ||
["nolen"] = {type = "boolean"}, | ["nolen"] = {type = "boolean"}, | ||
["ut"] = {}, | ["ut"] = {type = "boolean"}, | ||
["s"] = {type = "boolean"}, | ["s"] = {type = "boolean"}, | ||
}, | }, | ||
Line 747: | Line 775: | ||
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 | |||
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 | end | ||
}) | }) | ||
Line 778: | 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 794: | 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 801: | Line 855: | ||
[2] = {}, -- stressed vowel | [2] = {}, -- stressed vowel | ||
["h"] = {type = "boolean"}, -- Human | ["h"] = {type = "boolean"}, -- Human | ||
["t"] = {type = "boolean"}, -- extra T | |||
["av"] = {type = "boolean"}, -- After Vowel | ["av"] = {type = "boolean"}, -- After Vowel | ||
["s"] = {type = "boolean"}, | ["s"] = {type = "boolean"}, | ||
["d"] = {type = "boolean"}, | ["d"] = {type = "boolean"}, | ||
["i"] = {type = "boolean"}, -- -i Subgroup | |||
}, | }, | ||
} | } | ||
Line 815: | 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", s2 .. "tta" | data.forms["m_sg"] = {s2 .. (args.t and "t" or "") .. "ta"} | ||
data.forms["u_pl"] = {stem .. "gi", s2 .. " | if stem:match(v.."..$") then table.insert(data.forms["m_sg"], s2 .. "tta") end | ||
data.forms["m_pl"] = {s2 .. "tagi", s2 .. "ttagi" | 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 | 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 | ||
local repl = gsub(s2, "h$", "k"); repl = gsub(repl, "ḍ$", "hh"); repl = gsub(repl, "lp$", "ll") | 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["m_sg"] = {repl .. "umi"} | ||
data.forms["u_pl"] = {stem .. "gi"} | data.forms["u_pl"] = {stem .. "gi"} | ||
Line 839: | 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"} | ||
if stem:match(nv.."..$") and not stem:match("[ | if stem:match(nv.."..$") and not stem:match("[tsḍlgġksṡrd]..$") then | ||
data.forms["m_sg"] = {s2 .. "ųa"} | data.forms["m_sg"] = {s2 .. "ųa"} | ||
data.forms["m_pl"] = {s2 .. "ųagi"} | data.forms["m_pl"] = {s2 .. "ųagi"} | ||
Line 853: | 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 863: | 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 870: | 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 .. (av and "tta" or "ta")} | data.forms["m_sg"] = {s2 .. (av and "tta" or "ta")} | ||
data.forms["m_pl"] = {s2 .. (av and "ttagi" or "tagi")} | data.forms["m_pl"] = {s2 .. (av and "ttagi" or "tagi")} | ||
Line 883: | 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 891: | 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 909: | 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("[iỉy]$") then | elseif stem:match("[iỉy]$") then | ||
data.forms["u_pl"] = {stem .. "gi"} | data.forms["u_pl"] = {stem .. "gi"} | ||
data.forms["m_sg"] = {s1 .. " | data.forms["m_sg"] = {s1 .. "tṡa"} | ||
data.forms["m_pl"] = {s1 .. " | data.forms["m_pl"] = {s1 .. "tṡagi"} | ||
end | end | ||
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 1,007: | Line 1,096: | ||
data.forms["all"] = {"ivveibma", "iobibma"} | data.forms["all"] = {"ivveibma", "iobibma"} | ||
data.forms["abl"] = {"ivveiska", "iobiska"} | 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 | end | ||
Line 1,046: | Line 1,142: | ||
data.forms["u"] = {"gảgi"} | data.forms["u"] = {"gảgi"} | ||
data.forms["m"] = {"gęįagi"} | data.forms["m"] = {"gęįagi"} | ||
end | end | ||
Line 1,074: | Line 1,163: | ||
table.insert(data.categories, "Siwa diphthong-coalescence nouns") | table.insert(data.categories, "Siwa diphthong-coalescence nouns") | ||
data.forms["u"] = {"goi"} | data.forms["u"] = {"goi"} | ||
data.forms["m"] = {" | data.forms["m"] = {"goįo"} | ||
end | end | ||
Line 1,188: | Line 1,277: | ||
data.forms["m_sg"] = {"ketkume"} | data.forms["m_sg"] = {"ketkume"} | ||
data.forms["m_pl"] = {"keḍma"} | 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 | end | ||
Line 1,204: | Line 1,301: | ||
data.forms["u_sg"] = {"kengi"} | data.forms["u_sg"] = {"kengi"} | ||
data.forms["m_sg"] = {"kegna"} | 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 | end | ||
Line 1,219: | Line 1,432: | ||
data.forms["all"] = {loc .. ce[5]} | data.forms["all"] = {loc .. ce[5]} | ||
data.forms["abl"] = {loc .. ce[6]} | 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 | end | ||
Line 1,228: | Line 1,574: | ||
data.forms["m_sg"] = {"todatta"} | data.forms["m_sg"] = {"todatta"} | ||
data.forms["m_pl"] = {"todattagi"} | 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 |