Module:sma-common

local export = {}

local langdata = { consonant = { "^(.-)([^aeiïouyæöåAEIÏOUYÆÖÅ{}-]*)$", },	vowel = { "^(.-)([aeu][ae])$", "^(.-)([iïo]e)$", "^(.-)([yö]ö)$", "^(.-)(å[aeå])$", "^(.-)([aeiïouyæå]?)$", },	vowel_variants = { normal      = {                                     ["i"] = {"e"},                                           ["u"] = {"e"} }, normal3     = {["a"] = {"e"},                      ["i"] = {"e"} , ["ie"] = {"e"}     , ["oe"] = {"o"}     , ["u"] = {"e"} }, h           = {                ["e"] = {""}      , ["i"] = {""}                                            , ["u"] = {""}  }, j           = {                ["e"] = {""}      , ["i"] = {""}                                            , ["u"] = {""}  }, j_I         = {                ["e"] = {""}      , ["i"] = {""}  , ["ie"] = {"", "I"}                      , ["u"] = {""}  }, jV          = {                ["e"] = {"i"}                                                               , ["u"] = {"i"} }, i3          = {["a"] = {""} , ["e"] = {""}       ,                 ["ie"] = {""}      , ["oe"] = {"o"}                     }, i3_I        = {["a"] = {""} , ["e"] = {""}       ,                 ["ie"] = {"", "I"} , ["oe"] = {"o"}                     }, j3          = {["a"] = {"i"}, ["e"] = {"i"}      ,                 ["ie"] = {"i"}     , ["oe"] = {"o"}                     }, j3_I        = {["a"] = {"i"}, ["e"] = {"i"}      ,                 ["ie"] = {"i", "I"}, ["oe"] = {"o"}                     }, e           = {                                                     ["ie"] = {"a", "L"}, ["oe"] = {"e", "U"}                }, e3          = {                                     ["i"] = {"e"}, ["ie"] = {"e", "L"}, ["oe"] = {"e", "U"}, ["u"] = {"e"} }, pres_1sg    = {                                     ["i"] = {"e"}, ["ie"] = {"a", "L"}                     , ["u"] = {"e"} }, pres_2sg    = {                ["e"] = {""}      , ["i"] = {""}  , ["ie"] = {"a", "L"}                     , ["u"] = {""}  }, pres_3sg    = {["a"] = {"oe"}, ["e"] = {"a", "L"}, ["i"] = {"ie"}, ["ie"] = {"a", "L"}, ["oe"] = {"e", "U"}, ["u"] = {"oe"}}, pres_1du_3pl = {               ["e"] = {"ie", "R"}, ["i"] = {"ie"}                                         , ["u"] = {"oe"}}, },	postprocess = function(form, vowel_effect) -- j > i when the vowel is dropped if form.uvowel == "" then form.ending = form.ending:gsub("^ji?", "i") end if vowel_effect == "L" then if form.svowel == "e" then form.svowel = "a" elseif form.svowel == "i" or form.svowel == "ï" then form.svowel = "æ" elseif form.svowel == "o" or form.svowel == "u" then form.svowel = "å" elseif form.svowel == "ae" then form.svowel = "aa" elseif form.svowel == "ie" or form.svowel == "ïe" then form.svowel = "ea" elseif form.svowel == "oe" or form.svowel == "ue" then form.svowel = "ua" elseif form.svowel == "åe" then form.svowel = "åa" end elseif vowel_effect == "R" then if form.svowel == "a" then form.svowel = "e" elseif form.svowel == "ï" then form.svowel = "i" elseif form.svowel == "o" then form.svowel = "u" elseif form.svowel == "aa" then form.svowel = "ae" elseif form.svowel == "ïe" then form.svowel = "ie" elseif form.svowel == "oe" then form.svowel = "ue" elseif form.svowel == "åa" then form.svowel = "åe" end elseif vowel_effect == "I" then if form.svowel == "ae" or form.svowel == "ie" then form.svowel = "ee" elseif form.svowel == "ue" or form.svowel == "åe" then form.svowel = "öö" end elseif vowel_effect == "U" then if form.svowel == "æ" then form.svowel = "y" elseif form.svowel == "a" or form.svowel == "å" then form.svowel = "o" elseif form.svowel == "aa" or form.svowel == "åa" then form.svowel = "åå" elseif form.svowel == "ea" then form.svowel = "yö" end end end, }

export.Stem = require("Module:smi-common").make_constructor(langdata)

return export