Mô đun:se-common
Giao diện
local export = {}
local vowels_simp = {
["ea"] = "ē",
["ie"] = "ī",
["oa"] = "ō",
["uo"] = "ū"
}
local langdata = {
consonant = {
"^(.-[aạáeẹēiīoọōuūyAẠÁEẸĒIĪOỌŌUŪY])([iI][^aáeēiīoōuūyAÁEĒIĪOŌUŪY{}-]*)$",
"^(.-)([^aạáeẹēiīoọōuūyAẠÁEẸĒIĪOỌŌUŪY{}-]*)$",
},
vowel = {
"^(.-)(uo)$",
"^(.-)(oa)$",
"^(.-)(ea)$",
"^(.-)(ie)$",
"^(.-)([aạáeẹēiīoọōuūyAẠÁEẸĒIĪOỌŌUŪY]?)$",
},
scons = {
[1] = {
{"^[dhp]$"},
},
[2] = {
{"^dj$", "j", "ddj"},
{"^([đflmnŋrsšŧv])%1$", "%1", "%1ˈ%1"},
{"^hc$", "z", "hcc"},
{"^hč$", "ž", "hčč"},
{"^hk$", "g", "hkk"},
{"^hp$", "b", "hpp"},
{"^ht$", "đ", "htt"},
{"^h([jlmnr])%1$", "h%1", "h%1ˈ%1"},
{"^kŋ$", "ŋ", "gŋ"},
{"^pm$", "m", "bm"},
{"^tn(j?)$", "n%1", "dn%1"},
{"^nnj$", "nj", "nˈnj"},
},
[3] = {
{"^bb$", "pp"},
{"^dd$", "tt"},
{"^gg$", "kk"},
{"^zz$", "cc"},
{"^žž$", "čč"},
{"^llj$", "lj"},
-- Clusters
{"^lˈj$", "ljj"},
{"^rbm$", "rpm"},
{"^rdn$", "rtn"},
{"^rdnj$", "rtnj"},
{"^rgŋ$", "rkŋ"},
{"^k(.*)(.)$", "v%1%2%2"},
{"([^r])bm$", "%1mm"},
{"([^r])dn(j?)$", "%1nn%2"},
{"([^r])gŋ$", "%1ŋŋ"},
{"^(đ)([bgjv])$", "%1%2%2"},
{"^(i)([bcdgklprstv])$", "%1%2%2"},
{"^(ih)([lmn])$", "%1%2%2"},
{"^(is)([kmt])$", "%1%2%2"},
{"^(l)([bcčdfgkpstv])$", "%1%2%2"},
{"^(ls)([t])$", "%1%2%2"},
{"^(m)([bpsš])$", "%1%2%2"},
{"^(n)([cčdsštzž])$", "%1%2%2"},
{"^(ns)([t])$", "%1%2%2"},
{"^(ŋ)([gk])$", "%1%2%2"},
{"^(p)([t])$", "%1%2%2"},
{"^(r)([bcčdfgjkpsštvž])$", "%1%2%2"},
{"^(rs)([kt])$", "%1%2%2"},
{"^(s)([bfkmptv])$", "%1%2%2"},
{"^(š)([kmpt])$", "%1%2%2"},
{"^(t)([km])$", "%1%2%2"},
{"^(v)([dgjklprstzž])$", "%1%2%2"},
{"^(vh)([l])$", "%1%2%2"},
{"^ij$"},
{"^lfr$"},
},
},
to_final = {
-- Allowed consonants
{"^[lnprsšt]$"},
{"^i[dn]$"},
-- Disallowed consonants
{"^([bdgh])$", "t"},
{"^([bdg])%1$", "t"},
{"^h[kpt]$", "t"},
{"^j$", "i"},
{"^m$", "n"},
{"^([sz])$", "s"},
{"^([sz])%1$", "s"},
{"^([šž])$", "š"},
{"^([šž])%1$", "š"},
-- Clusters
{"^([lr])[dg]$", "%1"},
{"^([lsš])[kmt]$", "%1"},
},
make_final_if = {
"^$",
"^[^aạáeẹēiīoọōuūyAẠÁEẸĒIĪOỌŌUŪY]",
},
vowel_variants = {
normal = { },
short = { ["i"] = {"ẹ"} , ["u"] = {"ọ"} },
e = { ["i"] = {"á"} , ["ọ"] = {"o", "S"}, ["u"] = {"o", "S"}},
e_contr_j = {["a"] = {"i", "S"}, ["e"] = {"i"}, ["i"] = {"á"} , ["o"] = {"u"}, ["ọ"] = {"o", "S"}, ["u"] = {"u", "S"}},
i = { ["i"] = {"e", "S"}, ["ọ"] = {"o", "S"}, ["u"] = {"o", "S"}},
j = { ["e"] = {"i"}, ["i"] = {"i", "S"}, ["o"] = {"u"}, ["u"] = {"ū"} },
j_contr = {["a"] = {"e", "S"}, ["i"] = {"e", "S"}, ["ọ"] = {"o", "S"}, ["u"] = {"o", "S"}},
j_contr_final = {["a"] = {"i"} , },
pres_12sg = { ["i"] = {"á"} , },
pres_3sg = {["a"] = {"á"} , ["i"] = {"á"} , },
impr = {["a"] = {"o", "S"}, ["i"] = {"o", "S"}, ["ọ"] = {"o", "S"}, ["u"] = {"o", "S"}},
impr_final = {["a"] = {"u"} , ["i"] = {"u"} , },
contr_noun = {["a"] = {"á"} , ["i"] = {"á"} , ["u"] = {"o", "S"}},
contr_noun_j = {["a"] = {"á"} , ["i"] = {"á"} , ["o"] = {"u"}, ["u"] = {"u", "S"}},
},
postprocess = function(form, vowel_effect)
if vowel_effect == "S" then
form.svowel = vowels_simp[form.svowel] or form.svowel
end
end,
}
export.Stem = require("Module:smi-common").make_constructor(langdata)
return export