Mòdul:roa-oca-verb/cantar

De Viccionari

La documentació d'ús d'aquest mòdul es pot crear a Mòdul:roa-oca-verb/cantar/ús

-- Model de conjugació antiga cantar
local p = {}

function p.formes(infinitiu)
	local radical = string.sub(infinitiu, 1, -3)
	local radical0 = radical
	if radical:find("[iï]n$") then
		radical0 = mw.ustring.gsub(radical, "[iï]n$", "ín")
	elseif radical:find("i$") then
		radical0 = radical .. 'i' -- fiar > fii
	elseif radical:find("[aeiou]j$") then
		radical0 = mw.ustring.gsub(radical, "j$", "ig") -- pujar > puig
	end
	local radical_alt = radical
	if radical:find("[gq]$") then
		radical_alt = radical .. 'u'
	elseif radical:find("c$") then
		radical_alt = string.sub(infinitiu, 1, -4) .. 'qu'
	elseif mw.ustring.find(radical, "ç") then
		radical_alt = mw.ustring.sub(infinitiu, 1, -4) .. 'c'
	elseif radical:find("j$") then
		radical_alt = string.sub(infinitiu, 1, -4) .. 'g'
	end
	local forma = {}
	
	forma.ger = {}
	forma.ger[1] = {}
	forma.ger[1][1] = radical .. "ant"
	
	forma.part = {}
	forma.part[1] = {}
	forma.part[1]["m-s"] = radical .. "at"
	
	forma["pres-ind"] = {}
	forma["pres-ind"][1] = {}
	forma["pres-ind"][2] = {}
	forma["pres-ind"][1][1] = radical0
	forma["pres-ind"][1][2] = radical_alt .. "es"
	forma["pres-ind"][1][3] = radical .. "a"
	forma["pres-ind"][1][4] = radical .. "am"
	forma["pres-ind"][1][5] = radical .. "ats"
	forma["pres-ind"][2][5] = radical .. "au"
	forma["pres-ind"][1][6] = radical_alt .. "en"
	
	forma["imperf-ind"] = {}
	forma["imperf-ind"][1] = {}
	forma["imperf-ind"][1][1] = radical .. "ava"
	forma["imperf-ind"][1][2] = radical .. "aves"
	forma["imperf-ind"][1][3] = radical .. "ava"
	forma["imperf-ind"][1][4] = radical .. "àvem"
	forma["imperf-ind"][1][5] = radical .. "àvets"
	forma["imperf-ind"][1][6] = radical .. "aven"
	
	forma.pass = {}
	forma.pass[1] = {}
	forma.pass[2] = {}
	forma.pass[3] = {}
	forma.pass[1][1] = radical_alt .. "í"
	forma.pass[2][1] = radical_alt .. "é"
	forma.pass[1][2] = radical .. "ast"
	forma.pass[2][2] = radical_alt .. "ist"
	forma.pass[3][2] = radical .. "ares"
	forma.pass[1][3] = radical .. "à"
	forma.pass[1][4] = radical .. "am"
	forma.pass[2][4] = radical .. "àrem"
	forma.pass[1][5] = radical .. "às"
	forma.pass[2][5] = radical .. "àrets"
	forma.pass[3][5] = radical .. "àreu"
	forma.pass[1][6] = radical .. "aren"
	
	forma.fut = {}
	forma.fut[1] = {}
	forma.fut[2] = {}
	forma.fut[1][1] = radical .. "aré"
	forma.fut[1][2] = radical .. "aràs"
	forma.fut[1][3] = radical .. "arà"
	forma.fut[1][4] = radical .. "arem"
	forma.fut[1][5] = radical .. "arets"
	forma.fut[2][5] = radical .. "areu"
	forma.fut[1][6] = radical .. "aran"
	
	forma.cond = {}
	forma.cond[1] = {}
	forma.cond[2] = {}
	forma.cond[1][1] = radical .. "aria"
	forma.cond[1][2] = radical .. "aries"
	forma.cond[1][3] = radical .. "aria"
	forma.cond[1][4] = radical .. "aríem"
	forma.cond[1][5] = radical .. "aríets"
	forma.cond[2][5] = radical .. "aríeu"
	forma.cond[1][6] = radical .. "arien"
	
	forma["pres-subj"] = {}
	forma["pres-subj"][1] = {}
	forma["pres-subj"][2] = {}
	forma["pres-subj"][1][1] = radical0
	forma["pres-subj"][1][2] = (radical0:find("i[ig]$") and radical0 or radical) .. "s"
	forma["pres-subj"][1][3] = radical0
	forma["pres-subj"][1][4] = radical_alt .. "em"
	forma["pres-subj"][1][5] = radical_alt .. "ets"
	forma["pres-subj"][2][5] = radical_alt .. "eu"
	forma["pres-subj"][1][6] = radical_alt .. "en"
	
	forma["imperf-subj"] = {}
	forma["imperf-subj"][1] = {}
	forma["imperf-subj"][2] = {}
	forma["imperf-subj"][3] = {}
	forma["imperf-subj"][4] = {}
	forma["imperf-subj"][1][1] = radical .. "às"
	forma["imperf-subj"][2][1] = radical .. "ara"
	forma["imperf-subj"][1][2] = radical .. "asses"
	forma["imperf-subj"][2][2] = radical .. "ares"
	forma["imperf-subj"][1][3] = radical .. "às"
	forma["imperf-subj"][2][3] = radical .. "ara"
	forma["imperf-subj"][1][4] = radical .. "àssem"
	forma["imperf-subj"][2][4] = radical .. "àrem"
	forma["imperf-subj"][1][5] = radical .. "àssets"
	forma["imperf-subj"][2][5] = radical .. "àsseu"
	forma["imperf-subj"][3][5] = radical .. "àrets"
	forma["imperf-subj"][4][5] = radical .. "àreu"
	forma["imperf-subj"][1][6] = radical .. "assen"
	forma["imperf-subj"][2][6] = radical .. "aren"
	
	forma.imp = {}
	forma.imp[1] = {}
	forma.imp[2] = {}
	forma.imp[1][2] = forma["pres-ind"][1][3]
	forma.imp[1][3] = forma["pres-subj"][1][3]
	forma.imp[1][4] = forma["pres-subj"][1][4]
	forma.imp[1][5] = forma["pres-ind"][1][5]
	forma.imp[2][5] = forma["pres-ind"][2][5]
	forma.imp[1][6] = forma["pres-subj"][1][6]
	
	return forma
end

return p