Module:akk-conj/d/stem
Jump to navigation
Jump to search
- This module lacks a documentation subpage. Please create it.
- Useful links: root page • root page’s subpages • links • transclusions • testcases • sandbox
local common = require("Module:akk-common")
local function sound_stem(R, stems)
stems = stems or {}
stems.inf = stems.inf or R[1].."u"..R[2]..R[2].."u"..R[3]
stems.part = stems.part or "mu"..R[1].."a"..R[2]..R[2].."i"..R[3]
stems.adj = stems.adj or R[1].."u"..R[2]..R[2].."u"..R[3]
stems.dur1 = stems.dur1 or R[1].."a"..R[2]..R[2].."a"..R[3]
stems.dur2 = stems.dur2 or stems.dur1
stems.pret1 = stems.pret1 or R[1].."a"..R[2]..R[2].."i"..R[3]
stems.pret2 = stems.pret2 or stems.pret1
stems.perf1 = stems.perf1 or common.assimilate(R[1].."t").."a"..R[2]..R[2].."i"..R[3]
stems.perf2 = stems.perf2 or stems.perf1
stems.prec = stems.prec or R[1].."a"..R[2]..R[2].."i"..R[3]
stems.imp1 = stems.imp1 or R[1].."u"..R[2]..R[2].."i"..R[3]
stems.imp2 = stems.imp2 or stems.imp1
return stems
end
local function iii_weak(R, stems)
stems = stems or {}
stems.inf = stems.inf or R[1].."u"..R[2]..R[2].."û"
stems.part = stems.part or "mu"..R[1].."a"..R[2]..R[2].."û"
stems.adj = stems.adj or R[1].."u"..R[2]..R[2].."û"
stems.dur1 = stems.dur1 or R[1].."a"..R[2]..R[2].."a"
stems.dur2 = stems.dur2 or stems.dur1
stems.pret1 = stems.pret1 or R[1].."a"..R[2]..R[2].."i"
stems.pret2 = stems.pret2 or stems.pret1
stems.perf1 = stems.perf1 or common.assimilate(R[1].."t").."a"..R[2]..R[2].."i"
stems.perf2 = stems.perf2 or stems.perf1
stems.prec = stems.prec or R[1].."a"..R[2]..R[2].."i"
stems.imp1 = stems.imp1 or R[1].."u"..R[2]..R[2].."i"
stems.imp2 = stems.imp2 or stems.imp1
return stems
end
return function (roots, stems)
local is_weak = {
["a"] = true,
["e"] = true,
["i"] = true,
["u"] = true,
["'"] = true,
}
if is_weak[roots[3]] then
return iii_weak(roots, stems)
end
return sound_stem(roots, stems)
end