Modulo:La-decl-pron

La documentazione per questo modulo può essere creata in Modulo:La-decl-pron/man

local p = {}

function p.ladecl(frame)
	local noaccenti = require("Modulo:Latino").noaccenti --richiama il [[Modulo:Latino]], da utilizzarsi sotto per eliminare gli accenti
	pframe = frame:getParent()
	config = frame.args
	args = pframe.args
	tipo = args["tipo"] or ""
	tipo2 = args["tipo2"] or ""
	pron = args["pron"] or ""
	agg = args["agg"] or ""
	classe = ""; descrizionetipo = ""; descrizionetipo2 = ""
--prima di tutto trova il neutro, se il terzo parametro del template è definito o meno
	if args[3] ~= "0" then 
		neutro = args[3]
	else
		neutro = args[2]
	end
	maschile = frame.args[1] --il maschile invece è sempre uguale al primo parametro; il femminile non ha bisogno di essere specificato

--in base al neutro (secondo o terzo parametro del template), genera le varie forme flesse
	if args[3] > "0" then --se il pronome ha tre uscite
		if noaccenti(mw.ustring.sub(neutro, -4)) == "quod" then --per qui/quae/quod e derivati
			radice = mw.ustring.sub(neutro, 1, -3)
			radice2 = mw.ustring.sub(neutro, 1, -5)
			nom_s_m = p.wiki(radice.. "ī"); nom_s_f = p.wiki(radice.. "ae"); nom_s_n = p.wiki(neutro);
			gen_s_m = p.wiki(radice2.. "cuius"); gen_s_f = p.wiki(radice2.. "cuius"); gen_s_n = p.wiki(radice2.. "cuius");
			dat_s_m = p.wiki(radice2.. "cui"); dat_s_f = p.wiki(radice2.. "cui"); dat_s_n = p.wiki(radice2.. "cui");
			acc_s_m = p.wiki(radice.. "em"); acc_s_f = p.wiki(radice.. "am"); acc_s_n = p.wiki(neutro);
			voc_s_m = p.wiki(maschile); voc_s_f = p.wiki(radice.. "ae"); voc_s_n = p.wiki(neutro);
			abl_s_m = p.wiki(radice.. "ō"); abl_s_f = p.wiki(radice.. "ā"); abl_s_n = p.wiki(radice.. "ō")
			--PLURALI
			nom_p_m = p.wiki(radice.. "ī"); nom_p_f = p.wiki(radice.. "ae"); nom_p_n = p.wiki(radice.. "ae");
			gen_p_m = p.wiki(radice.. "ōrum"); gen_p_f = p.wiki(radice.. "ārum"); gen_p_n = p.wiki(radice.. "ōrum");
			dat_p_m = p.wiki(radice.. "ĭbus"); dat_p_f = p.wiki(radice.. "ĭbus"); dat_p_n = p.wiki(radice.. "ĭbus");
			acc_p_m = p.wiki(radice.. "ōs"); acc_p_f = p.wiki(radice.. "ās"); acc_p_n = p.wiki(radice.. "ae");
			voc_p_m = p.wiki(radice.. "ēs"); voc_p_f = p.wiki(radice.. "ēs"); voc_p_n = p.wiki(radice.. "ĭa");
			abl_p_m = p.wiki(radice.. "ĭbus"); abl_p_f = p.wiki(radice.. "ĭbus"); abl_p_n = p.wiki(radice.. "ĭbus")
		elseif noaccenti(mw.ustring.sub(neutro, -4)) == "quid" then --per quis/quis/quid e derivati
			radice = mw.ustring.sub(neutro, 1, -3)
			radice2 = mw.ustring.sub(neutro, 1, -5)
			nom_s_m = p.wiki(radice.. "is"); nom_s_f = p.wiki(radice.. "is"); nom_s_n = p.wiki(neutro);
			gen_s_m = p.wiki(radice2.. "cuius"); gen_s_f = p.wiki(radice2.. "cuius"); gen_s_n = p.wiki(radice2.. "cuius");
			dat_s_m = p.wiki(radice2.. "cui"); dat_s_f = p.wiki(radice2.. "cui"); dat_s_n = p.wiki(radice2.. "cui");
			acc_s_m = p.wiki(radice.. "em"); acc_s_f = p.wiki(radice.. "em"); acc_s_n = p.wiki(neutro);
			voc_s_m = p.wiki(maschile); voc_s_f = p.wiki(radice.. "ae"); voc_s_n = p.wiki(neutro);
			abl_s_m = p.wiki(radice.. "ō"); abl_s_f = p.wiki(radice.. "ā"); abl_s_n = p.wiki(radice.. "ō")
			--PLURALI
			nom_p_m = p.wiki(radice.. "ī"); nom_p_f = p.wiki(radice.. "ae"); nom_p_n = p.wiki(radice.. "ae");
			gen_p_m = p.wiki(radice.. "ōrum"); gen_p_f = p.wiki(radice.. "ārum"); gen_p_n = p.wiki(radice.. "ōrum");
			dat_p_m = p.wiki(radice.. "ĭbus"); dat_p_f = p.wiki(radice.. "ĭbus"); dat_p_n = p.wiki(radice.. "ĭbus");
			acc_p_m = p.wiki(radice.. "ōs"); acc_p_f = p.wiki(radice.. "ās"); acc_p_n = p.wiki(radice.. "ae");
			voc_p_m = p.wiki(radice.. "ēs"); voc_p_f = p.wiki(radice.. "ēs"); voc_p_n = p.wiki(radice.. "ĭa");
			abl_p_m = p.wiki(radice.. "ĭbus"); abl_p_f = p.wiki(radice.. "ĭbus"); abl_p_n = p.wiki(radice.. "ĭbus")
		else --per tutti gli altri, che seguono la coniugazione degli aggettivi di I classe
			classe = "1"
			radice = mw.ustring.sub(neutro, 1, -3)
			--SINGOLARI
			nom_s_m = p.wiki(maschile); nom_s_f = p.wiki(radice.. "ă"); nom_s_n = p.wiki(neutro);
			gen_s_m = p.wiki(radice.. "ī"); gen_s_f = p.wiki(radice.. "ae"); gen_s_n = p.wiki(radice.. "ī");
			dat_s_m = p.wiki(radice.. "ō"); dat_s_f = p.wiki(radice.. "ae"); dat_s_n = p.wiki(radice.. "ō");
			acc_s_m = p.wiki(radice.. "ŭm"); acc_s_f = p.wiki(radice.. "ăm"); acc_s_n = p.wiki(neutro);
			voc_s_m = p.wiki(maschile); voc_s_f = p.wiki(radice.. "ă"); voc_s_n = p.wiki(neutro)
			abl_s_m = p.wiki(radice.. "ō"); abl_s_f = p.wiki(radice.. "ā"); abl_s_n = p.wiki(radice.. "ō");
			--PLURALI
			nom_p_m = p.wiki(radice.. "ī"); nom_p_f = p.wiki(radice.. "ae"); nom_p_n = p.wiki(radice.. "ă");
			gen_p_m = p.wiki(radice.. "ōrum"); gen_p_f = p.wiki(radice.. "ārum"); gen_p_n = p.wiki(radice.. "ōrum");
			dat_p_m = p.wiki(radice.. "īs"); dat_p_f = p.wiki(radice.. "īs"); dat_p_n = p.wiki(radice.. "īs");
			acc_p_m = p.wiki(radice.. "ōs"); acc_p_f = p.wiki(radice.. "ās"); acc_p_n = p.wiki(radice.. "ă");
			voc_p_m = p.wiki(radice.. "ī"); voc_p_f = p.wiki(radice.. "ae"); voc_p_n = p.wiki(radice.. "ă");
			abl_p_m = p.wiki(radice.. "īs"); abl_p_f = p.wiki(radice.. "īs"); abl_p_n = p.wiki(radice.. "īs");
		end
	else --se il pronome ha due uscite
		classe = "2"
		radice = mw.ustring.sub(neutro, 1, -2)
		nom_s_m = p.wiki(maschile); nom_s_f = p.wiki(radice.. "is"); nom_s_n = p.wiki(neutro);
		gen_s_m = p.wiki(radice.. "is"); gen_s_f = p.wiki(radice.. "is"); gen_s_n = p.wiki(radice.. "is");
		dat_s_m = p.wiki(radice.. "ī"); dat_s_f = p.wiki(radice.. "ī"); dat_s_n = p.wiki(radice.. "ī");
		acc_s_m = p.wiki(radice.. "em"); acc_s_f = p.wiki(radice.. "em"); acc_s_n = p.wiki(neutro);
		voc_s_m = p.wiki(maschile); voc_s_f = p.wiki(radice.. "is"); voc_s_n = p.wiki(neutro);
		abl_s_m = p.wiki(radice.. "ī"); abl_s_f = p.wiki(radice.. "ī"); abl_s_n = p.wiki(radice.. "ī");
		--PLURALI
		nom_p_m = p.wiki(radice.. "ēs"); nom_p_f = p.wiki(radice.. "ēs"); nom_p_n = p.wiki(radice.. "ĭa");
		gen_p_m = p.wiki(radice.. "ĭum"); gen_p_f = p.wiki(radice.. "ĭum"); gen_p_n = p.wiki(radice.. "ĭum");
		dat_p_m = p.wiki(radice.. "ĭbus"); dat_p_f = p.wiki(radice.. "ĭbus"); dat_p_n = p.wiki(radice.. "ĭbus");
		acc_p_m = p.wiki(radice.. "ēs"); acc_p_f = p.wiki(radice.. "ēs"); acc_p_n = p.wiki(radice.. "ĭa");
		voc_p_m = p.wiki(radice.. "ēs"); voc_p_f = p.wiki(radice.. "ēs"); voc_p_n = p.wiki(radice.. "ĭa");
		abl_p_m = p.wiki(radice.. "ĭbus"); abl_p_f = p.wiki(radice.. "ĭbus"); abl_p_n = p.wiki(radice.. "ĭbus");
	end
	
	-- Recupera le eventuali forme irregolari o varianti, rimpiazziandole o aggiungendole a quelle standard
	--SINGOLARI
	nom_s_m = p.over(nom_s_m,args["nomsm"]); nom_s_m2 = p.wiki(args["nomsm2"]) nom_s_m = p.alts(nom_s_m, nom_s_m2)
	nom_s_f = p.over(nom_s_f,args["nomsf"]); nom_s_f2 = p.wiki(args["nomsf2"]) nom_s_f = p.alts(nom_s_f, nom_s_f2)
	nom_s_n = p.over(nom_s_n,args["nomsn"]); nom_s_n2 = p.wiki(args["nomsn2"]) nom_s_n = p.alts(nom_s_n, nom_s_n2)
	gen_s_m = p.over(gen_s_m,args["gensm"]); gen_s_m2 = p.wiki(args["gensm2"]) gen_s_m = p.alts(gen_s_m, gen_s_m2)
	gen_s_f = p.over(gen_s_f,args["gensf"]); gen_s_f2 = p.wiki(args["gensf2"]) gen_s_f = p.alts(gen_s_f, gen_s_f2)
	gen_s_n = p.over(gen_s_n,args["gensn"]); gen_s_n2 = p.wiki(args["gensn2"]) gen_s_n = p.alts(gen_s_n, gen_s_n2)
	dat_s_m = p.over(dat_s_m,args["datsm"]); dat_s_m2 = p.wiki(args["datsm2"]) dat_s_m = p.alts(dat_s_m, dat_s_m2)
	dat_s_f = p.over(dat_s_f,args["datsf"]); dat_s_f2 = p.wiki(args["datsf2"]) dat_s_f = p.alts(dat_s_f, dat_s_f2)
	dat_s_n = p.over(dat_s_n,args["datsn"]); dat_s_n2 = p.wiki(args["datsn2"]) dat_s_n = p.alts(dat_s_n, dat_s_n2)
	acc_s_m = p.over(acc_s_m,args["accsm"]); acc_s_m2 = p.wiki(args["accsm2"]) acc_s_m = p.alts(acc_s_m, acc_s_m2)
	acc_s_f = p.over(acc_s_f,args["accsf"]); acc_s_f2 = p.wiki(args["accsf2"]) acc_s_f = p.alts(acc_s_f, acc_s_f2)
	acc_s_n = p.over(acc_s_n,args["accsn"]); acc_s_n2 = p.wiki(args["accsn2"]) acc_s_n = p.alts(acc_s_n, acc_s_n2)
	voc_s_m = p.over(voc_s_m,args["vocsm"]); voc_s_m2 = p.wiki(args["vocsm2"]) voc_s_m = p.alts(voc_s_m, voc_s_m2)
	voc_s_f = p.over(voc_s_f,args["vocsf"]); voc_s_f2 = p.wiki(args["vocsf2"]) voc_s_f = p.alts(voc_s_f, voc_s_f2)
	voc_s_n = p.over(voc_s_n,args["vocsn"]); voc_s_n2 = p.wiki(args["vocsn2"]) voc_s_n = p.alts(voc_s_n, voc_s_n2)
	abl_s_m = p.over(abl_s_m,args["ablsm"]); abl_s_m2 = p.wiki(args["ablsm2"]) abl_s_m = p.alts(abl_s_m, abl_s_m2)
	abl_s_f = p.over(abl_s_f,args["ablsf"]); abl_s_f2 = p.wiki(args["ablsf2"]) abl_s_f = p.alts(abl_s_f, abl_s_f2)
	abl_s_n = p.over(abl_s_n,args["ablsn"]); abl_s_n2 = p.wiki(args["ablsn2"]) abl_s_n = p.alts(abl_s_n, abl_s_n2)
	--PLURALI
	nom_p_m = p.over(nom_p_m,args["nompm"]); nom_p_m2 = p.wiki(args["nompm2"]) nom_p_m = p.alts(nom_p_m, nom_p_m2)
	nom_p_f = p.over(nom_p_f,args["nompf"]); nom_p_f2 = p.wiki(args["nompf2"]) nom_p_f = p.alts(nom_p_f, nom_p_f2)
	nom_p_n = p.over(nom_p_n,args["nompn"]); nom_p_n2 = p.wiki(args["nompn2"]) nom_p_n = p.alts(nom_p_n, nom_p_n2)
	gen_p_m = p.over(gen_p_m,args["genpm"]); gen_p_m2 = p.wiki(args["genpm2"]) gen_p_m = p.alts(gen_p_m, gen_p_m2)
	gen_p_f = p.over(gen_p_f,args["genpf"]); gen_p_f2 = p.wiki(args["genpf2"]) gen_p_f = p.alts(gen_p_f, gen_p_f2)
	gen_p_n = p.over(gen_p_n,args["genpn"]); gen_p_n2 = p.wiki(args["genpn2"]) gen_p_n = p.alts(gen_p_n, gen_p_n2)
	dat_p_m = p.over(dat_p_m,args["datpm"]); dat_p_m2 = p.wiki(args["datpm2"]) dat_p_m = p.alts(dat_p_m, dat_p_m2)
	dat_p_f = p.over(dat_p_f,args["datpf"]); dat_p_f2 = p.wiki(args["datpf2"]) dat_p_f = p.alts(dat_p_f, dat_p_f2)
	dat_p_n = p.over(dat_p_n,args["datpn"]); dat_p_n2 = p.wiki(args["datpn2"]) dat_p_n = p.alts(dat_p_n, dat_p_n2)
	acc_p_m = p.over(acc_p_m,args["accpm"]); acc_p_m2 = p.wiki(args["accpm2"]) acc_p_m = p.alts(acc_p_m, acc_p_m2)
	acc_p_f = p.over(acc_p_f,args["accpf"]); acc_p_f2 = p.wiki(args["accpf2"]) acc_p_f = p.alts(acc_p_f, acc_p_f2)
	acc_p_n = p.over(acc_p_n,args["accpn"]); acc_p_n2 = p.wiki(args["accpn2"]) acc_p_n = p.alts(acc_p_n, acc_p_n2)
	voc_p_m = p.over(voc_p_m,args["vocpm"]); voc_p_m2 = p.wiki(args["vocpm2"]) voc_p_m = p.alts(voc_p_m, voc_p_m2)
	voc_p_f = p.over(voc_p_f,args["vocpf"]); voc_p_f2 = p.wiki(args["vocpf2"]) voc_p_f = p.alts(voc_p_f, voc_p_f2)
	voc_p_n = p.over(voc_p_n,args["vocpn"]); voc_p_n2 = p.wiki(args["vocpn2"]) voc_p_n = p.alts(voc_p_n, voc_p_n2)
	abl_p_m = p.over(abl_p_m,args["ablpm"]); abl_p_m2 = p.wiki(args["ablpm2"]) abl_p_m = p.alts(abl_p_m, abl_p_m2)
	abl_p_f = p.over(abl_p_f,args["ablpf"]); abl_p_f2 = p.wiki(args["ablpf2"]) abl_p_f = p.alts(abl_p_f, abl_p_f2)
	abl_p_n = p.over(abl_p_n,args["ablpn"]); abl_p_n2 = p.wiki(args["ablpn2"]) abl_p_n = p.alts(abl_p_n, abl_p_n2)
	
--stringa "descrizione", costuisce il "cappello" della tabella di coniugazione; varia a seconda se sia specificato il parametro "agg" e il parametro "tipo"
	descrizione = ""; descrizionetipo = ""; descrizioneagg = ""
	if pron == "no" then descrizionepron = "" else descrizionepron = "pronome" end
	if tipo == "dimostrativo" then descrizionetipo = " dimostrativo" end --per i pronomi DIMOSTRATIVI
	if tipo == "interrogativo" then descrizionetipo = " interrogativo" end --per i pronomi INTERROGATIVI
	if tipo == "possessivo" then descrizionetipo = " possessivo" end --per i pronomi POSSESSIVI
	if tipo == "relativo" then descrizionetipo = " relativo" end --per i pronomi RELATIVI
	if tipo == "definito" then descrizionetipo = " definito" end --per i pronomi DEFINITI
	if tipo == "indefinito" then descrizionetipo = " indefinito" end --per i pronomi INDEFINITI
	--TIPO2: per aggiungere una seconda descrizione
	if tipo2 == "dimostrativo" then descrizionetipo2 = "-dimostrativo" end --seconda possibilità per i pronomi DIMOSTRATIVI
	if tipo2 == "interrogativo" then descrizionetipo2 = "-interrogativo" end --seconda possibilità per i pronomi INTERROGATIVI
	if tipo2 == "possessivo" then descrizionetipo2 = "-possessivo" end --seconda possibilità per i pronomi POSSESSIVI
	if tipo2 == "relativo" then descrizionetipo2 = "-relativo" end --seconda possibilità per i pronomi RELATIVI
	if tipo == "definito" then descrizionetipo = " definito" end --per i pronomi DEFINITI
	if tipo2 == "indefinito" then descrizionetipo2 = "-indefinito" end --seconda possibilità per i pronomi INDEFINITI
	--fix per i pronomi che non sono aggettivi e viceversa
	if pron == "no" then descrizioneagg = "aggettivo" else descrizioneagg = "/aggettivo" end
	if agg ~= "si" then descrizioneagg = "" end
	descrizione = descrizionepron .. descrizioneagg .. descrizionetipo .. descrizionetipo2

	if pron == "no" then
		categoriapron = ""
	else
		categoriapron = "[[Categoria:Pronomi in latino]]"
	end
	if agg == "si" then
		categoriaagg = "[[Categoria:Aggettivi in latino]]" .. "[[Categoria:Aggettivi pronominali in latino]]"
	else categoriaagg = "" end
	
	categoria = categoriaagg .. categoriapron

--costruisce le tabelle di coniugazione; attenzione che sono due tabelle distinte per gli aggettivi a tre e a due uscite (farlo con una tabella sola era un casino di "if")
if frame.args[3] ~= "0" then --TABELLA A TRE COLONNE
	decl = [[{|border="1" cellpadding="2" style="float:right; margin:1em 1em 1em 0;background:#f0fff0; color:#000;border:1px #aaaaaa solid;border-collapse:collapse"]].."\n"
	decl = decl.. "|+".. descrizione .. categoria .. "\n"
	decl = decl.. [[|- style="border: 1px solid #f0fff0"]].."\n"	
	decl = decl.. [[|colspan=4; bgcolor="#add8e6" color="#000" style="text-align:center"|'''singolare''']].."\n"
	decl = decl.. [[|- style="border: 1px solid #f0fff0"]].."\n"
	decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0"|]].."\n"
	decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0"|''maschile'']].."\n"
	decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0"|''femminile'']].."\n"
	decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0"|''neutro'']].."\n"
	decl = decl.. [[|- style="border: 1px solid #f0fff0"]].."\n"
	decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0"| ''nominativo'']].."\n"
	decl = decl.. [[|style="border: 1px solid #f0fff0"|]].. nom_s_m.. '\n'.. [[|style="border: 1px solid #f0fff0"|]].. nom_s_f.. '\n'.. [[|style="border: 1px solid #f0fff0"|]].. nom_s_n.. '\n'
	decl = decl.. "|-".."\n"
	decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0"| ''genitivo'']].."\n"
	decl = decl.. [[|style="border: 1px solid #f0fff0"|]].. gen_s_m..  '\n'.. [[|style="border: 1px solid #f0fff0"|]].. gen_s_f..  '\n'.. [[|style="border: 1px solid #f0fff0"|]].. gen_s_n.. '\n'
	decl = decl.. [[|- style="border: 1px solid #f0fff0"]].."\n"
	decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0"| ''dativo'']].."\n"
	decl = decl.. [[|style="border: 1px solid #f0fff0"|]].. dat_s_m..  '\n'.. [[|style="border: 1px solid #f0fff0"|]].. dat_s_f..  '\n'.. [[|style="border: 1px solid #f0fff0"|]].. dat_s_n.. '\n'
	decl = decl.. [[|- style="border: 1px solid #f0fff0"]].."\n"
	decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0"| ''accusativo'']].."\n"
	decl = decl.. [[|style="border: 1px solid #f0fff0"|]].. acc_s_m..  '\n'.. [[|style="border: 1px solid #f0fff0"|]].. acc_s_f..  '\n'.. [[|style="border: 1px solid #f0fff0"|]].. acc_s_n.. '\n'
	decl = decl.. [[|- style="border: 1px solid #f0fff0"]].."\n"
	if args["vocsm"] == nil then
	decl = decl .."|-".."\n"
	else
	decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0"| ''vocativo'']].."\n"
	decl = decl.. [[|style="border: 1px solid #f0fff0"|]].. voc_s_m..  '\n'.. [[|style="border: 1px solid #f0fff0"|]].. voc_s_f..  '\n'.. [[|style="border: 1px solid #f0fff0"|]].. voc_s_n.. '\n'
	decl = decl.. [[|- style="border: 1px solid #f0fff0"]].."\n"
	decl = decl .."|-".."\n"
	end
	decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0"| ''ablativo'']].."\n"
	decl = decl.. [[|style="border: 1px solid #f0fff0"|]].. abl_s_m..  '\n'.. [[|style="border: 1px solid #f0fff0"|]].. abl_s_f..  '\n'.. [[|style="border: 1px solid #f0fff0"|]].. abl_s_n.. '\n'
	decl = decl.. [[|- style="border: 1px solid #f0fff0"]].."\n"
	decl = decl.. [[|colspan=4; bgcolor="#add8e6" color="#000"style="text-align:center"|'''plurale''']].."\n"
	decl = decl.. [[|- style="border: 1px solid #f0fff0"]].."\n"
	decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0"|]].."\n"
	decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0"|''maschile'']].."\n"
	decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0"|''femminile'']].."\n"
	decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0"|''neutro'']].."\n"
	decl = decl.. [[|- style="border: 1px solid #f0fff0"]].."\n"
	decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0"| ''nominativo'']].."\n"
	decl = decl.. [[|style="border: 1px solid #f0fff0"|]].. nom_p_m..  '\n'.. [[|style="border: 1px solid #f0fff0"|]].. nom_p_f..  '\n'.. [[|style="border: 1px solid #f0fff0"|]].. nom_p_n.. '\n'
	decl = decl.. [[|- style="border: 1px solid #f0fff0"]].."\n"
	decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0"| ''genitivo'']].."\n"
	decl = decl.. [[|style="border: 1px solid #f0fff0"|]].. gen_p_m..  '\n'.. [[|style="border: 1px solid #f0fff0"|]].. gen_p_f..  '\n'.. [[|style="border: 1px solid #f0fff0"|]].. gen_p_n.. '\n'
	decl = decl.. [[|- style="border: 1px solid #f0fff0"]].."\n"
	decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0"| ''dativo'']].."\n"
	decl = decl.. [[|style="border: 1px solid #f0fff0"|]].. dat_p_m..  '\n'.. [[|style="border: 1px solid #f0fff0"|]].. dat_p_f..  '\n'.. [[|style="border: 1px solid #f0fff0"|]].. dat_p_n.. '\n'
	decl = decl.. [[|- style="border: 1px solid #f0fff0"]].."\n"
	decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0"| ''accusativo'']].."\n"
	decl = decl.. [[|style="border: 1px solid #f0fff0"|]].. acc_p_m..  '\n'.. [[|style="border: 1px solid #f0fff0"|]].. acc_p_f..  '\n'.. [[|style="border: 1px solid #f0fff0"|]].. acc_p_n.. '\n'
	decl = decl.. [[|- style="border: 1px solid #f0fff0"]].."\n"
	if args["vocsm"] == nil then
	decl = decl .."|-".."\n"
	else
	decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0"| ''vocativo'']].."\n"
	decl = decl.. [[|style="border: 1px solid #f0fff0"|]].. voc_p_m..  '\n'.. [[|style="border: 1px solid #f0fff0"|]].. voc_p_f..  '\n'.. [[|style="border: 1px solid #f0fff0"|]].. voc_p_n.. '\n'
	decl = decl.. [[|- style="border: 1px solid #f0fff0"]].."\n"
	decl = decl .."|-".."\n"
	end
	decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0"| ''ablativo'']].."\n"
	decl = decl.. [[|style="border: 1px solid #f0fff0"|]].. abl_p_m..  '\n'.. [[|style="border: 1px solid #f0fff0"|]].. abl_p_f..  '\n'.. [[|style="border: 1px solid #f0fff0"|]].. abl_p_n.. '\n'
	decl = decl.. "|-".."\n"
	decl = decl.. "|}"

else --TABELLA A DUE COLONNE
	decl = [[{|border="1" cellpadding="2" style="float:right; margin:1em 1em 1em 0;background:#f0fff0;color:#000;border:1px #aaaaaa solid;border-collapse:collapse"]].."\n"
	decl = decl.. "|+".. descrizione .. categoria .. "\n"
	decl = decl.. [[|- style="border: 1px solid #f0fff0"]].."\n"	
	decl = decl.. [[|colspan=4; bgcolor="#add8e6" color="#000" style="text-align:center""|'''singolare''']].."\n"
	decl = decl.. "|-".."\n"
	decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0;|]].."\n"
	decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0;|''masc./fem.'']].."\n"
	decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0;|''neutro'']].."\n"
	decl = decl.. "|-".."\n"
	decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0;| ''nominativo'']].."\n"
	decl = decl.. [[|style="border: 1px solid #f0fff0"|]].. nom_s_m.. '\n'.. [[|style="border: 1px solid #f0fff0"|]].. nom_s_n.. '\n'
	decl = decl.. "|-".."\n"
	decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0;| ''genitivo'']].."\n"
	decl = decl.. [[|style="border: 1px solid #f0fff0"|]].. gen_s_m.. '\n'.. [[|style="border: 1px solid #f0fff0"|]].. gen_s_n.. '\n'
	decl = decl.. "|-".."\n"
	decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0;| ''dativo'']].."\n"
	decl = decl.. [[|style="border: 1px solid #f0fff0"|]].. dat_s_m.. '\n'.. [[|style="border: 1px solid #f0fff0"|]].. dat_s_n.. '\n'
	decl = decl.. "|-".."\n"
	decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0;| ''accusativo'']].."\n"
	decl = decl.. [[|style="border: 1px solid #f0fff0"|]].. acc_s_m.. '\n'.. [[|style="border: 1px solid #f0fff0"|]].. acc_s_n.. '\n'
	decl = decl.. "|-".."\n"
	if args["vocsm"] == nil then
	decl = decl .."|-".."\n"
	else
	decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0"| ''vocativo'']].."\n"
	decl = decl.. [[|style="border: 1px solid #f0fff0"|]].. voc_s_m..  '\n'.. [[|style="border: 1px solid #f0fff0"|]].. voc_s_f..  '\n'.. [[|style="border: 1px solid #f0fff0"|]].. voc_s_n.. '\n'
	decl = decl.. [[|- style="border: 1px solid #f0fff0"]].."\n"
	decl = decl .."|-".."\n"
	end
	decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0;| ''ablativo'']].."\n"
	decl = decl.. [[|style="border: 1px solid #f0fff0"|]].. abl_s_m.. '\n'.. [[|style="border: 1px solid #f0fff0"|]].. abl_s_n.. '\n'
	decl = decl.. [[|- style="border: 1px solid #f0fff0"]].."\n"
	decl = decl.. [[|colspan=4; bgcolor="#add8e6" color="#000" style="text-align:center""|'''plurale''']].."\n"
	decl = decl.. "|-".."\n"
	decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0;|]].."\n"
	decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0;|''masc./fem.'']].."\n"
	decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0;|''neutro'']].."\n"
	decl = decl.. "|-".."\n"
	decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0;| ''nominativo'']].."\n"
	decl = decl.. [[|style="border: 1px solid #f0fff0"|]].. nom_p_m.. '\n'.. [[|style="border: 1px solid #f0fff0"|]].. nom_p_n.. '\n'
	decl = decl.. "|-".."\n"
	decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0;| ''genitivo'']].."\n"
	decl = decl.. [[|style="border: 1px solid #f0fff0"|]].. gen_p_m.. '\n'.. [[|style="border: 1px solid #f0fff0"|]].. gen_p_n.. '\n'
	decl = decl.. "|-".."\n"
	decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0;| ''dativo'']].."\n"
	decl = decl.. [[|style="border: 1px solid #f0fff0"|]].. dat_p_m.. '\n'.. [[|style="border: 1px solid #f0fff0"|]].. dat_p_n.. '\n'
	decl = decl.. "|-".."\n"
	decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0;| ''accusativo'']].."\n"
	decl = decl.. [[|style="border: 1px solid #f0fff0"|]].. acc_p_m.. '\n'.. [[|style="border: 1px solid #f0fff0"|]].. acc_p_n.. '\n'
	decl = decl.. "|-".."\n"
	if args["vocsm"] == nil then
	decl = decl .."|-".."\n"
	else
	decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0"| ''vocativo'']].."\n"
	decl = decl.. [[|style="border: 1px solid #f0fff0"|]].. voc_p_m..  '\n'.. [[|style="border: 1px solid #f0fff0"|]].. voc_p_f..  '\n'.. [[|style="border: 1px solid #f0fff0"|]].. voc_p_n.. '\n'
	decl = decl.. [[|- style="border: 1px solid #f0fff0"]].."\n"
	decl = decl .."|-".."\n"
	end
	decl = decl.. [[!bgcolor="#87cefa" color="#000" style="border: 1px solid #f0fff0;| ''ablativo'']].."\n"
	decl = decl.. [[|style="border: 1px solid #f0fff0"|]].. abl_p_m.. '\n'.. [[|style="border: 1px solid #f0fff0"|]].. abl_p_n.. '\n'
	decl = decl.. "|-".."\n"
	decl = decl.. "|}"
end

return decl
end

function p.over(x,over)
-- Utilizzato all'interno della funzione principale
-- Rimpiazza una forma flessa standard con quella eventualmente indicata nel template (se quest'ultimo è un link rosso, aggiunge anche la relativa categoria)
	local noaccenti = require("Modulo:Latino").noaccenti
    if over == nil then return x end
    if over < "a" then return 'n.e.' end
	if over >= "a" then
		local over2 = noaccenti(over)
		if mw.title.new(over2).exists == false then 
		RedCat = "[[Categoria:Aggettivi latini con forme da scrivere|".. mw.title.getCurrentTitle().subpageText.. "]] "
		else
		RedCat = ""
		end
		if over2 == mw.title.getCurrentTitle().text then 
			return "'''".. over.. "'''"
		else
			return "[[" .. over2 .. "#Latino|" .. over .. "]]".. RedCat
		end
	end
end

function p.wiki(x)
-- Utilizzato all'interno della funzione principale
    local noaccenti = require("Modulo:Latino").noaccenti
    if x == nil then return " " end
    if x == "" then return " " end
    -- aggiunge la categoria link rossi
    	if 	x >= "0" then 
    		local y = noaccenti(x) 
       		if mw.title.new(y).exists == false then
    		RedCat = "[[Categoria:Aggettivi latini con forme da scrivere|".. mw.title.getCurrentTitle().subpageText.. "]]"
        	else
    		RedCat = ""
			end
		-- Rende il suo argomento un wikilink, restituendo ad es. "[[laudo#Latino|lăudō]], o lo rende nullo se non definito (per facilitare la concatenazione)
		if y == mw.title.getCurrentTitle().text then return "'''".. x.. "'''" 
		else return "[[" .. y .. "#Latino|" .. x .. "]]".. RedCat end
		else
		return " "
		end
	end
	
function p.alts(x,y)
-- Utilizzato all'interno della funzione principale
-- Aggiunge le eventuali forme alternative, se specificate nel template, separandole da quelle base con una virgola
	if y == nil then return x end
	if y >= "0" then return x .. ", " .. y end
	return x
end

return p