Module:dum-common

From Wiktionary, the free dictionary
Jump to navigation Jump to search
This module needs documentation.
Please document this module by describing its purpose and usage on the documentation page.

local export = {}


function export.checked(stem)
	local rest, vowel, cons = mw.ustring.match(stem, "^(.-)([aeiouâêîôûāēōë]+)([^aeiouâêîôûāēōë]+)$")
	
	if not rest then
		return stem
	end
	
	if mw.ustring.len(cons) == 1 and mw.ustring.len(vowel) == 1 then
		if mw.ustring.find(vowel, "[âêāē]") then
			vowel = vowel .. "e"
		elseif mw.ustring.find(vowel, "[iî]") then
			vowel = vowel .. "j"
		elseif mw.ustring.find(vowel, "[ôō]") then
			vowel = vowel .. "o"
		elseif mw.ustring.find(vowel, "[uû]") then
			vowel = vowel .. "u"
		end
	end
	
	cons = mw.ustring.gsub(cons, "(.)%1", "%1")
	cons = mw.ustring.gsub(cons, "c?k$", "c")
	
	return rest .. vowel .. cons
end


function export.devoiced(stem)
	local rest, cons = mw.ustring.match(stem, "^(.-)([^aeiouâêîôûāēōë]+)$")
	
	if not rest then
		return stem
	end
	
	cons = mw.ustring.gsub(cons, "(.)%1", "%1")
	cons = mw.ustring.gsub(cons, "ng$", "nc")
	cons = mw.ustring.gsub(cons, "[bdgv]", {["b"] = "p", ["d"] = "t", ["g"] = "ch", ["v"] = "f"})
	cons = mw.ustring.gsub(cons, "c?k$", "c")
	
	return rest .. cons
end


function export.final(stem)
	return export.devoiced(export.checked(stem))
end


return export