Module:sje-common
Jump to navigation
Jump to search
- The following documentation is located at Module:sje-common/documentation. [edit] Categories were auto-generated by Module:module categorization. [edit]
- Useful links: subpage list • links • transclusions • testcases • sandbox
local export = {}
local langdata = {
consonant = {
"^(.-)([^aáeiouūyåäAÁEIOUŪYÅÄ" .. mw.ustring.char(0x0304) .. "{}-]*)$",
},
vowel = {
"^(.-)(u[aoä])$",
"^(.-)(å̄)$",
"^(.-)(ie)$",
"^(.-)([aáeiouūyåäAÁEIOUŪYÅÄ]?)$",
},
scons = {
[1] = {
},
[2] = {
{"^bm$", "m", "bbm"},
{"^dn(j?)$", "n%1", "ddn%1"},
{"^gŋ$", "ŋ", "ggŋ"},
{"^dd$", "d", "dˈd"},
{"^dj$", "j", "ddj"},
{"^([fjlmnŋrsv])%1$", "%1", "%1ˈ%1"},
{"^hp$", "b", "hpp"},
{"^ht$", "d", "htt"},
{"^ht([js])$", "t%1", "htt%1"},
{"^hk$", "g", "hkk"},
{"^([ns])%1j$", "%1j", "%1ˈ%1j"},
},
[3] = {
{"^bˈb$", "bb"},
{"^gˈg$", "gg"},
{"^dˈt([js])$", "dt%1"},
{"^(b)%1([n])$", "%1%2"},
{"^(j)%1([bgkrt])$", "%1%2"},
{"^(k)%1([st])$", "%1%2"},
{"^(k)%1(sj)$", "%1%1"},
{"^(l)%1([dgjv])$", "%1%2"},
{"^(n)%1([dt])$", "%1%2"},
{"^(p)%1([t])$", "%1%2"},
{"^(r)%1([bdgjkt])$", "%1%2"},
{"^(s)%1([knt])$", "%1%2"},
{"^(v)%1([l])$", "%1%2"},
{"^jbm$", "jm"},
{"^lbm$", "lm"},
{"^ldn$", "ln"},
},
},
vowel_variants = {
normal = {["e"] = {"e", "F"} },
e = {["e"] = {"á", "L"}, ["o"] = {"u", "R"}},
j = {["e"] = {"i", "R"}, },
je = {["e"] = {"i", "R"}, ["o"] = {"u", "R"}},
},
postprocess = function(form, vowel_effect)
-- Vowel changes before Q1/Q2
if form.quantity < 3 then
if form.svowel == "ua" or form.svowel == "uä" then
form.svowel = "uo"
elseif form.svowel == "ä" then
form.svowel = "ie"
end
else
if form.svowel == "uo" then
form.svowel = "ua"
elseif form.svowel == "ie" then
form.svowel = "ä"
end
end
-- Fronting/backing/raising
if vowel_effect == "F" and form.svowel == "ua" then
form.svowel = "uä"
elseif vowel_effect == "B" and form.svowel == "uä" then
form.svowel = "ua"
elseif vowel_effect == "R" then
if form.svowel == "á" then
form.svowel = "ä"
elseif form.svowel == "uo" or form.svowel == "ua" or form.svowel == "uä" or form.svowel == "å̄" then
form.svowel = "ū"
elseif form.svowel == "ie" or form.svowel == "ä" then
form.svowel = "e"
elseif form.svowel == "a" then
form.svowel = "i"
end
end
end,
}
export.Stem = require("Module:smi-common").make_constructor(langdata)
return export