Module:rad-stem/templates: Difference between revisions
Jump to navigation
Jump to search
TheNightAvl (talk | contribs) mNo edit summary |
TheNightAvl (talk | contribs) No edit summary |
||
(161 intermediate revisions by the same user not shown) | |||
Line 3: | Line 3: | ||
local m_stem = require("Module:rad-stem") | local m_stem = require("Module:rad-stem") | ||
local m_links = require("Module:links") | local m_links = require("Module:links") | ||
local m_languages = require("Module:languages") | local m_languages = require("Module:languages") | ||
local m_ipa = require("Module:rad-IPA") | |||
local irregular_icon = "<sup>△</sup>" | |||
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) | |||
data = data or "" | |||
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) | |||
data = data or "" | |||
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) | function get_stems(args) | ||
Line 20: | Line 61: | ||
function break_adj(adj) | function break_adj(adj) | ||
local temp = adj | local temp = adj | ||
Line 30: | Line 70: | ||
temp = mw.ustring.gsub(temp, "(ýș)$", "yeș") | temp = mw.ustring.gsub(temp, "(ýș)$", "yeș") | ||
temp = mw.ustring.gsub(temp, "(oș)$", "uș") | temp = mw.ustring.gsub(temp, "(oș)$", "uș") | ||
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 | return temp | ||
Line 35: | Line 83: | ||
function rad_link(word) | function rad_link(word) | ||
return m_links.full_link{ | return "<span style=\"white-space: nowrap\">" .. m_links.full_link{term = word, language = m_languages.get_by_code("rad")} .. "</span>" | ||
} | |||
end | end | ||
function rad_IPA(word) | function rad_IPA(word) | ||
local IPA = | local IPA = m_ipa.generate{ | ||
word, | word, | ||
"format", | "format", | ||
"nolarge" | "nolarge" | ||
} | } | ||
return "<span style=\"color:dimgrey\">" .. IPA .. "</span>" | return "<span style=\"color:dimgrey; white-space: nowrap\">" .. IPA .. "</span>" | ||
end | end | ||
function rad_link_IPA(word) | function rad_link_IPA(word, post, noipa, pre) | ||
if pre == "" then pre = nil end | |||
if post == "" then post = nil end | |||
if noipa == nil then noipa = false end | |||
local post_space = " " | |||
local pre_space = " " | |||
if post then | |||
if mw.ustring.sub(post, 1, 1) == "-" then | |||
post_space = "" | |||
end | |||
else | |||
post_space = "" | |||
end | |||
if pre then | |||
if mw.ustring.sub(pre, -1) == "-" then | |||
pre_space = "" | |||
end | |||
else | |||
pre_space = "" | |||
end | |||
if type(word) == "string" then | if type(word) == "string" then | ||
return rad_link(word) .. "<br>" .. rad_IPA( | local irr_temp = "" | ||
if mw.ustring.find(word, "%*") then | |||
irr_temp = irregular_icon | |||
word = mw.ustring.gsub(word, "%*", "") | |||
end | |||
if noipa then | |||
local temp = rad_link(word) | |||
if post then temp = temp .. post_space .. rad_link(post) end | |||
if pre then temp = rad_link(pre) .. pre_space .. temp end | |||
return temp .. irr_temp | |||
else | |||
local temp = rad_link(word) | |||
local ipa_temp = word | |||
if post then | |||
temp = temp .. post_space .. rad_link(post) | |||
ipa_temp = ipa_temp .. post_space .. post | |||
end | |||
if pre then | |||
temp = rad_link(pre) .. pre_space .. temp | |||
ipa_temp = pre .. pre_space .. ipa_temp | |||
end | |||
return temp .. irr_temp .. "<br>" .. rad_IPA(ipa_temp) | |||
end | |||
elseif type(word) == "table" then | elseif type(word) == "table" then | ||
local links = {} | local links = {} | ||
local IPAs = {} | local IPAs = {} | ||
for _, i in ipairs(word) do | for _, i in ipairs(word) do | ||
local irr_temp = "" | |||
if mw.ustring.find(i['word'], "%*") then | |||
irr_temp = irregular_icon | |||
i['word'] = mw.ustring.gsub(i['word'], "%*", "") | |||
end | |||
local new_link = rad_link(i['word']) | local new_link = rad_link(i['word']) | ||
if i['note'] then new_link = new_link .. " <small>( | if post then new_link = new_link .. post_space .. rad_link(post) end | ||
if pre then new_link = rad_link(post) .. pre_space .. new_link end | |||
new_link = new_link .. irr_temp | |||
if i['note'] then new_link = new_link .. " <small>(" .. i['note'] .. ")</small>" end | |||
table.insert(links, new_link) | table.insert(links, new_link) | ||
table.insert(IPAs, rad_IPA( | if not noipa then | ||
local ipa_temp = i['word'] | |||
if post then | |||
ipa_temp = ipa_temp .. post_space .. post | |||
end | |||
if pre then | |||
ipa_temp = pre .. pre_space .. ipa_temp | |||
end | |||
table.insert(IPAs, rad_IPA(ipa_temp)) | |||
end | |||
end | |||
if noipa then | |||
return table.concat(links, ", ") | |||
else | |||
return table.concat(links, ", ") .. "<br>" .. table.concat(IPAs, " ") | |||
end | end | ||
else error("Incompatible input type for rad_link_IPA") | else error("Incompatible input type for rad_link_IPA") | ||
end | end | ||
end | end | ||
function export. | function export.compare(frame) | ||
local args = getArgs(frame) | |||
local lemma = args['entry'] or mw.title.getCurrentTitle().text | |||
local pos = args[2] | |||
local stem = args[1] | |||
local disable_ipa = args['noipa'] | |||
local irregular = args["irr"] or args["irregular"] or mw.ustring.find(stem or "", "%*") | |||
if args[1] and args[2] ~= "adj" and args[2] ~= "adv" then error("Second parameter must be adj or adv") end | |||
-- process alts -- | |||
if args['alt'] then | |||
if stem == nil then error("You cannot have alternative forms of a nil stem") end | |||
if mw.ustring.find(args['alt'], "%*") then irregular = true end | |||
local stem_temp = { | |||
[1] = {word = args[1]}, | |||
[2] = {word = args['alt'], note = args['alt_note']} | |||
} | |||
local counter = 2 | |||
while args['alt' .. counter] do | |||
if mw.ustring.find(args['alt' .. counter], "%*") then irregular = true end | |||
stem_temp[counter + 1] = {word = args['alt' .. counter], note = args['alt' .. counter .. '_note']} | |||
counter = counter + 1 | |||
end | |||
stem = stem_temp | |||
end | |||
local irregular_title = "" | |||
if irregular then irregular_title = " (''irregular''" .. irregular_icon .. ")" end | |||
local function get_forms(ending, pre) | |||
if stem == nil then | |||
return rad_link_IPA(lemma, nil, disable_ipa, pre) | |||
elseif type(stem) == "string" then | |||
return rad_link_IPA(stem .. ending, nil, disable_ipa) | |||
elseif type(stem) == "table" then | |||
for i, j in ipairs(stem) do | |||
stem[i]['word'] = j.word .. ending | |||
end | |||
return rad_link_IPA(stem, nil, disable_ipa) | |||
end | |||
end | |||
add("<table class=\"blacklinks mw-collapsible mw-collapsed wikitable inflection table\" style=\"text-align: center\">") | |||
tr() | |||
th("Comparative forms of ''" .. lemma .. "''" .. irregular_title .. " ",1,2) | |||
_tr() | |||
th("degree") | |||
th("form") | |||
_tr() | |||
th("positive") | |||
td(rad_link(lemma) .. "<br>" .. rad_IPA(lemma)) | |||
_tr() | |||
th("comparative") | |||
if pos == "adj" or args[1] == nil then | |||
td(get_forms("uobș", "hevúb")) | |||
elseif pos == "adv" then | |||
td(get_forms("úb")) | |||
end | |||
_tr() | |||
th("superlative") | |||
if pos == "adj" or args[1] == nil then | |||
td(get_forms("úvaș", "hevúva")) | |||
elseif pos == "adv" then | |||
td(get_forms("úva")) | |||
end | |||
_tr() | |||
th("excessive") | |||
if pos == "adj" or args[1] == nil then | |||
td(get_forms("úvaiș", "hevúvai")) | |||
elseif pos == "adv" then | |||
td(get_forms("úvai")) | |||
end | |||
tr_() | |||
add("</table>") | |||
if irregular and not args['entry'] then | |||
if pos == "adj" then | |||
add("[[Category:Radestrian adjectives with irregular comparative forms]]") | |||
elseif pos == "adv" then | |||
add("[[Category:Radestrian adverbs with irregular comparative forms]]") | |||
end | |||
end | |||
return table.concat(format_table, string.char(10)) | |||
end | |||
function export.decline(frame) | |||
local args = getArgs(frame) | local args = getArgs(frame) | ||
local stem_gen = get_stems(args) | local stem_gen = get_stems(args) | ||
local stems = { | local stems = { | ||
nom = args['nom'] or stem_gen.nom, | nom = (args['nom'] == "*" and stem_gen.nom .. "*") or args['nom'] or stem_gen.nom, | ||
acc = args['acc'] or stem_gen.acc, | voc = (args['voc'] == "*" and stem_gen.voc .. "*") or args['voc'] or stem_gen.voc, | ||
dat = args['dat'] or stem_gen.dat, | acc = (args['acc'] == "*" and stem_gen.acc .. "*") or args['acc'] or stem_gen.acc, | ||
gen = args['gen'] or stem_gen.gen, | dat = (args['dat'] == "*" and stem_gen.dat .. "*") or args['dat'] or stem_gen.dat, | ||
ins = args['ins'] or stem_gen.ins, | gen = (args['gen'] == "*" and stem_gen.gen .. "*") or args['gen'] or stem_gen.gen, | ||
nompl = args['nompl'] or stem_gen.nompl, | ins = (args['ins'] == "*" and stem_gen.ins .. "*") or args['ins'] or stem_gen.ins, | ||
genpl = args['genpl'] or stem_gen.genpl, | nompl = (args['nompl'] == "*" and stem_gen.nompl .. "*") or args['nompl'] or stem_gen.nompl, | ||
genpl_short = args['genpl_short'] or stem_gen.genpl_short, | genpl = (args['genpl'] == "*" and stem_gen.genpl .. "*") or args['genpl'] or stem_gen.genpl, | ||
genpl_short = (args['genpl_short'] == "*" and stem_gen.genpl_short .. "*") or args['genpl_short'] or stem_gen.genpl_short, | |||
anim = args['anim'] or stem_gen.anim, | |||
['type'] = stem_gen['type'], | ['type'] = stem_gen['type'], | ||
} | |||
local gender = args['gender'] or args['g'] or "in" | |||
local definite = args['definite'] ~= nil or args['def'] ~= nil | |||
local irregular = args["irr"] or args["irregular"] | |||
for _, arg in ipairs(args) do | |||
if irregular or mw.ustring.find(arg, "%*") then | |||
irregular = true | |||
break | |||
end | |||
end | |||
for arg_name, arg in pairs(args) do | |||
if mw.ustring.find(arg_name, "%_note") then | |||
--continue | |||
elseif irregular or mw.ustring.find(arg, "%*") then | |||
irregular = true | |||
break | |||
end | |||
end | |||
local irregular_title = "" | |||
if irregular then irregular_title = ", ''irregular''" .. irregular_icon end | |||
local adj = args['adj'] | local adj = args['adj'] | ||
local adj_broken = "" | local adj_broken = "" | ||
local adj_broken_e = "" | local adj_broken_e = "" | ||
if adj then | if adj then | ||
if not mw.ustring.match(adj, "(ș)$") then error("All adjectives must end in -ș") end | if not mw.ustring.match(adj, "(ș)$") then error("All adjectives must end in -ș") end | ||
adj = " " .. adj | if definite and not (mw.ustring.match(mw.ustring.lower(adj), "^( ?[ui] )") or mw.ustring.match(mw.ustring.lower(adj), "^( ?a [iíỉuúủ])") or mw.ustring.match(mw.ustring.lower(adj), "^( ?a [" .. C .. "])") or mw.ustring.match(adj, "^( ?ag )") or mw.ustring.match(mw.ustring.lower(adj), "( [ui] )") or mw.ustring.match(mw.ustring.lower(adj), "( a [iíỉuúủ])") or mw.ustring.match(mw.ustring.lower(adj), "( a [" .. C .. "])") or mw.ustring.match(adj, "( ag )")) then | ||
if gender == "in" then | |||
if mw.ustring.match(mw.ustring.lower(adj), "^([" .. C .. "])") then | |||
adj = "a " .. adj | |||
else | |||
adj = "ag " .. adj | |||
end | |||
elseif gender == "an" then | |||
if mw.ustring.match(mw.ustring.lower(adj), "^([uúủ])") then | |||
adj = "a " .. adj | |||
else | |||
adj = "u " .. adj | |||
end | |||
end | |||
end | |||
adj_broken = args['adjbreak'] or break_adj(adj) | 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, " | adj_broken_e = mw.ustring.gsub(adj_broken, "uș ", "ûș ") | ||
adj_broken_e = mw.ustring.gsub(adj_broken_e, " | adj_broken_e = mw.ustring.gsub(adj_broken_e, "aûș ", "auș ") | ||
adj_broken_e = | adj_broken_e = mw.ustring.gsub(adj_broken_e, "aùș ", "aûș ") | ||
adj_broken_e = mw.ustring.gsub(adj_broken_e, "ș ", "șe ") | |||
adj_broken_e = mw.ustring.gsub(adj_broken_e, "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 = mw.ustring.gsub(adj_broken_e, "ș$", "șe") | |||
adj = mw.ustring.gsub(adj, "(°)", "") | adj = mw.ustring.gsub(adj, "(°)", "") | ||
adj = " " .. adj | |||
adj_broken = " " .. adj_broken | |||
adj_broken_e = " " .. adj_broken_e | |||
else | else | ||
adj_broken = nil | adj_broken = nil | ||
Line 98: | Line 344: | ||
end | end | ||
local post = args['post'] | local post = args['post'] | ||
local disable_ipa = args['noipa'] or false | |||
format_table = {} | |||
local decl_type = { | local decl_type = { | ||
["C"] = "heavy", | ["C"] = "heavy", | ||
["CH"] = " | ["CH"] = "spirant", | ||
["VH"] = " | ["VH"] = "spirant", | ||
["V"] = "light", | ["V"] = "light", | ||
["G"] = "semi-light" | ["G"] = "semi-light" | ||
Line 111: | Line 358: | ||
local type_name = decl_type[stems['type']] | local type_name = decl_type[stems['type']] | ||
local table_type = args['type'] or "sgpl" | local table_type = args['type'] or args['t'] or "sgpl" | ||
local | local oblique_pl = {['genpl'] = true, ['datpl'] = true, ['accpl'] = true, ['inspl'] = true, ['gendu'] = true, ['datdu'] = true, ['accdu'] = true, ['insdu'] = true,} | ||
local | local pl = {['nompl'] = true, ['genpl'] = true, ['datpl'] = true, ['accpl'] = true, ['inspl'] = true, ['nomdu'] = true, ['gendu'] = true, ['datdu'] = true, ['accdu'] = true, ['insdu'] = true,} | ||
-- generate forms -- | -- generate forms -- | ||
local function get_forms(case, base, adj_base, adj_ending, nolink) | local function get_forms(case, base, adj_base, adj_ending, nolink) | ||
if mw.ustring.find(base, "%*") then | |||
base = "*" .. mw.ustring.gsub(base, "%*", "") | |||
end | |||
local article = "" | |||
if adj_base then | if adj_base then | ||
--adjust definite article -- | |||
-- detect vocative | |||
if case == "voc" or case == "vocdu" or case == "vocpl" then | |||
adj_base = mw.ustring.gsub(adj_base, "^( ?)ag? ", "%1") | |||
adj_base = mw.ustring.gsub(adj_base, " ag? ", " ") | |||
adj_base = mw.ustring.gsub(adj_base, "^( ?)[iu] ", "%1") | |||
adj_base = mw.ustring.gsub(adj_base, " [iu] ", " ") | |||
-- detect inanimate -- | |||
elseif mw.ustring.match(mw.ustring.lower(adj_base), "^( ?a [" .. C .. "])") or mw.ustring.match(adj_base, "^( ?ag )") or mw.ustring.match(mw.ustring.lower(adj_base), "( a [" .. C .. "])") or mw.ustring.match(adj_base, "( ag )") then | |||
definite = true | |||
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 ") | |||
adj_base = mw.ustring.gsub(adj_base, " ag ([iíỉIÍỈ])", " a' %1") | |||
adj_base = mw.ustring.gsub(adj_base, " ag? ", " ai ") | |||
elseif case == "genpl_short" or case == "gendu_short" then | |||
adj_base = mw.ustring.gsub(adj_base, "^( ?)ag? ", "%1ais ") | |||
adj_base = mw.ustring.gsub(adj_base, " ag? ", " ais ") | |||
elseif case == "gen_short" then | |||
adj_base = mw.ustring.gsub(adj_base, "^( ?)ag? ", "%1as ") | |||
adj_base = mw.ustring.gsub(adj_base, " ag? ", " as ") | |||
case = "gen" | |||
end | |||
-- detect animate -- | |||
elseif mw.ustring.match(mw.ustring.lower(adj_base), "^( ?[ui] )") or mw.ustring.match(mw.ustring.lower(adj_base), "^( ?a [iíỉuúủ])") or mw.ustring.match(mw.ustring.lower(adj_base), "( [ui] )") or mw.ustring.match(mw.ustring.lower(adj_base), "( a [iíỉuúủ])") then | |||
definite = true | |||
if pl[case] then | |||
adj_base = mw.ustring.gsub(adj_base, "^( ?)[au] ([iíỉIÍỈ])", "%1a %2") | |||
adj_base = mw.ustring.gsub(adj_base, "^( ?)[au] ", "%1i ") | |||
adj_base = mw.ustring.gsub(adj_base, " [au] ([iíỉIÍỈ])", " a %1") | |||
adj_base = mw.ustring.gsub(adj_base, " [au] ", " i ") | |||
elseif case == "genpl_short" or case == "gendu_short" then | |||
adj_base = mw.ustring.gsub(adj_base, "^( ?)[aiu] ", "%1is ") | |||
adj_base = mw.ustring.gsub(adj_base, " [aiu] ", " is ") | |||
elseif case == "gen_short" then | |||
adj_base = mw.ustring.gsub(adj_base, "^( ?)[aiu] ", "%1us ") | |||
adj_base = mw.ustring.gsub(adj_base, " [aiu] ", " us ") | |||
case = "gen" | |||
end | |||
end | |||
-- append -- | |||
if adj_ending then adj_base = mw.ustring.gsub(adj_base, "ș ", "ș" .. adj_ending .. " ") end | |||
base = base .. adj_base | base = base .. adj_base | ||
if adj_ending then base = base .. adj_ending end | if adj_ending then base = base .. adj_ending end | ||
elseif definite then -- if not adjective but definite | |||
local c_initial = mw.ustring.match(mw.ustring.lower(base), "^([" .. C .. "])") | |||
local i_initial = mw.ustring.match(mw.ustring.lower(base), "^([iíỉ])") | |||
local u_initial = mw.ustring.match(mw.ustring.lower(base), "^([uúủ])") | |||
if case == "voc" or case == "vocdu" or case == "vocpl" then | |||
article = "" | |||
elseif gender == "in" then | |||
if oblique_pl[case] then | |||
if i_initial then | |||
article = "a'" | |||
else | |||
article = "ai" | |||
end | |||
elseif case == "gen_short" then | |||
article = "as" | |||
case = "gen" | |||
elseif case == "genpl_short" or case == "gendu_short" then | |||
article = "ais" | |||
else | |||
if c_initial then | |||
article = "a" | |||
else | |||
article = "ag" | |||
end | |||
end | |||
else -- animate definite article | |||
if pl[case] then | |||
if i_initial then | |||
article = "a" | |||
else | |||
article = "i" | |||
end | |||
elseif case == "gen_short" then | |||
article = "us" | |||
case = "gen" | |||
elseif case == "genpl_short" or case == "gendu_short" then | |||
article = "is" | |||
else | |||
if u_initial then | |||
article = "a" | |||
else | |||
article = "u" | |||
end | |||
end | |||
end | |||
if nolink then | |||
article = article .. " " | |||
end | |||
end | end | ||
if case == "vocdu" then case = "nomdu" end | |||
if case == "vocpl" then case = "nompl" end | |||
if post then base = base .. post end | if post then base = base .. post end | ||
if args['alt' .. case] then | if args['alt' .. case] then | ||
Line 162: | Line 491: | ||
counter = counter + 1 | counter = counter + 1 | ||
end | end | ||
return rad_link_IPA(list) | if nolink then | ||
return article .. list[1].word | |||
else | |||
if disable_ipa then return rad_link_IPA(list, nil, true, article) else return rad_link_IPA(list, nil, false, article) end | |||
end | |||
else | else | ||
if nolink then | if nolink then | ||
return base | return article .. base | ||
else | else | ||
return rad_link_IPA(base) | if disable_ipa then return rad_link_IPA(base, nil, true, article) else return rad_link_IPA(base, nil, false, article) end | ||
end | end | ||
end | end | ||
end | end | ||
local nom = get_forms("nom", stems.nom, adj_broken_e) | local nom = "" | ||
local nom_cite = "" | |||
local gen = get_forms("gen", stems.gen, adj_broken, "k") | 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 | |||
nom_cite = mw.ustring.gsub(nom_cite, "%*", "") | |||
local voc = get_forms("voc", stems.voc, adj_broken_e) | |||
local gen = "" | |||
local gen_short = "" | |||
local dat = "" | |||
local acc = "" | |||
local ins = "" | |||
if gender == "an" then | |||
gen = get_forms("gen", stems.gen, adj, "esk") | |||
gen_short = get_forms("gen_short", stems.gen, adj, "esk") | |||
dat = get_forms("dat", stems.dat, adj, "en") | |||
acc = get_forms("acc", stems.acc, adj, "est") | |||
ins = get_forms("ins", stems.ins, adj, "evúr") | |||
else | |||
gen = get_forms("gen", stems.gen, adj_broken, "k") | |||
gen_short = get_forms("gen_short", stems.gen, adj_broken, "k") | |||
dat = get_forms("dat", stems.dat, adj, "a") | |||
acc = get_forms("acc", stems.acc, adj_broken, "t") | |||
ins = get_forms("ins", stems.ins, adj, "úr") | |||
end | |||
local nompl = get_forms("nompl", stems.nompl, adj_broken_e) | local nompl = get_forms("nompl", stems.nompl, adj_broken_e) | ||
local nompl_cite = get_forms("nompl", stems.nompl, adj_broken_e, "", true) | local nompl_cite = get_forms("nompl", stems.nompl, adj_broken_e, "", true) | ||
local genpl = get_forms("genpl", stems.genpl .. "ris", adj, "eris") | local vocpl = get_forms("vocpl", stems.nompl, adj_broken_e) | ||
local genpl = get_forms("genpl", mw.ustring.gsub(stems.genpl .. "ris", "sris$", "sis"), adj, "eris") | |||
local genpl_short = get_forms("genpl_short", stems.genpl_short, adj, "es") | local genpl_short = get_forms("genpl_short", stems.genpl_short, adj, "es") | ||
local datpl = get_forms(" | local datpl = get_forms("datpl", mw.ustring.gsub(stems.genpl .. "rín", "srín$", "sín"), adj, "erín") | ||
local accpl = get_forms("accpl", stems.genpl .. "rid", adj, "erid") | local accpl = get_forms("accpl", mw.ustring.gsub(stems.genpl .. "rid", "srid$", "sid"), adj, "erid") | ||
local inspl = get_forms("inspl", stems.genpl .. "ríe", adj, "eríe") | local inspl = get_forms("inspl", mw.ustring.gsub(stems.genpl .. "ríe", "sríe$", "síe"), adj, "eríe") | ||
local nomdu = get_forms("nomdu", stems.dat .. "te", adj_broken_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 nomdu_cite = get_forms("nomdu", stems.dat .. "te", adj_broken_e, "", true) | ||
local vocdu = get_forms("vocdu", stems.dat .. "te", adj_broken_e) | |||
local gendu = get_forms("gendu", stems.dat .. "tis", adj, "eris") | local gendu = get_forms("gendu", stems.dat .. "tis", adj, "eris") | ||
local gendu_short = get_forms("gendu_short", stems.dat .. " | local gendu_short = get_forms("gendu_short", stems.dat .. "tis", adj, "es") | ||
local datdu = get_forms("datdu", stems.dat .. "tín", adj, "erín") | local datdu = get_forms("datdu", stems.dat .. "tín", adj, "erín") | ||
local accdu = get_forms("accdu", stems.dat .. "tid", adj, "erid") | local accdu = get_forms("accdu", stems.dat .. "tid", adj, "erid") | ||
local insdu = get_forms("insdu", stems.dat .. "tíe", adj, "eríe") | local insdu = get_forms("insdu", stems.dat .. "tíe", adj, "eríe") | ||
--adjectives only | |||
local inan = "" | |||
local anim = "" | |||
local anim_gen = "" | |||
local anim_dat = "" | |||
local anim_acc = "" | |||
local anim_ins = "" | |||
if table_type == "adj" then | |||
inan = get_forms("inan", stems.anim, adj_broken_e) | |||
anim = get_forms("anim", stems.anim .. "e", adj_broken_e) | |||
anim_gen = get_forms("anim_gen", stems.anim .. "esk", adj, "esk") | |||
anim_dat = get_forms("anim_dat", stems.anim .. "en", adj, "en") | |||
anim_acc = get_forms("anim_acc", stems.anim .. "est", adj, "est") | |||
anim_ins = get_forms("anim_ins", stems.anim .. "evúr", adj, "evúr") | |||
add("<table width=100% class=\"blacklinks wikitable inflection table\" style=\"text-align: center\">") | |||
tr() | |||
th("Attributive forms", 1, 3) | |||
th("Emphatic combined forms with the definite article", 1, 6) | |||
_tr() | |||
th("singular", 1, 2) | |||
th("plural", 2, 1) | |||
th("+ " .. rad_link("a"), 2) | |||
th("+ " .. rad_link("a'"), 2) | |||
th("+ " .. rad_link("ag"), 2) | |||
th("+ " .. rad_link("ai"), 2) | |||
th("+ " .. rad_link("i"), 2) | |||
th("+ " .. rad_link("u"), 2) | |||
_tr() | |||
th("inanimate") | |||
th("animate") | |||
_tr() | |||
td(inan) | |||
td(anim, 1, 2) | |||
td(get_forms("anim", stems.anim .. "a", adj_broken_e)) | |||
td(get_forms("anim", stems.anim .. "a'", adj_broken_e)) | |||
td(get_forms("anim", stems.anim .. "ag", adj_broken_e)) | |||
td(get_forms("anim", stems.anim .. "ai", adj_broken_e)) | |||
td(get_forms("anim", stems.anim .. "i", adj_broken_e)) | |||
td(get_forms("anim", stems.anim .. "u", adj_broken_e)) | |||
tr_() | |||
add("</table>") | |||
end | |||
if table_type == "adjn" then table_type = "adj" end | |||
add("<table class=\"mw-collapsible mw-collapsed wikitable inflection table\" style=\"text-align: center\">") | add("<table class=\"blacklinks mw-collapsible mw-collapsed wikitable inflection table\" style=\"text-align: center\">") | ||
if table_type == "sgpl" then | if table_type == "sgpl" or table_type == "adj" then | ||
th("Declension of <i>" .. nom_cite .. "</i> (" .. type_name .. ") ", 1, 4) | if table_type == "adj" then | ||
th("Substantive declension of <i>" .. nom_cite .. "</i> ", 1, 5) | |||
else | |||
th(" | th("Declension of <i>" .. nom_cite .. "</i> (" .. type_name .. irregular_title .. ") ", 1, 4) | ||
th(" | end | ||
tr() | |||
if table_type == "adj" then | |||
th("", 2, 2) | |||
th("singular", 1, 2) | |||
th("plural", 2, 1) | |||
_tr() | |||
th("inanimate") | |||
th("animate") | |||
else | |||
th("", 1, 2) | |||
th("singular") | |||
th("plural") | |||
end | |||
_tr() | |||
th("nominative", 1, 2) | th("nominative", 1, 2) | ||
if nom == nompl then | if table_type == "adj" then | ||
td(nom, | td(nompl, 2, 3) | ||
elseif nom == nompl then | |||
td(nompl, 2, 2) | |||
elseif nom == voc then | |||
td(nom, 2) | |||
td(nompl, 2) | |||
else | else | ||
td(nom) | td(nom) | ||
td(nompl) | if nompl == vocpl then td(nompl, 2) else td(nompl) end | ||
end | end | ||
_tr() | |||
th("vocative", 1, 2) | |||
if nom ~= nompl and nom ~= voc and table_type ~= "adj" then if voc == vocpl and nompl ~= vocpl then td(voc, 1, 2) else td(voc) end end | |||
if nompl ~= vocpl and voc ~= vocpl then td(vocpl) end | |||
_tr() | |||
th("genitive", 2, 1) | th("genitive", 2, 1) | ||
th(" | th("proper") | ||
td(gen, 2, 1) | if definite then | ||
td(gen) | |||
else | |||
td(gen, 2, 1) | |||
end | |||
if table_type == "adj" then td(anim_gen, 2, 1) end | |||
td(genpl) | td(genpl) | ||
_tr() | |||
th("constructive") | |||
if definite then | |||
td(gen_short) | |||
end | |||
td(genpl_short) | td(genpl_short) | ||
_tr() | |||
th("dative", 1, 2) | th("dative", 1, 2) | ||
td(dat) | td(dat) | ||
if table_type == "adj" then td(anim_dat) end | |||
td(datpl) | td(datpl) | ||
_tr() | |||
th("accusative", 1, 2) | th("accusative", 1, 2) | ||
td(acc) | td(acc) | ||
if table_type == "adj" then td(anim_acc) end | |||
td(accpl) | td(accpl) | ||
_tr() | |||
th("instrumental", 1, 2) | th("instrumental", 1, 2) | ||
td(ins) | td(ins) | ||
if table_type == "adj" then td(anim_ins) end | |||
td(inspl) | td(inspl) | ||
tr_() | |||
elseif table_type == "sg" then | elseif table_type == "sg" then | ||
local sg_title = "Declension of <i>" .. nom_cite .. "</i> (" .. type_name .. ", ''[[:Category:Radestrian singularia tantum|singulare tantum]]''" .. irregular_title .. ") " | |||
if definite then | |||
th("") | th(sg_title, 1, 3) | ||
th(" | tr() | ||
th("", 1, 2) | |||
th("singular") | |||
th(" | _tr() | ||
th("nominative", 1, 2) | |||
if nom == voc then td(nom, 2) else td(nom) end | |||
_tr() | |||
th(" | th("vocative", 1, 2) | ||
if nom ~= voc then td(voc) end | |||
_tr() | |||
th("genitive", 2, 1) | |||
th(" | th("proper") | ||
td(gen) | |||
_tr() | |||
th("constructive") | |||
th(" | td(gen_short) | ||
_tr() | |||
th("dative", 1, 2) | |||
td(dat) | |||
th("instrumental") | _tr() | ||
th("accusative", 1, 2) | |||
td(acc) | |||
_tr() | |||
th("instrumental", 1, 2) | |||
td(ins) | |||
tr_() | |||
else | |||
th(sg_title, 1, 2) | |||
tr() | |||
th("") | |||
th("singular") | |||
_tr() | |||
th("nominative") | |||
if nom == voc then td(nom, 2) else td(nom) end | |||
_tr() | |||
th("vocative") | |||
if nom ~= voc then td(voc) end | |||
_tr() | |||
th("genitive") | |||
td(gen) | |||
_tr() | |||
th("dative") | |||
td(dat) | |||
_tr() | |||
th("accusative") | |||
td(acc) | |||
_tr() | |||
th("instrumental") | |||
td(ins) | |||
tr_() | |||
end | |||
elseif table_type == "pl" then | elseif table_type == "pl" then | ||
th("Declension of <i>" .. nompl_cite .. "</i> (" .. type_name .. ") ", 1, 3) | th("Declension of <i>" .. nompl_cite .. "</i> (" .. type_name .. ", ''[[:Category:Radestrian pluralia tantum|plurale tantum]]''" .. irregular_title .. ") ", 1, 3) | ||
tr() | |||
th("", 1, 2) | th("", 1, 2) | ||
th("plural") | th("plural") | ||
_tr() | |||
th("nominative", 1, 2) | th("nominative", 1, 2) | ||
td(nompl) | if nompl == vocpl then td(nompl, 2) else td(nompl) end | ||
_tr() | |||
th("vocative", 1, 2) | |||
if nompl ~= vocpl then td(vocpl) end | |||
_tr() | |||
th("genitive", 2, 1) | th("genitive", 2, 1) | ||
th(" | th("proper") | ||
td(genpl) | td(genpl) | ||
_tr() | |||
th("constructive") | |||
th(" | |||
td(genpl_short) | td(genpl_short) | ||
_tr() | |||
th("dative", 1, 2) | th("dative", 1, 2) | ||
td(datpl) | td(datpl) | ||
_tr() | |||
th("accusative", 1, 2) | th("accusative", 1, 2) | ||
td(accpl) | td(accpl) | ||
_tr() | |||
th("instrumental", 1, 2) | th("instrumental", 1, 2) | ||
td(inspl) | td(inspl) | ||
tr_() | |||
elseif table_type == "du" then | elseif table_type == "du" then | ||
th("Declension of <i>" .. nom_cite .. "</i> (" .. type_name .. ") ", 1, 5) | th("Declension of <i>" .. nom_cite .. "</i> (" .. type_name .. ", ''[[:Category:Radestrian pluralia binaria|cum plurali binario]]''" .. irregular_title .. ") ", 1, 5) | ||
tr() | |||
th("", 2, 2) | th("", 2, 2) | ||
th("singular", 2, 1) | th("singular", 2, 1) | ||
th("plural", 1, 2) | th("plural", 1, 2) | ||
_tr() | |||
th("binary") | th("binary") | ||
th("true") | th("true") | ||
_tr() | |||
th("nominative", 1, 2) | th("nominative", 1, 2) | ||
td(nom) | if nom == voc then td(nom, 2) else td(nom) end | ||
td(nomdu) | if nomdu == vocdu then td(nomdu, 2) else td(nomdu) end | ||
td(nompl) | if nompl == vocpl then td(nompl, 2) else td(nompl) end | ||
_tr() | |||
th("vocative", 1, 2) | |||
if nom ~= voc then td(voc) end | |||
if nomdu ~= vocdu then td(vocdu) end | |||
if nompl ~= vocpl then td(vocpl) end | |||
_tr() | |||
th("genitive", 2, 1) | th("genitive", 2, 1) | ||
th(" | th("proper") | ||
td(gen, 2, 1) | td(gen, 2, 1) | ||
td(gendu) | if definite or adj then | ||
td(gendu) | |||
else | |||
td(gendu, 2, 1) | |||
end | |||
td(genpl) | td(genpl) | ||
_tr() | |||
th("constructive") | |||
th(" | |||
td(genpl_short) | td(genpl_short) | ||
_tr() | |||
th("dative", 1, 2) | th("dative", 1, 2) | ||
td(dat) | td(dat) | ||
td(datdu) | td(datdu) | ||
td(datpl) | td(datpl) | ||
_tr() | |||
th("accusative", 1, 2) | th("accusative", 1, 2) | ||
td(acc) | td(acc) | ||
td(accdu) | td(accdu) | ||
td(accpl) | td(accpl) | ||
_tr() | |||
th("instrumental", 1, 2) | th("instrumental", 1, 2) | ||
td(ins) | td(ins) | ||
td(insdu) | td(insdu) | ||
td(inspl) | td(inspl) | ||
tr_() | |||
elseif table_type == "dupl" then | elseif table_type == "dupl" and (definite or adj) then | ||
th("Declension of <i>" .. nomdu_cite .. "</i> (" .. type_name .. ") ", 1, 3) | th("Declension of <i>" .. nomdu_cite .. "</i> (" .. type_name .. ", ''[[:Category:Radestrian pluralia binaria tantum|plurale binarium tantum]]''" .. irregular_title .. ") ", 1, 3) | ||
tr() | |||
th("", 1, 2) | th("", 1, 2) | ||
th("binary plural") | th("binary plural") | ||
_tr() | |||
th("nominative", 1, 2) | th("nominative", 1, 2) | ||
td(nomdu) | if nomdu == vocdu then td(nomdu, 2) else td(nomdu) end | ||
_tr() | |||
th("vocative", 1, 2) | |||
if nomdu ~= vocdu then td(vocdu) end | |||
_tr() | |||
th("genitive", 2, 1) | th("genitive", 2, 1) | ||
th(" | th("proper") | ||
td(gendu) | td(gendu) | ||
_tr() | |||
th("constructive") | |||
th(" | |||
td(gendu_short) | td(gendu_short) | ||
_tr() | |||
th("dative", 1, 2) | th("dative", 1, 2) | ||
td(datdu) | td(datdu) | ||
_tr() | |||
th("accusative", 1, 2) | th("accusative", 1, 2) | ||
td(accdu) | td(accdu) | ||
_tr() | |||
th("instrumental", 1, 2) | th("instrumental", 1, 2) | ||
td(insdu) | td(insdu) | ||
tr_() | |||
elseif table_type == "dupl" then | |||
th("Declension of <i>" .. nomdu_cite .. "</i> (" .. type_name .. ", ''[[:Category:Radestrian pluralia binaria tantum|plurale binarium tantum]]''" .. irregular_title .. ") ", 1, 2) | |||
tr() | |||
th("") | |||
th("binary plural") | |||
_tr() | |||
th("nominative") | |||
if nomdu == vocdu then td(nomdu, 2) else td(nomdu) end | |||
_tr() | |||
th("vocative") | |||
if nomdu ~= vocdu then td(vocdu) end | |||
_tr() | |||
th("genitive") | |||
td(gendu) | |||
_tr() | |||
th("dative") | |||
td(datdu) | |||
_tr() | |||
th("accusative") | |||
td(accdu) | |||
_tr() | |||
th("instrumental") | |||
td(insdu) | |||
tr_() | |||
end | end | ||
add("</table>") | add("</table>") | ||
if args['notags'] ~= "true" or args['notags'] == nil then | 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]]") | 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 | |||
if definite then add("[[Category:Radestrian definite terms]]") end | |||
if irregular then add("[[Category:Radestrian irregular nouns]]") end | |||
end | |||
return table.concat(format_table, string.char(10)) | |||
end | |||
function export.conjugate(frame) | |||
local args = getArgs(frame) | |||
local table_type = args["t"] or args["type"] or "tr" | |||
local disable_ipa = args['noipa'] | |||
local irregular = args["irr"] or args["irregular"] | |||
for _, arg in ipairs(args) do | |||
if irregular or mw.ustring.find(arg, "%*") then | |||
irregular = true | |||
break | |||
end | |||
end | |||
for arg_name, arg in pairs(args) do | |||
if mw.ustring.find(arg_name, "%_note") then | |||
--continue | |||
elseif irregular or mw.ustring.find(arg, "%*") then | |||
irregular = true | |||
break | |||
end | |||
end | |||
local irregular_title = "" | |||
if irregular then irregular_title = ", ''irregular''" .. irregular_icon end | |||
if args[3] == nil then -- sense preset conjugation | |||
local root = args[1] | |||
checked = true | |||
if args[2] == "ru" then -- -rut verbs | |||
args[1] = root .. "rut" | |||
args[2] = root .. "ruv" | |||
args[3] = root .. "ru" | |||
args[4] = root .. "rui" | |||
args[5] = root .. "ru" | |||
args[6] = root .. "rur" | |||
args[7] = root .. "rur" | |||
args['r'] = root .. "rûr" | |||
args['imp'] = root .. "rûja" | |||
args['depers'] = root .. "rû" | |||
args['rpst'] = root .. "rujr" | |||
args['altprespart'] = root .. "ri" | |||
args['altprespart_note'] = "archaic" | |||
args['altpspart'] = root .. "rú" | |||
args['altpspart_note'] = "archaic" | |||
elseif args[2] == "a" then -- -at verbs | |||
table_type = "intr" | |||
args[1] = root .. "at" | |||
args[2] = root .. "av" | |||
args[3] = root .. "a" | |||
args[4] = root .. "ai" | |||
args[5] = root .. "a" | |||
args['altprespart'] = root .. "ami" | |||
args['altprespart_note'] = "archaic" | |||
args['altpspart'] = args['altpspart'] or (root .. "mú") | |||
args['altpspart_note'] = "archaic" | |||
elseif args[2] == "y" then -- -yt verbs | |||
args[1] = root .. "yt" | |||
args[2] = root .. "yv" | |||
args[3] = root .. "y" | |||
args[4] = root .. "ý" | |||
args[5] = root .. "j" | |||
args[6] = root .. "yr" | |||
args[7] = root .. "ýr" | |||
args['epst'] = root .. "ý" | |||
args['rpst'] = root .. "ýr" | |||
elseif args[2] == "r" then -- passive-only verbs | |||
table_type = "pass" | |||
args[1] = root .. "r" | |||
args[2] = root .. "r" | |||
args[3] = root .. "r" | |||
args[4] = root .. "r" | |||
args[5] = root .. "r" | |||
args[6] = root .. "r" | |||
args[7] = root .. "r" | |||
else error("Invalid preset") | |||
end | |||
end | |||
local pp = m_stem.getVerbStem(args) | |||
-- mw.logObject(pp) | |||
format_table = {} | |||
if (table_type == "tr" or table_type == "pass") and args[6] == nil then error("Passive conjugation tables require arguments 6 (infinitive) and 7 (present participle stem). Please provide these parameters or set t=intr") 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, regex1, regex2, regex3, regex4, regex5, regex6) | |||
local temp = {} | |||
local post = "" | |||
local noipa = disable_ipa or false | |||
if type(regex2) == "boolean" then | |||
if regex1 == nil then | |||
post = nil | |||
else | |||
post = regex1 | |||
end | |||
noipa = regex2 | |||
regex1 = nil | |||
regex2 = nil | |||
else | |||
post = nil | |||
end | |||
ending = ending or "" | |||
regex1 = regex1 or "" | |||
regex2 = regex2 or "" | |||
regex3 = regex3 or "" | |||
regex4 = regex4 or "" | |||
regex5 = regex5 or "" | |||
regex6 = regex6 or "" | |||
if type(stem) == "table" then | |||
for i, form in ipairs(stem) do | |||
if mw.ustring.find(form['word'], "%*") then | |||
form['word'] = "*" .. mw.ustring.gsub(form['word'], "%*", "") | |||
end | |||
temp[i] = {['word'] = mw.ustring.gsub(form['word'] .. ending, regex1, regex2), ['note'] = form['note']} | |||
temp[i]['word'] = mw.ustring.gsub(temp[i]['word'], regex3, regex4) | |||
temp[i]['word'] = mw.ustring.gsub(temp[i]['word'], regex5, regex6) | |||
end | |||
local new_temp = {} | |||
new_temp[1] = temp[1] | |||
for index = 2, #temp do | |||
for check = 1, (index - 1) do | |||
local to_add = true | |||
if temp[index]["word"] == temp[check]["word"] then to_add = false end | |||
if to_add then table.insert(new_temp, temp[index]) end | |||
end | |||
end | |||
temp = new_temp | |||
elseif type(stem) == "string" then | |||
if mw.ustring.find(stem, "%*") then | |||
stem = "*" .. mw.ustring.gsub(stem, "%*", "") | |||
end | |||
temp = mw.ustring.gsub(stem .. ending, regex1, regex2) | |||
temp = mw.ustring.gsub(temp, regex3, regex4) | |||
temp = mw.ustring.gsub(temp, regex5, regex6) | |||
end | |||
return rad_link_IPA(temp, post, noipa) | |||
end | |||
local form_3s = get_forms(pp['3s']) | |||
local form_2s = get_forms(pp.depers or pp['2s'], "", "nv$", "nu") | |||
if table_type ~= "tr" and table_type ~= "intr" and table_type ~= "pass" and table_type ~= "impers" then error("Invalid table type") end | |||
add("<small>") | |||
if table_type == "impers" then -- impersonal table | |||
local cite = "" | |||
if (type(pp.inf) == "table") then cite = pp['inf'][1]['word'] else cite = pp.inf end | |||
add("<table class=\"blacklinks mw-collapsible mw-collapsed wikitable inflection table\" width=70% style=\"text-align: center\">") | |||
tr() | |||
th("Conjugation of ''" .. cite .. "'' (impersonal" .. irregular_title .. ") ", 1, 5) | |||
_tr() | |||
th("nonfinite forms", 1, 5) | |||
_tr() | |||
th("infinitive", 1, 3) | |||
td(get_forms(pp.inf), 1, 2) | |||
_tr() | |||
th("connegative", 1, 3) | |||
td(get_forms(pp.inf,"a","([^a])uta$","%1ûta"), 1, 2) | |||
_tr() | |||
th("supine", 1, 3) | |||
td(get_forms(pp.inf,"úr", "([^a])utúr$","%1ûtúr"), 1, 2) | |||
_tr() | |||
th("adverbial participle", 2, 2) | |||
th("present") | |||
td(get_forms(pp.prespart,"vú"), 1, 2) | |||
_tr() | |||
th("past") | |||
td(get_forms(pp.pspart,"l"), 1, 2) | |||
_tr() | |||
th("finite forms", 3, 3) | |||
th("singular", 1, 2) | |||
_tr() | |||
th("third") | |||
th("depersonal") | |||
_tr() | |||
th("∅") | |||
th("''" .. rad_link("gjeș") .. " …''") | |||
_tr() | |||
th("simple", 6, 1) | |||
th("indicative", 2, 1) | |||
th("non-past") | |||
if form_3s == form_2s then | |||
td(form_3s, 1, 2) | |||
else | |||
td(form_3s) | |||
td(form_2s) | |||
end | |||
_tr() | |||
th("past") | |||
if pp.epst then | |||
td(get_forms(pp.epst,"ș")) | |||
td(get_forms(pp.epst)) | |||
else | |||
td(get_forms(pp.pst,"eș")) | |||
td(get_forms(pp.pst,"e")) | |||
end | |||
_tr() | |||
th("subjunctive",2,1) | |||
th("non-past") | |||
td(get_forms(pp.a,"ș")) | |||
td(get_forms(pp.a)) | |||
_tr() | |||
th("past") | |||
td(get_forms(pp.pst,"aiș", "aaiș$", "áeș", "áaiș$", "ảeș")) | |||
td(get_forms(pp.pst,"ai", "aai$", "áe", "áai$", "ảe")) | |||
_tr() | |||
th("optative",2,1) | |||
th("non-past") | |||
td(get_forms(pp['2s'],"úș")) | |||
td(get_forms(pp['2s'],"ú")) | |||
_tr() | |||
th("past") | |||
if pp.epst then | |||
td(get_forms(pp.epst,"veș")) | |||
td(get_forms(pp.epst,"ve")) | |||
else | |||
td(get_forms(pp.pst,"eveș")) | |||
td(get_forms(pp.pst,"eve")) | |||
end | |||
_tr() | |||
th("habitual",6,1) | |||
th("indicative",2,1) | |||
th("non-past") | |||
td(get_forms(pp.r,"iș")) | |||
td(get_forms(pp.r,"i")) | |||
_tr() | |||
th("past") | |||
if pp.epst then | |||
td(get_forms(pp.epst,"riș")) | |||
td(get_forms(pp.epst,"ri")) | |||
else | |||
td(get_forms(pp.pst,"eriș")) | |||
td(get_forms(pp.pst,"eri")) | |||
end | |||
_tr() | |||
th("subjunctive",2,1) | |||
th("non-past") | |||
td(get_forms(pp.a,"riș")) | |||
td(get_forms(pp.a,"ri")) | |||
_tr() | |||
th("past") | |||
td(get_forms(pp.pst,"airiș", "aairiș$", "áeriș", "áairiș$", "ảeriș")) | |||
td(get_forms(pp.pst,"airi", "aairi$", "áeri", "áairi$", "ảeri")) | |||
_tr() | |||
th("optative",2,1) | |||
th("non-past") | |||
td(get_forms(pp['2s'],"úriș")) | |||
td(get_forms(pp['2s'],"úri")) | |||
_tr() | |||
th("past") | |||
if pp.epst then | |||
td(get_forms(pp.epst,"veriș")) | |||
td(get_forms(pp.epst,"veri")) | |||
else | |||
td(get_forms(pp.pst,"everiș")) | |||
td(get_forms(pp.pst,"everi")) | |||
end | |||
tr_() | |||
add("</table>") | |||
add("<table class=\"blacklinks mw-collapsible mw-collapsed wikitable inflection table\" width=70% style=\"text-align: center\">") | |||
tr() | |||
th("Compound forms of ''" .. cite .. "'' (impersonal) ", 1, 5) | |||
_tr() | |||
th("", 3, 3) | |||
th("singular", 1, 2) | |||
_tr() | |||
th("third") | |||
th("depersonal") | |||
_tr() | |||
th("∅") | |||
th("''" .. rad_link("gjeș") .. " …''") | |||
_tr() | |||
th("continuous",7,1) | |||
th("infinitive",1,2) | |||
td(get_forms(pp.prespart,"vú","vat",true),1,2) | |||
_tr() | |||
th("indicative",2,1) | |||
th("non-past") | |||
td(get_forms(pp.prespart,"vú","vaș",true)) | |||
td(get_forms(pp.prespart,"vú",_,true)) | |||
_tr() | |||
th("past") | |||
td(get_forms(pp.prespart,"vú","hâleș",true)) | |||
td(get_forms(pp.prespart,"vú","hâle",true)) | |||
_tr() | |||
th("subjunctive",2,1) | |||
th("non-past") | |||
td(get_forms(pp.prespart,"vú","vagaș",true)) | |||
td(get_forms(pp.prespart,"vú","vaga",true)) | |||
_tr() | |||
th("past") | |||
td(get_forms(pp.prespart,"vú","hâlaiș",true)) | |||
td(get_forms(pp.prespart,"vú","hâlai",true)) | |||
_tr() | |||
th("optative",2,1) | |||
th("non-past") | |||
td(get_forms(pp.prespart,"vú","vagúș",true)) | |||
td(get_forms(pp.prespart,"vú","vagú",true)) | |||
_tr() | |||
th("past") | |||
td(get_forms(pp.prespart,"vú","hâleveș",true)) | |||
td(get_forms(pp.prespart,"vú","hâleve",true)) | |||
_tr() | |||
th("perfective",7,1) | |||
th("infinitive",1,2) | |||
td(get_forms(pp.pspart,"l","-at",true),1,2) | |||
_tr() | |||
th("indicative",2,1) | |||
th("perfect") | |||
td(get_forms(pp.pspart,"l","-aș",true)) | |||
td(get_forms(pp.pspart,"l", _,true)) | |||
_tr() | |||
th("pluperfect") | |||
td(get_forms(pp.pspart,"l","-âleș",true)) | |||
td(get_forms(pp.pspart,"l","-âle",true)) | |||
_tr() | |||
th("subjunctive",2,1) | |||
th("perfect") | |||
td(get_forms(pp.pspart,"l","-agaș",true)) | |||
td(get_forms(pp.pspart,"l","-aga",true)) | |||
_tr() | |||
th("pluperfect") | |||
td(get_forms(pp.pspart,"l","-âlaiș",true)) | |||
td(get_forms(pp.pspart,"l","-âlai",true)) | |||
_tr() | |||
th("optative",2,1) | |||
th("perfect") | |||
td(get_forms(pp.pspart,"l","-agúș",true)) | |||
td(get_forms(pp.pspart,"l","-agú",true)) | |||
_tr() | |||
th("pluperfect") | |||
td(get_forms(pp.pspart,"l","-âleveș",true)) | |||
td(get_forms(pp.pspart,"l","-âleve",true)) | |||
_tr() | |||
th("Negative compound forms of ''" .. cite .. "'' (impersonal)",1,5) | |||
_tr() | |||
th("continuous",7,1) | |||
th("infinitive",1,2) | |||
td(get_forms(pp.prespart,"vú","hjeat",true),1,2) | |||
_tr() | |||
th("indicative",2,1) | |||
th("non-past") | |||
td(get_forms(pp.prespart,"vú","hjeaș",true)) | |||
td(get_forms(pp.prespart,"vú","hje",true)) | |||
_tr() | |||
th("past") | |||
td(get_forms(pp.prespart,"vú","húeș",true)) | |||
td(get_forms(pp.prespart,"vú","húe",true)) | |||
_tr() | |||
th("subjunctive",2,1) | |||
th("non-past") | |||
td(get_forms(pp.prespart,"vú","hjeàș",true)) | |||
td(get_forms(pp.prespart,"vú","hjeà",true)) | |||
_tr() | |||
th("past") | |||
td(get_forms(pp.prespart,"vú","húaiș",true)) | |||
td(get_forms(pp.prespart,"vú","húai",true)) | |||
_tr() | |||
th("optative",2,1) | |||
th("non-past") | |||
td(get_forms(pp.prespart,"vú","hjeúș",true)) | |||
td(get_forms(pp.prespart,"vú","hjeú",true)) | |||
_tr() | |||
th("past") | |||
td(get_forms(pp.prespart,"vú","húeveș",true)) | |||
td(get_forms(pp.prespart,"vú","húeve",true)) | |||
_tr() | |||
th("perfective",7,1) | |||
th("infinitive",1,2) | |||
td(get_forms(pp.pspart,"l","hjeat",true),1,2) | |||
_tr() | |||
th("indicative",2,1) | |||
th("perfect") | |||
td(get_forms(pp.pspart,"l","hjeaș",true)) | |||
td(get_forms(pp.pspart,"l", "hje",true)) | |||
_tr() | |||
th("pluperfect") | |||
td(get_forms(pp.pspart,"l","-úeș",true)) | |||
td(get_forms(pp.pspart,"l","-úe",true)) | |||
_tr() | |||
th("subjunctive",2,1) | |||
th("perfect") | |||
td(get_forms(pp.pspart,"l","hjeàș",true)) | |||
td(get_forms(pp.pspart,"l","hjeà",true)) | |||
_tr() | |||
th("pluperfect") | |||
td(get_forms(pp.pspart,"l","-úaiș",true)) | |||
td(get_forms(pp.pspart,"l","-úai",true)) | |||
_tr() | |||
th("optative",2,1) | |||
th("perfect") | |||
td(get_forms(pp.pspart,"l","hjeúș",true)) | |||
td(get_forms(pp.pspart,"l","hjeú",true)) | |||
_tr() | |||
th("pluperfect") | |||
td(get_forms(pp.pspart,"l","-úeveș",true)) | |||
td(get_forms(pp.pspart,"l","-úeve",true)) | |||
tr_() | |||
add("</table>") | |||
end | |||
if table_type == "intr" or table_type == "tr" then -- active table | |||
local cite = "" | |||
if (type(pp.inf) == "table") then cite = pp['inf'][1]['word'] else cite = pp.inf end | |||
add("<table class=\"blacklinks mw-collapsible mw-collapsed wikitable inflection table\" width=100% style=\"text-align: center\">") | |||
tr() | |||
th("Conjugation of ''" .. cite .. "'' (active voice" .. irregular_title .. ") ", 1, 14) | |||
_tr() | |||
th("nonfinite forms", 1, 14) | |||
_tr() | |||
th("infinitive", 1, 3) | |||
td(get_forms(pp.inf), 1, 11) | |||
_tr() | |||
th("connegative", 1, 3) | |||
if cite == "vat" or cite == "hjeat" then | |||
th("''" .. cite .. "'' does not have a connegative", 1, 11) | |||
else | |||
td(get_forms(pp.inf,"a","([^a])uta$","%1ûta"), 1, 11) | |||
end | |||
_tr() | |||
th("supine", 1, 3) | |||
td(get_forms(pp.inf,"úr", "([^a])utúr$","%1ûtú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) | |||
_tr() | |||
th("finite forms", 4, 3) | |||
th("singular", 1, 5) | |||
th("plural", 1, 5) | |||
th("humble") | |||
_tr() | |||
th("first", 2, 1) | |||
th("second", 1, 2) | |||
th("third", 2, 1) | |||
th("depersonal", 2, 1) | |||
th("first", 1, 2) | |||
th("second", 2, 1) | |||
th("third", 2, 1) | |||
th("depersonal", 2, 1) | |||
th("second", 2, 1) | |||
_tr() | |||
th("informal") | |||
th("formal") | |||
th("inclusive") | |||
th("exclusive") | |||
_tr() | |||
th("''" .. rad_link("ú") .. "''") | |||
th("''" .. rad_link("re") .. "''") | |||
th("''" .. rad_link("lește") .. "''") | |||
th("''" .. rad_link("vâs") .. ", " .. rad_link("vara") .. "''") | |||
th("''" .. rad_link("gjei") .. ", " .. rad_link("gjen") .. ", " .. rad_link("gjeș") .. " …''") | |||
th("''" .. rad_link("dzun") .. ", " .. rad_link("sted") .. "''") | |||
th("''" .. rad_link("dzate") .. "''") | |||
th("''" .. rad_link("sjáște") .. "''") | |||
th("''" .. rad_link("vír") .. ", " .. rad_link("vara") .. "''") | |||
th("''" .. rad_link("gjes") .. ", " .. rad_link("gjete") .. ", " .. rad_link("gje") .. ", " .. rad_link("gjen") .. " …''") | |||
th("''" .. rad_link("sja") .. ", " .. rad_link("lai") .. "''") | |||
_tr() | |||
th("simple", 7, 1) | |||
th("imperative", 1, 2) | |||
th() | |||
local form_imp = "" | |||
if pp.imp then form_imp = get_forms(pp.imp) else form_imp = nil end | |||
local form_a = get_forms(pp.a) | |||
if form_imp and form_a ~= form_imp then | |||
td(form_imp) | |||
elseif pp.vstem then | |||
td(get_forms(pp.a, "", "va$", "ja")) | |||
else | |||
td(form_a, 2, 1) | |||
end | |||
td(get_forms(pp['2s'],"úș")) | |||
th("", 1, 2) | |||
td(get_forms(pp.pl or pp['2s'],"uoș")) | |||
th() | |||
td(get_forms(pp['2s'],"ovú", "([au])ovú$", "%1òvú")) | |||
th("", 1, 2) | |||
td(get_forms(pp.pl or pp['2s'],"úr")) | |||
_tr() | |||
th("indicative", 2, 1) | |||
th("non-past") | |||
td(get_forms(pp['1s'])) | |||
if (form_imp and form_a ~= form_imp) or pp.vstem then td(form_a) end | |||
if form_3s == form_2s then | |||
td(form_3s, 1, 3) | |||
else | |||
td(form_3s, 1, 2) | |||
td(form_2s) | |||
end | |||
local temp_height = 1 | |||
if get_forms(pp.pl or pp['2s'],"ú") == get_forms(pp.pst,"ú","[uú]ú$","ủ") then temp_height = 2 end | |||
td(get_forms(pp.pl or pp['2s'],"uos"), temp_height) | |||
td(get_forms(pp.pl or pp['2s'],"uote"), temp_height) | |||
td(get_forms(pp.pl or pp['2s'],"ú"), temp_height, 3) | |||
td(get_forms(pp.pl or pp['2s'],"ún"), temp_height) | |||
_tr() | |||
th("past") | |||
if pp.epst then | |||
td(get_forms(pp.epst,"e")) | |||
td(get_forms(pp.epst,"n")) | |||
td(get_forms(pp.epst,"ș"),1,2) | |||
td(get_forms(pp.epst)) | |||
else | |||
td(get_forms(pp.pst,"ei")) | |||
td(get_forms(pp.pst,"en")) | |||
td(get_forms(pp.pst,"eș"),1,2) | |||
td(get_forms(pp.pst,"e")) | |||
end | |||
if get_forms(pp.pl or pp['2s'],"ú") ~= get_forms(pp.pst,"ú","[uú]ú$","ủ") then | |||
td(get_forms(pp.pst,"uos","[uú]uos$","ủos")) | |||
td(get_forms(pp.pst,"uote","[uú]uote$","ủote")) | |||
td(get_forms(pp.pst,"ú","[uú]ú$","ủ"),1,3) | |||
td(get_forms(pp.pst,"ún","[uú]ún$","ủn")) | |||
end | |||
_tr() | |||
th("subjunctive",2,1) | |||
th("non-past") | |||
local aidentical = false | |||
if pp.vstem then | |||
local aiheight = 1 | |||
if get_forms(pp['2s'],"ai","avai$","áe") == get_forms(pp.pst,"ai", "aai$", "áe", "áai$", "ảe") then | |||
aiheight = 2 | |||
aidentical = true | |||
end | |||
td(get_forms(pp['2s'],"ai","avai$","áe", "áai$", "ảe"),aiheight) | |||
td(get_forms(pp['2s'],"á","avá$","áva")) | |||
else | |||
local aiheight = 1 | |||
if get_forms(pp['2s'],"ai","âai$","oai") == get_forms(pp.pst,"ai", "aai$", "áe", "áai$", "ảe") then | |||
aiheight = 2 | |||
aidentical = true | |||
end | |||
td(get_forms(pp['2s'],"ai","âai$","oai","aai","áe", "áai$", "ảe"),aiheight) | |||
td(get_forms(pp['2s'],"á","âá$","oá","[aá]á","ả")) | |||
end | |||
td(get_forms(pp.a,"ș"),1,2) | |||
td(get_forms(pp.a)) | |||
temp_height = 1 | |||
if pp.a == pp.apst then temp_height = 2 end | |||
td(get_forms(pp.a,"vuos"), temp_height) | |||
td(get_forms(pp.a,"vuote"), temp_height) | |||
td(get_forms(pp.a,"vú"), temp_height, 3) | |||
td(get_forms(pp.a,"vún"), temp_height) | |||
_tr() | |||
th("past") | |||
if not aidentical then td(get_forms(pp.pst,"ai", "aai$", "áe", "áai$", "ảe")) end | |||
td(get_forms(pp.pst,"ain", "aain$", "áen", "áain$", "ảen")) | |||
td(get_forms(pp.pst,"aiș", "aaiș$", "áeș", "áaiș$", "ảeș"),1,2) | |||
td(get_forms(pp.pst,"ai", "aai$", "áe", "áai$", "ảe")) | |||
if pp.a ~= pp.apst then | |||
td(get_forms(pp.apst,"vuos")) | |||
td(get_forms(pp.apst,"vuote")) | |||
td(get_forms(pp.apst,"vú"),1,3) | |||
td(get_forms(pp.apst,"vún")) | |||
end | |||
_tr() | |||
th("optative",2,1) | |||
th("non-past") | |||
td(get_forms(pp['2s'],"úe")) | |||
td(get_forms(pp['2s'],"ova", "([au])ova$", "%1òva")) | |||
td(get_forms(pp['2s'],"úș"),1,2) | |||
td(get_forms(pp['2s'],"ú")) | |||
td(get_forms(pp['2s'],"ovuos", "([au])ovuos$", "%1òvuos")) | |||
td(get_forms(pp['2s'],"ovuote", "([au])ovuote$", "%1òvuote")) | |||
td(get_forms(pp['2s'],"ovú", "([au])ovú$", "%1òvú"),1,3) | |||
td(get_forms(pp['2s'],"ovún", "([au])ovún$", "%1òvún")) | |||
_tr() | |||
th("past") | |||
if pp.epst then | |||
td(get_forms(pp.epst,"vei")) | |||
td(get_forms(pp.epst,"ven")) | |||
td(get_forms(pp.epst,"veș"),1,2) | |||
td(get_forms(pp.epst,"ve")) | |||
td(get_forms(pp.epst,"vuos")) | |||
td(get_forms(pp.epst,"vuote")) | |||
td(get_forms(pp.epst,"vú"),1,3) | |||
td(get_forms(pp.epst,"vún")) | |||
else | |||
td(get_forms(pp.pst,"evei")) | |||
td(get_forms(pp.pst,"even")) | |||
td(get_forms(pp.pst,"eveș"),1,2) | |||
td(get_forms(pp.pst,"eve")) | |||
td(get_forms(pp.pst,"evuos")) | |||
td(get_forms(pp.pst,"evuote")) | |||
td(get_forms(pp.pst,"evú"),1,3) | |||
td(get_forms(pp.pst,"evún")) | |||
end | |||
_tr() | |||
th("habitual",6,1) | |||
th("indicative",2,1) | |||
th("non-past") | |||
td(get_forms(pp.r,"iè")) | |||
td(get_forms(pp.r,"in")) | |||
td(get_forms(pp.r,"iș"),1,2) | |||
td(get_forms(pp.r,"i")) | |||
temp_height = 1 | |||
if get_forms(pp.pl or pp['2s'],"ú") == get_forms(pp.pst,"ú","[uú]ú$","ủ") then temp_height = 2 end | |||
td(get_forms(pp.pl or pp['2s'],"úris"), temp_height) | |||
td(get_forms(pp.pl or pp['2s'],"úrite"), temp_height) | |||
td(get_forms(pp.pl or pp['2s'],"úri"), temp_height, 3) | |||
td(get_forms(pp.pl or pp['2s'],"úrin"), temp_height) | |||
_tr() | |||
th("past") | |||
if pp.epst then | |||
td(get_forms(pp.epst,"riè")) | |||
td(get_forms(pp.epst,"rin")) | |||
td(get_forms(pp.epst,"riș"),1,2) | |||
td(get_forms(pp.epst,"ri")) | |||
else | |||
td(get_forms(pp.pst,"eriè")) | |||
td(get_forms(pp.pst,"erin")) | |||
td(get_forms(pp.pst,"eriș"),1,2) | |||
td(get_forms(pp.pst,"eri")) | |||
end | |||
if get_forms(pp.pl or pp['2s'],"ú") ~= get_forms(pp.pst,"ú","[uú]ú$","ủ") then | |||
td(get_forms(pp.pst,"úris","[uú]úris$","ủris")) | |||
td(get_forms(pp.pst,"úrite","[uú]úrite$","ủrite")) | |||
td(get_forms(pp.pst,"úri","[uú]úri$","ủri"),1,3) | |||
td(get_forms(pp.pst,"úrin","[uú]úrin$","ủrin")) | |||
end | |||
_tr() | |||
th("subjunctive",2,1) | |||
th("non-past") | |||
td(get_forms(pp.a,"riè")) | |||
td(get_forms(pp.a,"rin")) | |||
td(get_forms(pp.a,"riș"),1,2) | |||
td(get_forms(pp.a,"ri")) | |||
temp_height = 1 | |||
if pp.a == pp.apst then temp_height = 2 end | |||
td(get_forms(pp.a,"vúris"), temp_height) | |||
td(get_forms(pp.a,"vúrite"), temp_height) | |||
td(get_forms(pp.a,"vúri"), temp_height, 3) | |||
td(get_forms(pp.a,"vúrin"), temp_height) | |||
_tr() | |||
th("past") | |||
td(get_forms(pp.pst,"airiè", "aairiè$", "áeriè", "áairiè$", "ảeriè")) | |||
td(get_forms(pp.pst,"airin", "aairin$", "áerin", "aairin$", "áerin")) | |||
td(get_forms(pp.pst,"airiș", "aairiș$", "áeriș", "aairiș$", "áeriș"),1,2) | |||
td(get_forms(pp.pst,"airi", "aairi$", "áeri", "aairi$", "áeri")) | |||
if pp.a ~= pp.apst then | |||
td(get_forms(pp.apst,"vúris")) | |||
td(get_forms(pp.apst,"vúrite")) | |||
td(get_forms(pp.apst,"vúri"),1,3) | |||
td(get_forms(pp.apst,"vúrin")) | |||
end | |||
_tr() | |||
th("optative",2,1) | |||
th("non-past") | |||
td(get_forms(pp['2s'],"úriè")) | |||
td(get_forms(pp['2s'],"úrin")) | |||
td(get_forms(pp['2s'],"úriș"),1,2) | |||
td(get_forms(pp['2s'],"úri")) | |||
td(get_forms(pp['2s'],"ovúris", "([au])ovúris$", "%1òvúris")) | |||
td(get_forms(pp['2s'],"ovúrite", "([au])ovúrite$", "%1òvúrite")) | |||
td(get_forms(pp['2s'],"ovúri", "([au])ovúri$", "%1òvúri"),1,3) | |||
td(get_forms(pp['2s'],"ovúrin", "([au])ovúrin$", "%1òvúrin")) | |||
_tr() | |||
th("past") | |||
if pp.epst then | |||
td(get_forms(pp.epst,"veriè")) | |||
td(get_forms(pp.epst,"verin")) | |||
td(get_forms(pp.epst,"veriș"),1,2) | |||
td(get_forms(pp.epst,"veri")) | |||
td(get_forms(pp.epst,"vúris")) | |||
td(get_forms(pp.epst,"vúrite")) | |||
td(get_forms(pp.epst,"vúri"),1,3) | |||
td(get_forms(pp.epst,"vúrin")) | |||
else | |||
td(get_forms(pp.pst,"everiè")) | |||
td(get_forms(pp.pst,"everin")) | |||
td(get_forms(pp.pst,"everiș"),1,2) | |||
td(get_forms(pp.pst,"everi")) | |||
td(get_forms(pp.pst,"evúris")) | |||
td(get_forms(pp.pst,"evúrite")) | |||
td(get_forms(pp.pst,"evúri"),1,3) | |||
td(get_forms(pp.pst,"evúrin")) | |||
end | |||
tr_() | |||
add("</table>") | |||
if pp.inf ~= "hjeat" then | |||
add("<table class=\"blacklinks mw-collapsible mw-collapsed wikitable inflection table\" width=100% style=\"text-align: center\">") | |||
tr() | |||
th("Compound forms of ''" .. cite .. "'' (active voice) ", 1, 14) | |||
_tr() | |||
th("", 4, 3) | |||
th("singular", 1, 5) | |||
th("plural", 1, 5) | |||
th("humble") | |||
_tr() | |||
th("first", 2, 1) | |||
th("second", 1, 2) | |||
th("third", 2, 1) | |||
th("depersonal", 2, 1) | |||
th("first", 1, 2) | |||
th("second", 2, 1) | |||
th("third", 2, 1) | |||
th("depersonal", 2, 1) | |||
th("second", 2, 1) | |||
_tr() | |||
th("informal") | |||
th("formal") | |||
th("inclusive") | |||
th("exclusive") | |||
_tr() | |||
th("''" .. rad_link("ú") .. "''") | |||
th("''" .. rad_link("re") .. "''") | |||
th("''" .. rad_link("lește") .. "''") | |||
th("''" .. rad_link("vâs") .. ", " .. rad_link("vara") .. "''") | |||
th("''" .. rad_link("gjei") .. ", " .. rad_link("gjen") .. ", " .. rad_link("gjeș") .. " …''") | |||
th("''" .. rad_link("dzun") .. ", " .. rad_link("sted") .. "''") | |||
th("''" .. rad_link("dzate") .. "''") | |||
th("''" .. rad_link("sjáște") .. "''") | |||
th("''" .. rad_link("vír") .. ", " .. rad_link("vara") .. "''") | |||
th("''" .. rad_link("gjes") .. ", " .. rad_link("gjete") .. ", " .. rad_link("gje") .. ", " .. rad_link("gjen") .. " …''") | |||
th("''" .. rad_link("sja") .. ", " .. rad_link("lai") .. "''") | |||
_tr() | |||
th("continuous",7,1) | |||
th("infinitive",1,2) | |||
td(get_forms(pp.prespart,"vú","vat",true),1,12) | |||
_tr() | |||
th("indicative",2,1) | |||
th("non-past") | |||
td(get_forms(pp.prespart,"vú","vage",true)) | |||
td(get_forms(pp.prespart,"vú","vaga",true)) | |||
td(get_forms(pp.prespart,"vú","vaș",true),1,2) | |||
td(get_forms(pp.prespart,"vú",_,true)) | |||
td(get_forms(pp.prespart,"vú","vaguos",true)) | |||
td(get_forms(pp.prespart,"vú","vaguote",true)) | |||
td(get_forms(pp.prespart,"vú","vagú",true),1,2) | |||
td(get_forms(pp.prespart,"vú",_,true)) | |||
td(get_forms(pp.prespart,"vú","vagún",true)) | |||
_tr() | |||
th("past") | |||
td(get_forms(pp.prespart,"vú","hâlei",true)) | |||
td(get_forms(pp.prespart,"vú","hâlen",true)) | |||
td(get_forms(pp.prespart,"vú","hâleș",true),1,2) | |||
td(get_forms(pp.prespart,"vú","hâle",true)) | |||
td(get_forms(pp.prespart,"vú","hâluos",true)) | |||
td(get_forms(pp.prespart,"vú","hâluote",true)) | |||
td(get_forms(pp.prespart,"vú","hâlú",true),1,3) | |||
td(get_forms(pp.prespart,"vú","hâlún",true)) | |||
_tr() | |||
th("subjunctive",2,1) | |||
th("non-past") | |||
td(get_forms(pp.prespart,"vú","vagai",true)) | |||
td(get_forms(pp.prespart,"vú","vagá",true)) | |||
td(get_forms(pp.prespart,"vú","vagaș",true),1,2) | |||
td(get_forms(pp.prespart,"vú","vaga",true)) | |||
td(get_forms(pp.prespart,"vú","vagavuos",true)) | |||
td(get_forms(pp.prespart,"vú","vagavuote",true)) | |||
td(get_forms(pp.prespart,"vú","vagavú",true),1,3) | |||
td(get_forms(pp.prespart,"vú","vagavún",true)) | |||
_tr() | |||
th("past") | |||
td(get_forms(pp.prespart,"vú","hâlai",true)) | |||
td(get_forms(pp.prespart,"vú","hâlain",true)) | |||
td(get_forms(pp.prespart,"vú","hâlaiș",true),1,2) | |||
td(get_forms(pp.prespart,"vú","hâlai",true)) | |||
td(get_forms(pp.prespart,"vú","hâlavuos",true)) | |||
td(get_forms(pp.prespart,"vú","hâlavuote",true)) | |||
td(get_forms(pp.prespart,"vú","hâlavú",true),1,3) | |||
td(get_forms(pp.prespart,"vú","hâlavún",true)) | |||
_tr() | |||
th("optative",2,1) | |||
th("non-past") | |||
td(get_forms(pp.prespart,"vú","vagúe",true)) | |||
td(get_forms(pp.prespart,"vú","vagova",true)) | |||
td(get_forms(pp.prespart,"vú","vagúș",true),1,2) | |||
td(get_forms(pp.prespart,"vú","vagú",true)) | |||
td(get_forms(pp.prespart,"vú","vagovuos",true)) | |||
td(get_forms(pp.prespart,"vú","vagovuote",true)) | |||
td(get_forms(pp.prespart,"vú","vagovú",true),1,3) | |||
td(get_forms(pp.prespart,"vú","vagovún",true)) | |||
_tr() | |||
th("past") | |||
td(get_forms(pp.prespart,"vú","hâlevei",true)) | |||
td(get_forms(pp.prespart,"vú","hâleven",true)) | |||
td(get_forms(pp.prespart,"vú","hâleveș",true),1,2) | |||
td(get_forms(pp.prespart,"vú","hâleve",true)) | |||
td(get_forms(pp.prespart,"vú","hâlevuos",true)) | |||
td(get_forms(pp.prespart,"vú","hâlevuote",true)) | |||
td(get_forms(pp.prespart,"vú","hâlevú",true),1,3) | |||
td(get_forms(pp.prespart,"vú","hâlevún",true)) | |||
_tr() | |||
th("perfective",7,1) | |||
th("infinitive",1,2) | |||
td(get_forms(pp.pspart,"l","-at",true),1,12) | |||
_tr() | |||
th("indicative",2,1) | |||
th("perfect") | |||
td(get_forms(pp.pspart,"l","-age",true)) | |||
td(get_forms(pp.pspart,"l","-aga",true)) | |||
td(get_forms(pp.pspart,"l","-aș",true),1,2) | |||
td(get_forms(pp.pspart,"l", _,true)) | |||
td(get_forms(pp.pspart,"l","-aguos",true)) | |||
td(get_forms(pp.pspart,"l","-aguote",true)) | |||
td(get_forms(pp.pspart,"l","-agú",true),1,2) | |||
td(get_forms(pp.pspart,"l", _,true)) | |||
td(get_forms(pp.pspart,"l","-agún",true)) | |||
_tr() | |||
th("pluperfect") | |||
td(get_forms(pp.pspart,"l","-âlei",true)) | |||
td(get_forms(pp.pspart,"l","-âlen",true)) | |||
td(get_forms(pp.pspart,"l","-âleș",true),1,2) | |||
td(get_forms(pp.pspart,"l","-âle",true)) | |||
td(get_forms(pp.pspart,"l","-âluos",true)) | |||
td(get_forms(pp.pspart,"l","-âluote",true)) | |||
td(get_forms(pp.pspart,"l","-âlú",true),1,3) | |||
td(get_forms(pp.pspart,"l","-âlún",true)) | |||
_tr() | |||
th("subjunctive",2,1) | |||
th("perfect") | |||
td(get_forms(pp.pspart,"l","-agai",true)) | |||
td(get_forms(pp.pspart,"l","-agá",true)) | |||
td(get_forms(pp.pspart,"l","-agaș",true),1,2) | |||
td(get_forms(pp.pspart,"l","-aga",true)) | |||
td(get_forms(pp.pspart,"l","-agavuos",true)) | |||
td(get_forms(pp.pspart,"l","-agavuote",true)) | |||
td(get_forms(pp.pspart,"l","-agavú",true),1,3) | |||
td(get_forms(pp.pspart,"l","-agavún",true)) | |||
_tr() | |||
th("pluperfect") | |||
td(get_forms(pp.pspart,"l","-âlai",true)) | |||
td(get_forms(pp.pspart,"l","-âlain",true)) | |||
td(get_forms(pp.pspart,"l","-âlaiș",true),1,2) | |||
td(get_forms(pp.pspart,"l","-âlai",true)) | |||
td(get_forms(pp.pspart,"l","-âlavuos",true)) | |||
td(get_forms(pp.pspart,"l","-âlavuote",true)) | |||
td(get_forms(pp.pspart,"l","-âlavú",true),1,3) | |||
td(get_forms(pp.pspart,"l","-âlavún",true)) | |||
_tr() | |||
th("optative",2,1) | |||
th("perfect") | |||
td(get_forms(pp.pspart,"l","-agúe",true)) | |||
td(get_forms(pp.pspart,"l","-agova",true)) | |||
td(get_forms(pp.pspart,"l","-agúș",true),1,2) | |||
td(get_forms(pp.pspart,"l","-agú",true)) | |||
td(get_forms(pp.pspart,"l","-agovuos",true)) | |||
td(get_forms(pp.pspart,"l","-agovuote",true)) | |||
td(get_forms(pp.pspart,"l","-agovú",true),1,3) | |||
td(get_forms(pp.pspart,"l","-agovún",true)) | |||
_tr() | |||
th("pluperfect") | |||
td(get_forms(pp.pspart,"l","-âlevei",true)) | |||
td(get_forms(pp.pspart,"l","-âleven",true)) | |||
td(get_forms(pp.pspart,"l","-âleveș",true),1,2) | |||
td(get_forms(pp.pspart,"l","-âleve",true)) | |||
td(get_forms(pp.pspart,"l","-âlevuos",true)) | |||
td(get_forms(pp.pspart,"l","-âlevuote",true)) | |||
td(get_forms(pp.pspart,"l","-âlevú",true),1,3) | |||
td(get_forms(pp.pspart,"l","-âlevún",true)) | |||
_tr() | |||
th("Negative compound forms of ''" .. cite .. "'' (active voice)",1,14) | |||
_tr() | |||
th("continuous",7,1) | |||
th("infinitive",1,2) | |||
td(get_forms(pp.prespart,"vú","hjeat",true),1,12) | |||
_tr() | |||
th("indicative",2,1) | |||
th("non-past") | |||
td(get_forms(pp.prespart,"vú","hjei",true)) | |||
td(get_forms(pp.prespart,"vú","hjeà",true)) | |||
td(get_forms(pp.prespart,"vú","hjeaș",true),1,2) | |||
td(get_forms(pp.prespart,"vú","hje",true)) | |||
td(get_forms(pp.prespart,"vú","hjeuos",true)) | |||
td(get_forms(pp.prespart,"vú","hjeuote",true)) | |||
td(get_forms(pp.prespart,"vú","hjeú",true),1,3) | |||
td(get_forms(pp.prespart,"vú","hjeún",true)) | |||
_tr() | |||
th("past") | |||
td(get_forms(pp.prespart,"vú","húei",true)) | |||
td(get_forms(pp.prespart,"vú","húen",true)) | |||
td(get_forms(pp.prespart,"vú","húeș",true),1,2) | |||
td(get_forms(pp.prespart,"vú","húe",true)) | |||
td(get_forms(pp.prespart,"vú","hủos",true)) | |||
td(get_forms(pp.prespart,"vú","hủote",true)) | |||
td(get_forms(pp.prespart,"vú","hủ",true),1,3) | |||
td(get_forms(pp.prespart,"vú","hủn",true)) | |||
_tr() | |||
th("subjunctive",2,1) | |||
th("non-past") | |||
td(get_forms(pp.prespart,"vú","hjeai",true)) | |||
td(get_forms(pp.prespart,"vú","hjeá",true)) | |||
td(get_forms(pp.prespart,"vú","hjeàș",true),1,2) | |||
td(get_forms(pp.prespart,"vú","hjeà",true)) | |||
td(get_forms(pp.prespart,"vú","hjeàvuos",true)) | |||
td(get_forms(pp.prespart,"vú","hjeàvuote",true)) | |||
td(get_forms(pp.prespart,"vú","hjeàvú",true),1,3) | |||
td(get_forms(pp.prespart,"vú","hjeàvún",true)) | |||
_tr() | |||
th("past") | |||
td(get_forms(pp.prespart,"vú","húai",true)) | |||
td(get_forms(pp.prespart,"vú","húain",true)) | |||
td(get_forms(pp.prespart,"vú","húaiș",true),1,2) | |||
td(get_forms(pp.prespart,"vú","húai",true)) | |||
td(get_forms(pp.prespart,"vú","húavuos",true)) | |||
td(get_forms(pp.prespart,"vú","húavuote",true)) | |||
td(get_forms(pp.prespart,"vú","húavú",true),1,3) | |||
td(get_forms(pp.prespart,"vú","húavún",true)) | |||
_tr() | |||
th("optative",2,1) | |||
th("non-past") | |||
td(get_forms(pp.prespart,"vú","hjeúe",true)) | |||
td(get_forms(pp.prespart,"vú","hjeova",true)) | |||
td(get_forms(pp.prespart,"vú","hjeúș",true),1,2) | |||
td(get_forms(pp.prespart,"vú","hjeú",true)) | |||
td(get_forms(pp.prespart,"vú","hjeovuos",true)) | |||
td(get_forms(pp.prespart,"vú","hjeovuote",true)) | |||
td(get_forms(pp.prespart,"vú","hjeovú",true),1,3) | |||
td(get_forms(pp.prespart,"vú","hjeovún",true)) | |||
_tr() | |||
th("past") | |||
td(get_forms(pp.prespart,"vú","húevei",true)) | |||
td(get_forms(pp.prespart,"vú","húeven",true)) | |||
td(get_forms(pp.prespart,"vú","húeveș",true),1,2) | |||
td(get_forms(pp.prespart,"vú","húeve",true)) | |||
td(get_forms(pp.prespart,"vú","húevuos",true)) | |||
td(get_forms(pp.prespart,"vú","húevuote",true)) | |||
td(get_forms(pp.prespart,"vú","húevú",true),1,3) | |||
td(get_forms(pp.prespart,"vú","húevún",true)) | |||
_tr() | |||
th("perfective",7,1) | |||
th("infinitive",1,2) | |||
td(get_forms(pp.pspart,"l","hjeat",true),1,12) | |||
_tr() | |||
th("indicative",2,1) | |||
th("perfect") | |||
td(get_forms(pp.pspart,"l","hjei",true)) | |||
td(get_forms(pp.pspart,"l","hjeà",true)) | |||
td(get_forms(pp.pspart,"l","hjeaș",true),1,2) | |||
td(get_forms(pp.pspart,"l", "hje",true)) | |||
td(get_forms(pp.pspart,"l","hjeuos",true)) | |||
td(get_forms(pp.pspart,"l","hjeuote",true)) | |||
td(get_forms(pp.pspart,"l","hjeú",true),1,3) | |||
td(get_forms(pp.pspart,"l","hjeún",true)) | |||
_tr() | |||
th("pluperfect") | |||
td(get_forms(pp.pspart,"l","-úei",true)) | |||
td(get_forms(pp.pspart,"l","-úen",true)) | |||
td(get_forms(pp.pspart,"l","-úeș",true),1,2) | |||
td(get_forms(pp.pspart,"l","-úe",true)) | |||
td(get_forms(pp.pspart,"l","-ủos",true)) | |||
td(get_forms(pp.pspart,"l","-ủote",true)) | |||
td(get_forms(pp.pspart,"l","-ủ",true),1,3) | |||
td(get_forms(pp.pspart,"l","-ủn",true)) | |||
_tr() | |||
th("subjunctive",2,1) | |||
th("perfect") | |||
td(get_forms(pp.pspart,"l","hjeai",true)) | |||
td(get_forms(pp.pspart,"l","hjeá",true)) | |||
td(get_forms(pp.pspart,"l","hjeàș",true),1,2) | |||
td(get_forms(pp.pspart,"l","hjeà",true)) | |||
td(get_forms(pp.pspart,"l","hjeàvuos",true)) | |||
td(get_forms(pp.pspart,"l","hjeàvuote",true)) | |||
td(get_forms(pp.pspart,"l","hjeàvú",true),1,3) | |||
td(get_forms(pp.pspart,"l","hjeàvún",true)) | |||
_tr() | |||
th("pluperfect") | |||
td(get_forms(pp.pspart,"l","-úai",true)) | |||
td(get_forms(pp.pspart,"l","-úain",true)) | |||
td(get_forms(pp.pspart,"l","-úaiș",true),1,2) | |||
td(get_forms(pp.pspart,"l","-úai",true)) | |||
td(get_forms(pp.pspart,"l","-úavuos",true)) | |||
td(get_forms(pp.pspart,"l","-úavuote",true)) | |||
td(get_forms(pp.pspart,"l","-úavú",true),1,3) | |||
td(get_forms(pp.pspart,"l","-úavún",true)) | |||
_tr() | |||
th("optative",2,1) | |||
th("perfect") | |||
td(get_forms(pp.pspart,"l","hjeúe",true)) | |||
td(get_forms(pp.pspart,"l","hjeova",true)) | |||
td(get_forms(pp.pspart,"l","hjeúș",true),1,2) | |||
td(get_forms(pp.pspart,"l","hjeú",true)) | |||
td(get_forms(pp.pspart,"l","hjeovuos",true)) | |||
td(get_forms(pp.pspart,"l","hjeovuote",true)) | |||
td(get_forms(pp.pspart,"l","hjeovú",true),1,3) | |||
td(get_forms(pp.pspart,"l","hjeovún",true)) | |||
_tr() | |||
th("pluperfect") | |||
td(get_forms(pp.pspart,"l","-úevei",true)) | |||
td(get_forms(pp.pspart,"l","-úeven",true)) | |||
td(get_forms(pp.pspart,"l","-úeveș",true),1,2) | |||
td(get_forms(pp.pspart,"l","-úeve",true)) | |||
td(get_forms(pp.pspart,"l","-úevuos",true)) | |||
td(get_forms(pp.pspart,"l","-úevuote",true)) | |||
td(get_forms(pp.pspart,"l","-úevú",true),1,3) | |||
td(get_forms(pp.pspart,"l","-úevún",true)) | |||
tr_() | |||
add("</table>") | |||
end | |||
end | |||
if table_type == "tr" or table_type == "pass" then | |||
local cite = "" | |||
if (type(pp.passinf) == "table") then cite = pp['passinf'][1]['word'] else cite = pp.passinf end | |||
add("<table class=\"blacklinks mw-collapsible mw-collapsed wikitable inflection table\" width=100% style=\"text-align: center\">") | |||
tr() | |||
th("Conjugation of ''" .. cite .. "uot'' (passive voice" .. irregular_title .. ") ", 1, 14) | |||
_tr() | |||
th("nonfinite forms", 1, 14) | |||
_tr() | |||
th("infinitive", 1, 3) | |||
td(get_forms(pp.passinf,"uot"), 1, 11) | |||
_tr() | |||
th("connegative", 1, 3) | |||
td(get_forms(pp.passinf,"uota"), 1, 11) | |||
_tr() | |||
th("supine", 1, 3) | |||
td(get_forms(pp.passinf,"uotúr"), 1, 11) | |||
_tr() | |||
th("participle", 4, 1) | |||
th("present", 2, 1) | |||
th("adjectival") | |||
td(get_forms(pp.passprespart,"uviș"), 1, 11) | |||
_tr() | |||
th("adverbial") | |||
td(get_forms(pp.passprespart,"uvivú"), 1, 11) | |||
_tr() | |||
th("past", 2, 1) | |||
th("adjectival") | |||
local pspart_broken = {} | |||
if type(pp.pspart) == "table" then | |||
local i_counter = 1 | |||
while pp.pspart[i_counter] do | |||
pspart_broken[i_counter] = {} | |||
pspart_broken[i_counter]['word'] = pp.pspart[i_counter]['word'] | |||
pspart_broken[i_counter]['note'] = pp.pspart[i_counter]['note'] | |||
i_counter = i_counter + 1 | |||
end | |||
for i,form in ipairs(pspart_broken) do | |||
pspart_broken[i]['word'] = mw.ustring.gsub(form['word'], "ú$", "uo") | |||
pspart_broken[i]['word'] = mw.ustring.gsub(form['word'], "ủ$", "ủo") | |||
end | |||
elseif type(pp.pspart) == "string" then | |||
pspart_broken = pp.pspart | |||
pspart_broken = mw.ustring.gsub(pspart_broken, "ú$", "uo") | |||
pspart_broken = mw.ustring.gsub(pspart_broken, "ủ$", "ủo") | |||
else | |||
error() | |||
end | |||
td(get_forms(pspart_broken,"kș"), 1, 11) | |||
_tr() | |||
th("adverbial") | |||
td(get_forms(pp.pspart,"k"), 1, 11) | |||
_tr() | |||
th("verbal noun", 1, 3) | |||
td(get_forms(pp.passinf,"uvaș"), 1, 11) | |||
_tr() | |||
th("finite forms", 4, 3) | |||
th("singular", 1, 5) | |||
th("plural", 1, 5) | |||
th("humble") | |||
_tr() | |||
th("first", 2, 1) | |||
th("second", 1, 2) | |||
th("third", 2, 1) | |||
th("depersonal", 2, 1) | |||
th("first", 1, 2) | |||
th("second", 2, 1) | |||
th("third", 2, 1) | |||
th("depersonal", 2, 1) | |||
th("second", 2, 1) | |||
_tr() | |||
th("informal") | |||
th("formal") | |||
th("inclusive") | |||
th("exclusive") | |||
_tr() | |||
th("''" .. rad_link("ú") .. "''") | |||
th("''" .. rad_link("re") .. "''") | |||
th("''" .. rad_link("lește") .. "''") | |||
th("''" .. rad_link("vâs") .. ", " .. rad_link("vara") .. "''") | |||
th("''" .. rad_link("gjei") .. ", " .. rad_link("gjen") .. ", " .. rad_link("gjeș") .. " …''") | |||
th("''" .. rad_link("dzun") .. ", " .. rad_link("sted") .. "''") | |||
th("''" .. rad_link("dzate") .. "''") | |||
th("''" .. rad_link("sjáște") .. "''") | |||
th("''" .. rad_link("vír") .. ", " .. rad_link("vara") .. "''") | |||
th("''" .. rad_link("gjes") .. ", " .. rad_link("gjete") .. ", " .. rad_link("gje") .. ", " .. rad_link("gjen") .. " …''") | |||
th("''" .. rad_link("sja") .. ", " .. rad_link("lai") .. "''") | |||
_tr() | |||
th("simple", 7, 1) | |||
th("imperative", 1, 2) | |||
th() | |||
td(get_forms(pp.r,"úa")) | |||
td(get_forms(pp.r,"uvúș")) | |||
th("", 1, 2) | |||
td(get_forms(pp.r,"uvuoș")) | |||
th() | |||
td(get_forms(pp.r,"uvovú")) | |||
th("", 1, 2) | |||
td(get_forms(pp.r,"uvúr")) | |||
_tr() | |||
th("indicative", 2, 1) | |||
th("non-past") | |||
td(get_forms(pp.r,"úe")) | |||
td(get_forms(pp.r,"uva")) | |||
td(get_forms(pp.r,"úș"), 1, 2) | |||
td(get_forms(pp.r,"ú")) | |||
local temp_height = 1 | |||
if pp.r == pp.rpst then temp_height = 2 end | |||
td(get_forms(pp.r,"uvuos"), temp_height) | |||
td(get_forms(pp.r,"uvuote"), temp_height) | |||
td(get_forms(pp.r,"uvú"), temp_height, 3) | |||
td(get_forms(pp.r,"uvún"), temp_height) | |||
_tr() | |||
th("past") | |||
td(get_forms(pp.rpst,"uvei")) | |||
td(get_forms(pp.rpst,"uven")) | |||
td(get_forms(pp.rpst,"uveș"),1,2) | |||
td(get_forms(pp.rpst,"uve")) | |||
if pp.r ~= pp.rpst then | |||
td(get_forms(pp.rpst,"uvuos")) | |||
td(get_forms(pp.rpst,"uvuote")) | |||
td(get_forms(pp.rpst,"uvú"),1,3) | |||
td(get_forms(pp.rpst,"uvún")) | |||
end | |||
_tr() | |||
th("subjunctive",2,1) | |||
th("non-past") | |||
temp_height = 1 | |||
if pp.r == pp.rpst then temp_height = 2 end | |||
td(get_forms(pp.r,"uvai"),temp_height) | |||
td(get_forms(pp.r,"uvá")) | |||
td(get_forms(pp.r,"uvaș"),1,2) | |||
td(get_forms(pp.r,"uva")) | |||
td(get_forms(pp.r,"uvavuos"), temp_height) | |||
td(get_forms(pp.r,"uvavuote"), temp_height) | |||
td(get_forms(pp.r,"uvavú"), temp_height, 3) | |||
td(get_forms(pp.r,"uvavún"), temp_height) | |||
_tr() | |||
th("past") | |||
if pp.r ~= pp.rpst then td(get_forms(pp.rpst,"uvai")) end | |||
td(get_forms(pp.rpst,"uvain")) | |||
td(get_forms(pp.rpst,"uvaiș"),1,2) | |||
td(get_forms(pp.rpst,"uvai")) | |||
if pp.r ~= pp.rpst then | |||
td(get_forms(pp.rpst,"uvavuos")) | |||
td(get_forms(pp.rpst,"uvavuote")) | |||
td(get_forms(pp.rpst,"uvavú"),1,3) | |||
td(get_forms(pp.rpst,"uvavún")) | |||
end | |||
_tr() | |||
th("optative",2,1) | |||
th("non-past") | |||
td(get_forms(pp.r,"uvúe")) | |||
td(get_forms(pp.r,"uvova")) | |||
td(get_forms(pp.r,"uvúș"),1,2) | |||
td(get_forms(pp.r,"uvú")) | |||
td(get_forms(pp.r,"uvovuos")) | |||
td(get_forms(pp.r,"uvovuote")) | |||
td(get_forms(pp.r,"uvovú"),1,3) | |||
td(get_forms(pp.r,"uvovún")) | |||
_tr() | |||
th("past") | |||
td(get_forms(pp.rpst,"uvevei")) | |||
td(get_forms(pp.rpst,"uveven")) | |||
td(get_forms(pp.rpst,"uveveș"),1,2) | |||
td(get_forms(pp.rpst,"uveve")) | |||
td(get_forms(pp.rpst,"uvevuos")) | |||
td(get_forms(pp.rpst,"uvevuote")) | |||
td(get_forms(pp.rpst,"uvevú"),1,3) | |||
td(get_forms(pp.rpst,"uvevún")) | |||
_tr() | |||
th("habitual",6,1) | |||
th("indicative",2,1) | |||
th("non-past") | |||
td(get_forms(pp.r,"úriè")) | |||
td(get_forms(pp.r,"úrin")) | |||
td(get_forms(pp.r,"úriș"),1,2) | |||
td(get_forms(pp.r,"úri")) | |||
temp_height = 1 | |||
if pp.r == pp.rpst then temp_height = 2 end | |||
td(get_forms(pp.r,"uvúris"), temp_height) | |||
td(get_forms(pp.r,"uvúrite"), temp_height) | |||
td(get_forms(pp.r,"uvúri"), temp_height, 3) | |||
td(get_forms(pp.r,"uvúrin"), temp_height) | |||
_tr() | |||
th("past") | |||
td(get_forms(pp.rpst,"uveriè")) | |||
td(get_forms(pp.rpst,"uverin")) | |||
td(get_forms(pp.rpst,"uveriș"),1,2) | |||
td(get_forms(pp.rpst,"uveri")) | |||
if pp.r ~= pp.rpst then | |||
td(get_forms(pp.rpst,"uvúris")) | |||
td(get_forms(pp.rpst,"uvúrite")) | |||
td(get_forms(pp.rpst,"uvúri"),1,3) | |||
td(get_forms(pp.rpst,"uvúrin")) | |||
end | |||
_tr() | |||
th("subjunctive",2,1) | |||
th("non-past") | |||
td(get_forms(pp.r,"uvariè")) | |||
td(get_forms(pp.r,"uvarin")) | |||
td(get_forms(pp.r,"uvariș"),1,2) | |||
td(get_forms(pp.r,"uvari")) | |||
temp_height = 1 | |||
if pp.r == pp.rpst then temp_height = 2 end | |||
td(get_forms(pp.r,"uvavúris"), temp_height) | |||
td(get_forms(pp.r,"uvavúrite"), temp_height) | |||
td(get_forms(pp.r,"uvavúri"), temp_height, 3) | |||
td(get_forms(pp.r,"uvavúrin"), temp_height) | |||
_tr() | |||
th("past") | |||
td(get_forms(pp.rpst,"uvairiè")) | |||
td(get_forms(pp.rpst,"uvairin")) | |||
td(get_forms(pp.rpst,"uvairiș"),1,2) | |||
td(get_forms(pp.rpst,"uvairi")) | |||
if pp.r ~= pp.rpst then | |||
td(get_forms(pp.rpst,"uvavúris")) | |||
td(get_forms(pp.rpst,"uvavúrite")) | |||
td(get_forms(pp.rpst,"uvavúri"),1,3) | |||
td(get_forms(pp.rpst,"uvavúrin")) | |||
end | |||
_tr() | |||
th("optative",2,1) | |||
th("non-past") | |||
td(get_forms(pp.r,"uvúriè")) | |||
td(get_forms(pp.r,"uvúrin")) | |||
td(get_forms(pp.r,"uvúriș"),1,2) | |||
td(get_forms(pp.r,"uvúri")) | |||
td(get_forms(pp.r,"uvovúris")) | |||
td(get_forms(pp.r,"uvovúrite")) | |||
td(get_forms(pp.r,"uvovúri"),1,3) | |||
td(get_forms(pp.r,"uvovúrin")) | |||
_tr() | |||
th("past") | |||
td(get_forms(pp.rpst,"uveveriè")) | |||
td(get_forms(pp.rpst,"uveverin")) | |||
td(get_forms(pp.rpst,"uveveriș"),1,2) | |||
td(get_forms(pp.rpst,"uveveri")) | |||
td(get_forms(pp.rpst,"uvevúris")) | |||
td(get_forms(pp.rpst,"uvevúrite")) | |||
td(get_forms(pp.rpst,"uvevúri"),1,3) | |||
td(get_forms(pp.rpst,"uvevúrin")) | |||
tr_() | |||
add("</table>") | |||
add("<table class=\"blacklinks mw-collapsible mw-collapsed wikitable inflection table\" width=100% style=\"text-align: center\">") | |||
tr() | |||
th("Compound forms of ''" .. cite .. "uot'' (passive voice) ", 1, 14) | |||
_tr() | |||
th("", 4, 3) | |||
th("singular", 1, 5) | |||
th("plural", 1, 5) | |||
th("humble") | |||
_tr() | |||
th("first", 2, 1) | |||
th("second", 1, 2) | |||
th("third", 2, 1) | |||
th("depersonal", 2, 1) | |||
th("first", 1, 2) | |||
th("second", 2, 1) | |||
th("third", 2, 1) | |||
th("depersonal", 2, 1) | |||
th("second", 2, 1) | |||
_tr() | |||
th("informal") | |||
th("formal") | |||
th("inclusive") | |||
th("exclusive") | |||
_tr() | |||
th("''" .. rad_link("ú") .. "''") | |||
th("''" .. rad_link("re") .. "''") | |||
th("''" .. rad_link("lește") .. "''") | |||
th("''" .. rad_link("vâs") .. ", " .. rad_link("vara") .. "''") | |||
th("''" .. rad_link("gjei") .. ", " .. rad_link("gjen") .. ", " .. rad_link("gjeș") .. " …''") | |||
th("''" .. rad_link("dzun") .. ", " .. rad_link("sted") .. "''") | |||
th("''" .. rad_link("dzate") .. "''") | |||
th("''" .. rad_link("sjáște") .. "''") | |||
th("''" .. rad_link("vír") .. ", " .. rad_link("vara") .. "''") | |||
th("''" .. rad_link("gjes") .. ", " .. rad_link("gjete") .. ", " .. rad_link("gje") .. ", " .. rad_link("gjen") .. " …''") | |||
th("''" .. rad_link("sja") .. ", " .. rad_link("lai") .. "''") | |||
_tr() | |||
th("continuous",7,1) | |||
th("infinitive",1,2) | |||
td(get_forms(pp.passprespart,"uvivú","vat",true),1,12) | |||
_tr() | |||
th("indicative",2,1) | |||
th("non-past") | |||
td(get_forms(pp.passprespart,"uvivú","vage",true)) | |||
td(get_forms(pp.passprespart,"uvivú","vaga",true)) | |||
td(get_forms(pp.passprespart,"uvivú","vaș",true),1,2) | |||
td(get_forms(pp.passprespart,"uvivú",_,true)) | |||
td(get_forms(pp.passprespart,"uvivú","vaguos",true)) | |||
td(get_forms(pp.passprespart,"uvivú","vaguote",true)) | |||
td(get_forms(pp.passprespart,"uvivú","vagú",true),1,2) | |||
td(get_forms(pp.passprespart,"uvivú",_,true)) | |||
td(get_forms(pp.passprespart,"uvivú","vagún",true)) | |||
_tr() | |||
th("past") | |||
td(get_forms(pp.passprespart,"uvivú","hâlei",true)) | |||
td(get_forms(pp.passprespart,"uvivú","hâlen",true)) | |||
td(get_forms(pp.passprespart,"uvivú","hâleș",true),1,2) | |||
td(get_forms(pp.passprespart,"uvivú","hâle",true)) | |||
td(get_forms(pp.passprespart,"uvivú","hâluos",true)) | |||
td(get_forms(pp.passprespart,"uvivú","hâluote",true)) | |||
td(get_forms(pp.passprespart,"uvivú","hâlú",true),1,3) | |||
td(get_forms(pp.passprespart,"uvivú","hâlún",true)) | |||
_tr() | |||
th("subjunctive",2,1) | |||
th("non-past") | |||
td(get_forms(pp.passprespart,"uvivú","vagai",true)) | |||
td(get_forms(pp.passprespart,"uvivú","vagá",true)) | |||
td(get_forms(pp.passprespart,"uvivú","vagaș",true),1,2) | |||
td(get_forms(pp.passprespart,"uvivú","vaga",true)) | |||
td(get_forms(pp.passprespart,"uvivú","vagavuos",true)) | |||
td(get_forms(pp.passprespart,"uvivú","vagavuote",true)) | |||
td(get_forms(pp.passprespart,"uvivú","vagavú",true),1,3) | |||
td(get_forms(pp.passprespart,"uvivú","vagavún",true)) | |||
_tr() | |||
th("past") | |||
td(get_forms(pp.passprespart,"uvivú","hâlai",true)) | |||
td(get_forms(pp.passprespart,"uvivú","hâlain",true)) | |||
td(get_forms(pp.passprespart,"uvivú","hâlaiș",true),1,2) | |||
td(get_forms(pp.passprespart,"uvivú","hâlai",true)) | |||
td(get_forms(pp.passprespart,"uvivú","hâlavuos",true)) | |||
td(get_forms(pp.passprespart,"uvivú","hâlavuote",true)) | |||
td(get_forms(pp.passprespart,"uvivú","hâlavú",true),1,3) | |||
td(get_forms(pp.passprespart,"uvivú","hâlavún",true)) | |||
_tr() | |||
th("optative",2,1) | |||
th("non-past") | |||
td(get_forms(pp.passprespart,"uvivú","vagúe",true)) | |||
td(get_forms(pp.passprespart,"uvivú","vagova",true)) | |||
td(get_forms(pp.passprespart,"uvivú","vagúș",true),1,2) | |||
td(get_forms(pp.passprespart,"uvivú","vagú",true)) | |||
td(get_forms(pp.passprespart,"uvivú","vagovuos",true)) | |||
td(get_forms(pp.passprespart,"uvivú","vagovuote",true)) | |||
td(get_forms(pp.passprespart,"uvivú","vagovú",true),1,3) | |||
td(get_forms(pp.passprespart,"uvivú","vagovún",true)) | |||
_tr() | |||
th("past") | |||
td(get_forms(pp.passprespart,"uvivú","hâlevei",true)) | |||
td(get_forms(pp.passprespart,"uvivú","hâleven",true)) | |||
td(get_forms(pp.passprespart,"uvivú","hâleveș",true),1,2) | |||
td(get_forms(pp.passprespart,"uvivú","hâleve",true)) | |||
td(get_forms(pp.passprespart,"uvivú","hâlevuos",true)) | |||
td(get_forms(pp.passprespart,"uvivú","hâlevuote",true)) | |||
td(get_forms(pp.passprespart,"uvivú","hâlevú",true),1,3) | |||
td(get_forms(pp.passprespart,"uvivú","hâlevún",true)) | |||
_tr() | |||
th("perfective",7,1) | |||
th("infinitive",1,2) | |||
td(get_forms(pp.pspart,"k","-at",true),1,12) | |||
_tr() | |||
th("indicative",2,1) | |||
th("perfect") | |||
td(get_forms(pp.pspart,"k","-age",true)) | |||
td(get_forms(pp.pspart,"k","-aga",true)) | |||
td(get_forms(pp.pspart,"k","-aș",true),1,2) | |||
td(get_forms(pp.pspart,"k", _,true)) | |||
td(get_forms(pp.pspart,"k","-aguos",true)) | |||
td(get_forms(pp.pspart,"k","-aguote",true)) | |||
td(get_forms(pp.pspart,"k","-agú",true),1,2) | |||
td(get_forms(pp.pspart,"k", _,true)) | |||
td(get_forms(pp.pspart,"k","-agún",true)) | |||
_tr() | |||
th("pluperfect") | |||
td(get_forms(pp.pspart,"k","-âlei",true)) | |||
td(get_forms(pp.pspart,"k","-âlen",true)) | |||
td(get_forms(pp.pspart,"k","-âleș",true),1,2) | |||
td(get_forms(pp.pspart,"k","-âle",true)) | |||
td(get_forms(pp.pspart,"k","-âluos",true)) | |||
td(get_forms(pp.pspart,"k","-âluote",true)) | |||
td(get_forms(pp.pspart,"k","-âlú",true),1,3) | |||
td(get_forms(pp.pspart,"k","-âlún",true)) | |||
_tr() | |||
th("subjunctive",2,1) | |||
th("perfect") | |||
td(get_forms(pp.pspart,"k","-agai",true)) | |||
td(get_forms(pp.pspart,"k","-agá",true)) | |||
td(get_forms(pp.pspart,"k","-agaș",true),1,2) | |||
td(get_forms(pp.pspart,"k","-aga",true)) | |||
td(get_forms(pp.pspart,"k","-agavuos",true)) | |||
td(get_forms(pp.pspart,"k","-agavuote",true)) | |||
td(get_forms(pp.pspart,"k","-agavú",true),1,3) | |||
td(get_forms(pp.pspart,"k","-agavún",true)) | |||
_tr() | |||
th("pluperfect") | |||
td(get_forms(pp.pspart,"k","-âlai",true)) | |||
td(get_forms(pp.pspart,"k","-âlain",true)) | |||
td(get_forms(pp.pspart,"k","-âlaiș",true),1,2) | |||
td(get_forms(pp.pspart,"k","-âlai",true)) | |||
td(get_forms(pp.pspart,"k","-âlavuos",true)) | |||
td(get_forms(pp.pspart,"k","-âlavuote",true)) | |||
td(get_forms(pp.pspart,"k","-âlavú",true),1,3) | |||
td(get_forms(pp.pspart,"k","-âlavún",true)) | |||
_tr() | |||
th("optative",2,1) | |||
th("perfect") | |||
td(get_forms(pp.pspart,"k","-agúe",true)) | |||
td(get_forms(pp.pspart,"k","-agova",true)) | |||
td(get_forms(pp.pspart,"k","-agúș",true),1,2) | |||
td(get_forms(pp.pspart,"k","-agú",true)) | |||
td(get_forms(pp.pspart,"k","-agovuos",true)) | |||
td(get_forms(pp.pspart,"k","-agovuote",true)) | |||
td(get_forms(pp.pspart,"k","-agovú",true),1,3) | |||
td(get_forms(pp.pspart,"k","-agovún",true)) | |||
_tr() | |||
th("pluperfect") | |||
td(get_forms(pp.pspart,"k","-âlevei",true)) | |||
td(get_forms(pp.pspart,"k","-âleven",true)) | |||
td(get_forms(pp.pspart,"k","-âleveș",true),1,2) | |||
td(get_forms(pp.pspart,"k","-âleve",true)) | |||
td(get_forms(pp.pspart,"k","-âlevuos",true)) | |||
td(get_forms(pp.pspart,"k","-âlevuote",true)) | |||
td(get_forms(pp.pspart,"k","-âlevú",true),1,3) | |||
td(get_forms(pp.pspart,"k","-âlevún",true)) | |||
_tr() | |||
th("Negative compound forms of ''" .. cite .. "ruot'' (passive voice)",1,14) | |||
_tr() | |||
th("continuous",7,1) | |||
th("infinitive",1,2) | |||
td(get_forms(pp.passprespart,"uvivú","hjeat",true),1,12) | |||
_tr() | |||
th("indicative",2,1) | |||
th("non-past") | |||
td(get_forms(pp.passprespart,"uvivú","hjei",true)) | |||
td(get_forms(pp.passprespart,"uvivú","hjeà",true)) | |||
td(get_forms(pp.passprespart,"uvivú","hjeaș",true),1,2) | |||
td(get_forms(pp.passprespart,"uvivú","hje",true)) | |||
td(get_forms(pp.passprespart,"uvivú","hjeuos",true)) | |||
td(get_forms(pp.passprespart,"uvivú","hjeuote",true)) | |||
td(get_forms(pp.passprespart,"uvivú","hjeú",true),1,3) | |||
td(get_forms(pp.passprespart,"uvivú","hjeún",true)) | |||
_tr() | |||
th("past") | |||
td(get_forms(pp.passprespart,"uvivú","húei",true)) | |||
td(get_forms(pp.passprespart,"uvivú","húen",true)) | |||
td(get_forms(pp.passprespart,"uvivú","húeș",true),1,2) | |||
td(get_forms(pp.passprespart,"uvivú","húe",true)) | |||
td(get_forms(pp.passprespart,"uvivú","hủos",true)) | |||
td(get_forms(pp.passprespart,"uvivú","hủote",true)) | |||
td(get_forms(pp.passprespart,"uvivú","hủ",true),1,3) | |||
td(get_forms(pp.passprespart,"uvivú","hủn",true)) | |||
_tr() | |||
th("subjunctive",2,1) | |||
th("non-past") | |||
td(get_forms(pp.passprespart,"uvivú","hjeai",true)) | |||
td(get_forms(pp.passprespart,"uvivú","hjeá",true)) | |||
td(get_forms(pp.passprespart,"uvivú","hjeàș",true),1,2) | |||
td(get_forms(pp.passprespart,"uvivú","hjeà",true)) | |||
td(get_forms(pp.passprespart,"uvivú","hjeàvuos",true)) | |||
td(get_forms(pp.passprespart,"uvivú","hjeàvuote",true)) | |||
td(get_forms(pp.passprespart,"uvivú","hjeàvú",true),1,3) | |||
td(get_forms(pp.passprespart,"uvivú","hjeàvún",true)) | |||
_tr() | |||
th("past") | |||
td(get_forms(pp.passprespart,"uvivú","húai",true)) | |||
td(get_forms(pp.passprespart,"uvivú","húain",true)) | |||
td(get_forms(pp.passprespart,"uvivú","húaiș",true),1,2) | |||
td(get_forms(pp.passprespart,"uvivú","húai",true)) | |||
td(get_forms(pp.passprespart,"uvivú","húavuos",true)) | |||
td(get_forms(pp.passprespart,"uvivú","húavuote",true)) | |||
td(get_forms(pp.passprespart,"uvivú","húavú",true),1,3) | |||
td(get_forms(pp.passprespart,"uvivú","húavún",true)) | |||
_tr() | |||
th("optative",2,1) | |||
th("non-past") | |||
td(get_forms(pp.passprespart,"uvivú","hjeúe",true)) | |||
td(get_forms(pp.passprespart,"uvivú","hjeova",true)) | |||
td(get_forms(pp.passprespart,"uvivú","hjeúș",true),1,2) | |||
td(get_forms(pp.passprespart,"uvivú","hjeú",true)) | |||
td(get_forms(pp.passprespart,"uvivú","hjeovuos",true)) | |||
td(get_forms(pp.passprespart,"uvivú","hjeovuote",true)) | |||
td(get_forms(pp.passprespart,"uvivú","hjeovú",true),1,3) | |||
td(get_forms(pp.passprespart,"uvivú","hjeovún",true)) | |||
_tr() | |||
th("past") | |||
td(get_forms(pp.passprespart,"uvivú","húevei",true)) | |||
td(get_forms(pp.passprespart,"uvivú","húeven",true)) | |||
td(get_forms(pp.passprespart,"uvivú","húeveș",true),1,2) | |||
td(get_forms(pp.passprespart,"uvivú","húeve",true)) | |||
td(get_forms(pp.passprespart,"uvivú","húevuos",true)) | |||
td(get_forms(pp.passprespart,"uvivú","húevuote",true)) | |||
td(get_forms(pp.passprespart,"uvivú","húevú",true),1,3) | |||
td(get_forms(pp.passprespart,"uvivú","húevún",true)) | |||
_tr() | |||
th("perfective",7,1) | |||
th("infinitive",1,2) | |||
td(get_forms(pp.pspart,"k","hjeat",true),1,12) | |||
_tr() | |||
th("indicative",2,1) | |||
th("perfect") | |||
td(get_forms(pp.pspart,"k","hjei",true)) | |||
td(get_forms(pp.pspart,"k","hjeà",true)) | |||
td(get_forms(pp.pspart,"k","hjeaș",true),1,2) | |||
td(get_forms(pp.pspart,"k", "hje",true)) | |||
td(get_forms(pp.pspart,"k","hjeuos",true)) | |||
td(get_forms(pp.pspart,"k","hjeuote",true)) | |||
td(get_forms(pp.pspart,"k","hjeú",true),1,3) | |||
td(get_forms(pp.pspart,"k","hjeún",true)) | |||
_tr() | |||
th("pluperfect") | |||
td(get_forms(pp.pspart,"k","-úei",true)) | |||
td(get_forms(pp.pspart,"k","-úen",true)) | |||
td(get_forms(pp.pspart,"k","-úeș",true),1,2) | |||
td(get_forms(pp.pspart,"k","-úe",true)) | |||
td(get_forms(pp.pspart,"k","-ủos",true)) | |||
td(get_forms(pp.pspart,"k","-ủote",true)) | |||
td(get_forms(pp.pspart,"k","-ủ",true),1,3) | |||
td(get_forms(pp.pspart,"k","-ủn",true)) | |||
_tr() | |||
th("subjunctive",2,1) | |||
th("perfect") | |||
td(get_forms(pp.pspart,"k","hjeai",true)) | |||
td(get_forms(pp.pspart,"k","hjeá",true)) | |||
td(get_forms(pp.pspart,"k","hjeàș",true),1,2) | |||
td(get_forms(pp.pspart,"k","hjeà",true)) | |||
td(get_forms(pp.pspart,"k","hjeàvuos",true)) | |||
td(get_forms(pp.pspart,"k","hjeàvuote",true)) | |||
td(get_forms(pp.pspart,"k","hjeàvú",true),1,3) | |||
td(get_forms(pp.pspart,"k","hjeàvún",true)) | |||
_tr() | |||
th("pluperfect") | |||
td(get_forms(pp.pspart,"k","-úai",true)) | |||
td(get_forms(pp.pspart,"k","-úain",true)) | |||
td(get_forms(pp.pspart,"k","-úaiș",true),1,2) | |||
td(get_forms(pp.pspart,"k","-úai",true)) | |||
td(get_forms(pp.pspart,"k","-úavuos",true)) | |||
td(get_forms(pp.pspart,"k","-úavuote",true)) | |||
td(get_forms(pp.pspart,"k","-úavú",true),1,3) | |||
td(get_forms(pp.pspart,"k","-úavún",true)) | |||
_tr() | |||
th("optative",2,1) | |||
th("perfect") | |||
td(get_forms(pp.pspart,"k","hjeúe",true)) | |||
td(get_forms(pp.pspart,"k","hjeova",true)) | |||
td(get_forms(pp.pspart,"k","hjeúș",true),1,2) | |||
td(get_forms(pp.pspart,"k","hjeú",true)) | |||
td(get_forms(pp.pspart,"k","hjeovuos",true)) | |||
td(get_forms(pp.pspart,"k","hjeovuote",true)) | |||
td(get_forms(pp.pspart,"k","hjeovú",true),1,3) | |||
td(get_forms(pp.pspart,"k","hjeovún",true)) | |||
_tr() | |||
th("pluperfect") | |||
td(get_forms(pp.pspart,"k","-úevei",true)) | |||
td(get_forms(pp.pspart,"k","-úeven",true)) | |||
td(get_forms(pp.pspart,"k","-úeveș",true),1,2) | |||
td(get_forms(pp.pspart,"k","-úeve",true)) | |||
td(get_forms(pp.pspart,"k","-úevuos",true)) | |||
td(get_forms(pp.pspart,"k","-úevuote",true)) | |||
td(get_forms(pp.pspart,"k","-úevú",true),1,3) | |||
td(get_forms(pp.pspart,"k","-úevún",true)) | |||
tr_() | |||
add("</table>") | |||
end | |||
add("</small>") | |||
if irregular and not args['entry'] then add("[[Category:Radestrian irregular verbs]]") end | |||
local function check_stems() | |||
local endings = { | |||
['1s'] = "", | |||
['2s'] = "úș", | |||
['3s'] = "", | |||
['a'] = "ș", | |||
['apst'] = "vú", | |||
['depers'] = "", | |||
['epst'] = "ṣ", | |||
['imp'] = "", | |||
['inf'] = "", | |||
['passinf'] = "uot", | |||
['passprespart'] = "uvivú", | |||
['pl'] = "ú", | |||
['prespart'] = "vú", | |||
['pspart'] = "l/-k", | |||
['pst'] = "-", | |||
['r'] = "úș", | |||
['rpst'] = "uveș", | |||
['vnoun'] = "", | |||
} | |||
local review = {} | |||
for i, j in pairs(pp) do | |||
local nonforms = {["vstem"] = true, ["t"] = true, ["pre"] = true} | |||
if not ((table_type == "intr" or table_type == "impers") and i == "rpst") and not nonforms[i] and not ((i == "apst" or i == "rpst" or i == "pl" or i == "vnoun" or i == "1s") and table_type == "impers") then | |||
if type(j) == "string" then | |||
table.insert(review, "* <code>" .. string.upper(i) .. "</code>: '''" .. j .. "'''" .. endings[i]) | |||
elseif type(j) == "table" then | |||
for k, l in ipairs(j) do | |||
local temp = "* <code>" .. string.upper(i) .. "[" .. k .. "]</code>: '''" .. l.word .. "'''" .. endings[i] | |||
if l.note then temp = temp .. " (" .. l.note .. ")" end | |||
table.insert(review, temp) | |||
end | |||
end | |||
end | |||
end | |||
if pp.pl == nil and table_type ~= "impers" then | |||
if type(pp['2s']) == "table" then | |||
for i,j in ipairs(pp['2s']) do | |||
local temp = "* <code>PL[" .. i .. "]</code>: '''" .. j['word'] .. "'''" .. endings['pl'] .. " (<code>2S[" .. i .. "]</code>" .. endings['pl'] .. ")" | |||
if j['note'] then temp = temp .. " (" .. j['note'] .. ")" end | |||
table.insert(review, temp) | |||
end | |||
elseif type(pp['2s']) == "string" then | |||
table.insert(review, "* <code>PL</code>: '''" .. pp['2s'] .. "'''" .. endings['pl'] .. " (<code>2S</code>" .. endings['pl'] .. ")") | |||
end | |||
end | |||
if pp.depers == nil then | |||
if type(pp['2s']) == "table" then | |||
for i,j in ipairs(pp['2s']) do | |||
local temp = "* <code>DEPERS[" .. i .. "]</code>: '''" .. mw.ustring.gsub(j['word'], "nv$", "nu") .. "''' (<code>2S[" .. i .. "]</code>)" | |||
if j['note'] then temp = temp .. " (" .. j['note'] .. ")" end | |||
table.insert(review, temp) | |||
end | |||
elseif type(pp['2s']) == "string" then | |||
table.insert(review, "* <code>DEPERS</code>: '''" .. mw.ustring.gsub(pp['2s'], "nv$", "nu") .. "''' (<code>2S</code>)") | |||
end | |||
end | |||
if pp.imp == nil and table_type ~= "impers" then | |||
if type(pp.a) == "table" then | |||
if pp.vstem then | |||
for i,j in ipairs(pp.a) do | |||
local temp = "* <code>IMP[" .. i .. "]</code>: '''" .. mw.ustring.gsub(j['word'], "va$", "ja") .. "'''" | |||
if j['note'] then temp = temp .. " (" .. j['note'] .. ")" end | |||
table.insert(review, temp) | |||
end | |||
else | |||
for i,j in ipairs(pp.a) do | |||
local temp = "* <code>IMP[" .. i .. "]</code> = '''" .. j['word'] .. "''' (<code>A[" .. i .. "]</code>)" | |||
if j['note'] then temp = temp .. " (" .. j['note'] .. ")" end | |||
table.insert(review, temp) | |||
end | |||
end | |||
elseif type(pp.a) == "string" then | |||
if pp.vstem then | |||
table.insert(review, "* <code>IMP</code>: '''" .. mw.ustring.gsub(pp.a, "va$", "ja") .. "'''") | |||
else | |||
table.insert(review, "* <code>IMP</code>: '''" .. pp.a .. "''' (<code>A</code>)") | |||
end | |||
end | |||
end | |||
if pp.epst == nil then | |||
if type(pp.pst) == "table" then | |||
for i,j in ipairs(pp.pst) do | |||
local temp = "* <code>EPST[" .. i .. "]</code>: '''" .. j['word'] .. "e'''" .. endings['epst'] | |||
if j['note'] then temp = temp .. " (" .. j['note'] .. ")" end | |||
table.insert(review, temp) | |||
end | |||
elseif type(pp.pst) == "string" then | |||
table.insert(review, "* <code>EPST</code>: '''" .. pp.pst .. "e'''" .. endings['epst']) | |||
end | |||
end | |||
for i, term in ipairs(review) do | |||
review[i] = mw.ustring.gsub(term, "(%'%'%'%S*)%*(%S*)", "%1%2" .. irregular_icon) | |||
end | |||
table.sort(review, function(a,b) return a < b end) | |||
if args[3] then | |||
mw.addWarning("<div class=\"noprint maintenance-box maintenance-box-red\" style=\"background:#FFE7DD; width:90%; margin: 0.75em auto; border:1px dashed #884444; padding: 0.25em;\"><table><tr><td rowspan=\"2\">[[File:Nuvola_apps_important_yellow.svg|48px]]</td><th style=\"text-align: left;\">Please review the following verb stems before publishing</th></tr><tr><td>" .. string.char(10) .. table.concat(review, string.char(10)) .. "</td></tr></table></div>") | |||
end | |||
end | |||
check_stems() | |||
return table.concat(format_table, string.char(10)) | |||
end | |||
function export.enclisis(frame) | |||
local m_government = require('Module:government') | |||
local args = getArgs(frame) | |||
local prep = args['base'] or args['entry'] or mw.title.getCurrentTitle().text | |||
local cite = args['entry'] or mw.title.getCurrentTitle().text | |||
local is_para = {entry = true, nocap = true} | |||
local gen = false | |||
local gen_prons = { | |||
{"vesk", "rask", "vâsk", "vask", "dzmes", "dzatus", "sjás", "vjes", "vais", "dzisk", "dzjes"}, | |||
{"bjásk", "bisk", "kú", "okú", "byesk", "busk"}, | |||
{"bjais", "bjes", "tes", "otes", "baus", "bøs"}, | |||
{"vaosk", "utú"} | |||
} | |||
local dat = false | |||
local dat_prons = { | |||
{"ven", "ran", "vân", "van", "dzmen", "dzatun", "sján", "vjen", "vain", "dzin", "dzjen"}, | |||
{"bjá", "bin", "ka", "oka", "bá", "bun"}, | |||
{"bjain", "bjen", "ten", "oten", "baun", "bøn"}, | |||
{"vá", "uva"} | |||
} | |||
local acc = false | |||
local acc_prons = { | |||
{"vest", "rast", "vâst", "vast", "dzmed", "dzatud", "sjád", "vjed", "vaid", "dzist", "dzjed"}, | |||
{"bjást", "bist", "kad", "okad", "byest", "bust"}, | |||
{"bjaid", "bjed", "ted", "oted", "baud", "bød"}, | |||
{"vaost", "utad"} | |||
} | |||
local ins = false | |||
local ins_prons = { | |||
{"vebúr", "rábúr", "vâbúr", "vabúr", "dzmeríe", "dzatoríe", "sjáríe", "víríe", "vairíe", "dzibúr", "dzíríe"}, | |||
{"bjábúr", "bibúr", "kaor", "okúr", "býbúr", "butúr"}, | |||
{"bjairíe", "bjeríe", "teríe", "oteríe", "bauríe", "børíe"}, | |||
{"vaobúr", "ubúr"} | |||
} | |||
local function governs(case) | |||
return m_government.show{"&" .. case} | |||
end | |||
if args[1] == nil then error("There are no cases specified") end | |||
local counter = 1 | |||
while args[counter] do | |||
if args[counter] == "gen" then gen = true | |||
elseif args[counter] == "dat" then dat = true | |||
elseif args[counter] == "acc" then acc = true | |||
elseif args[counter] == "ins" then ins = true | |||
end | |||
counter = counter + 1 | |||
end | |||
local regex_list = {} | |||
for i, _ in pairs(args) do | |||
if is_para[i] ~= true then table.insert(regex_list, i) end | |||
end | |||
table.sort(regex_list, function(a, b) return string.reverse(a) > string.reverse(b) end) | |||
local function process(pronoun) | |||
pronoun = pronoun .. prep | |||
for _, regex in ipairs(regex_list) do | |||
if mw.ustring.match(pronoun, regex .. prep .. "$") and not (mw.ustring.match(regex, "^u") and mw.ustring.match(pronoun, "a" .. regex .. prep .. "$")) then | |||
pronoun = mw.ustring.gsub(pronoun, regex .. prep .. "$", args[regex]) | |||
break | |||
end | end | ||
add("</ | end | ||
return pronoun | |||
end | |||
if not args['nocap'] then add("* The enclitic form is used in combination with weak pronominal complements:") end | |||
add("<small>") | |||
add("<table class=\"blacklinks mw-collapsible mw-collapsed wikitable inflection table\" style=\"text-align: center\" width=100%>") | |||
tr() | |||
th("Combined pronominal forms of ''" .. cite .. "'' ", 1, 12) | |||
_tr() | |||
th("case", 5) | |||
th("personal", 1, 11) | |||
_tr() | |||
th("<small>SG</small>", 1, 4) | |||
th("<small>PL</small>", 1, 5) | |||
th("<small>REFL</small>", 3) | |||
th("<small>RECP</small>", 3) | |||
_tr() | |||
th("<small>1</small>", 2) | |||
th("<small>2</small>", 2) | |||
th("<small>3</small>", 1, 2) | |||
th("<small>1</small>", 1, 2) | |||
th("<small>2</small>", 2) | |||
th("<small>3</small>", 1, 2) | |||
_tr() | |||
th("<small>ANIM</small>") | |||
th("<small>INAN</small>") | |||
th("<small>INCL</small>") | |||
th("<small>EXCL</small>") | |||
th("<small>ANIM</small>") | |||
th("<small>INAN</small>") | |||
_tr() | |||
th("<small>" .. rad_link("ú") .. "</small>") | |||
th("<small>" .. rad_link("re") .. "</small>") | |||
th("<small>" .. rad_link("vâs") .. "</small>") | |||
th("<small>" .. rad_link("vara") .. "</small>") | |||
th("<small>" .. rad_link("dzun") .. "</small>") | |||
th("<small>" .. rad_link("dzate") .. "</small>") | |||
th("<small>" .. rad_link("sjáște") .. "</small>") | |||
th("<small>" .. rad_link("vír") .. "</small>") | |||
th("<small>" .. rad_link("vara") .. "</small>") | |||
th("<small>" .. rad_link("dzist") .. "</small>") | |||
th("<small>" .. rad_link("dzjed") .. "</small>") | |||
local function list_pers(case, name, set) | |||
if case then | |||
_tr() | |||
th(governs(name)) | |||
for _, j in ipairs(set[1]) do td(rad_link_IPA(process(j))) end | |||
end | |||
end | end | ||
list_pers(gen, "gen", gen_prons) | |||
list_pers(dat, "dat", dat_prons) | |||
list_pers(acc, "acc", acc_prons) | |||
list_pers(ins, "ins", ins_prons) | |||
-- non-personal pronouns | |||
_tr() | |||
th("case", 4) | |||
th("number", 4) | |||
th("interrogative-<br>existential", 1, 2) | |||
th("demonstrative", 1, 2) | |||
th("quantifier", 1, 6) | |||
_tr() | |||
th("<small>ANIM</small>", 2) | |||
th("<small>INAN</small>", 2) | |||
th("<small>PROX</small>", 2) | |||
th("<small>DIST</small>", 2) | |||
th("indefinite", 1, 2) | |||
th("general indefinite", 1, 2) | |||
th("collective", 1, 2) | |||
_tr() | |||
th("<small>ANIM</small>") | |||
th("<small>INAN</small>") | |||
th("<small>ANIM</small>") | |||
th("<small>INAN</small>") | |||
th("<small>ANIM</small>") | |||
th("<small>INAN</small>") | |||
_tr() | |||
th("<small>" .. rad_link("bjaș") .. "</small>") | |||
th("<small>" .. rad_link("bjar") .. "</small>") | |||
th("<small>" .. rad_link("kjes") .. "</small>") | |||
th("<small>" .. rad_link("okjes") .. "</small>") | |||
th("<small>" .. rad_link("baus") .. "</small>") | |||
th("<small>" .. rad_link("bvar") .. "</small>") | |||
th("<small>" .. rad_link("bjaș-á") .. "</small>") | |||
th("<small>" .. rad_link("bjar-á") .. "</small>") | |||
th("<small>" .. rad_link("vaus") .. "</small>") | |||
th("<small>" .. rad_link("var") .. "</small>") | |||
local function list_nonpers(case, name, set) | |||
if case then | |||
_tr() | |||
th(governs(name), 2) | |||
th("<small>SG</small>") | |||
for _, j in ipairs(set[2]) do | |||
td(rad_link_IPA(process(j))) | |||
end | |||
local q_anim, q_inan = process(set[2][1]), process(set[2][2]) | |||
if mw.ustring.match(q_anim, "[" .. C .. "]$") then td(rad_link_IPA(q_anim .. "-á")) else td(rad_link_IPA(q_anim .. "-vá")) end | |||
if mw.ustring.match(q_inan, "[" .. C .. "]$") then td(rad_link_IPA(q_inan .. "-á")) else td(rad_link_IPA(q_inan .. "-vá")) end | |||
for _, j in ipairs(set[4]) do td(rad_link_IPA(process(j))) end | |||
_tr() | |||
th("<small>PL</small>") | |||
for _, j in ipairs(set[3]) do td(rad_link_IPA(process(j))) end | |||
q_anim, q_inan = process(set[3][1]), process(set[3][2]) | |||
if mw.ustring.match(q_anim, "[" .. C .. "]$") then td(rad_link_IPA(q_anim .. "-á")) else td(rad_link_IPA(q_anim .. "-vá")) end | |||
if mw.ustring.match(q_inan, "[" .. C .. "]$") then td(rad_link_IPA(q_inan .. "-á")) else td(rad_link_IPA(q_inan .. "-vá")) end | |||
th("", 1, 2) | |||
end | |||
end | |||
list_nonpers(gen, "gen", gen_prons) | |||
list_nonpers(dat, "dat", dat_prons) | |||
list_nonpers(acc, "acc", acc_prons) | |||
list_nonpers(ins, "ins", ins_prons) | |||
tr_() | |||
add("</table>") | |||
add("</small>") | |||
return table.concat(format_table, string.char(10)) | return table.concat(format_table, string.char(10)) | ||
Line 394: | Line 2,753: | ||
Debug console test string: | Debug console test string: | ||
=p.show(mw.getCurrentFrame():newChild{title="whatever",args={"hv", "o~u^u", "þ"}}) | =p.show(mw.getCurrentFrame():newChild{title="whatever",args={"hv", "o~u^u", "þ"}}) | ||
=p.conjugate(mw.getCurrentFrame():newChild{title="whatever",args={"deat","de",["pl"]="di","diș","deti","dev",["t"]="tr",["altnonfin"]="hellu",["altnonfin_note"]="uwu",["altnonfin2"]="hella",["altnonfin2_note"]="owo",["pre"]="fjø", "der", "detr"}}) | |||
]]-- | ]]-- |
Latest revision as of 16:33, 26 August 2024
local export = {}
local getArgs = require('Module:Arguments').getArgs
local m_stem = require("Module:rad-stem")
local m_links = require("Module:links")
local m_languages = require("Module:languages")
local m_ipa = require("Module:rad-IPA")
local irregular_icon = "<sup>△</sup>"
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)
data = data or ""
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)
data = data or ""
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ș")
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 "<span style=\"white-space: nowrap\">" .. m_links.full_link{term = word, language = m_languages.get_by_code("rad")} .. "</span>"
end
function rad_IPA(word)
local IPA = m_ipa.generate{
word,
"format",
"nolarge"
}
return "<span style=\"color:dimgrey; white-space: nowrap\">" .. IPA .. "</span>"
end
function rad_link_IPA(word, post, noipa, pre)
if pre == "" then pre = nil end
if post == "" then post = nil end
if noipa == nil then noipa = false end
local post_space = " "
local pre_space = " "
if post then
if mw.ustring.sub(post, 1, 1) == "-" then
post_space = ""
end
else
post_space = ""
end
if pre then
if mw.ustring.sub(pre, -1) == "-" then
pre_space = ""
end
else
pre_space = ""
end
if type(word) == "string" then
local irr_temp = ""
if mw.ustring.find(word, "%*") then
irr_temp = irregular_icon
word = mw.ustring.gsub(word, "%*", "")
end
if noipa then
local temp = rad_link(word)
if post then temp = temp .. post_space .. rad_link(post) end
if pre then temp = rad_link(pre) .. pre_space .. temp end
return temp .. irr_temp
else
local temp = rad_link(word)
local ipa_temp = word
if post then
temp = temp .. post_space .. rad_link(post)
ipa_temp = ipa_temp .. post_space .. post
end
if pre then
temp = rad_link(pre) .. pre_space .. temp
ipa_temp = pre .. pre_space .. ipa_temp
end
return temp .. irr_temp .. "<br>" .. rad_IPA(ipa_temp)
end
elseif type(word) == "table" then
local links = {}
local IPAs = {}
for _, i in ipairs(word) do
local irr_temp = ""
if mw.ustring.find(i['word'], "%*") then
irr_temp = irregular_icon
i['word'] = mw.ustring.gsub(i['word'], "%*", "")
end
local new_link = rad_link(i['word'])
if post then new_link = new_link .. post_space .. rad_link(post) end
if pre then new_link = rad_link(post) .. pre_space .. new_link end
new_link = new_link .. irr_temp
if i['note'] then new_link = new_link .. " <small>(" .. i['note'] .. ")</small>" end
table.insert(links, new_link)
if not noipa then
local ipa_temp = i['word']
if post then
ipa_temp = ipa_temp .. post_space .. post
end
if pre then
ipa_temp = pre .. pre_space .. ipa_temp
end
table.insert(IPAs, rad_IPA(ipa_temp))
end
end
if noipa then
return table.concat(links, ", ")
else
return table.concat(links, ", ") .. "<br>" .. table.concat(IPAs, " ")
end
else error("Incompatible input type for rad_link_IPA")
end
end
function export.compare(frame)
local args = getArgs(frame)
local lemma = args['entry'] or mw.title.getCurrentTitle().text
local pos = args[2]
local stem = args[1]
local disable_ipa = args['noipa']
local irregular = args["irr"] or args["irregular"] or mw.ustring.find(stem or "", "%*")
if args[1] and args[2] ~= "adj" and args[2] ~= "adv" then error("Second parameter must be adj or adv") end
-- process alts --
if args['alt'] then
if stem == nil then error("You cannot have alternative forms of a nil stem") end
if mw.ustring.find(args['alt'], "%*") then irregular = true end
local stem_temp = {
[1] = {word = args[1]},
[2] = {word = args['alt'], note = args['alt_note']}
}
local counter = 2
while args['alt' .. counter] do
if mw.ustring.find(args['alt' .. counter], "%*") then irregular = true end
stem_temp[counter + 1] = {word = args['alt' .. counter], note = args['alt' .. counter .. '_note']}
counter = counter + 1
end
stem = stem_temp
end
local irregular_title = ""
if irregular then irregular_title = " (''irregular''" .. irregular_icon .. ")" end
local function get_forms(ending, pre)
if stem == nil then
return rad_link_IPA(lemma, nil, disable_ipa, pre)
elseif type(stem) == "string" then
return rad_link_IPA(stem .. ending, nil, disable_ipa)
elseif type(stem) == "table" then
for i, j in ipairs(stem) do
stem[i]['word'] = j.word .. ending
end
return rad_link_IPA(stem, nil, disable_ipa)
end
end
add("<table class=\"blacklinks mw-collapsible mw-collapsed wikitable inflection table\" style=\"text-align: center\">")
tr()
th("Comparative forms of ''" .. lemma .. "''" .. irregular_title .. " ",1,2)
_tr()
th("degree")
th("form")
_tr()
th("positive")
td(rad_link(lemma) .. "<br>" .. rad_IPA(lemma))
_tr()
th("comparative")
if pos == "adj" or args[1] == nil then
td(get_forms("uobș", "hevúb"))
elseif pos == "adv" then
td(get_forms("úb"))
end
_tr()
th("superlative")
if pos == "adj" or args[1] == nil then
td(get_forms("úvaș", "hevúva"))
elseif pos == "adv" then
td(get_forms("úva"))
end
_tr()
th("excessive")
if pos == "adj" or args[1] == nil then
td(get_forms("úvaiș", "hevúvai"))
elseif pos == "adv" then
td(get_forms("úvai"))
end
tr_()
add("</table>")
if irregular and not args['entry'] then
if pos == "adj" then
add("[[Category:Radestrian adjectives with irregular comparative forms]]")
elseif pos == "adv" then
add("[[Category:Radestrian adverbs with irregular comparative forms]]")
end
end
return table.concat(format_table, string.char(10))
end
function export.decline(frame)
local args = getArgs(frame)
local stem_gen = get_stems(args)
local stems = {
nom = (args['nom'] == "*" and stem_gen.nom .. "*") or args['nom'] or stem_gen.nom,
voc = (args['voc'] == "*" and stem_gen.voc .. "*") or args['voc'] or stem_gen.voc,
acc = (args['acc'] == "*" and stem_gen.acc .. "*") or args['acc'] or stem_gen.acc,
dat = (args['dat'] == "*" and stem_gen.dat .. "*") or args['dat'] or stem_gen.dat,
gen = (args['gen'] == "*" and stem_gen.gen .. "*") or args['gen'] or stem_gen.gen,
ins = (args['ins'] == "*" and stem_gen.ins .. "*") or args['ins'] or stem_gen.ins,
nompl = (args['nompl'] == "*" and stem_gen.nompl .. "*") or args['nompl'] or stem_gen.nompl,
genpl = (args['genpl'] == "*" and stem_gen.genpl .. "*") or args['genpl'] or stem_gen.genpl,
genpl_short = (args['genpl_short'] == "*" and stem_gen.genpl_short .. "*") or args['genpl_short'] or stem_gen.genpl_short,
anim = args['anim'] or stem_gen.anim,
['type'] = stem_gen['type'],
}
local gender = args['gender'] or args['g'] or "in"
local definite = args['definite'] ~= nil or args['def'] ~= nil
local irregular = args["irr"] or args["irregular"]
for _, arg in ipairs(args) do
if irregular or mw.ustring.find(arg, "%*") then
irregular = true
break
end
end
for arg_name, arg in pairs(args) do
if mw.ustring.find(arg_name, "%_note") then
--continue
elseif irregular or mw.ustring.find(arg, "%*") then
irregular = true
break
end
end
local irregular_title = ""
if irregular then irregular_title = ", ''irregular''" .. irregular_icon end
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
if definite and not (mw.ustring.match(mw.ustring.lower(adj), "^( ?[ui] )") or mw.ustring.match(mw.ustring.lower(adj), "^( ?a [iíỉuúủ])") or mw.ustring.match(mw.ustring.lower(adj), "^( ?a [" .. C .. "])") or mw.ustring.match(adj, "^( ?ag )") or mw.ustring.match(mw.ustring.lower(adj), "( [ui] )") or mw.ustring.match(mw.ustring.lower(adj), "( a [iíỉuúủ])") or mw.ustring.match(mw.ustring.lower(adj), "( a [" .. C .. "])") or mw.ustring.match(adj, "( ag )")) then
if gender == "in" then
if mw.ustring.match(mw.ustring.lower(adj), "^([" .. C .. "])") then
adj = "a " .. adj
else
adj = "ag " .. adj
end
elseif gender == "an" then
if mw.ustring.match(mw.ustring.lower(adj), "^([uúủ])") then
adj = "a " .. adj
else
adj = "u " .. adj
end
end
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 = mw.ustring.gsub(adj_broken_e, "ș ", "șe ")
adj_broken_e = mw.ustring.gsub(adj_broken_e, "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 = mw.ustring.gsub(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']
local disable_ipa = args['noipa'] or false
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"
local oblique_pl = {['genpl'] = true, ['datpl'] = true, ['accpl'] = true, ['inspl'] = true, ['gendu'] = true, ['datdu'] = true, ['accdu'] = true, ['insdu'] = true,}
local pl = {['nompl'] = true, ['genpl'] = true, ['datpl'] = true, ['accpl'] = true, ['inspl'] = true, ['nomdu'] = true, ['gendu'] = true, ['datdu'] = true, ['accdu'] = true, ['insdu'] = true,}
-- generate forms --
local function get_forms(case, base, adj_base, adj_ending, nolink)
if mw.ustring.find(base, "%*") then
base = "*" .. mw.ustring.gsub(base, "%*", "")
end
local article = ""
if adj_base then
--adjust definite article --
-- detect vocative
if case == "voc" or case == "vocdu" or case == "vocpl" then
adj_base = mw.ustring.gsub(adj_base, "^( ?)ag? ", "%1")
adj_base = mw.ustring.gsub(adj_base, " ag? ", " ")
adj_base = mw.ustring.gsub(adj_base, "^( ?)[iu] ", "%1")
adj_base = mw.ustring.gsub(adj_base, " [iu] ", " ")
-- detect inanimate --
elseif mw.ustring.match(mw.ustring.lower(adj_base), "^( ?a [" .. C .. "])") or mw.ustring.match(adj_base, "^( ?ag )") or mw.ustring.match(mw.ustring.lower(adj_base), "( a [" .. C .. "])") or mw.ustring.match(adj_base, "( ag )") then
definite = true
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 ")
adj_base = mw.ustring.gsub(adj_base, " ag ([iíỉIÍỈ])", " a' %1")
adj_base = mw.ustring.gsub(adj_base, " ag? ", " ai ")
elseif case == "genpl_short" or case == "gendu_short" then
adj_base = mw.ustring.gsub(adj_base, "^( ?)ag? ", "%1ais ")
adj_base = mw.ustring.gsub(adj_base, " ag? ", " ais ")
elseif case == "gen_short" then
adj_base = mw.ustring.gsub(adj_base, "^( ?)ag? ", "%1as ")
adj_base = mw.ustring.gsub(adj_base, " ag? ", " as ")
case = "gen"
end
-- detect animate --
elseif mw.ustring.match(mw.ustring.lower(adj_base), "^( ?[ui] )") or mw.ustring.match(mw.ustring.lower(adj_base), "^( ?a [iíỉuúủ])") or mw.ustring.match(mw.ustring.lower(adj_base), "( [ui] )") or mw.ustring.match(mw.ustring.lower(adj_base), "( a [iíỉuúủ])") then
definite = true
if pl[case] then
adj_base = mw.ustring.gsub(adj_base, "^( ?)[au] ([iíỉIÍỈ])", "%1a %2")
adj_base = mw.ustring.gsub(adj_base, "^( ?)[au] ", "%1i ")
adj_base = mw.ustring.gsub(adj_base, " [au] ([iíỉIÍỈ])", " a %1")
adj_base = mw.ustring.gsub(adj_base, " [au] ", " i ")
elseif case == "genpl_short" or case == "gendu_short" then
adj_base = mw.ustring.gsub(adj_base, "^( ?)[aiu] ", "%1is ")
adj_base = mw.ustring.gsub(adj_base, " [aiu] ", " is ")
elseif case == "gen_short" then
adj_base = mw.ustring.gsub(adj_base, "^( ?)[aiu] ", "%1us ")
adj_base = mw.ustring.gsub(adj_base, " [aiu] ", " us ")
case = "gen"
end
end
-- append --
if adj_ending then adj_base = mw.ustring.gsub(adj_base, "ș ", "ș" .. adj_ending .. " ") end
base = base .. adj_base
if adj_ending then base = base .. adj_ending end
elseif definite then -- if not adjective but definite
local c_initial = mw.ustring.match(mw.ustring.lower(base), "^([" .. C .. "])")
local i_initial = mw.ustring.match(mw.ustring.lower(base), "^([iíỉ])")
local u_initial = mw.ustring.match(mw.ustring.lower(base), "^([uúủ])")
if case == "voc" or case == "vocdu" or case == "vocpl" then
article = ""
elseif gender == "in" then
if oblique_pl[case] then
if i_initial then
article = "a'"
else
article = "ai"
end
elseif case == "gen_short" then
article = "as"
case = "gen"
elseif case == "genpl_short" or case == "gendu_short" then
article = "ais"
else
if c_initial then
article = "a"
else
article = "ag"
end
end
else -- animate definite article
if pl[case] then
if i_initial then
article = "a"
else
article = "i"
end
elseif case == "gen_short" then
article = "us"
case = "gen"
elseif case == "genpl_short" or case == "gendu_short" then
article = "is"
else
if u_initial then
article = "a"
else
article = "u"
end
end
end
if nolink then
article = article .. " "
end
end
if case == "vocdu" then case = "nomdu" end
if case == "vocpl" then case = "nompl" 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 article .. list[1].word
else
if disable_ipa then return rad_link_IPA(list, nil, true, article) else return rad_link_IPA(list, nil, false, article) end
end
else
if nolink then
return article .. base
else
if disable_ipa then return rad_link_IPA(base, nil, true, article) else return rad_link_IPA(base, nil, false, article) end
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
nom_cite = mw.ustring.gsub(nom_cite, "%*", "")
local voc = get_forms("voc", stems.voc, adj_broken_e)
local gen = ""
local gen_short = ""
local dat = ""
local acc = ""
local ins = ""
if gender == "an" then
gen = get_forms("gen", stems.gen, adj, "esk")
gen_short = get_forms("gen_short", stems.gen, adj, "esk")
dat = get_forms("dat", stems.dat, adj, "en")
acc = get_forms("acc", stems.acc, adj, "est")
ins = get_forms("ins", stems.ins, adj, "evúr")
else
gen = get_forms("gen", stems.gen, adj_broken, "k")
gen_short = get_forms("gen_short", stems.gen, adj_broken, "k")
dat = get_forms("dat", stems.dat, adj, "a")
acc = get_forms("acc", stems.acc, adj_broken, "t")
ins = get_forms("ins", stems.ins, adj, "úr")
end
local nompl = get_forms("nompl", stems.nompl, adj_broken_e)
local nompl_cite = get_forms("nompl", stems.nompl, adj_broken_e, "", true)
local vocpl = get_forms("vocpl", stems.nompl, adj_broken_e)
local genpl = get_forms("genpl", mw.ustring.gsub(stems.genpl .. "ris", "sris$", "sis"), adj, "eris")
local genpl_short = get_forms("genpl_short", stems.genpl_short, adj, "es")
local datpl = get_forms("datpl", mw.ustring.gsub(stems.genpl .. "rín", "srín$", "sín"), adj, "erín")
local accpl = get_forms("accpl", mw.ustring.gsub(stems.genpl .. "rid", "srid$", "sid"), adj, "erid")
local inspl = get_forms("inspl", mw.ustring.gsub(stems.genpl .. "ríe", "sríe$", "sí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 vocdu = get_forms("vocdu", stems.dat .. "te", adj_broken_e)
local gendu = get_forms("gendu", stems.dat .. "tis", adj, "eris")
local gendu_short = get_forms("gendu_short", stems.dat .. "tis", 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")
--adjectives only
local inan = ""
local anim = ""
local anim_gen = ""
local anim_dat = ""
local anim_acc = ""
local anim_ins = ""
if table_type == "adj" then
inan = get_forms("inan", stems.anim, adj_broken_e)
anim = get_forms("anim", stems.anim .. "e", adj_broken_e)
anim_gen = get_forms("anim_gen", stems.anim .. "esk", adj, "esk")
anim_dat = get_forms("anim_dat", stems.anim .. "en", adj, "en")
anim_acc = get_forms("anim_acc", stems.anim .. "est", adj, "est")
anim_ins = get_forms("anim_ins", stems.anim .. "evúr", adj, "evúr")
add("<table width=100% class=\"blacklinks wikitable inflection table\" style=\"text-align: center\">")
tr()
th("Attributive forms", 1, 3)
th("Emphatic combined forms with the definite article", 1, 6)
_tr()
th("singular", 1, 2)
th("plural", 2, 1)
th("+ " .. rad_link("a"), 2)
th("+ " .. rad_link("a'"), 2)
th("+ " .. rad_link("ag"), 2)
th("+ " .. rad_link("ai"), 2)
th("+ " .. rad_link("i"), 2)
th("+ " .. rad_link("u"), 2)
_tr()
th("inanimate")
th("animate")
_tr()
td(inan)
td(anim, 1, 2)
td(get_forms("anim", stems.anim .. "a", adj_broken_e))
td(get_forms("anim", stems.anim .. "a'", adj_broken_e))
td(get_forms("anim", stems.anim .. "ag", adj_broken_e))
td(get_forms("anim", stems.anim .. "ai", adj_broken_e))
td(get_forms("anim", stems.anim .. "i", adj_broken_e))
td(get_forms("anim", stems.anim .. "u", adj_broken_e))
tr_()
add("</table>")
end
if table_type == "adjn" then table_type = "adj" end
add("<table class=\"blacklinks 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> ", 1, 5)
else
th("Declension of <i>" .. nom_cite .. "</i> (" .. type_name .. irregular_title .. ") ", 1, 4)
end
tr()
if table_type == "adj" then
th("", 2, 2)
th("singular", 1, 2)
th("plural", 2, 1)
_tr()
th("inanimate")
th("animate")
else
th("", 1, 2)
th("singular")
th("plural")
end
_tr()
th("nominative", 1, 2)
if table_type == "adj" then
td(nompl, 2, 3)
elseif nom == nompl then
td(nompl, 2, 2)
elseif nom == voc then
td(nom, 2)
td(nompl, 2)
else
td(nom)
if nompl == vocpl then td(nompl, 2) else td(nompl) end
end
_tr()
th("vocative", 1, 2)
if nom ~= nompl and nom ~= voc and table_type ~= "adj" then if voc == vocpl and nompl ~= vocpl then td(voc, 1, 2) else td(voc) end end
if nompl ~= vocpl and voc ~= vocpl then td(vocpl) end
_tr()
th("genitive", 2, 1)
th("proper")
if definite then
td(gen)
else
td(gen, 2, 1)
end
if table_type == "adj" then td(anim_gen, 2, 1) end
td(genpl)
_tr()
th("constructive")
if definite then
td(gen_short)
end
td(genpl_short)
_tr()
th("dative", 1, 2)
td(dat)
if table_type == "adj" then td(anim_dat) end
td(datpl)
_tr()
th("accusative", 1, 2)
td(acc)
if table_type == "adj" then td(anim_acc) end
td(accpl)
_tr()
th("instrumental", 1, 2)
td(ins)
if table_type == "adj" then td(anim_ins) end
td(inspl)
tr_()
elseif table_type == "sg" then
local sg_title = "Declension of <i>" .. nom_cite .. "</i> (" .. type_name .. ", ''[[:Category:Radestrian singularia tantum|singulare tantum]]''" .. irregular_title .. ") "
if definite then
th(sg_title, 1, 3)
tr()
th("", 1, 2)
th("singular")
_tr()
th("nominative", 1, 2)
if nom == voc then td(nom, 2) else td(nom) end
_tr()
th("vocative", 1, 2)
if nom ~= voc then td(voc) end
_tr()
th("genitive", 2, 1)
th("proper")
td(gen)
_tr()
th("constructive")
td(gen_short)
_tr()
th("dative", 1, 2)
td(dat)
_tr()
th("accusative", 1, 2)
td(acc)
_tr()
th("instrumental", 1, 2)
td(ins)
tr_()
else
th(sg_title, 1, 2)
tr()
th("")
th("singular")
_tr()
th("nominative")
if nom == voc then td(nom, 2) else td(nom) end
_tr()
th("vocative")
if nom ~= voc then td(voc) end
_tr()
th("genitive")
td(gen)
_tr()
th("dative")
td(dat)
_tr()
th("accusative")
td(acc)
_tr()
th("instrumental")
td(ins)
tr_()
end
elseif table_type == "pl" then
th("Declension of <i>" .. nompl_cite .. "</i> (" .. type_name .. ", ''[[:Category:Radestrian pluralia tantum|plurale tantum]]''" .. irregular_title .. ") ", 1, 3)
tr()
th("", 1, 2)
th("plural")
_tr()
th("nominative", 1, 2)
if nompl == vocpl then td(nompl, 2) else td(nompl) end
_tr()
th("vocative", 1, 2)
if nompl ~= vocpl then td(vocpl) end
_tr()
th("genitive", 2, 1)
th("proper")
td(genpl)
_tr()
th("constructive")
td(genpl_short)
_tr()
th("dative", 1, 2)
td(datpl)
_tr()
th("accusative", 1, 2)
td(accpl)
_tr()
th("instrumental", 1, 2)
td(inspl)
tr_()
elseif table_type == "du" then
th("Declension of <i>" .. nom_cite .. "</i> (" .. type_name .. ", ''[[:Category:Radestrian pluralia binaria|cum plurali binario]]''" .. irregular_title .. ") ", 1, 5)
tr()
th("", 2, 2)
th("singular", 2, 1)
th("plural", 1, 2)
_tr()
th("binary")
th("true")
_tr()
th("nominative", 1, 2)
if nom == voc then td(nom, 2) else td(nom) end
if nomdu == vocdu then td(nomdu, 2) else td(nomdu) end
if nompl == vocpl then td(nompl, 2) else td(nompl) end
_tr()
th("vocative", 1, 2)
if nom ~= voc then td(voc) end
if nomdu ~= vocdu then td(vocdu) end
if nompl ~= vocpl then td(vocpl) end
_tr()
th("genitive", 2, 1)
th("proper")
td(gen, 2, 1)
if definite or adj then
td(gendu)
else
td(gendu, 2, 1)
end
td(genpl)
_tr()
th("constructive")
td(genpl_short)
_tr()
th("dative", 1, 2)
td(dat)
td(datdu)
td(datpl)
_tr()
th("accusative", 1, 2)
td(acc)
td(accdu)
td(accpl)
_tr()
th("instrumental", 1, 2)
td(ins)
td(insdu)
td(inspl)
tr_()
elseif table_type == "dupl" and (definite or adj) then
th("Declension of <i>" .. nomdu_cite .. "</i> (" .. type_name .. ", ''[[:Category:Radestrian pluralia binaria tantum|plurale binarium tantum]]''" .. irregular_title .. ") ", 1, 3)
tr()
th("", 1, 2)
th("binary plural")
_tr()
th("nominative", 1, 2)
if nomdu == vocdu then td(nomdu, 2) else td(nomdu) end
_tr()
th("vocative", 1, 2)
if nomdu ~= vocdu then td(vocdu) end
_tr()
th("genitive", 2, 1)
th("proper")
td(gendu)
_tr()
th("constructive")
td(gendu_short)
_tr()
th("dative", 1, 2)
td(datdu)
_tr()
th("accusative", 1, 2)
td(accdu)
_tr()
th("instrumental", 1, 2)
td(insdu)
tr_()
elseif table_type == "dupl" then
th("Declension of <i>" .. nomdu_cite .. "</i> (" .. type_name .. ", ''[[:Category:Radestrian pluralia binaria tantum|plurale binarium tantum]]''" .. irregular_title .. ") ", 1, 2)
tr()
th("")
th("binary plural")
_tr()
th("nominative")
if nomdu == vocdu then td(nomdu, 2) else td(nomdu) end
_tr()
th("vocative")
if nomdu ~= vocdu then td(vocdu) end
_tr()
th("genitive")
td(gendu)
_tr()
th("dative")
td(datdu)
_tr()
th("accusative")
td(accdu)
_tr()
th("instrumental")
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
if definite then add("[[Category:Radestrian definite terms]]") end
if irregular then add("[[Category:Radestrian irregular nouns]]") end
end
return table.concat(format_table, string.char(10))
end
function export.conjugate(frame)
local args = getArgs(frame)
local table_type = args["t"] or args["type"] or "tr"
local disable_ipa = args['noipa']
local irregular = args["irr"] or args["irregular"]
for _, arg in ipairs(args) do
if irregular or mw.ustring.find(arg, "%*") then
irregular = true
break
end
end
for arg_name, arg in pairs(args) do
if mw.ustring.find(arg_name, "%_note") then
--continue
elseif irregular or mw.ustring.find(arg, "%*") then
irregular = true
break
end
end
local irregular_title = ""
if irregular then irregular_title = ", ''irregular''" .. irregular_icon end
if args[3] == nil then -- sense preset conjugation
local root = args[1]
checked = true
if args[2] == "ru" then -- -rut verbs
args[1] = root .. "rut"
args[2] = root .. "ruv"
args[3] = root .. "ru"
args[4] = root .. "rui"
args[5] = root .. "ru"
args[6] = root .. "rur"
args[7] = root .. "rur"
args['r'] = root .. "rûr"
args['imp'] = root .. "rûja"
args['depers'] = root .. "rû"
args['rpst'] = root .. "rujr"
args['altprespart'] = root .. "ri"
args['altprespart_note'] = "archaic"
args['altpspart'] = root .. "rú"
args['altpspart_note'] = "archaic"
elseif args[2] == "a" then -- -at verbs
table_type = "intr"
args[1] = root .. "at"
args[2] = root .. "av"
args[3] = root .. "a"
args[4] = root .. "ai"
args[5] = root .. "a"
args['altprespart'] = root .. "ami"
args['altprespart_note'] = "archaic"
args['altpspart'] = args['altpspart'] or (root .. "mú")
args['altpspart_note'] = "archaic"
elseif args[2] == "y" then -- -yt verbs
args[1] = root .. "yt"
args[2] = root .. "yv"
args[3] = root .. "y"
args[4] = root .. "ý"
args[5] = root .. "j"
args[6] = root .. "yr"
args[7] = root .. "ýr"
args['epst'] = root .. "ý"
args['rpst'] = root .. "ýr"
elseif args[2] == "r" then -- passive-only verbs
table_type = "pass"
args[1] = root .. "r"
args[2] = root .. "r"
args[3] = root .. "r"
args[4] = root .. "r"
args[5] = root .. "r"
args[6] = root .. "r"
args[7] = root .. "r"
else error("Invalid preset")
end
end
local pp = m_stem.getVerbStem(args)
-- mw.logObject(pp)
format_table = {}
if (table_type == "tr" or table_type == "pass") and args[6] == nil then error("Passive conjugation tables require arguments 6 (infinitive) and 7 (present participle stem). Please provide these parameters or set t=intr") 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, regex1, regex2, regex3, regex4, regex5, regex6)
local temp = {}
local post = ""
local noipa = disable_ipa or false
if type(regex2) == "boolean" then
if regex1 == nil then
post = nil
else
post = regex1
end
noipa = regex2
regex1 = nil
regex2 = nil
else
post = nil
end
ending = ending or ""
regex1 = regex1 or ""
regex2 = regex2 or ""
regex3 = regex3 or ""
regex4 = regex4 or ""
regex5 = regex5 or ""
regex6 = regex6 or ""
if type(stem) == "table" then
for i, form in ipairs(stem) do
if mw.ustring.find(form['word'], "%*") then
form['word'] = "*" .. mw.ustring.gsub(form['word'], "%*", "")
end
temp[i] = {['word'] = mw.ustring.gsub(form['word'] .. ending, regex1, regex2), ['note'] = form['note']}
temp[i]['word'] = mw.ustring.gsub(temp[i]['word'], regex3, regex4)
temp[i]['word'] = mw.ustring.gsub(temp[i]['word'], regex5, regex6)
end
local new_temp = {}
new_temp[1] = temp[1]
for index = 2, #temp do
for check = 1, (index - 1) do
local to_add = true
if temp[index]["word"] == temp[check]["word"] then to_add = false end
if to_add then table.insert(new_temp, temp[index]) end
end
end
temp = new_temp
elseif type(stem) == "string" then
if mw.ustring.find(stem, "%*") then
stem = "*" .. mw.ustring.gsub(stem, "%*", "")
end
temp = mw.ustring.gsub(stem .. ending, regex1, regex2)
temp = mw.ustring.gsub(temp, regex3, regex4)
temp = mw.ustring.gsub(temp, regex5, regex6)
end
return rad_link_IPA(temp, post, noipa)
end
local form_3s = get_forms(pp['3s'])
local form_2s = get_forms(pp.depers or pp['2s'], "", "nv$", "nu")
if table_type ~= "tr" and table_type ~= "intr" and table_type ~= "pass" and table_type ~= "impers" then error("Invalid table type") end
add("<small>")
if table_type == "impers" then -- impersonal table
local cite = ""
if (type(pp.inf) == "table") then cite = pp['inf'][1]['word'] else cite = pp.inf end
add("<table class=\"blacklinks mw-collapsible mw-collapsed wikitable inflection table\" width=70% style=\"text-align: center\">")
tr()
th("Conjugation of ''" .. cite .. "'' (impersonal" .. irregular_title .. ") ", 1, 5)
_tr()
th("nonfinite forms", 1, 5)
_tr()
th("infinitive", 1, 3)
td(get_forms(pp.inf), 1, 2)
_tr()
th("connegative", 1, 3)
td(get_forms(pp.inf,"a","([^a])uta$","%1ûta"), 1, 2)
_tr()
th("supine", 1, 3)
td(get_forms(pp.inf,"úr", "([^a])utúr$","%1ûtúr"), 1, 2)
_tr()
th("adverbial participle", 2, 2)
th("present")
td(get_forms(pp.prespart,"vú"), 1, 2)
_tr()
th("past")
td(get_forms(pp.pspart,"l"), 1, 2)
_tr()
th("finite forms", 3, 3)
th("singular", 1, 2)
_tr()
th("third")
th("depersonal")
_tr()
th("∅")
th("''" .. rad_link("gjeș") .. " …''")
_tr()
th("simple", 6, 1)
th("indicative", 2, 1)
th("non-past")
if form_3s == form_2s then
td(form_3s, 1, 2)
else
td(form_3s)
td(form_2s)
end
_tr()
th("past")
if pp.epst then
td(get_forms(pp.epst,"ș"))
td(get_forms(pp.epst))
else
td(get_forms(pp.pst,"eș"))
td(get_forms(pp.pst,"e"))
end
_tr()
th("subjunctive",2,1)
th("non-past")
td(get_forms(pp.a,"ș"))
td(get_forms(pp.a))
_tr()
th("past")
td(get_forms(pp.pst,"aiș", "aaiș$", "áeș", "áaiș$", "ảeș"))
td(get_forms(pp.pst,"ai", "aai$", "áe", "áai$", "ảe"))
_tr()
th("optative",2,1)
th("non-past")
td(get_forms(pp['2s'],"úș"))
td(get_forms(pp['2s'],"ú"))
_tr()
th("past")
if pp.epst then
td(get_forms(pp.epst,"veș"))
td(get_forms(pp.epst,"ve"))
else
td(get_forms(pp.pst,"eveș"))
td(get_forms(pp.pst,"eve"))
end
_tr()
th("habitual",6,1)
th("indicative",2,1)
th("non-past")
td(get_forms(pp.r,"iș"))
td(get_forms(pp.r,"i"))
_tr()
th("past")
if pp.epst then
td(get_forms(pp.epst,"riș"))
td(get_forms(pp.epst,"ri"))
else
td(get_forms(pp.pst,"eriș"))
td(get_forms(pp.pst,"eri"))
end
_tr()
th("subjunctive",2,1)
th("non-past")
td(get_forms(pp.a,"riș"))
td(get_forms(pp.a,"ri"))
_tr()
th("past")
td(get_forms(pp.pst,"airiș", "aairiș$", "áeriș", "áairiș$", "ảeriș"))
td(get_forms(pp.pst,"airi", "aairi$", "áeri", "áairi$", "ảeri"))
_tr()
th("optative",2,1)
th("non-past")
td(get_forms(pp['2s'],"úriș"))
td(get_forms(pp['2s'],"úri"))
_tr()
th("past")
if pp.epst then
td(get_forms(pp.epst,"veriș"))
td(get_forms(pp.epst,"veri"))
else
td(get_forms(pp.pst,"everiș"))
td(get_forms(pp.pst,"everi"))
end
tr_()
add("</table>")
add("<table class=\"blacklinks mw-collapsible mw-collapsed wikitable inflection table\" width=70% style=\"text-align: center\">")
tr()
th("Compound forms of ''" .. cite .. "'' (impersonal) ", 1, 5)
_tr()
th("", 3, 3)
th("singular", 1, 2)
_tr()
th("third")
th("depersonal")
_tr()
th("∅")
th("''" .. rad_link("gjeș") .. " …''")
_tr()
th("continuous",7,1)
th("infinitive",1,2)
td(get_forms(pp.prespart,"vú","vat",true),1,2)
_tr()
th("indicative",2,1)
th("non-past")
td(get_forms(pp.prespart,"vú","vaș",true))
td(get_forms(pp.prespart,"vú",_,true))
_tr()
th("past")
td(get_forms(pp.prespart,"vú","hâleș",true))
td(get_forms(pp.prespart,"vú","hâle",true))
_tr()
th("subjunctive",2,1)
th("non-past")
td(get_forms(pp.prespart,"vú","vagaș",true))
td(get_forms(pp.prespart,"vú","vaga",true))
_tr()
th("past")
td(get_forms(pp.prespart,"vú","hâlaiș",true))
td(get_forms(pp.prespart,"vú","hâlai",true))
_tr()
th("optative",2,1)
th("non-past")
td(get_forms(pp.prespart,"vú","vagúș",true))
td(get_forms(pp.prespart,"vú","vagú",true))
_tr()
th("past")
td(get_forms(pp.prespart,"vú","hâleveș",true))
td(get_forms(pp.prespart,"vú","hâleve",true))
_tr()
th("perfective",7,1)
th("infinitive",1,2)
td(get_forms(pp.pspart,"l","-at",true),1,2)
_tr()
th("indicative",2,1)
th("perfect")
td(get_forms(pp.pspart,"l","-aș",true))
td(get_forms(pp.pspart,"l", _,true))
_tr()
th("pluperfect")
td(get_forms(pp.pspart,"l","-âleș",true))
td(get_forms(pp.pspart,"l","-âle",true))
_tr()
th("subjunctive",2,1)
th("perfect")
td(get_forms(pp.pspart,"l","-agaș",true))
td(get_forms(pp.pspart,"l","-aga",true))
_tr()
th("pluperfect")
td(get_forms(pp.pspart,"l","-âlaiș",true))
td(get_forms(pp.pspart,"l","-âlai",true))
_tr()
th("optative",2,1)
th("perfect")
td(get_forms(pp.pspart,"l","-agúș",true))
td(get_forms(pp.pspart,"l","-agú",true))
_tr()
th("pluperfect")
td(get_forms(pp.pspart,"l","-âleveș",true))
td(get_forms(pp.pspart,"l","-âleve",true))
_tr()
th("Negative compound forms of ''" .. cite .. "'' (impersonal)",1,5)
_tr()
th("continuous",7,1)
th("infinitive",1,2)
td(get_forms(pp.prespart,"vú","hjeat",true),1,2)
_tr()
th("indicative",2,1)
th("non-past")
td(get_forms(pp.prespart,"vú","hjeaș",true))
td(get_forms(pp.prespart,"vú","hje",true))
_tr()
th("past")
td(get_forms(pp.prespart,"vú","húeș",true))
td(get_forms(pp.prespart,"vú","húe",true))
_tr()
th("subjunctive",2,1)
th("non-past")
td(get_forms(pp.prespart,"vú","hjeàș",true))
td(get_forms(pp.prespart,"vú","hjeà",true))
_tr()
th("past")
td(get_forms(pp.prespart,"vú","húaiș",true))
td(get_forms(pp.prespart,"vú","húai",true))
_tr()
th("optative",2,1)
th("non-past")
td(get_forms(pp.prespart,"vú","hjeúș",true))
td(get_forms(pp.prespart,"vú","hjeú",true))
_tr()
th("past")
td(get_forms(pp.prespart,"vú","húeveș",true))
td(get_forms(pp.prespart,"vú","húeve",true))
_tr()
th("perfective",7,1)
th("infinitive",1,2)
td(get_forms(pp.pspart,"l","hjeat",true),1,2)
_tr()
th("indicative",2,1)
th("perfect")
td(get_forms(pp.pspart,"l","hjeaș",true))
td(get_forms(pp.pspart,"l", "hje",true))
_tr()
th("pluperfect")
td(get_forms(pp.pspart,"l","-úeș",true))
td(get_forms(pp.pspart,"l","-úe",true))
_tr()
th("subjunctive",2,1)
th("perfect")
td(get_forms(pp.pspart,"l","hjeàș",true))
td(get_forms(pp.pspart,"l","hjeà",true))
_tr()
th("pluperfect")
td(get_forms(pp.pspart,"l","-úaiș",true))
td(get_forms(pp.pspart,"l","-úai",true))
_tr()
th("optative",2,1)
th("perfect")
td(get_forms(pp.pspart,"l","hjeúș",true))
td(get_forms(pp.pspart,"l","hjeú",true))
_tr()
th("pluperfect")
td(get_forms(pp.pspart,"l","-úeveș",true))
td(get_forms(pp.pspart,"l","-úeve",true))
tr_()
add("</table>")
end
if table_type == "intr" or table_type == "tr" then -- active table
local cite = ""
if (type(pp.inf) == "table") then cite = pp['inf'][1]['word'] else cite = pp.inf end
add("<table class=\"blacklinks mw-collapsible mw-collapsed wikitable inflection table\" width=100% style=\"text-align: center\">")
tr()
th("Conjugation of ''" .. cite .. "'' (active voice" .. irregular_title .. ") ", 1, 14)
_tr()
th("nonfinite forms", 1, 14)
_tr()
th("infinitive", 1, 3)
td(get_forms(pp.inf), 1, 11)
_tr()
th("connegative", 1, 3)
if cite == "vat" or cite == "hjeat" then
th("''" .. cite .. "'' does not have a connegative", 1, 11)
else
td(get_forms(pp.inf,"a","([^a])uta$","%1ûta"), 1, 11)
end
_tr()
th("supine", 1, 3)
td(get_forms(pp.inf,"úr", "([^a])utúr$","%1ûtú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)
_tr()
th("finite forms", 4, 3)
th("singular", 1, 5)
th("plural", 1, 5)
th("humble")
_tr()
th("first", 2, 1)
th("second", 1, 2)
th("third", 2, 1)
th("depersonal", 2, 1)
th("first", 1, 2)
th("second", 2, 1)
th("third", 2, 1)
th("depersonal", 2, 1)
th("second", 2, 1)
_tr()
th("informal")
th("formal")
th("inclusive")
th("exclusive")
_tr()
th("''" .. rad_link("ú") .. "''")
th("''" .. rad_link("re") .. "''")
th("''" .. rad_link("lește") .. "''")
th("''" .. rad_link("vâs") .. ", " .. rad_link("vara") .. "''")
th("''" .. rad_link("gjei") .. ", " .. rad_link("gjen") .. ", " .. rad_link("gjeș") .. " …''")
th("''" .. rad_link("dzun") .. ", " .. rad_link("sted") .. "''")
th("''" .. rad_link("dzate") .. "''")
th("''" .. rad_link("sjáște") .. "''")
th("''" .. rad_link("vír") .. ", " .. rad_link("vara") .. "''")
th("''" .. rad_link("gjes") .. ", " .. rad_link("gjete") .. ", " .. rad_link("gje") .. ", " .. rad_link("gjen") .. " …''")
th("''" .. rad_link("sja") .. ", " .. rad_link("lai") .. "''")
_tr()
th("simple", 7, 1)
th("imperative", 1, 2)
th()
local form_imp = ""
if pp.imp then form_imp = get_forms(pp.imp) else form_imp = nil end
local form_a = get_forms(pp.a)
if form_imp and form_a ~= form_imp then
td(form_imp)
elseif pp.vstem then
td(get_forms(pp.a, "", "va$", "ja"))
else
td(form_a, 2, 1)
end
td(get_forms(pp['2s'],"úș"))
th("", 1, 2)
td(get_forms(pp.pl or pp['2s'],"uoș"))
th()
td(get_forms(pp['2s'],"ovú", "([au])ovú$", "%1òvú"))
th("", 1, 2)
td(get_forms(pp.pl or pp['2s'],"úr"))
_tr()
th("indicative", 2, 1)
th("non-past")
td(get_forms(pp['1s']))
if (form_imp and form_a ~= form_imp) or pp.vstem then td(form_a) end
if form_3s == form_2s then
td(form_3s, 1, 3)
else
td(form_3s, 1, 2)
td(form_2s)
end
local temp_height = 1
if get_forms(pp.pl or pp['2s'],"ú") == get_forms(pp.pst,"ú","[uú]ú$","ủ") then temp_height = 2 end
td(get_forms(pp.pl or pp['2s'],"uos"), temp_height)
td(get_forms(pp.pl or pp['2s'],"uote"), temp_height)
td(get_forms(pp.pl or pp['2s'],"ú"), temp_height, 3)
td(get_forms(pp.pl or pp['2s'],"ún"), temp_height)
_tr()
th("past")
if pp.epst then
td(get_forms(pp.epst,"e"))
td(get_forms(pp.epst,"n"))
td(get_forms(pp.epst,"ș"),1,2)
td(get_forms(pp.epst))
else
td(get_forms(pp.pst,"ei"))
td(get_forms(pp.pst,"en"))
td(get_forms(pp.pst,"eș"),1,2)
td(get_forms(pp.pst,"e"))
end
if get_forms(pp.pl or pp['2s'],"ú") ~= get_forms(pp.pst,"ú","[uú]ú$","ủ") then
td(get_forms(pp.pst,"uos","[uú]uos$","ủos"))
td(get_forms(pp.pst,"uote","[uú]uote$","ủote"))
td(get_forms(pp.pst,"ú","[uú]ú$","ủ"),1,3)
td(get_forms(pp.pst,"ún","[uú]ún$","ủn"))
end
_tr()
th("subjunctive",2,1)
th("non-past")
local aidentical = false
if pp.vstem then
local aiheight = 1
if get_forms(pp['2s'],"ai","avai$","áe") == get_forms(pp.pst,"ai", "aai$", "áe", "áai$", "ảe") then
aiheight = 2
aidentical = true
end
td(get_forms(pp['2s'],"ai","avai$","áe", "áai$", "ảe"),aiheight)
td(get_forms(pp['2s'],"á","avá$","áva"))
else
local aiheight = 1
if get_forms(pp['2s'],"ai","âai$","oai") == get_forms(pp.pst,"ai", "aai$", "áe", "áai$", "ảe") then
aiheight = 2
aidentical = true
end
td(get_forms(pp['2s'],"ai","âai$","oai","aai","áe", "áai$", "ảe"),aiheight)
td(get_forms(pp['2s'],"á","âá$","oá","[aá]á","ả"))
end
td(get_forms(pp.a,"ș"),1,2)
td(get_forms(pp.a))
temp_height = 1
if pp.a == pp.apst then temp_height = 2 end
td(get_forms(pp.a,"vuos"), temp_height)
td(get_forms(pp.a,"vuote"), temp_height)
td(get_forms(pp.a,"vú"), temp_height, 3)
td(get_forms(pp.a,"vún"), temp_height)
_tr()
th("past")
if not aidentical then td(get_forms(pp.pst,"ai", "aai$", "áe", "áai$", "ảe")) end
td(get_forms(pp.pst,"ain", "aain$", "áen", "áain$", "ảen"))
td(get_forms(pp.pst,"aiș", "aaiș$", "áeș", "áaiș$", "ảeș"),1,2)
td(get_forms(pp.pst,"ai", "aai$", "áe", "áai$", "ảe"))
if pp.a ~= pp.apst then
td(get_forms(pp.apst,"vuos"))
td(get_forms(pp.apst,"vuote"))
td(get_forms(pp.apst,"vú"),1,3)
td(get_forms(pp.apst,"vún"))
end
_tr()
th("optative",2,1)
th("non-past")
td(get_forms(pp['2s'],"úe"))
td(get_forms(pp['2s'],"ova", "([au])ova$", "%1òva"))
td(get_forms(pp['2s'],"úș"),1,2)
td(get_forms(pp['2s'],"ú"))
td(get_forms(pp['2s'],"ovuos", "([au])ovuos$", "%1òvuos"))
td(get_forms(pp['2s'],"ovuote", "([au])ovuote$", "%1òvuote"))
td(get_forms(pp['2s'],"ovú", "([au])ovú$", "%1òvú"),1,3)
td(get_forms(pp['2s'],"ovún", "([au])ovún$", "%1òvún"))
_tr()
th("past")
if pp.epst then
td(get_forms(pp.epst,"vei"))
td(get_forms(pp.epst,"ven"))
td(get_forms(pp.epst,"veș"),1,2)
td(get_forms(pp.epst,"ve"))
td(get_forms(pp.epst,"vuos"))
td(get_forms(pp.epst,"vuote"))
td(get_forms(pp.epst,"vú"),1,3)
td(get_forms(pp.epst,"vún"))
else
td(get_forms(pp.pst,"evei"))
td(get_forms(pp.pst,"even"))
td(get_forms(pp.pst,"eveș"),1,2)
td(get_forms(pp.pst,"eve"))
td(get_forms(pp.pst,"evuos"))
td(get_forms(pp.pst,"evuote"))
td(get_forms(pp.pst,"evú"),1,3)
td(get_forms(pp.pst,"evún"))
end
_tr()
th("habitual",6,1)
th("indicative",2,1)
th("non-past")
td(get_forms(pp.r,"iè"))
td(get_forms(pp.r,"in"))
td(get_forms(pp.r,"iș"),1,2)
td(get_forms(pp.r,"i"))
temp_height = 1
if get_forms(pp.pl or pp['2s'],"ú") == get_forms(pp.pst,"ú","[uú]ú$","ủ") then temp_height = 2 end
td(get_forms(pp.pl or pp['2s'],"úris"), temp_height)
td(get_forms(pp.pl or pp['2s'],"úrite"), temp_height)
td(get_forms(pp.pl or pp['2s'],"úri"), temp_height, 3)
td(get_forms(pp.pl or pp['2s'],"úrin"), temp_height)
_tr()
th("past")
if pp.epst then
td(get_forms(pp.epst,"riè"))
td(get_forms(pp.epst,"rin"))
td(get_forms(pp.epst,"riș"),1,2)
td(get_forms(pp.epst,"ri"))
else
td(get_forms(pp.pst,"eriè"))
td(get_forms(pp.pst,"erin"))
td(get_forms(pp.pst,"eriș"),1,2)
td(get_forms(pp.pst,"eri"))
end
if get_forms(pp.pl or pp['2s'],"ú") ~= get_forms(pp.pst,"ú","[uú]ú$","ủ") then
td(get_forms(pp.pst,"úris","[uú]úris$","ủris"))
td(get_forms(pp.pst,"úrite","[uú]úrite$","ủrite"))
td(get_forms(pp.pst,"úri","[uú]úri$","ủri"),1,3)
td(get_forms(pp.pst,"úrin","[uú]úrin$","ủrin"))
end
_tr()
th("subjunctive",2,1)
th("non-past")
td(get_forms(pp.a,"riè"))
td(get_forms(pp.a,"rin"))
td(get_forms(pp.a,"riș"),1,2)
td(get_forms(pp.a,"ri"))
temp_height = 1
if pp.a == pp.apst then temp_height = 2 end
td(get_forms(pp.a,"vúris"), temp_height)
td(get_forms(pp.a,"vúrite"), temp_height)
td(get_forms(pp.a,"vúri"), temp_height, 3)
td(get_forms(pp.a,"vúrin"), temp_height)
_tr()
th("past")
td(get_forms(pp.pst,"airiè", "aairiè$", "áeriè", "áairiè$", "ảeriè"))
td(get_forms(pp.pst,"airin", "aairin$", "áerin", "aairin$", "áerin"))
td(get_forms(pp.pst,"airiș", "aairiș$", "áeriș", "aairiș$", "áeriș"),1,2)
td(get_forms(pp.pst,"airi", "aairi$", "áeri", "aairi$", "áeri"))
if pp.a ~= pp.apst then
td(get_forms(pp.apst,"vúris"))
td(get_forms(pp.apst,"vúrite"))
td(get_forms(pp.apst,"vúri"),1,3)
td(get_forms(pp.apst,"vúrin"))
end
_tr()
th("optative",2,1)
th("non-past")
td(get_forms(pp['2s'],"úriè"))
td(get_forms(pp['2s'],"úrin"))
td(get_forms(pp['2s'],"úriș"),1,2)
td(get_forms(pp['2s'],"úri"))
td(get_forms(pp['2s'],"ovúris", "([au])ovúris$", "%1òvúris"))
td(get_forms(pp['2s'],"ovúrite", "([au])ovúrite$", "%1òvúrite"))
td(get_forms(pp['2s'],"ovúri", "([au])ovúri$", "%1òvúri"),1,3)
td(get_forms(pp['2s'],"ovúrin", "([au])ovúrin$", "%1òvúrin"))
_tr()
th("past")
if pp.epst then
td(get_forms(pp.epst,"veriè"))
td(get_forms(pp.epst,"verin"))
td(get_forms(pp.epst,"veriș"),1,2)
td(get_forms(pp.epst,"veri"))
td(get_forms(pp.epst,"vúris"))
td(get_forms(pp.epst,"vúrite"))
td(get_forms(pp.epst,"vúri"),1,3)
td(get_forms(pp.epst,"vúrin"))
else
td(get_forms(pp.pst,"everiè"))
td(get_forms(pp.pst,"everin"))
td(get_forms(pp.pst,"everiș"),1,2)
td(get_forms(pp.pst,"everi"))
td(get_forms(pp.pst,"evúris"))
td(get_forms(pp.pst,"evúrite"))
td(get_forms(pp.pst,"evúri"),1,3)
td(get_forms(pp.pst,"evúrin"))
end
tr_()
add("</table>")
if pp.inf ~= "hjeat" then
add("<table class=\"blacklinks mw-collapsible mw-collapsed wikitable inflection table\" width=100% style=\"text-align: center\">")
tr()
th("Compound forms of ''" .. cite .. "'' (active voice) ", 1, 14)
_tr()
th("", 4, 3)
th("singular", 1, 5)
th("plural", 1, 5)
th("humble")
_tr()
th("first", 2, 1)
th("second", 1, 2)
th("third", 2, 1)
th("depersonal", 2, 1)
th("first", 1, 2)
th("second", 2, 1)
th("third", 2, 1)
th("depersonal", 2, 1)
th("second", 2, 1)
_tr()
th("informal")
th("formal")
th("inclusive")
th("exclusive")
_tr()
th("''" .. rad_link("ú") .. "''")
th("''" .. rad_link("re") .. "''")
th("''" .. rad_link("lește") .. "''")
th("''" .. rad_link("vâs") .. ", " .. rad_link("vara") .. "''")
th("''" .. rad_link("gjei") .. ", " .. rad_link("gjen") .. ", " .. rad_link("gjeș") .. " …''")
th("''" .. rad_link("dzun") .. ", " .. rad_link("sted") .. "''")
th("''" .. rad_link("dzate") .. "''")
th("''" .. rad_link("sjáște") .. "''")
th("''" .. rad_link("vír") .. ", " .. rad_link("vara") .. "''")
th("''" .. rad_link("gjes") .. ", " .. rad_link("gjete") .. ", " .. rad_link("gje") .. ", " .. rad_link("gjen") .. " …''")
th("''" .. rad_link("sja") .. ", " .. rad_link("lai") .. "''")
_tr()
th("continuous",7,1)
th("infinitive",1,2)
td(get_forms(pp.prespart,"vú","vat",true),1,12)
_tr()
th("indicative",2,1)
th("non-past")
td(get_forms(pp.prespart,"vú","vage",true))
td(get_forms(pp.prespart,"vú","vaga",true))
td(get_forms(pp.prespart,"vú","vaș",true),1,2)
td(get_forms(pp.prespart,"vú",_,true))
td(get_forms(pp.prespart,"vú","vaguos",true))
td(get_forms(pp.prespart,"vú","vaguote",true))
td(get_forms(pp.prespart,"vú","vagú",true),1,2)
td(get_forms(pp.prespart,"vú",_,true))
td(get_forms(pp.prespart,"vú","vagún",true))
_tr()
th("past")
td(get_forms(pp.prespart,"vú","hâlei",true))
td(get_forms(pp.prespart,"vú","hâlen",true))
td(get_forms(pp.prespart,"vú","hâleș",true),1,2)
td(get_forms(pp.prespart,"vú","hâle",true))
td(get_forms(pp.prespart,"vú","hâluos",true))
td(get_forms(pp.prespart,"vú","hâluote",true))
td(get_forms(pp.prespart,"vú","hâlú",true),1,3)
td(get_forms(pp.prespart,"vú","hâlún",true))
_tr()
th("subjunctive",2,1)
th("non-past")
td(get_forms(pp.prespart,"vú","vagai",true))
td(get_forms(pp.prespart,"vú","vagá",true))
td(get_forms(pp.prespart,"vú","vagaș",true),1,2)
td(get_forms(pp.prespart,"vú","vaga",true))
td(get_forms(pp.prespart,"vú","vagavuos",true))
td(get_forms(pp.prespart,"vú","vagavuote",true))
td(get_forms(pp.prespart,"vú","vagavú",true),1,3)
td(get_forms(pp.prespart,"vú","vagavún",true))
_tr()
th("past")
td(get_forms(pp.prespart,"vú","hâlai",true))
td(get_forms(pp.prespart,"vú","hâlain",true))
td(get_forms(pp.prespart,"vú","hâlaiș",true),1,2)
td(get_forms(pp.prespart,"vú","hâlai",true))
td(get_forms(pp.prespart,"vú","hâlavuos",true))
td(get_forms(pp.prespart,"vú","hâlavuote",true))
td(get_forms(pp.prespart,"vú","hâlavú",true),1,3)
td(get_forms(pp.prespart,"vú","hâlavún",true))
_tr()
th("optative",2,1)
th("non-past")
td(get_forms(pp.prespart,"vú","vagúe",true))
td(get_forms(pp.prespart,"vú","vagova",true))
td(get_forms(pp.prespart,"vú","vagúș",true),1,2)
td(get_forms(pp.prespart,"vú","vagú",true))
td(get_forms(pp.prespart,"vú","vagovuos",true))
td(get_forms(pp.prespart,"vú","vagovuote",true))
td(get_forms(pp.prespart,"vú","vagovú",true),1,3)
td(get_forms(pp.prespart,"vú","vagovún",true))
_tr()
th("past")
td(get_forms(pp.prespart,"vú","hâlevei",true))
td(get_forms(pp.prespart,"vú","hâleven",true))
td(get_forms(pp.prespart,"vú","hâleveș",true),1,2)
td(get_forms(pp.prespart,"vú","hâleve",true))
td(get_forms(pp.prespart,"vú","hâlevuos",true))
td(get_forms(pp.prespart,"vú","hâlevuote",true))
td(get_forms(pp.prespart,"vú","hâlevú",true),1,3)
td(get_forms(pp.prespart,"vú","hâlevún",true))
_tr()
th("perfective",7,1)
th("infinitive",1,2)
td(get_forms(pp.pspart,"l","-at",true),1,12)
_tr()
th("indicative",2,1)
th("perfect")
td(get_forms(pp.pspart,"l","-age",true))
td(get_forms(pp.pspart,"l","-aga",true))
td(get_forms(pp.pspart,"l","-aș",true),1,2)
td(get_forms(pp.pspart,"l", _,true))
td(get_forms(pp.pspart,"l","-aguos",true))
td(get_forms(pp.pspart,"l","-aguote",true))
td(get_forms(pp.pspart,"l","-agú",true),1,2)
td(get_forms(pp.pspart,"l", _,true))
td(get_forms(pp.pspart,"l","-agún",true))
_tr()
th("pluperfect")
td(get_forms(pp.pspart,"l","-âlei",true))
td(get_forms(pp.pspart,"l","-âlen",true))
td(get_forms(pp.pspart,"l","-âleș",true),1,2)
td(get_forms(pp.pspart,"l","-âle",true))
td(get_forms(pp.pspart,"l","-âluos",true))
td(get_forms(pp.pspart,"l","-âluote",true))
td(get_forms(pp.pspart,"l","-âlú",true),1,3)
td(get_forms(pp.pspart,"l","-âlún",true))
_tr()
th("subjunctive",2,1)
th("perfect")
td(get_forms(pp.pspart,"l","-agai",true))
td(get_forms(pp.pspart,"l","-agá",true))
td(get_forms(pp.pspart,"l","-agaș",true),1,2)
td(get_forms(pp.pspart,"l","-aga",true))
td(get_forms(pp.pspart,"l","-agavuos",true))
td(get_forms(pp.pspart,"l","-agavuote",true))
td(get_forms(pp.pspart,"l","-agavú",true),1,3)
td(get_forms(pp.pspart,"l","-agavún",true))
_tr()
th("pluperfect")
td(get_forms(pp.pspart,"l","-âlai",true))
td(get_forms(pp.pspart,"l","-âlain",true))
td(get_forms(pp.pspart,"l","-âlaiș",true),1,2)
td(get_forms(pp.pspart,"l","-âlai",true))
td(get_forms(pp.pspart,"l","-âlavuos",true))
td(get_forms(pp.pspart,"l","-âlavuote",true))
td(get_forms(pp.pspart,"l","-âlavú",true),1,3)
td(get_forms(pp.pspart,"l","-âlavún",true))
_tr()
th("optative",2,1)
th("perfect")
td(get_forms(pp.pspart,"l","-agúe",true))
td(get_forms(pp.pspart,"l","-agova",true))
td(get_forms(pp.pspart,"l","-agúș",true),1,2)
td(get_forms(pp.pspart,"l","-agú",true))
td(get_forms(pp.pspart,"l","-agovuos",true))
td(get_forms(pp.pspart,"l","-agovuote",true))
td(get_forms(pp.pspart,"l","-agovú",true),1,3)
td(get_forms(pp.pspart,"l","-agovún",true))
_tr()
th("pluperfect")
td(get_forms(pp.pspart,"l","-âlevei",true))
td(get_forms(pp.pspart,"l","-âleven",true))
td(get_forms(pp.pspart,"l","-âleveș",true),1,2)
td(get_forms(pp.pspart,"l","-âleve",true))
td(get_forms(pp.pspart,"l","-âlevuos",true))
td(get_forms(pp.pspart,"l","-âlevuote",true))
td(get_forms(pp.pspart,"l","-âlevú",true),1,3)
td(get_forms(pp.pspart,"l","-âlevún",true))
_tr()
th("Negative compound forms of ''" .. cite .. "'' (active voice)",1,14)
_tr()
th("continuous",7,1)
th("infinitive",1,2)
td(get_forms(pp.prespart,"vú","hjeat",true),1,12)
_tr()
th("indicative",2,1)
th("non-past")
td(get_forms(pp.prespart,"vú","hjei",true))
td(get_forms(pp.prespart,"vú","hjeà",true))
td(get_forms(pp.prespart,"vú","hjeaș",true),1,2)
td(get_forms(pp.prespart,"vú","hje",true))
td(get_forms(pp.prespart,"vú","hjeuos",true))
td(get_forms(pp.prespart,"vú","hjeuote",true))
td(get_forms(pp.prespart,"vú","hjeú",true),1,3)
td(get_forms(pp.prespart,"vú","hjeún",true))
_tr()
th("past")
td(get_forms(pp.prespart,"vú","húei",true))
td(get_forms(pp.prespart,"vú","húen",true))
td(get_forms(pp.prespart,"vú","húeș",true),1,2)
td(get_forms(pp.prespart,"vú","húe",true))
td(get_forms(pp.prespart,"vú","hủos",true))
td(get_forms(pp.prespart,"vú","hủote",true))
td(get_forms(pp.prespart,"vú","hủ",true),1,3)
td(get_forms(pp.prespart,"vú","hủn",true))
_tr()
th("subjunctive",2,1)
th("non-past")
td(get_forms(pp.prespart,"vú","hjeai",true))
td(get_forms(pp.prespart,"vú","hjeá",true))
td(get_forms(pp.prespart,"vú","hjeàș",true),1,2)
td(get_forms(pp.prespart,"vú","hjeà",true))
td(get_forms(pp.prespart,"vú","hjeàvuos",true))
td(get_forms(pp.prespart,"vú","hjeàvuote",true))
td(get_forms(pp.prespart,"vú","hjeàvú",true),1,3)
td(get_forms(pp.prespart,"vú","hjeàvún",true))
_tr()
th("past")
td(get_forms(pp.prespart,"vú","húai",true))
td(get_forms(pp.prespart,"vú","húain",true))
td(get_forms(pp.prespart,"vú","húaiș",true),1,2)
td(get_forms(pp.prespart,"vú","húai",true))
td(get_forms(pp.prespart,"vú","húavuos",true))
td(get_forms(pp.prespart,"vú","húavuote",true))
td(get_forms(pp.prespart,"vú","húavú",true),1,3)
td(get_forms(pp.prespart,"vú","húavún",true))
_tr()
th("optative",2,1)
th("non-past")
td(get_forms(pp.prespart,"vú","hjeúe",true))
td(get_forms(pp.prespart,"vú","hjeova",true))
td(get_forms(pp.prespart,"vú","hjeúș",true),1,2)
td(get_forms(pp.prespart,"vú","hjeú",true))
td(get_forms(pp.prespart,"vú","hjeovuos",true))
td(get_forms(pp.prespart,"vú","hjeovuote",true))
td(get_forms(pp.prespart,"vú","hjeovú",true),1,3)
td(get_forms(pp.prespart,"vú","hjeovún",true))
_tr()
th("past")
td(get_forms(pp.prespart,"vú","húevei",true))
td(get_forms(pp.prespart,"vú","húeven",true))
td(get_forms(pp.prespart,"vú","húeveș",true),1,2)
td(get_forms(pp.prespart,"vú","húeve",true))
td(get_forms(pp.prespart,"vú","húevuos",true))
td(get_forms(pp.prespart,"vú","húevuote",true))
td(get_forms(pp.prespart,"vú","húevú",true),1,3)
td(get_forms(pp.prespart,"vú","húevún",true))
_tr()
th("perfective",7,1)
th("infinitive",1,2)
td(get_forms(pp.pspart,"l","hjeat",true),1,12)
_tr()
th("indicative",2,1)
th("perfect")
td(get_forms(pp.pspart,"l","hjei",true))
td(get_forms(pp.pspart,"l","hjeà",true))
td(get_forms(pp.pspart,"l","hjeaș",true),1,2)
td(get_forms(pp.pspart,"l", "hje",true))
td(get_forms(pp.pspart,"l","hjeuos",true))
td(get_forms(pp.pspart,"l","hjeuote",true))
td(get_forms(pp.pspart,"l","hjeú",true),1,3)
td(get_forms(pp.pspart,"l","hjeún",true))
_tr()
th("pluperfect")
td(get_forms(pp.pspart,"l","-úei",true))
td(get_forms(pp.pspart,"l","-úen",true))
td(get_forms(pp.pspart,"l","-úeș",true),1,2)
td(get_forms(pp.pspart,"l","-úe",true))
td(get_forms(pp.pspart,"l","-ủos",true))
td(get_forms(pp.pspart,"l","-ủote",true))
td(get_forms(pp.pspart,"l","-ủ",true),1,3)
td(get_forms(pp.pspart,"l","-ủn",true))
_tr()
th("subjunctive",2,1)
th("perfect")
td(get_forms(pp.pspart,"l","hjeai",true))
td(get_forms(pp.pspart,"l","hjeá",true))
td(get_forms(pp.pspart,"l","hjeàș",true),1,2)
td(get_forms(pp.pspart,"l","hjeà",true))
td(get_forms(pp.pspart,"l","hjeàvuos",true))
td(get_forms(pp.pspart,"l","hjeàvuote",true))
td(get_forms(pp.pspart,"l","hjeàvú",true),1,3)
td(get_forms(pp.pspart,"l","hjeàvún",true))
_tr()
th("pluperfect")
td(get_forms(pp.pspart,"l","-úai",true))
td(get_forms(pp.pspart,"l","-úain",true))
td(get_forms(pp.pspart,"l","-úaiș",true),1,2)
td(get_forms(pp.pspart,"l","-úai",true))
td(get_forms(pp.pspart,"l","-úavuos",true))
td(get_forms(pp.pspart,"l","-úavuote",true))
td(get_forms(pp.pspart,"l","-úavú",true),1,3)
td(get_forms(pp.pspart,"l","-úavún",true))
_tr()
th("optative",2,1)
th("perfect")
td(get_forms(pp.pspart,"l","hjeúe",true))
td(get_forms(pp.pspart,"l","hjeova",true))
td(get_forms(pp.pspart,"l","hjeúș",true),1,2)
td(get_forms(pp.pspart,"l","hjeú",true))
td(get_forms(pp.pspart,"l","hjeovuos",true))
td(get_forms(pp.pspart,"l","hjeovuote",true))
td(get_forms(pp.pspart,"l","hjeovú",true),1,3)
td(get_forms(pp.pspart,"l","hjeovún",true))
_tr()
th("pluperfect")
td(get_forms(pp.pspart,"l","-úevei",true))
td(get_forms(pp.pspart,"l","-úeven",true))
td(get_forms(pp.pspart,"l","-úeveș",true),1,2)
td(get_forms(pp.pspart,"l","-úeve",true))
td(get_forms(pp.pspart,"l","-úevuos",true))
td(get_forms(pp.pspart,"l","-úevuote",true))
td(get_forms(pp.pspart,"l","-úevú",true),1,3)
td(get_forms(pp.pspart,"l","-úevún",true))
tr_()
add("</table>")
end
end
if table_type == "tr" or table_type == "pass" then
local cite = ""
if (type(pp.passinf) == "table") then cite = pp['passinf'][1]['word'] else cite = pp.passinf end
add("<table class=\"blacklinks mw-collapsible mw-collapsed wikitable inflection table\" width=100% style=\"text-align: center\">")
tr()
th("Conjugation of ''" .. cite .. "uot'' (passive voice" .. irregular_title .. ") ", 1, 14)
_tr()
th("nonfinite forms", 1, 14)
_tr()
th("infinitive", 1, 3)
td(get_forms(pp.passinf,"uot"), 1, 11)
_tr()
th("connegative", 1, 3)
td(get_forms(pp.passinf,"uota"), 1, 11)
_tr()
th("supine", 1, 3)
td(get_forms(pp.passinf,"uotúr"), 1, 11)
_tr()
th("participle", 4, 1)
th("present", 2, 1)
th("adjectival")
td(get_forms(pp.passprespart,"uviș"), 1, 11)
_tr()
th("adverbial")
td(get_forms(pp.passprespart,"uvivú"), 1, 11)
_tr()
th("past", 2, 1)
th("adjectival")
local pspart_broken = {}
if type(pp.pspart) == "table" then
local i_counter = 1
while pp.pspart[i_counter] do
pspart_broken[i_counter] = {}
pspart_broken[i_counter]['word'] = pp.pspart[i_counter]['word']
pspart_broken[i_counter]['note'] = pp.pspart[i_counter]['note']
i_counter = i_counter + 1
end
for i,form in ipairs(pspart_broken) do
pspart_broken[i]['word'] = mw.ustring.gsub(form['word'], "ú$", "uo")
pspart_broken[i]['word'] = mw.ustring.gsub(form['word'], "ủ$", "ủo")
end
elseif type(pp.pspart) == "string" then
pspart_broken = pp.pspart
pspart_broken = mw.ustring.gsub(pspart_broken, "ú$", "uo")
pspart_broken = mw.ustring.gsub(pspart_broken, "ủ$", "ủo")
else
error()
end
td(get_forms(pspart_broken,"kș"), 1, 11)
_tr()
th("adverbial")
td(get_forms(pp.pspart,"k"), 1, 11)
_tr()
th("verbal noun", 1, 3)
td(get_forms(pp.passinf,"uvaș"), 1, 11)
_tr()
th("finite forms", 4, 3)
th("singular", 1, 5)
th("plural", 1, 5)
th("humble")
_tr()
th("first", 2, 1)
th("second", 1, 2)
th("third", 2, 1)
th("depersonal", 2, 1)
th("first", 1, 2)
th("second", 2, 1)
th("third", 2, 1)
th("depersonal", 2, 1)
th("second", 2, 1)
_tr()
th("informal")
th("formal")
th("inclusive")
th("exclusive")
_tr()
th("''" .. rad_link("ú") .. "''")
th("''" .. rad_link("re") .. "''")
th("''" .. rad_link("lește") .. "''")
th("''" .. rad_link("vâs") .. ", " .. rad_link("vara") .. "''")
th("''" .. rad_link("gjei") .. ", " .. rad_link("gjen") .. ", " .. rad_link("gjeș") .. " …''")
th("''" .. rad_link("dzun") .. ", " .. rad_link("sted") .. "''")
th("''" .. rad_link("dzate") .. "''")
th("''" .. rad_link("sjáște") .. "''")
th("''" .. rad_link("vír") .. ", " .. rad_link("vara") .. "''")
th("''" .. rad_link("gjes") .. ", " .. rad_link("gjete") .. ", " .. rad_link("gje") .. ", " .. rad_link("gjen") .. " …''")
th("''" .. rad_link("sja") .. ", " .. rad_link("lai") .. "''")
_tr()
th("simple", 7, 1)
th("imperative", 1, 2)
th()
td(get_forms(pp.r,"úa"))
td(get_forms(pp.r,"uvúș"))
th("", 1, 2)
td(get_forms(pp.r,"uvuoș"))
th()
td(get_forms(pp.r,"uvovú"))
th("", 1, 2)
td(get_forms(pp.r,"uvúr"))
_tr()
th("indicative", 2, 1)
th("non-past")
td(get_forms(pp.r,"úe"))
td(get_forms(pp.r,"uva"))
td(get_forms(pp.r,"úș"), 1, 2)
td(get_forms(pp.r,"ú"))
local temp_height = 1
if pp.r == pp.rpst then temp_height = 2 end
td(get_forms(pp.r,"uvuos"), temp_height)
td(get_forms(pp.r,"uvuote"), temp_height)
td(get_forms(pp.r,"uvú"), temp_height, 3)
td(get_forms(pp.r,"uvún"), temp_height)
_tr()
th("past")
td(get_forms(pp.rpst,"uvei"))
td(get_forms(pp.rpst,"uven"))
td(get_forms(pp.rpst,"uveș"),1,2)
td(get_forms(pp.rpst,"uve"))
if pp.r ~= pp.rpst then
td(get_forms(pp.rpst,"uvuos"))
td(get_forms(pp.rpst,"uvuote"))
td(get_forms(pp.rpst,"uvú"),1,3)
td(get_forms(pp.rpst,"uvún"))
end
_tr()
th("subjunctive",2,1)
th("non-past")
temp_height = 1
if pp.r == pp.rpst then temp_height = 2 end
td(get_forms(pp.r,"uvai"),temp_height)
td(get_forms(pp.r,"uvá"))
td(get_forms(pp.r,"uvaș"),1,2)
td(get_forms(pp.r,"uva"))
td(get_forms(pp.r,"uvavuos"), temp_height)
td(get_forms(pp.r,"uvavuote"), temp_height)
td(get_forms(pp.r,"uvavú"), temp_height, 3)
td(get_forms(pp.r,"uvavún"), temp_height)
_tr()
th("past")
if pp.r ~= pp.rpst then td(get_forms(pp.rpst,"uvai")) end
td(get_forms(pp.rpst,"uvain"))
td(get_forms(pp.rpst,"uvaiș"),1,2)
td(get_forms(pp.rpst,"uvai"))
if pp.r ~= pp.rpst then
td(get_forms(pp.rpst,"uvavuos"))
td(get_forms(pp.rpst,"uvavuote"))
td(get_forms(pp.rpst,"uvavú"),1,3)
td(get_forms(pp.rpst,"uvavún"))
end
_tr()
th("optative",2,1)
th("non-past")
td(get_forms(pp.r,"uvúe"))
td(get_forms(pp.r,"uvova"))
td(get_forms(pp.r,"uvúș"),1,2)
td(get_forms(pp.r,"uvú"))
td(get_forms(pp.r,"uvovuos"))
td(get_forms(pp.r,"uvovuote"))
td(get_forms(pp.r,"uvovú"),1,3)
td(get_forms(pp.r,"uvovún"))
_tr()
th("past")
td(get_forms(pp.rpst,"uvevei"))
td(get_forms(pp.rpst,"uveven"))
td(get_forms(pp.rpst,"uveveș"),1,2)
td(get_forms(pp.rpst,"uveve"))
td(get_forms(pp.rpst,"uvevuos"))
td(get_forms(pp.rpst,"uvevuote"))
td(get_forms(pp.rpst,"uvevú"),1,3)
td(get_forms(pp.rpst,"uvevún"))
_tr()
th("habitual",6,1)
th("indicative",2,1)
th("non-past")
td(get_forms(pp.r,"úriè"))
td(get_forms(pp.r,"úrin"))
td(get_forms(pp.r,"úriș"),1,2)
td(get_forms(pp.r,"úri"))
temp_height = 1
if pp.r == pp.rpst then temp_height = 2 end
td(get_forms(pp.r,"uvúris"), temp_height)
td(get_forms(pp.r,"uvúrite"), temp_height)
td(get_forms(pp.r,"uvúri"), temp_height, 3)
td(get_forms(pp.r,"uvúrin"), temp_height)
_tr()
th("past")
td(get_forms(pp.rpst,"uveriè"))
td(get_forms(pp.rpst,"uverin"))
td(get_forms(pp.rpst,"uveriș"),1,2)
td(get_forms(pp.rpst,"uveri"))
if pp.r ~= pp.rpst then
td(get_forms(pp.rpst,"uvúris"))
td(get_forms(pp.rpst,"uvúrite"))
td(get_forms(pp.rpst,"uvúri"),1,3)
td(get_forms(pp.rpst,"uvúrin"))
end
_tr()
th("subjunctive",2,1)
th("non-past")
td(get_forms(pp.r,"uvariè"))
td(get_forms(pp.r,"uvarin"))
td(get_forms(pp.r,"uvariș"),1,2)
td(get_forms(pp.r,"uvari"))
temp_height = 1
if pp.r == pp.rpst then temp_height = 2 end
td(get_forms(pp.r,"uvavúris"), temp_height)
td(get_forms(pp.r,"uvavúrite"), temp_height)
td(get_forms(pp.r,"uvavúri"), temp_height, 3)
td(get_forms(pp.r,"uvavúrin"), temp_height)
_tr()
th("past")
td(get_forms(pp.rpst,"uvairiè"))
td(get_forms(pp.rpst,"uvairin"))
td(get_forms(pp.rpst,"uvairiș"),1,2)
td(get_forms(pp.rpst,"uvairi"))
if pp.r ~= pp.rpst then
td(get_forms(pp.rpst,"uvavúris"))
td(get_forms(pp.rpst,"uvavúrite"))
td(get_forms(pp.rpst,"uvavúri"),1,3)
td(get_forms(pp.rpst,"uvavúrin"))
end
_tr()
th("optative",2,1)
th("non-past")
td(get_forms(pp.r,"uvúriè"))
td(get_forms(pp.r,"uvúrin"))
td(get_forms(pp.r,"uvúriș"),1,2)
td(get_forms(pp.r,"uvúri"))
td(get_forms(pp.r,"uvovúris"))
td(get_forms(pp.r,"uvovúrite"))
td(get_forms(pp.r,"uvovúri"),1,3)
td(get_forms(pp.r,"uvovúrin"))
_tr()
th("past")
td(get_forms(pp.rpst,"uveveriè"))
td(get_forms(pp.rpst,"uveverin"))
td(get_forms(pp.rpst,"uveveriș"),1,2)
td(get_forms(pp.rpst,"uveveri"))
td(get_forms(pp.rpst,"uvevúris"))
td(get_forms(pp.rpst,"uvevúrite"))
td(get_forms(pp.rpst,"uvevúri"),1,3)
td(get_forms(pp.rpst,"uvevúrin"))
tr_()
add("</table>")
add("<table class=\"blacklinks mw-collapsible mw-collapsed wikitable inflection table\" width=100% style=\"text-align: center\">")
tr()
th("Compound forms of ''" .. cite .. "uot'' (passive voice) ", 1, 14)
_tr()
th("", 4, 3)
th("singular", 1, 5)
th("plural", 1, 5)
th("humble")
_tr()
th("first", 2, 1)
th("second", 1, 2)
th("third", 2, 1)
th("depersonal", 2, 1)
th("first", 1, 2)
th("second", 2, 1)
th("third", 2, 1)
th("depersonal", 2, 1)
th("second", 2, 1)
_tr()
th("informal")
th("formal")
th("inclusive")
th("exclusive")
_tr()
th("''" .. rad_link("ú") .. "''")
th("''" .. rad_link("re") .. "''")
th("''" .. rad_link("lește") .. "''")
th("''" .. rad_link("vâs") .. ", " .. rad_link("vara") .. "''")
th("''" .. rad_link("gjei") .. ", " .. rad_link("gjen") .. ", " .. rad_link("gjeș") .. " …''")
th("''" .. rad_link("dzun") .. ", " .. rad_link("sted") .. "''")
th("''" .. rad_link("dzate") .. "''")
th("''" .. rad_link("sjáște") .. "''")
th("''" .. rad_link("vír") .. ", " .. rad_link("vara") .. "''")
th("''" .. rad_link("gjes") .. ", " .. rad_link("gjete") .. ", " .. rad_link("gje") .. ", " .. rad_link("gjen") .. " …''")
th("''" .. rad_link("sja") .. ", " .. rad_link("lai") .. "''")
_tr()
th("continuous",7,1)
th("infinitive",1,2)
td(get_forms(pp.passprespart,"uvivú","vat",true),1,12)
_tr()
th("indicative",2,1)
th("non-past")
td(get_forms(pp.passprespart,"uvivú","vage",true))
td(get_forms(pp.passprespart,"uvivú","vaga",true))
td(get_forms(pp.passprespart,"uvivú","vaș",true),1,2)
td(get_forms(pp.passprespart,"uvivú",_,true))
td(get_forms(pp.passprespart,"uvivú","vaguos",true))
td(get_forms(pp.passprespart,"uvivú","vaguote",true))
td(get_forms(pp.passprespart,"uvivú","vagú",true),1,2)
td(get_forms(pp.passprespart,"uvivú",_,true))
td(get_forms(pp.passprespart,"uvivú","vagún",true))
_tr()
th("past")
td(get_forms(pp.passprespart,"uvivú","hâlei",true))
td(get_forms(pp.passprespart,"uvivú","hâlen",true))
td(get_forms(pp.passprespart,"uvivú","hâleș",true),1,2)
td(get_forms(pp.passprespart,"uvivú","hâle",true))
td(get_forms(pp.passprespart,"uvivú","hâluos",true))
td(get_forms(pp.passprespart,"uvivú","hâluote",true))
td(get_forms(pp.passprespart,"uvivú","hâlú",true),1,3)
td(get_forms(pp.passprespart,"uvivú","hâlún",true))
_tr()
th("subjunctive",2,1)
th("non-past")
td(get_forms(pp.passprespart,"uvivú","vagai",true))
td(get_forms(pp.passprespart,"uvivú","vagá",true))
td(get_forms(pp.passprespart,"uvivú","vagaș",true),1,2)
td(get_forms(pp.passprespart,"uvivú","vaga",true))
td(get_forms(pp.passprespart,"uvivú","vagavuos",true))
td(get_forms(pp.passprespart,"uvivú","vagavuote",true))
td(get_forms(pp.passprespart,"uvivú","vagavú",true),1,3)
td(get_forms(pp.passprespart,"uvivú","vagavún",true))
_tr()
th("past")
td(get_forms(pp.passprespart,"uvivú","hâlai",true))
td(get_forms(pp.passprespart,"uvivú","hâlain",true))
td(get_forms(pp.passprespart,"uvivú","hâlaiș",true),1,2)
td(get_forms(pp.passprespart,"uvivú","hâlai",true))
td(get_forms(pp.passprespart,"uvivú","hâlavuos",true))
td(get_forms(pp.passprespart,"uvivú","hâlavuote",true))
td(get_forms(pp.passprespart,"uvivú","hâlavú",true),1,3)
td(get_forms(pp.passprespart,"uvivú","hâlavún",true))
_tr()
th("optative",2,1)
th("non-past")
td(get_forms(pp.passprespart,"uvivú","vagúe",true))
td(get_forms(pp.passprespart,"uvivú","vagova",true))
td(get_forms(pp.passprespart,"uvivú","vagúș",true),1,2)
td(get_forms(pp.passprespart,"uvivú","vagú",true))
td(get_forms(pp.passprespart,"uvivú","vagovuos",true))
td(get_forms(pp.passprespart,"uvivú","vagovuote",true))
td(get_forms(pp.passprespart,"uvivú","vagovú",true),1,3)
td(get_forms(pp.passprespart,"uvivú","vagovún",true))
_tr()
th("past")
td(get_forms(pp.passprespart,"uvivú","hâlevei",true))
td(get_forms(pp.passprespart,"uvivú","hâleven",true))
td(get_forms(pp.passprespart,"uvivú","hâleveș",true),1,2)
td(get_forms(pp.passprespart,"uvivú","hâleve",true))
td(get_forms(pp.passprespart,"uvivú","hâlevuos",true))
td(get_forms(pp.passprespart,"uvivú","hâlevuote",true))
td(get_forms(pp.passprespart,"uvivú","hâlevú",true),1,3)
td(get_forms(pp.passprespart,"uvivú","hâlevún",true))
_tr()
th("perfective",7,1)
th("infinitive",1,2)
td(get_forms(pp.pspart,"k","-at",true),1,12)
_tr()
th("indicative",2,1)
th("perfect")
td(get_forms(pp.pspart,"k","-age",true))
td(get_forms(pp.pspart,"k","-aga",true))
td(get_forms(pp.pspart,"k","-aș",true),1,2)
td(get_forms(pp.pspart,"k", _,true))
td(get_forms(pp.pspart,"k","-aguos",true))
td(get_forms(pp.pspart,"k","-aguote",true))
td(get_forms(pp.pspart,"k","-agú",true),1,2)
td(get_forms(pp.pspart,"k", _,true))
td(get_forms(pp.pspart,"k","-agún",true))
_tr()
th("pluperfect")
td(get_forms(pp.pspart,"k","-âlei",true))
td(get_forms(pp.pspart,"k","-âlen",true))
td(get_forms(pp.pspart,"k","-âleș",true),1,2)
td(get_forms(pp.pspart,"k","-âle",true))
td(get_forms(pp.pspart,"k","-âluos",true))
td(get_forms(pp.pspart,"k","-âluote",true))
td(get_forms(pp.pspart,"k","-âlú",true),1,3)
td(get_forms(pp.pspart,"k","-âlún",true))
_tr()
th("subjunctive",2,1)
th("perfect")
td(get_forms(pp.pspart,"k","-agai",true))
td(get_forms(pp.pspart,"k","-agá",true))
td(get_forms(pp.pspart,"k","-agaș",true),1,2)
td(get_forms(pp.pspart,"k","-aga",true))
td(get_forms(pp.pspart,"k","-agavuos",true))
td(get_forms(pp.pspart,"k","-agavuote",true))
td(get_forms(pp.pspart,"k","-agavú",true),1,3)
td(get_forms(pp.pspart,"k","-agavún",true))
_tr()
th("pluperfect")
td(get_forms(pp.pspart,"k","-âlai",true))
td(get_forms(pp.pspart,"k","-âlain",true))
td(get_forms(pp.pspart,"k","-âlaiș",true),1,2)
td(get_forms(pp.pspart,"k","-âlai",true))
td(get_forms(pp.pspart,"k","-âlavuos",true))
td(get_forms(pp.pspart,"k","-âlavuote",true))
td(get_forms(pp.pspart,"k","-âlavú",true),1,3)
td(get_forms(pp.pspart,"k","-âlavún",true))
_tr()
th("optative",2,1)
th("perfect")
td(get_forms(pp.pspart,"k","-agúe",true))
td(get_forms(pp.pspart,"k","-agova",true))
td(get_forms(pp.pspart,"k","-agúș",true),1,2)
td(get_forms(pp.pspart,"k","-agú",true))
td(get_forms(pp.pspart,"k","-agovuos",true))
td(get_forms(pp.pspart,"k","-agovuote",true))
td(get_forms(pp.pspart,"k","-agovú",true),1,3)
td(get_forms(pp.pspart,"k","-agovún",true))
_tr()
th("pluperfect")
td(get_forms(pp.pspart,"k","-âlevei",true))
td(get_forms(pp.pspart,"k","-âleven",true))
td(get_forms(pp.pspart,"k","-âleveș",true),1,2)
td(get_forms(pp.pspart,"k","-âleve",true))
td(get_forms(pp.pspart,"k","-âlevuos",true))
td(get_forms(pp.pspart,"k","-âlevuote",true))
td(get_forms(pp.pspart,"k","-âlevú",true),1,3)
td(get_forms(pp.pspart,"k","-âlevún",true))
_tr()
th("Negative compound forms of ''" .. cite .. "ruot'' (passive voice)",1,14)
_tr()
th("continuous",7,1)
th("infinitive",1,2)
td(get_forms(pp.passprespart,"uvivú","hjeat",true),1,12)
_tr()
th("indicative",2,1)
th("non-past")
td(get_forms(pp.passprespart,"uvivú","hjei",true))
td(get_forms(pp.passprespart,"uvivú","hjeà",true))
td(get_forms(pp.passprespart,"uvivú","hjeaș",true),1,2)
td(get_forms(pp.passprespart,"uvivú","hje",true))
td(get_forms(pp.passprespart,"uvivú","hjeuos",true))
td(get_forms(pp.passprespart,"uvivú","hjeuote",true))
td(get_forms(pp.passprespart,"uvivú","hjeú",true),1,3)
td(get_forms(pp.passprespart,"uvivú","hjeún",true))
_tr()
th("past")
td(get_forms(pp.passprespart,"uvivú","húei",true))
td(get_forms(pp.passprespart,"uvivú","húen",true))
td(get_forms(pp.passprespart,"uvivú","húeș",true),1,2)
td(get_forms(pp.passprespart,"uvivú","húe",true))
td(get_forms(pp.passprespart,"uvivú","hủos",true))
td(get_forms(pp.passprespart,"uvivú","hủote",true))
td(get_forms(pp.passprespart,"uvivú","hủ",true),1,3)
td(get_forms(pp.passprespart,"uvivú","hủn",true))
_tr()
th("subjunctive",2,1)
th("non-past")
td(get_forms(pp.passprespart,"uvivú","hjeai",true))
td(get_forms(pp.passprespart,"uvivú","hjeá",true))
td(get_forms(pp.passprespart,"uvivú","hjeàș",true),1,2)
td(get_forms(pp.passprespart,"uvivú","hjeà",true))
td(get_forms(pp.passprespart,"uvivú","hjeàvuos",true))
td(get_forms(pp.passprespart,"uvivú","hjeàvuote",true))
td(get_forms(pp.passprespart,"uvivú","hjeàvú",true),1,3)
td(get_forms(pp.passprespart,"uvivú","hjeàvún",true))
_tr()
th("past")
td(get_forms(pp.passprespart,"uvivú","húai",true))
td(get_forms(pp.passprespart,"uvivú","húain",true))
td(get_forms(pp.passprespart,"uvivú","húaiș",true),1,2)
td(get_forms(pp.passprespart,"uvivú","húai",true))
td(get_forms(pp.passprespart,"uvivú","húavuos",true))
td(get_forms(pp.passprespart,"uvivú","húavuote",true))
td(get_forms(pp.passprespart,"uvivú","húavú",true),1,3)
td(get_forms(pp.passprespart,"uvivú","húavún",true))
_tr()
th("optative",2,1)
th("non-past")
td(get_forms(pp.passprespart,"uvivú","hjeúe",true))
td(get_forms(pp.passprespart,"uvivú","hjeova",true))
td(get_forms(pp.passprespart,"uvivú","hjeúș",true),1,2)
td(get_forms(pp.passprespart,"uvivú","hjeú",true))
td(get_forms(pp.passprespart,"uvivú","hjeovuos",true))
td(get_forms(pp.passprespart,"uvivú","hjeovuote",true))
td(get_forms(pp.passprespart,"uvivú","hjeovú",true),1,3)
td(get_forms(pp.passprespart,"uvivú","hjeovún",true))
_tr()
th("past")
td(get_forms(pp.passprespart,"uvivú","húevei",true))
td(get_forms(pp.passprespart,"uvivú","húeven",true))
td(get_forms(pp.passprespart,"uvivú","húeveș",true),1,2)
td(get_forms(pp.passprespart,"uvivú","húeve",true))
td(get_forms(pp.passprespart,"uvivú","húevuos",true))
td(get_forms(pp.passprespart,"uvivú","húevuote",true))
td(get_forms(pp.passprespart,"uvivú","húevú",true),1,3)
td(get_forms(pp.passprespart,"uvivú","húevún",true))
_tr()
th("perfective",7,1)
th("infinitive",1,2)
td(get_forms(pp.pspart,"k","hjeat",true),1,12)
_tr()
th("indicative",2,1)
th("perfect")
td(get_forms(pp.pspart,"k","hjei",true))
td(get_forms(pp.pspart,"k","hjeà",true))
td(get_forms(pp.pspart,"k","hjeaș",true),1,2)
td(get_forms(pp.pspart,"k", "hje",true))
td(get_forms(pp.pspart,"k","hjeuos",true))
td(get_forms(pp.pspart,"k","hjeuote",true))
td(get_forms(pp.pspart,"k","hjeú",true),1,3)
td(get_forms(pp.pspart,"k","hjeún",true))
_tr()
th("pluperfect")
td(get_forms(pp.pspart,"k","-úei",true))
td(get_forms(pp.pspart,"k","-úen",true))
td(get_forms(pp.pspart,"k","-úeș",true),1,2)
td(get_forms(pp.pspart,"k","-úe",true))
td(get_forms(pp.pspart,"k","-ủos",true))
td(get_forms(pp.pspart,"k","-ủote",true))
td(get_forms(pp.pspart,"k","-ủ",true),1,3)
td(get_forms(pp.pspart,"k","-ủn",true))
_tr()
th("subjunctive",2,1)
th("perfect")
td(get_forms(pp.pspart,"k","hjeai",true))
td(get_forms(pp.pspart,"k","hjeá",true))
td(get_forms(pp.pspart,"k","hjeàș",true),1,2)
td(get_forms(pp.pspart,"k","hjeà",true))
td(get_forms(pp.pspart,"k","hjeàvuos",true))
td(get_forms(pp.pspart,"k","hjeàvuote",true))
td(get_forms(pp.pspart,"k","hjeàvú",true),1,3)
td(get_forms(pp.pspart,"k","hjeàvún",true))
_tr()
th("pluperfect")
td(get_forms(pp.pspart,"k","-úai",true))
td(get_forms(pp.pspart,"k","-úain",true))
td(get_forms(pp.pspart,"k","-úaiș",true),1,2)
td(get_forms(pp.pspart,"k","-úai",true))
td(get_forms(pp.pspart,"k","-úavuos",true))
td(get_forms(pp.pspart,"k","-úavuote",true))
td(get_forms(pp.pspart,"k","-úavú",true),1,3)
td(get_forms(pp.pspart,"k","-úavún",true))
_tr()
th("optative",2,1)
th("perfect")
td(get_forms(pp.pspart,"k","hjeúe",true))
td(get_forms(pp.pspart,"k","hjeova",true))
td(get_forms(pp.pspart,"k","hjeúș",true),1,2)
td(get_forms(pp.pspart,"k","hjeú",true))
td(get_forms(pp.pspart,"k","hjeovuos",true))
td(get_forms(pp.pspart,"k","hjeovuote",true))
td(get_forms(pp.pspart,"k","hjeovú",true),1,3)
td(get_forms(pp.pspart,"k","hjeovún",true))
_tr()
th("pluperfect")
td(get_forms(pp.pspart,"k","-úevei",true))
td(get_forms(pp.pspart,"k","-úeven",true))
td(get_forms(pp.pspart,"k","-úeveș",true),1,2)
td(get_forms(pp.pspart,"k","-úeve",true))
td(get_forms(pp.pspart,"k","-úevuos",true))
td(get_forms(pp.pspart,"k","-úevuote",true))
td(get_forms(pp.pspart,"k","-úevú",true),1,3)
td(get_forms(pp.pspart,"k","-úevún",true))
tr_()
add("</table>")
end
add("</small>")
if irregular and not args['entry'] then add("[[Category:Radestrian irregular verbs]]") end
local function check_stems()
local endings = {
['1s'] = "",
['2s'] = "úș",
['3s'] = "",
['a'] = "ș",
['apst'] = "vú",
['depers'] = "",
['epst'] = "ṣ",
['imp'] = "",
['inf'] = "",
['passinf'] = "uot",
['passprespart'] = "uvivú",
['pl'] = "ú",
['prespart'] = "vú",
['pspart'] = "l/-k",
['pst'] = "-",
['r'] = "úș",
['rpst'] = "uveș",
['vnoun'] = "",
}
local review = {}
for i, j in pairs(pp) do
local nonforms = {["vstem"] = true, ["t"] = true, ["pre"] = true}
if not ((table_type == "intr" or table_type == "impers") and i == "rpst") and not nonforms[i] and not ((i == "apst" or i == "rpst" or i == "pl" or i == "vnoun" or i == "1s") and table_type == "impers") then
if type(j) == "string" then
table.insert(review, "* <code>" .. string.upper(i) .. "</code>: '''" .. j .. "'''" .. endings[i])
elseif type(j) == "table" then
for k, l in ipairs(j) do
local temp = "* <code>" .. string.upper(i) .. "[" .. k .. "]</code>: '''" .. l.word .. "'''" .. endings[i]
if l.note then temp = temp .. " (" .. l.note .. ")" end
table.insert(review, temp)
end
end
end
end
if pp.pl == nil and table_type ~= "impers" then
if type(pp['2s']) == "table" then
for i,j in ipairs(pp['2s']) do
local temp = "* <code>PL[" .. i .. "]</code>: '''" .. j['word'] .. "'''" .. endings['pl'] .. " (<code>2S[" .. i .. "]</code>" .. endings['pl'] .. ")"
if j['note'] then temp = temp .. " (" .. j['note'] .. ")" end
table.insert(review, temp)
end
elseif type(pp['2s']) == "string" then
table.insert(review, "* <code>PL</code>: '''" .. pp['2s'] .. "'''" .. endings['pl'] .. " (<code>2S</code>" .. endings['pl'] .. ")")
end
end
if pp.depers == nil then
if type(pp['2s']) == "table" then
for i,j in ipairs(pp['2s']) do
local temp = "* <code>DEPERS[" .. i .. "]</code>: '''" .. mw.ustring.gsub(j['word'], "nv$", "nu") .. "''' (<code>2S[" .. i .. "]</code>)"
if j['note'] then temp = temp .. " (" .. j['note'] .. ")" end
table.insert(review, temp)
end
elseif type(pp['2s']) == "string" then
table.insert(review, "* <code>DEPERS</code>: '''" .. mw.ustring.gsub(pp['2s'], "nv$", "nu") .. "''' (<code>2S</code>)")
end
end
if pp.imp == nil and table_type ~= "impers" then
if type(pp.a) == "table" then
if pp.vstem then
for i,j in ipairs(pp.a) do
local temp = "* <code>IMP[" .. i .. "]</code>: '''" .. mw.ustring.gsub(j['word'], "va$", "ja") .. "'''"
if j['note'] then temp = temp .. " (" .. j['note'] .. ")" end
table.insert(review, temp)
end
else
for i,j in ipairs(pp.a) do
local temp = "* <code>IMP[" .. i .. "]</code> = '''" .. j['word'] .. "''' (<code>A[" .. i .. "]</code>)"
if j['note'] then temp = temp .. " (" .. j['note'] .. ")" end
table.insert(review, temp)
end
end
elseif type(pp.a) == "string" then
if pp.vstem then
table.insert(review, "* <code>IMP</code>: '''" .. mw.ustring.gsub(pp.a, "va$", "ja") .. "'''")
else
table.insert(review, "* <code>IMP</code>: '''" .. pp.a .. "''' (<code>A</code>)")
end
end
end
if pp.epst == nil then
if type(pp.pst) == "table" then
for i,j in ipairs(pp.pst) do
local temp = "* <code>EPST[" .. i .. "]</code>: '''" .. j['word'] .. "e'''" .. endings['epst']
if j['note'] then temp = temp .. " (" .. j['note'] .. ")" end
table.insert(review, temp)
end
elseif type(pp.pst) == "string" then
table.insert(review, "* <code>EPST</code>: '''" .. pp.pst .. "e'''" .. endings['epst'])
end
end
for i, term in ipairs(review) do
review[i] = mw.ustring.gsub(term, "(%'%'%'%S*)%*(%S*)", "%1%2" .. irregular_icon)
end
table.sort(review, function(a,b) return a < b end)
if args[3] then
mw.addWarning("<div class=\"noprint maintenance-box maintenance-box-red\" style=\"background:#FFE7DD; width:90%; margin: 0.75em auto; border:1px dashed #884444; padding: 0.25em;\"><table><tr><td rowspan=\"2\">[[File:Nuvola_apps_important_yellow.svg|48px]]</td><th style=\"text-align: left;\">Please review the following verb stems before publishing</th></tr><tr><td>" .. string.char(10) .. table.concat(review, string.char(10)) .. "</td></tr></table></div>")
end
end
check_stems()
return table.concat(format_table, string.char(10))
end
function export.enclisis(frame)
local m_government = require('Module:government')
local args = getArgs(frame)
local prep = args['base'] or args['entry'] or mw.title.getCurrentTitle().text
local cite = args['entry'] or mw.title.getCurrentTitle().text
local is_para = {entry = true, nocap = true}
local gen = false
local gen_prons = {
{"vesk", "rask", "vâsk", "vask", "dzmes", "dzatus", "sjás", "vjes", "vais", "dzisk", "dzjes"},
{"bjásk", "bisk", "kú", "okú", "byesk", "busk"},
{"bjais", "bjes", "tes", "otes", "baus", "bøs"},
{"vaosk", "utú"}
}
local dat = false
local dat_prons = {
{"ven", "ran", "vân", "van", "dzmen", "dzatun", "sján", "vjen", "vain", "dzin", "dzjen"},
{"bjá", "bin", "ka", "oka", "bá", "bun"},
{"bjain", "bjen", "ten", "oten", "baun", "bøn"},
{"vá", "uva"}
}
local acc = false
local acc_prons = {
{"vest", "rast", "vâst", "vast", "dzmed", "dzatud", "sjád", "vjed", "vaid", "dzist", "dzjed"},
{"bjást", "bist", "kad", "okad", "byest", "bust"},
{"bjaid", "bjed", "ted", "oted", "baud", "bød"},
{"vaost", "utad"}
}
local ins = false
local ins_prons = {
{"vebúr", "rábúr", "vâbúr", "vabúr", "dzmeríe", "dzatoríe", "sjáríe", "víríe", "vairíe", "dzibúr", "dzíríe"},
{"bjábúr", "bibúr", "kaor", "okúr", "býbúr", "butúr"},
{"bjairíe", "bjeríe", "teríe", "oteríe", "bauríe", "børíe"},
{"vaobúr", "ubúr"}
}
local function governs(case)
return m_government.show{"&" .. case}
end
if args[1] == nil then error("There are no cases specified") end
local counter = 1
while args[counter] do
if args[counter] == "gen" then gen = true
elseif args[counter] == "dat" then dat = true
elseif args[counter] == "acc" then acc = true
elseif args[counter] == "ins" then ins = true
end
counter = counter + 1
end
local regex_list = {}
for i, _ in pairs(args) do
if is_para[i] ~= true then table.insert(regex_list, i) end
end
table.sort(regex_list, function(a, b) return string.reverse(a) > string.reverse(b) end)
local function process(pronoun)
pronoun = pronoun .. prep
for _, regex in ipairs(regex_list) do
if mw.ustring.match(pronoun, regex .. prep .. "$") and not (mw.ustring.match(regex, "^u") and mw.ustring.match(pronoun, "a" .. regex .. prep .. "$")) then
pronoun = mw.ustring.gsub(pronoun, regex .. prep .. "$", args[regex])
break
end
end
return pronoun
end
if not args['nocap'] then add("* The enclitic form is used in combination with weak pronominal complements:") end
add("<small>")
add("<table class=\"blacklinks mw-collapsible mw-collapsed wikitable inflection table\" style=\"text-align: center\" width=100%>")
tr()
th("Combined pronominal forms of ''" .. cite .. "'' ", 1, 12)
_tr()
th("case", 5)
th("personal", 1, 11)
_tr()
th("<small>SG</small>", 1, 4)
th("<small>PL</small>", 1, 5)
th("<small>REFL</small>", 3)
th("<small>RECP</small>", 3)
_tr()
th("<small>1</small>", 2)
th("<small>2</small>", 2)
th("<small>3</small>", 1, 2)
th("<small>1</small>", 1, 2)
th("<small>2</small>", 2)
th("<small>3</small>", 1, 2)
_tr()
th("<small>ANIM</small>")
th("<small>INAN</small>")
th("<small>INCL</small>")
th("<small>EXCL</small>")
th("<small>ANIM</small>")
th("<small>INAN</small>")
_tr()
th("<small>" .. rad_link("ú") .. "</small>")
th("<small>" .. rad_link("re") .. "</small>")
th("<small>" .. rad_link("vâs") .. "</small>")
th("<small>" .. rad_link("vara") .. "</small>")
th("<small>" .. rad_link("dzun") .. "</small>")
th("<small>" .. rad_link("dzate") .. "</small>")
th("<small>" .. rad_link("sjáște") .. "</small>")
th("<small>" .. rad_link("vír") .. "</small>")
th("<small>" .. rad_link("vara") .. "</small>")
th("<small>" .. rad_link("dzist") .. "</small>")
th("<small>" .. rad_link("dzjed") .. "</small>")
local function list_pers(case, name, set)
if case then
_tr()
th(governs(name))
for _, j in ipairs(set[1]) do td(rad_link_IPA(process(j))) end
end
end
list_pers(gen, "gen", gen_prons)
list_pers(dat, "dat", dat_prons)
list_pers(acc, "acc", acc_prons)
list_pers(ins, "ins", ins_prons)
-- non-personal pronouns
_tr()
th("case", 4)
th("number", 4)
th("interrogative-<br>existential", 1, 2)
th("demonstrative", 1, 2)
th("quantifier", 1, 6)
_tr()
th("<small>ANIM</small>", 2)
th("<small>INAN</small>", 2)
th("<small>PROX</small>", 2)
th("<small>DIST</small>", 2)
th("indefinite", 1, 2)
th("general indefinite", 1, 2)
th("collective", 1, 2)
_tr()
th("<small>ANIM</small>")
th("<small>INAN</small>")
th("<small>ANIM</small>")
th("<small>INAN</small>")
th("<small>ANIM</small>")
th("<small>INAN</small>")
_tr()
th("<small>" .. rad_link("bjaș") .. "</small>")
th("<small>" .. rad_link("bjar") .. "</small>")
th("<small>" .. rad_link("kjes") .. "</small>")
th("<small>" .. rad_link("okjes") .. "</small>")
th("<small>" .. rad_link("baus") .. "</small>")
th("<small>" .. rad_link("bvar") .. "</small>")
th("<small>" .. rad_link("bjaș-á") .. "</small>")
th("<small>" .. rad_link("bjar-á") .. "</small>")
th("<small>" .. rad_link("vaus") .. "</small>")
th("<small>" .. rad_link("var") .. "</small>")
local function list_nonpers(case, name, set)
if case then
_tr()
th(governs(name), 2)
th("<small>SG</small>")
for _, j in ipairs(set[2]) do
td(rad_link_IPA(process(j)))
end
local q_anim, q_inan = process(set[2][1]), process(set[2][2])
if mw.ustring.match(q_anim, "[" .. C .. "]$") then td(rad_link_IPA(q_anim .. "-á")) else td(rad_link_IPA(q_anim .. "-vá")) end
if mw.ustring.match(q_inan, "[" .. C .. "]$") then td(rad_link_IPA(q_inan .. "-á")) else td(rad_link_IPA(q_inan .. "-vá")) end
for _, j in ipairs(set[4]) do td(rad_link_IPA(process(j))) end
_tr()
th("<small>PL</small>")
for _, j in ipairs(set[3]) do td(rad_link_IPA(process(j))) end
q_anim, q_inan = process(set[3][1]), process(set[3][2])
if mw.ustring.match(q_anim, "[" .. C .. "]$") then td(rad_link_IPA(q_anim .. "-á")) else td(rad_link_IPA(q_anim .. "-vá")) end
if mw.ustring.match(q_inan, "[" .. C .. "]$") then td(rad_link_IPA(q_inan .. "-á")) else td(rad_link_IPA(q_inan .. "-vá")) end
th("", 1, 2)
end
end
list_nonpers(gen, "gen", gen_prons)
list_nonpers(dat, "dat", dat_prons)
list_nonpers(acc, "acc", acc_prons)
list_nonpers(ins, "ins", ins_prons)
tr_()
add("</table>")
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",["pl"]="di","diș","deti","dev",["t"]="tr",["altnonfin"]="hellu",["altnonfin_note"]="uwu",["altnonfin2"]="hella",["altnonfin2_note"]="owo",["pre"]="fjø", "der", "detr"}})
]]--