Module:rad-stem/templates

Underlies:


local export = {}
local getArgs = require('Module:Arguments').getArgs

local m_stem = require("Module:rad-stem")
local m_parameters = require("Module:parameters")
local m_links = require("Module:links")
local m_languages = require("Module:languages")
local m_ipa = require("Module:rad-IPA")

local C = "bcdðfghħjĵkķlmnņpqrsștvwxzþ°"

local format_table = {}

function add(code)
	table.insert(format_table, code)
end

function tr()
	table.insert(format_table, "<tr>")	
end

function tr_()
	table.insert(format_table, "</tr>")	
end

function _tr()
	table.insert(format_table, "</tr>")	
	table.insert(format_table, "<tr>")	
end
	
function th(data, rowspan, colspan)
	local to_add = "<th"
	if rowspan and rowspan~=1 then to_add = to_add .. " rowspan=" .. rowspan end
	if colspan and colspan~=1 then to_add = to_add .. " colspan=" .. colspan end
	to_add = to_add .. ">" .. data .. "</th>"
	add(to_add)
end

function td(data, rowspan, colspan)
	local to_add = "<td"
	if rowspan and rowspan~=1 then to_add = to_add .. " rowspan=" .. rowspan end
	if colspan and colspan~=1 then to_add = to_add .. " colspan=" .. colspan end
	to_add = to_add .. ">" .. data .. "</td>"
	add(to_add)
end

function get_stems(args)
	local shifted = {"noun", "_"}
	
	local i = 1
	while args[i] do
		shifted[i+2] = args[i]
		i = i + 1
	end
	
	return m_stem.getNounStem(shifted)
end

function break_adj(adj)
	local temp = adj

	temp = mw.ustring.gsub(temp, "([" .. C .. "])([" .. C .. "])íș$", "%1%2ieș")
	temp = mw.ustring.gsub(temp, "([jșxķ])íș$", "%1ieș")
	temp = mw.ustring.gsub(temp, "(°)", "")
	temp = mw.ustring.gsub(temp, "(íș)$", "jeș")
	temp = mw.ustring.gsub(temp, "(úș)$", "uoș")
	temp = mw.ustring.gsub(temp, "(ýș)$", "yeș")
	temp = mw.ustring.gsub(temp, "(oș)$", "uș")

	return temp
end

function rad_link(word)
	return m_links.full_link{
    term = word,
    language = m_languages.get_by_code("rad")
}
end

function rad_IPA(word)
	local IPA = m_ipa.generate{
		word,
		"format",
		"nolarge"
	}
	return "<span style=\"color:dimgrey\">" .. IPA .. "</span>" 
end

function rad_link_IPA(word)
	if type(word) == "string" then
		return rad_link(word) .. "<br>" .. rad_IPA(word)
	elseif type(word) == "table" then
		local links = {}
		local IPAs = {}
		for _, i in ipairs(word) do
			local new_link = rad_link(i['word'])
			if i['note'] then new_link = new_link .. " <small>(" .. i['note'] .. ")</small>" end
			table.insert(links, new_link)
			table.insert(IPAs, rad_IPA(i['word']))
		end
		return table.concat(links, ", ") .. "<br>" .. table.concat(IPAs, " ")
	else error("Incompatible input type for rad_link_IPA")
	end
end

function export.decline(frame)
	local args = getArgs(frame)
	local stem_gen = get_stems(args)
	local stems = {
		nom = args['nom'] or stem_gen.nom,
		voc = args['voc'] or stem_gen.voc,
		acc = args['acc'] or stem_gen.acc,
		dat = args['dat'] or stem_gen.dat,
		gen = args['gen'] or stem_gen.gen,
		ins = args['ins'] or stem_gen.ins,
		nompl = args['nompl'] or stem_gen.nompl,
		genpl = args['genpl'] or stem_gen.genpl,
		genpl_short = args['genpl_short'] or stem_gen.genpl_short,
		['type'] = stem_gen['type'],
		}
	local adj = args['adj']
	local adj_broken = ""
	local adj_broken_e = ""
	if adj then
		if not mw.ustring.match(adj, "(ș)$") then error("All adjectives must end in -ș") end
		adj_broken = args['adjbreak'] or break_adj(adj) 
		adj_broken_e = mw.ustring.gsub(adj_broken, "(uș)$", "ûș")
		adj_broken_e = mw.ustring.gsub(adj_broken_e, "(aûș)$", "auș")
		adj_broken_e = mw.ustring.gsub(adj_broken_e, "(aùș)$", "aûș")
		adj_broken_e = adj_broken_e .. "e"
		adj = mw.ustring.gsub(adj, "(°)", "")
		adj = " " .. adj
		adj_broken = " " .. adj_broken
		adj_broken_e = " " .. adj_broken_e
	else
		adj_broken = nil
		adj_broken_e = nil
	end
	local post = args['post']
	
	format_table = {}
	
	local decl_type = {
		["C"] = "heavy",
		["CH"] = "spirant",
		["VH"] = "spirant",
		["V"] = "light",
		["G"] = "semi-light"
	}
	
	local type_name = decl_type[stems['type']]
	
	local table_type = args['type'] or args['t'] or "sgpl"
	
	-- generate forms --
	
	local function get_forms(case, base, adj_base, adj_ending, nolink)
		if adj_base then
			--adjust definite article --
			local oblique_pl = {['genpl'] = true, ['datpl'] = true, ['accpl'] = true, ['inspl'] = true, ['gendu'] = true, ['datdu'] = true, ['accdu'] = true, ['insdu'] = true,}
			-- detect inanimate --
			if mw.ustring.match(mw.ustring.lower(adj_base), "^( ?a [" .. C .. "])") or mw.ustring.match(adj_base, "^( ag )") then
				if oblique_pl[case] then
					adj_base = mw.ustring.gsub(adj_base, "^( ?)ag ([iíỉIÍỈ])", "%1a’ %2")
					adj_base = mw.ustring.gsub(adj_base, "^( ?)ag? ", "%1ai ")
				elseif case == "genpl_short" or case == "gendu_short" then
					adj_base = mw.ustring.gsub(adj_base, "^( ?)ag? ", "%1ais ")
				end
			end
			
			-- append --
			base = base .. adj_base
			if adj_ending then base = base .. adj_ending end
		end
		if post then base = base .. post end
		if args['alt' .. case] then
			local list = {
				[1] = {['word'] = base},
				[2] = {['word'] = args['alt' .. case], ['note'] = args['alt' .. case .. '_note']}
			}
			if adj_base then
				list[2]['word'] = list[2]['word'] .. adj_base
				if adj_ending then list[2]['word'] = list[2]['word'] .. adj_ending end
			end
			if post then list[2]['word'] = list[2]['word'] .. post end
			local counter = 2
			while args['alt' .. case .. counter] do
				local temp = args['alt' .. case .. counter]
				if adj_base then
					temp = temp .. adj_base
					if adj_ending then temp = temp .. adj_ending end
				end
				if post then temp = temp .. post end
				list[counter + 1] = {['word'] = temp, ['note'] = args['alt' .. case .. counter .. "_note"]}
				counter = counter + 1	
			end
			if nolink then
				return list[1].word
			else
				return rad_link_IPA(list)
			end
		else
			if nolink then
				return base
			else
				return rad_link_IPA(base)
			end
		end
	end
	
	local nom = ""
	local nom_cite = ""
	if table_type == "adj" then	
		nom = get_forms("nom", stems.nompl, adj_broken_e)
		nom_cite = get_forms("nom", stems.nompl, adj_broken_e, "", true)
	else
		nom = get_forms("nom", stems.nom, adj_broken_e)
		nom_cite = get_forms("nom", stems.nom, adj_broken_e, "", true)
	end
	local voc = get_forms("voc", stems.voc, adj_broken_e)
	local gen = get_forms("gen", stems.gen, adj_broken, "k")
	local dat = get_forms("dat", stems.dat, adj, "a")
	local acc = get_forms("acc", stems.acc, adj_broken, "t")
	local ins = get_forms("ins", stems.ins, adj, "úr")
	
	local nompl = get_forms("nompl", stems.nompl, adj_broken_e)
	local nompl_cite = get_forms("nompl", stems.nompl, adj_broken_e, "", true)
	local genpl = get_forms("genpl", stems.genpl .. "ris", adj, "eris")
	local genpl_short = get_forms("genpl_short", stems.genpl_short, adj, "es")
	local datpl = get_forms("genpl", stems.genpl .. "rín", adj, "erín")
	local accpl = get_forms("accpl", stems.genpl .. "rid", adj, "erid")
	local inspl = get_forms("inspl", stems.genpl .. "ríe", adj, "eríe")
	
	local nomdu = get_forms("nomdu", stems.dat .. "te", adj_broken_e)
	local nomdu_cite = get_forms("nomdu", stems.dat .. "te", adj_broken_e, "", true)
	local gendu = get_forms("gendu", stems.dat .. "tis", adj, "eris")
	local gendu_short = get_forms("gendu_short", stems.dat .. "ts", adj, "es")
	local datdu = get_forms("datdu", stems.dat .. "tín", adj, "erín")
	local accdu = get_forms("accdu", stems.dat .. "tid", adj, "erid")
	local insdu = get_forms("insdu", stems.dat .. "tíe", adj, "eríe")

	add("<table class=\"mw-collapsible mw-collapsed wikitable inflection table\" style=\"text-align: center\">")
		if table_type == "sgpl" or table_type == "adj" then
			if table_type == "adj" then
				th("Substantive declension of <i>" .. nom_cite .. "</i> &nbsp;", 1, 4)
			else
				th("Declension of <i>" .. nom_cite .. "</i> (" .. type_name .. ") &nbsp;", 1, 4)
			end
			
			tr()
				th("", 1, 2)
				th("singular")
				th("plural")
			tr_()
			tr()
				th("nominative", 1, 2)
				if nom == nompl then
					td(nompl, 2, 2)
				elseif nom == voc then
					td(nom, 2)
					td(nompl, 2)
				else
					td(nom)
					td(nompl, 2)
				end
			tr_()
			tr()
				th("vocative", 1, 2)
				if nom ~= nompl and nom ~= voc then td(voc) end
			tr_()
			tr()
				th("genitive", 2, 1)
				th("long")
				td(gen, 2, 1)
				td(genpl)
			tr_()
			tr()
				th("short")
				td(genpl_short)
			tr_()
			tr()
				th("dative", 1, 2)
				td(dat)
				td(datpl)
			tr_()
			tr()
				th("accusative", 1, 2)
				td(acc)
				td(accpl)
			tr_()
			tr()
				th("instrumental", 1, 2)
				td(ins)
				td(inspl)
			tr_()
		elseif table_type == "sg" then
			th("Declension of <i>" .. nom_cite .. "</i> (" .. type_name .. ") &nbsp;", 1, 2)
			tr()
				th("")
				th("singular")
			tr_()
			tr()
				th("nominative")
				if nom == voc then td(nom, 2) else td(nom) end
			tr_()
			tr()
				th("vocative")
				if nom ~= voc then td(voc) end
			tr_()
			tr()
				th("genitive")
				td(gen)
			tr_()
			tr()
				th("dative")
				td(dat)
			tr_()
			tr()
				th("accusative")
				td(acc)
			tr_()
			tr()
				th("instrumental")
				td(ins)
			tr_()
		elseif table_type == "pl" then
			th("Declension of <i>" .. nompl_cite .. "</i> (" .. type_name .. ") &nbsp;", 1, 3)
			tr()
				th("", 1, 2)
				th("plural")
			tr_()
			tr()
				th("nominative", 1, 2)
				td(nompl, 2)
			tr_()
			tr()
				th("vocative", 1, 2)
			tr_()
			tr()
				th("genitive", 2, 1)
				th("long")
				td(genpl)
			tr_()
			tr()
				th("short")
				td(genpl_short)
			tr_()
			tr()
				th("dative", 1, 2)
				td(datpl)
			tr_()
			tr()
				th("accusative", 1, 2)
				td(accpl)
			tr_()
			tr()
				th("instrumental", 1, 2)
				td(inspl)
			tr_()
		elseif table_type == "du" then
			th("Declension of <i>" .. nom_cite .. "</i> (" .. type_name .. ") &nbsp;", 1, 5)
			tr()
				th("", 2, 2)
				th("singular", 2, 1)
				th("plural", 1, 2)
			tr_()
			tr()
				th("binary")
				th("true")
			tr_()
			tr()
				th("nominative", 1, 2)
				if nom == voc then td(nom, 2) else td(nom) end
				td(nomdu, 2)
				td(nompl, 2)
			tr_()
			tr()
				th("vocative", 1, 2)
				if nom ~= voc then td(voc) end
			tr_()
			tr()
				th("genitive", 2, 1)
				th("long")
				td(gen, 2, 1)
				td(gendu)
				td(genpl)
			tr_()
			tr()
				th("short")
				td(gendu_short)
				td(genpl_short)
			tr_()
			tr()
				th("dative", 1, 2)
				td(dat)
				td(datdu)
				td(datpl)
			tr_()
			tr()
				th("accusative", 1, 2)
				td(acc)
				td(accdu)
				td(accpl)
			tr_()
			tr()
				th("instrumental", 1, 2)
				td(ins)
				td(insdu)
				td(inspl)
			tr_()
		elseif table_type == "dupl" then
			th("Declension of <i>" .. nomdu_cite .. "</i> (" .. type_name .. ") &nbsp;", 1, 3)
			tr()
				th("", 1, 2)
				th("binary plural")
			tr_()
			tr()
				th("nominative", 1, 2)
				td(nomdu, 2)
			tr_()
			tr()
				th("vocative", 1, 2)
			tr_()
			tr()
				th("genitive", 2, 1)
				th("long")
				td(gendu)
			tr_()
			tr()
				th("short")
				td(gendu_short)
			tr_()
			tr()
				th("dative", 1, 2)
				td(datdu)
			tr_()
			tr()
				th("accusative", 1, 2)
				td(accdu)
			tr_()
			tr()
				th("instrumental", 1, 2)
				td(insdu)
			tr_()
		end
	add("</table>")
	
	if args['notags'] ~= "true" or args['notags'] == nil then
		if table_type ~= "adj" then
			add("[[Category:" .. m_languages.get_by_code("rad").name .. " " .. type_name .. " stems]]")
		end
		if table_type == "sg" then add("[[Category:" .. m_languages.get_by_code("rad").name .. " singularia tantum]]")
		elseif table_type == "pl" then add("[[Category:" .. m_languages.get_by_code("rad").name .. " pluralia tantum]]")
		elseif table_type == "du" then add("[[Category:" .. m_languages.get_by_code("rad").name .. " pluralia binaria]]")
		elseif table_type == "dupl" then add("[[Category:" .. m_languages.get_by_code("rad").name .. " pluralia binaria]]" .. "[[Category:" .. m_languages.get_by_code("rad").name .. " pluralia binaria tantum]]")
		end
	end
	
	return table.concat(format_table, string.char(10))
end

function export.conjugate(frame)
	local args = getArgs(frame)
	local pp = m_stem.getVerbStem(args)
		mw.logObject(pp)
	format_table = {}
	local table_type = args["t"] or "tr"
	
	if (table_type == "tr" or table_type == "pass") and args[6] == nil and args[7] == nil then error("Passive conjugation tables require arguments 6 (infinitive) and 7 (present participle stem).") end

	-- generate alt forms
	for p, base in pairs(pp) do
		if args["alt" .. p] then
			local list = {
				[1] = {['word'] = base},
				[2] = {['word'] = args['alt' .. p], ['note'] = args['alt' .. p .. '_note']}
			}
			local counter = 2
			while args["alt" .. p .. counter] do
				list[counter + 1] = {['word'] = args['alt' .. p .. counter], ['note'] = args['alt' .. p .. counter .. '_note']}
				counter = counter + 1
			end
			pp[p] = list
		end
	end
	
	local function get_forms(stem, ending)
		ending = ending or ""
		if type(stem) == "table" then
			for i,_ in ipairs(stem) do
				stem[i]['word'] = stem[i]['word'] .. ending
			end
			return rad_link_IPA(stem)
		elseif type(stem) == "string" then
			return rad_link_IPA(stem .. ending)
		end
	end
	
	add("<small>")
	if table_type == "intr" or table_type == "tr" then
		add("<table class=\"mw-collapsible mw-collapsed wikitable inflection table\" width=100% style=\"text-align: center\">")
			
			tr()
				th("Conjugation of ''" .. pp['inf'][1]['word'] .. "'' (active voice) &nbsp;", 1, 14)
			_tr()
				th("nonfinite forms", 1, 14)
			_tr()
				th("infinitive", 1, 3)
				td(get_forms(pp.inf))
			_tr()
				th("connegative", 1, 3)
				if pp['inf'][1]['word'] == "vat" or pp['inf'][1]['word'] == "hjeat" then
					th("", 1, 11)
				else
					td(get_forms(pp.nonfin,"a"), 1, 11)
				end
			_tr()
				th("supine", 1, 3)
				td(get_forms(pp.nonfin,"úr"), 1, 11)
			_tr()
				th("participle", 4, 1)
				th("present", 2, 1)
				th("adjectival")
				td(get_forms(pp.prespart,"ș"), 1, 11)
			_tr()
				th("adverbial")
				td(get_forms(pp.prespart,"vú"), 1, 11)
			_tr()
				th("past", 2, 1)
				th("adjectival")
				td(get_forms(pp.pspart,"ș"), 1, 11)
			_tr()
				th("adverbial")
				td(get_forms(pp.pspart,"l"), 1, 11)
			_tr()
				th("verbal noun", 1, 3)
				td(get_forms(pp.vnoun), 1, 11)
	--[[
	|-
	! colspan="3" | verbal noun
	| colspan="11" | {{wl-rad-IPA|{{{6|{{{5}}}aș}}}}}
	|-
	! rowspan="4" colspan="3" | finite forms
	! colspan="5" | singular
	! colspan="5" | plural
	! humble
	|-
	! rowspan="2" | first
	! colspan="2" | second
	! rowspan="2" | third
	! rowspan="2" | depersonal
	! colspan="2" | first
	! rowspan="2" | second
	! rowspan="2" | third
	! rowspan="2" | depersonal
	! rowspan="2" | second
	|-
	! informal
	! formal
	! inclusive
	! exclusive
	|-
	! ''ú''
	! ''re''
	! ''lește''
	! ''vâs'', ''vara''
	! ''gjei, gjen, gjeș …''
	! ''dzun'', ''sted''
	! ''dzate''
	! ''sjáște''
	! ''vír'', ''vara''
	! ''gjes, gjete, gje, gjen …''
	! ''sja'', ''lair''
	|-
	! rowspan="7" | simple
	! colspan="2" | imperative
	!
	| {{#ifeq: {{{imp|{{{a|{{{depers|{{{2}}}}}}a}}}}}}|{{{a|{{{2}}}a}}}|rowspan="2" {{!}}|}} {{wl-rad-IPA|{{{imp|{{{a|{{{depers|{{{2}}}}}}a}}}}}}}}
	| {{wl-rad-IPA|{{{2}}}úș}}
	! colspan="2" |
	| {{wl-rad-IPA|{{{pl|{{{2}}}}}}uoș}}
	!
	| {{wl-rad-IPA|{{{o|{{{2}}}o}}}vú}}
	! colspan="2" |
	| {{wl-rad-IPA|{{{pl|{{{2}}}}}}úr}}
	|-
	! rowspan="2" | indicative
	! non-past
	| {{wl-rad-IPA|{{{1S|{{{2}}}e}}}}}
	{{#ifeq: {{{imp|{{{a|{{{depers|{{{2}}}}}}a}}}}}}|{{{a|{{{2}}}a}}}||{{!}} {{wl-rad-IPA|{{{a|{{{2}}}a}}}}}}}
	| {{#ifeq: {{{3S|{{{2}}}ș}}}|{{{depers|{{{2}}}}}}|colspan="3"|colspan="2"}} | {{wl-rad-IPA|{{{3S|{{{2}}}ș}}}}}<!--
	-->{{#ifeq: {{{3S|{{{2}}}ș}}}|{{{depers|{{{2}}}}}}||<td>{{wl-rad-IPA|{{{depers|{{{2}}}}}}}}</td>}}
	| {{#ifeq: {{{pl|{{{2}}}}}}uo|{{{upst2|{{{3}}}uo}}}|rowspan="2" {{!}}|}} {{wl-rad-IPA|{{{pl|{{{2}}}}}}uos}}
	| {{#ifeq: {{{pl|{{{2}}}}}}uo|{{{upst2|{{{3}}}uo}}}|rowspan="2" {{!}}|}} {{wl-rad-IPA|{{{pl|{{{2}}}}}}uote}}
	| {{#ifeq: {{{pl|{{{2}}}}}}ú|{{{upst1|{{{3}}}ú}}}|rowspan="2"|}} colspan="3" | {{wl-rad-IPA|{{{pl|{{{2}}}}}}ú}}
	| {{#ifeq: {{{pl|{{{2}}}}}}ú|{{{upst1|{{{3}}}ú}}}|rowspan="2" {{!}}|}} {{wl-rad-IPA|{{{pl|{{{2}}}}}}ún}}
	|-
	! past
	| {{wl-rad-IPA|{{#if:{{{epst|}}}|{{{epst}}}e|{{{3}}}ei}}}}
	| {{wl-rad-IPA|{{{epst|{{{3}}}e}}}n}}
	| colspan="2" | {{wl-rad-IPA|{{{epst|{{{3}}}e}}}ș}}
	| {{wl-rad-IPA|{{{epst|{{{3}}}e}}}}}<!--
	-->{{#ifeq: {{{pl|{{{2}}}}}}uo|{{{upst2|{{{3}}}uo}}}||<td>{{wl-rad-IPA|{{{upst2|{{{3}}}uo}}}s}}</td>}}<!--
	-->{{#ifeq: {{{pl|{{{2}}}}}}uo|{{{upst2|{{{3}}}uo}}}||<td>{{wl-rad-IPA|{{{upst2|{{{3}}}uo}}}te}}</td>}}<!--
	-->{{#ifeq: {{{pl|{{{2}}}}}}ú|{{{upst1|{{{3}}}ú}}}||<td colspan="3">{{wl-rad-IPA|{{{upst1|{{{3}}}ú}}}}}</td>}}<!--
	-->{{#ifeq: {{{pl|{{{2}}}}}}ú|{{{upst1|{{{3}}}ú}}}||<td>{{wl-rad-IPA|{{{upst1|{{{3}}}ú}}}n}}</td>}}
	|-
	! rowspan="2" | subjunctive
	! non-past
	| {{#ifeq: {{{ai|{{{2}}}ai}}}|{{{aipst|{{{3}}}ai}}}|rowspan="2" {{!}}|}} {{wl-rad-IPA|{{{ai|{{{2}}}ai}}}}}
	| {{wl-rad-IPA|{{{aa|{{{2}}}á}}}}}
	| colspan="2" | {{wl-rad-IPA|{{{a|{{{2}}}a}}}ș}}
	| {{wl-rad-IPA|{{{a|{{{2}}}a}}}}}
	| {{#ifeq: {{{a|{{{2}}}a}}}|{{{apst|{{{3}}}a}}}|rowspan="2" {{!}}|}} {{wl-rad-IPA|{{{a|{{{2}}}a}}}vuos}}
	| {{#ifeq: {{{a|{{{2}}}a}}}|{{{apst|{{{3}}}a}}}|rowspan="2" {{!}}|}} {{wl-rad-IPA|{{{a|{{{2}}}a}}}vuote}}
	| {{#ifeq: {{{a|{{{2}}}a}}}|{{{apst|{{{3}}}a}}}|rowspan="2"|}} colspan="3" | {{wl-rad-IPA|{{{a|{{{2}}}a}}}vú}}
	| {{#ifeq: {{{a|{{{2}}}a}}}|{{{apst|{{{3}}}a}}}|rowspan="2" {{!}}|}} {{wl-rad-IPA|{{{a|{{{2}}}a}}}vún}}
	|-
	! past<!--
	-->{{#ifeq: {{{ai|{{{2}}}ai}}}|{{{aipst|{{{3}}}ai}}}||<td>{{wl-rad-IPA|{{{aipst|{{{3}}}ai}}}}}</td>}}
	| {{wl-rad-IPA|{{{aipst|{{{3}}}ai}}}n}}
	| colspan="2" | {{wl-rad-IPA|{{{aipst|{{{3}}}ai}}}ș}}
	| {{wl-rad-IPA|{{{aipst|{{{3}}}ai}}}}}<!--
	-->{{#ifeq: {{{a|{{{2}}}a}}}|{{{apst|{{{3}}}a}}}||<td>{{wl-rad-IPA|{{{apst|{{{3}}}a}}}vuos}}</td>}}<!--
	-->{{#ifeq: {{{a|{{{2}}}a}}}|{{{apst|{{{3}}}a}}}||<td>{{wl-rad-IPA|{{{apst|{{{3}}}a}}}vuote}}</td>}}<!--
	-->{{#ifeq: {{{a|{{{2}}}a}}}|{{{apst|{{{3}}}a}}}||<td colspan="3">{{wl-rad-IPA|{{{apst|{{{3}}}a}}}vú}}</td>}}<!--
	-->{{#ifeq: {{{a|{{{2}}}a}}}|{{{apst|{{{3}}}a}}}||<td>{{wl-rad-IPA|{{{apst|{{{3}}}a}}}vún}}</td>}}
	|-
	! rowspan="2" | optative
	! non-past
	| {{wl-rad-IPA|{{{2}}}úe}}
	| {{wl-rad-IPA|{{{o|{{{2}}}o}}}va}}
	| colspan="2" | {{wl-rad-IPA|{{{2}}}úș}}
	| {{wl-rad-IPA|{{{2}}}ú}}
	| {{wl-rad-IPA|{{{o|{{{2}}}o}}}vuos}}
	| {{wl-rad-IPA|{{{o|{{{2}}}o}}}vuote}}
	| colspan="3" | {{wl-rad-IPA|{{{o|{{{2}}}o}}}vú}}
	| {{wl-rad-IPA|{{{o|{{{2}}}o}}}vún}}
	|-
	! past
	| {{wl-rad-IPA|{{{epst|{{{3}}}e}}}vei}}
	| {{wl-rad-IPA|{{{epst|{{{3}}}e}}}ven}}
	| colspan="2" | {{wl-rad-IPA|{{{epst|{{{3}}}e}}}veș}}
	| {{wl-rad-IPA|{{{epst|{{{3}}}e}}}ve}}
	| {{wl-rad-IPA|{{{epst|{{{3}}}e}}}vuos}}
	| {{wl-rad-IPA|{{{epst|{{{3}}}e}}}vuote}}
	| colspan="3" | {{wl-rad-IPA|{{{epst|{{{3}}}e}}}vú}}
	| {{wl-rad-IPA|{{{epst|{{{3}}}e}}}vún}}
	|-
	! rowspan="6" | habitual
	! rowspan="2" | indicative
	! non-past
	| {{wl-rad-IPA|{{{r|{{{depers|{{{2}}}}}}r}}}iè}}
	| {{wl-rad-IPA|{{{r|{{{depers|{{{2}}}}}}r}}}in}}
	| colspan="2" | {{wl-rad-IPA|{{{r|{{{depers|{{{2}}}}}}r}}}iș}}
	| {{wl-rad-IPA|{{{r|{{{depers|{{{2}}}}}}r}}}i}}
	| {{#ifeq: {{{pl|{{{2}}}}}}ú|{{{upst1|{{{3}}}ú}}}|rowspan="2" {{!}}|}} {{wl-rad-IPA|{{{pl|{{{2}}}}}}úris}}
	| {{#ifeq: {{{pl|{{{2}}}}}}ú|{{{upst1|{{{3}}}ú}}}|rowspan="2" {{!}}|}} {{wl-rad-IPA|{{{pl|{{{2}}}}}}úrite}}
	| {{#ifeq: {{{pl|{{{2}}}}}}ú|{{{upst1|{{{3}}}ú}}}|rowspan="2"|}} colspan="3" | {{wl-rad-IPA|{{{pl|{{{2}}}}}}úri}}
	| {{#ifeq: {{{pl|{{{2}}}}}}ú|{{{upst1|{{{3}}}ú}}}|rowspan="2" {{!}}|}} {{wl-rad-IPA|{{{pl|{{{2}}}}}}úrin}}
	|-
	! past
	| {{wl-rad-IPA|{{{epst|{{{3}}}e}}}riè}}
	| {{wl-rad-IPA|{{{epst|{{{3}}}e}}}rin}}
	| colspan="2" | {{wl-rad-IPA|{{{epst|{{{3}}}e}}}riș}}
	| {{wl-rad-IPA|{{{epst|{{{3}}}e}}}ri}}<!--
	-->{{#ifeq: {{{pl|{{{2}}}}}}ú|{{{upst1|{{{3}}}ú}}}||<td>{{wl-rad-IPA|{{{upst1|{{{3}}}ú}}}ris}}}}<!--
	-->{{#ifeq: {{{pl|{{{2}}}}}}ú|{{{upst1|{{{3}}}ú}}}||<td>{{wl-rad-IPA|{{{upst1|{{{3}}}ú}}}rite}}}}<!--
	-->{{#ifeq: {{{pl|{{{2}}}}}}ú|{{{upst1|{{{3}}}ú}}}||<td colspan="3">{{wl-rad-IPA|{{{upst1|{{{3}}}ú}}}ri}}}}<!--
	-->{{#ifeq: {{{pl|{{{2}}}}}}ú|{{{upst1|{{{3}}}ú}}}||<td>{{wl-rad-IPA|{{{upst1|{{{3}}}ú}}}rin}}}}
	|-
	! rowspan="2" | subjunctive
	! non-past
	| {{wl-rad-IPA|{{{a|{{{2}}}a}}}riè}}
	| {{wl-rad-IPA|{{{a|{{{2}}}a}}}rin}}
	| colspan="2" | {{wl-rad-IPA|{{{a|{{{2}}}a}}}riș}}
	| {{wl-rad-IPA|{{{a|{{{2}}}a}}}ri}}
	| {{#ifeq: {{{a|{{{2}}}a}}}|{{{apst|{{{3}}}a}}}|rowspan="2" {{!}}|}} {{wl-rad-IPA|{{{a|{{{2}}}a}}}vúris}}
	| {{#ifeq: {{{a|{{{2}}}a}}}|{{{apst|{{{3}}}a}}}|rowspan="2" {{!}}|}} {{wl-rad-IPA|{{{a|{{{2}}}a}}}vúrite}}
	| {{#ifeq: {{{a|{{{2}}}a}}}|{{{apst|{{{3}}}a}}}|rowspan="2"|}} colspan="3" | {{wl-rad-IPA|{{{a|{{{2}}}a}}}vúri}}
	| {{#ifeq: {{{a|{{{2}}}a}}}|{{{apst|{{{3}}}a}}}|rowspan="2" {{!}}|}} {{wl-rad-IPA|{{{a|{{{2}}}a}}}vúrin}}
	|-
	! past
	| {{wl-rad-IPA|{{{aipst|{{{3}}}ai}}}riè}}
	| {{wl-rad-IPA|{{{aipst|{{{3}}}ai}}}rin}}
	| colspan="2" | {{wl-rad-IPA|{{{aipst|{{{3}}}ai}}}riș}}
	| {{wl-rad-IPA|{{{aipst|{{{3}}}ai}}}ri}}<!--
	-->{{#ifeq: {{{a|{{{2}}}a}}}|{{{apst|{{{3}}}a}}}||<td>{{wl-rad-IPA|{{{apst|{{{3}}}a}}}vúris}}}}<!--
	-->{{#ifeq: {{{a|{{{2}}}a}}}|{{{apst|{{{3}}}a}}}||<td>{{wl-rad-IPA|{{{apst|{{{3}}}a}}}vúrite}}}}<!--
	-->{{#ifeq: {{{a|{{{2}}}a}}}|{{{apst|{{{3}}}a}}}||<td colspan="3">{{wl-rad-IPA|{{{apst|{{{3}}}a}}}vúri}}}}<!--
	-->{{#ifeq: {{{a|{{{2}}}a}}}|{{{apst|{{{3}}}a}}}||<td>{{wl-rad-IPA|{{{apst|{{{3}}}a}}}vúrin}}}}
	|-
	! rowspan="2" | optative
	! non-past
	| {{wl-rad-IPA|{{{2}}}úriè}}
	| {{wl-rad-IPA|{{{2}}}úrin}}
	| colspan="2" | {{wl-rad-IPA|{{{2}}}úriș}}
	| {{wl-rad-IPA|{{{2}}}úri}}
	| {{wl-rad-IPA|{{{o|{{{2}}}o}}}vúris}}
	| {{wl-rad-IPA|{{{o|{{{2}}}o}}}vúrite}}
	| colspan="3" | {{wl-rad-IPA|{{{o|{{{2}}}o}}}vúri}}
	| {{wl-rad-IPA|{{{o|{{{2}}}o}}}vúrin}}
	|-
	! past
	| {{wl-rad-IPA|{{{epst|{{{3}}}e}}}veriè}}
	| {{wl-rad-IPA|{{{epst|{{{3}}}e}}}verin}}
	| colspan="2" | {{wl-rad-IPA|{{{epst|{{{3}}}e}}}veriș}}
	| {{wl-rad-IPA|{{{epst|{{{3}}}e}}}veri}}
	| {{wl-rad-IPA|{{{epst|{{{3}}}e}}}vúris}}
	| {{wl-rad-IPA|{{{epst|{{{3}}}e}}}vúrite}}
	| colspan="3" | {{wl-rad-IPA|{{{epst|{{{3}}}e}}}vúri}}
	| {{wl-rad-IPA|{{{epst|{{{3}}}e}}}vúrin}}
	|}
	{| class="mw-collapsible mw-collapsed wikitable inflection table" width=100% style="text-align: center"
	! colspan="14" | Compound forms of ''{{{1}}}'' (active voice) &nbsp;
	|-
	! rowspan="4" colspan="3" | finite forms
	! colspan="5" | singular
	! colspan="5" | plural
	! humble
	|-
	! rowspan="2" | first
	! colspan="2" | second
	! rowspan="2" | third
	! rowspan="2" | depersonal
	! colspan="2" | first
	! rowspan="2" | second
	! rowspan="2" | third
	! rowspan="2" | depersonal
	! rowspan="2" | second
	|-
	! informal
	! formal
	! inclusive
	! exclusive
	|-
	! ''ú''
	! ''re''
	! ''lește''
	! ''vâs'', ''vara''
	! ''gjei, gjen, gjeș …''
	! ''dzun'', ''sted''
	! ''dzate''
	! ''sjáște''
	! ''vír'', ''vara''
	! ''gjes, gjete, gje, gjen …''
	! ''sja'', ''lair''
	|-
	! rowspan="7" | continuous
	! colspan="2" | infinitive
	| colspan="12" | {{wl-rad|{{{4}}}vú}} {{wl-rad|vat}}
	|-
	! rowspan="2" | indicative
	! non-past
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|vage}}
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|vaga}}
	| colspan="2" | {{wl-rad|{{{4}}}vú}} {{wl-rad|vaș}}
	| {{wl-rad|{{{4}}}vú}}
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|vaguos}}
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|vaguote}}
	| colspan="2" | {{wl-rad|{{{4}}}vú}} {{wl-rad|vagú}}
	| {{wl-rad|{{{4}}}vú}}
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|vagún}}
	|-
	! past
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|hâlei}}
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|hâlen}}
	| colspan="2" | {{wl-rad|{{{4}}}vú}} {{wl-rad|hâleș}}
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|hâle}}
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|hâluos}}
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|hâluote}}
	| colspan="3" | {{wl-rad|{{{4}}}vú}} {{wl-rad|hâlú}}
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|hâlún}}
	|-
	! rowspan="2" | subjunctive
	! non-past
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|vagai}}
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|vagá}}
	| colspan="2" | {{wl-rad|{{{4}}}vú}} {{wl-rad|vagaș}}
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|vaga}}
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|vagavuos}}
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|vagavuote}}
	| colspan="3" | {{wl-rad|{{{4}}}vú}} {{wl-rad|vagavú}}
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|vagavún}}
	|-
	! past
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|hâlai}}
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|hâlain}}
	| colspan="2" | {{wl-rad|{{{4}}}vú}} {{wl-rad|hâlaiș}}
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|hâlai}}
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|hâlavuos}}
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|hâlavuote}}
	| colspan="3" | {{wl-rad|{{{4}}}vú}} {{wl-rad|hâlavú}}
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|hâlavún}}
	|-
	! rowspan="2" | optative
	! non-past
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|vagúe}}
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|vagova}}
	| colspan="2" | {{wl-rad|{{{4}}}vú}} {{wl-rad|vagúș}}
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|vagú}}
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|vagovuos}}
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|vagovuote}}
	| colspan="3" | {{wl-rad|{{{4}}}vú}} {{wl-rad|vagovú}}
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|vagovún}}
	|-
	! past
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|hâlevei}}
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|hâleven}}
	| colspan="2" | {{wl-rad|{{{4}}}vú}} {{wl-rad|hâleveș}}
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|hâleve}}
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|hâlevuos}}
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|hâlevuote}}
	| colspan="3" | {{wl-rad|{{{4}}}vú}} {{wl-rad|hâlevú}}
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|hâlevún}}
	|-
	! rowspan="7" | perfective
	! colspan="2" | infinitive
	| colspan="12" | {{wl-rad|{{{pspart|{{{5}}}úl}}}}}{{wl-rad|-at}}
	|-
	! rowspan="2" | indicative
	! perfect
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-age}}
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-aga}}
	| colspan="2" | {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-aș}}
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-aguos}}
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-aguote}}
	| colspan="2" | {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-agú}}
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-agún}}
	|-
	! pluperfect
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-âlei}}
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-âlen}}
	| colspan="2" | {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-âleș}}
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-âle}}
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-âluos}}
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-âluote}}
	| colspan="3" | {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-âlú}}
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-âlún}}
	|-
	! rowspan="2" | subjunctive
	! perfect
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-agai}}
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-agá}}
	| colspan="2" | {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-agaș}}
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-aga}}
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-agavuos}}
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-agavuote}}
	| colspan="3" | {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-agavú}}
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-agavún}}
	|-
	! pluperfect
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-âlai}}
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-âlain}}
	| colspan="2" | {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-âlaiș}}
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-âlai}}
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-âlavuos}}
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-âlavuote}}
	| colspan="3" | {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-âlavú}}
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-âlavún}}
	|-
	! rowspan="2" | optative
	! perfect
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-agúe}}
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-agova}}
	| colspan="2" | {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-agúș}}
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-agú}}
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-agovuos}}
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-agovuote}}
	| colspan="3" | {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-agovú}}
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-agovún}}
	|-
	! pluperfect
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-âlevei}}
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-âleven}}
	| colspan="2" | {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-âleveș}}
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-âleve}}
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-âlevuos}}
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-âlevuote}}
	| colspan="3" | {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-âlevú}}
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-âlevún}}
	|-
	! colspan="14" | Negative compound forms of ''{{{1}}}'' (active voice)
	|-
	! rowspan="7" | continuous
	! colspan="2" | infinitive
	| colspan="12" | {{wl-rad|{{{4}}}vú}} {{wl-rad|hjeat}}
	|-
	! rowspan="2" | indicative
	! non-past
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|hjei}}
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|hjeà}}
	| colspan="2" | {{wl-rad|{{{4}}}vú}} {{wl-rad|hjeaș}}
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|hje}}
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|hjeuos}}
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|hjeuote}}
	| colspan="3" | {{wl-rad|{{{4}}}vú}} {{wl-rad|hjeú}}
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|hjeún}}
	|-
	! past
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|húei}}
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|húen}}
	| colspan="2" | {{wl-rad|{{{4}}}vú}} {{wl-rad|húeș}}
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|húe}}
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|hủos}}
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|hủote}}
	| colspan="3" | {{wl-rad|{{{4}}}vú}} {{wl-rad|hủ}}
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|hủn}}
	|-
	! rowspan="2" | subjunctive
	! non-past
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|hjeài}}
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|hjeá}}
	| colspan="2" | {{wl-rad|{{{4}}}vú}} {{wl-rad|hjeàș}}
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|hjeà}}
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|hjeàvuos}}
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|hjeàvuote}}
	| colspan="3" | {{wl-rad|{{{4}}}vú}} {{wl-rad|hjeàvú}}
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|hjeàvún}}
	|-
	! past
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|húai}}
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|húain}}
	| colspan="2" | {{wl-rad|{{{4}}}vú}} {{wl-rad|húaiș}}
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|húai}}
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|húavuos}}
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|húavuote}}
	| colspan="3" | {{wl-rad|{{{4}}}vú}} {{wl-rad|húavú}}
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|húavún}}
	|-
	! rowspan="2" | optative
	! non-past
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|hjeúe}}
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|hjeova}}
	| colspan="2" | {{wl-rad|{{{4}}}vú}} {{wl-rad|hjeúș}}
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|hjeú}}
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|hjeovuos}}
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|hjeovuote}}
	| colspan="3" | {{wl-rad|{{{4}}}vú}} {{wl-rad|hjeovú}}
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|hjeovún}}
	|-
	! past
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|húevei}}
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|húeven}}
	| colspan="2" | {{wl-rad|{{{4}}}vú}} {{wl-rad|húeveș}}
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|húeve}}
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|húevuos}}
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|húevuote}}
	| colspan="3" | {{wl-rad|{{{4}}}vú}} {{wl-rad|húevú}}
	| {{wl-rad|{{{4}}}vú}} {{wl-rad|húevún}}
	|-
	! rowspan="7" | perfective
	! colspan="2" | infinitive
	| colspan="12" | {{wl-rad|{{{pspart|{{{5}}}ú}}}l}} {{wl-rad|hjeat}}
	|-
	! rowspan="2" | indicative
	! perfect
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}} {{wl-rad|hjei}}
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}} {{wl-rad|hjeà}}
	| colspan="2" | {{wl-rad|{{{pspart|{{{5}}}ú}}}l}} {{wl-rad|hjeaș}}
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}} {{wl-rad|hje}}
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}} {{wl-rad|hjeuos}}
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}} {{wl-rad|hjeuote}}
	| colspan="3" | {{wl-rad|{{{pspart|{{{5}}}ú}}}l}} {{wl-rad|hjeú}}
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}} {{wl-rad|hjeún}}
	|-
	! pluperfect
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-úei}}
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-úen}}
	| colspan="2" | {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-úeș}}
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-úe}}
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-ủos}}
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-ủote}}
	| colspan="3" | {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-ủ}}
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-ủn}}
	|-
	! rowspan="2" | subjunctive
	! perfect
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}} {{wl-rad|hjeai}}
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}} {{wl-rad|hjeá}}
	| colspan="2" | {{wl-rad|{{{pspart|{{{5}}}ú}}}l}} {{wl-rad|hjeàș}}
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}} {{wl-rad|hjeà}}
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}} {{wl-rad|hjeàvuos}}
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}} {{wl-rad|hjeàvuote}}
	| colspan="3" | {{wl-rad|{{{pspart|{{{5}}}ú}}}l}} {{wl-rad|hjeàvú}}
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}} {{wl-rad|hjeàvún}}
	|-
	! pluperfect
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-úai}}
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-úain}}
	| colspan="2" | {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-úaiș}}
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-úai}}
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-úavuos}}
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-úavuote}}
	| colspan="3" | {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-úavú}}
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-úavún}}
	|-
	! rowspan="2" | optative
	! perfect
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}} {{wl-rad|hjeúe}}
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}} {{wl-rad|hjeova}}
	| colspan="2" | {{wl-rad|{{{pspart|{{{5}}}ú}}}l}} {{wl-rad|hjeúș}}
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}} {{wl-rad|hjeú}}
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}} {{wl-rad|hjeovuos}}
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}} {{wl-rad|hjeovuote}}
	| colspan="3" | {{wl-rad|{{{pspart|{{{5}}}ú}}}l}} {{wl-rad|hjeovú}}
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}} {{wl-rad|hjeovún}}
	|-
	! pluperfect
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-úevei}}
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-úeven}}
	| colspan="2" | {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-úeveș}}
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-úeve}}
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-úevuos}}
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-úevuote}}
	| colspan="3" | {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-úevú}}
	| {{wl-rad|{{{pspart|{{{5}}}ú}}}l}}{{wl-rad|-úevún}}
	]]--
				
			tr_()
		add("</table>")
	end
	add("</small>")
	
	return table.concat(format_table, string.char(10))
end

return export

--[[
Debug console test string:
=p.show(mw.getCurrentFrame():newChild{title="whatever",args={"hv", "o~u^u", "þ"}})
=p.conjugate(mw.getCurrentFrame():newChild{title="whatever",args={"deat","de",["1s"]="dei",["3s"]="deaș",["pl"]="di","diș","deti","dev"}})
=p.conjugate(mw.getCurrentFrame():newChild{title="whatever",args={"deat","de",["1s"]="dei",["3s"]="deaș",["pl"]="di","diș","deti","dev",["t"]="intr",["altinf"]="hellu",["altinf_note"]="uwu"}})
]]--