45,333
edits
No edit summary |
No edit summary |
||
(58 intermediate revisions by the same user not shown) | |||
Line 186: | 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 272: | 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 351: | 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 379: | 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 409: | 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 472: | 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 489: | 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 674: | Line 692: | ||
["nolen"] = {type = "boolean"}, | ["nolen"] = {type = "boolean"}, | ||
["d"] = {type = "boolean"}, | ["d"] = {type = "boolean"}, | ||
["d2"] = {type = "boolean"}, | |||
["s"] = {type = "boolean"}, | ["s"] = {type = "boolean"}, | ||
}, | }, | ||
Line 695: | 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 | ||
Line 728: | Line 747: | ||
data.forms["m"] = {stem .. "ta"} | data.forms["m"] = {stem .. "ta"} | ||
loc = match(stem, "on$") and s2 .. "õri" or s1 .. "ri" | 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") | ||
Line 760: | Line 779: | ||
if args.ut then | if args.ut then | ||
data.forms["m"] = {s2 .. "lda", s1 .. "tta"} | 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 818: | 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"}, | ||
Line 842: | Line 880: | ||
data.forms["m_pl"] = {s2 .. (exactly(sv, "[ou]") and "ṡi" or "ka") .. "gi"} | data.forms["m_pl"] = {s2 .. (exactly(sv, "[ou]") and "ṡi" or "ka") .. "gi"} | ||
elseif stem:match("mi$") then | elseif stem:match("mi$") then | ||
data.forms["m_sg"] = {s2 .. "ta"} | data.forms["m_sg"] = {s2 .. (args.t and "t" or "") .. "ta"} | ||
if stem:match(v.."..$") then table.insert(data.forms["m_sg"], s2 .. "tta") end | if stem:match(v.."..$") then table.insert(data.forms["m_sg"], s2 .. "tta") end | ||
data.forms["u_pl"] = {stem .. "gi"} | data.forms["u_pl"] = {stem .. "gi"} | ||
Line 849: | Line 887: | ||
table.insert(data.forms["u_pl"], s2 .. "mṡi") | table.insert(data.forms["u_pl"], s2 .. "mṡi") | ||
end | end | ||
data.forms["m_pl"] = {s2 .. "tagi"} | 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 | 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 | ||
Line 859: | Line 897: | ||
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, "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 870: | 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 927: | 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 .. (stem:match("dli$") and "dįa" or "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 .. (stem:match("dli$") and "dįagi" or "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 941: | Line 979: | ||
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 953: | 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"} | ||
Line 966: | Line 1,006: | ||
if match(data.forms["u_pl"][1], "igi$") then | if match(data.forms["u_pl"][1], "igi$") then | ||
table.insert(data.forms["u_pl"], | table.insert(data.forms["u_pl"], sub(data.forms["u_pl"][1], 1, -4) .. "ęgi") | ||
end | end | ||
if match(data.forms["m_pl"][1], "igi$") then | if match(data.forms["m_pl"][1], "igi$") then | ||
table.insert(data.forms["m_pl"], | table.insert(data.forms["m_pl"], sub(data.forms["m_pl"][1], 1, -4) .. "ęgi") | ||
end | end | ||
end | end | ||
}) | }) | ||
data["aḍba"] = function(args, data) | |||
data.forms["u_pl"] = {"aḍba"} | |||
data.forms["m_pl"] = {"aubba"} | |||
end | |||
data["aumulhi"] = function(args, data) | data["aumulhi"] = function(args, data) | ||
Line 1,051: | 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,090: | 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,118: | 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,286: | Line 1,331: | ||
data.forms["u_pl"] = {"koḍḍa"} | data.forms["u_pl"] = {"koḍḍa"} | ||
data.forms["m_pl"] = {"kỏhha"} | data.forms["m_pl"] = {"kỏhha"} | ||
end | end | ||
Line 1,409: | Line 1,447: | ||
data.forms["m_sg"] = {"nieigįa", "niẻddįa"} | data.forms["m_sg"] = {"nieigįa", "niẻddįa"} | ||
data.forms["m_pl"] = {"nieigįagi", "niẻddįagi"} | 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 | end | ||
Line 1,417: | Line 1,542: | ||
data.forms["m_sg"] = {"sảmoųi"} | data.forms["m_sg"] = {"sảmoųi"} | ||
data.forms["m_pl"] = {"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,426: | 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 |