Module:got-verb
Appearance
- The following documentation is located at Module:got-verb/documentation. [edit] Categories were auto-generated by Module:module categorization. [edit]
- Useful links: subpage list • links • transclusions • testcases • sandbox
local m_utilities = require("Module:utilities")
local m_links = require("Module:links")
local m_translit = require("Module:Goth-translit")
local lang = require("Module:languages").getByCode("got")
local export = {}
local function postprocess(args, data)
for key, form in pairs(data.forms) do
-- Do not show passive forms for verbs that don't have them
if args["nopasv"] and key:find("pasv") then
form = nil
end
data.forms[key] = form
end
-- Check if the lemma form matches the page name
if data.forms["inf"] and (lang:makeEntryName(m_translit.tr_reverse(data.forms["inf"][1]))) ~= mw.title.getCurrentTitle().text then
table.insert(data.categories, lang:getCanonicalName() .. " entries with inflection not matching pagename")
end
end
local function make_Latn(args, names)
for _, name in ipairs(names) do
if args[name] then
if type(args[name]) == "table" then
for i, _ in ipairs(args[name]) do
args[name][i] = m_translit.tr(args[name][i])
end
else
args[name] = m_translit.tr(args[name])
end
end
end
end
-- Inflection functions
export["st"] = function(frame)
local params = {
[1] = {required = true, default = "{{{1}}}"},
[2] = {required = true, default = "{{{2}}}"},
[3] = {required = true, default = "{{{3}}}"},
[4] = {required = true, default = "{{{4}}}"},
["imp2sg"] = {},
["past2sg"] = {},
["class"] = {},
["irr"] = {type = "boolean"},
["j"] = {},
["nopasv"] = {type = "boolean"},
}
local args = require("Module:parameters").process(frame:getParent().args, params)
make_Latn(args, {1, 2, 3, 4, "imp2sg", "past2sg"})
if args["j"] and not (args["j"] == "ji" or args["j"] == "ei") then
error("Invalid value for parameter j=, must be \"ji\", \"ei\" or empty.")
end
local data = {
forms = {},
info = (args["class"] and "class " .. args["class"] .. " " or "") .. "strong" .. (args["j"] and ", j-present" or "") .. (args["irr"] and ", irregular" or ""),
categories = {lang:getCanonicalName() .. " " .. (args["class"] and "class " .. args["class"] .. " " or "") .. "strong " .. (args["j"] and "j-present " or "") .. "verbs"}
}
if args["irr"] then
table.insert(data.categories, lang:getCanonicalName() .. " irregular verbs")
end
-- Present indicative
data.forms["pres_indc_1sg"] = {args[1] .. (args["j"] and "j" or "") .. "a"}
data.forms["pres_indc_2sg"] = {args[1] .. (args["j"] or "i") .. "s"}
data.forms["pres_indc_3sg"] = {args[1] .. (args["j"] or "i") .. "þ"}
data.forms["pres_indc_1du"] = {args[1] .. (args["j"] and "j" or "") .. "ōs"}
data.forms["pres_indc_2du"] = {args[1] .. (args["j"] and "j" or "") .. "ats"}
data.forms["pres_indc_1pl"] = {args[1] .. (args["j"] and "j" or "") .. "am"}
data.forms["pres_indc_2pl"] = {args[1] .. (args["j"] or "i") .. "þ"}
data.forms["pres_indc_3pl"] = {args[1] .. (args["j"] and "j" or "") .. "and"}
-- Present subjunctive
data.forms["pres_subj_1sg"] = {args[1] .. (args["j"] and "j" or "") .. "au"}
data.forms["pres_subj_2sg"] = {args[1] .. (args["j"] and "j" or "") .. "ais"}
data.forms["pres_subj_3sg"] = {args[1] .. (args["j"] and "j" or "") .. "ai"}
data.forms["pres_subj_1du"] = {args[1] .. (args["j"] and "j" or "") .. "aiwa"}
data.forms["pres_subj_2du"] = {args[1] .. (args["j"] and "j" or "") .. "aits"}
data.forms["pres_subj_1pl"] = {args[1] .. (args["j"] and "j" or "") .. "aima"}
data.forms["pres_subj_2pl"] = {args[1] .. (args["j"] and "j" or "") .. "aiþ"}
data.forms["pres_subj_3pl"] = {args[1] .. (args["j"] and "j" or "") .. "aina"}
-- Imperative
data.forms["impr_2sg"] = {args["imp2sg"] or args[1] .. (args["j"] and "ei" or "")}
data.forms["impr_3sg"] = {args[1] .. (args["j"] and "j" or "") .. "adau"}
data.forms["impr_2du"] = {args[1] .. (args["j"] and "j" or "") .. "ats"}
data.forms["impr_2pl"] = {args[1] .. (args["j"] or "i") .. "þ"}
data.forms["impr_3pl"] = {args[1] .. (args["j"] and "j" or "") .. "andau"}
-- Passive indicative
data.forms["pasv_indc_1sg"] = {args[1] .. (args["j"] and "j" or "") .. "ada"}
data.forms["pasv_indc_2sg"] = {args[1] .. (args["j"] and "j" or "") .. "aza"}
data.forms["pasv_indc_3sg"] = {args[1] .. (args["j"] and "j" or "") .. "ada"}
data.forms["pasv_indc_1pl"] = {args[1] .. (args["j"] and "j" or "") .. "anda"}
data.forms["pasv_indc_2pl"] = {args[1] .. (args["j"] and "j" or "") .. "anda"}
data.forms["pasv_indc_3pl"] = {args[1] .. (args["j"] and "j" or "") .. "anda"}
-- Passive subjunctive
data.forms["pasv_subj_1sg"] = {args[1] .. (args["j"] and "j" or "") .. "aidau"}
data.forms["pasv_subj_2sg"] = {args[1] .. (args["j"] and "j" or "") .. "aizau"}
data.forms["pasv_subj_3sg"] = {args[1] .. (args["j"] and "j" or "") .. "aidau"}
data.forms["pasv_subj_1pl"] = {args[1] .. (args["j"] and "j" or "") .. "aindau"}
data.forms["pasv_subj_2pl"] = {args[1] .. (args["j"] and "j" or "") .. "aindau"}
data.forms["pasv_subj_3pl"] = {args[1] .. (args["j"] and "j" or "") .. "aindau"}
-- Past indicative
data.forms["past_indc_1sg"] = {args[2]}
data.forms["past_indc_2sg"] = {args["past2sg"] or args[2] .. "t"}
data.forms["past_indc_3sg"] = {args[2]}
data.forms["past_indc_1du"] = {args[3] .. "u"}
data.forms["past_indc_2du"] = {args[3] .. "uts"}
data.forms["past_indc_1pl"] = {args[3] .. "um"}
data.forms["past_indc_2pl"] = {args[3] .. "uþ"}
data.forms["past_indc_3pl"] = {args[3] .. "un"}
-- Past subjunctive
data.forms["past_subj_1sg"] = {args[3] .. "jau"}
data.forms["past_subj_2sg"] = {args[3] .. "eis"}
data.forms["past_subj_3sg"] = {args[3] .. "i"}
data.forms["past_subj_1du"] = {args[3] .. "eiwa"}
data.forms["past_subj_2du"] = {args[3] .. "eits"}
data.forms["past_subj_1pl"] = {args[3] .. "eima"}
data.forms["past_subj_2pl"] = {args[3] .. "eiþ"}
data.forms["past_subj_3pl"] = {args[3] .. "eina"}
-- Non-finite forms
data.forms["inf"] = {args[1] .. (args["j"] and "j" or "") .. "an"}
data.forms["pres_ptcp"] = {args[1] .. (args["j"] and "j" or "") .. "ands"}
data.forms["past_ptcp"] = {args[4] .. "ans"}
postprocess(args, data)
return make_table(data) .. m_utilities.format_categories(data.categories, lang)
end
export["wk1"] = function(frame)
local params = {
[1] = {required = true, default = "{{{1}}}"},
[2] = {},
["j"] = {required = true, default = "ji"},
["nopasv"] = {type = "boolean"},
}
local args = require("Module:parameters").process(frame:getParent().args, params)
make_Latn(args, {1, 2})
if not (args["j"] == "ji" or args["j"] == "ei") then
error("Invalid value for parameter j=, must be \"ji\" or \"ei\".")
end
local data = {forms = {}, info = "class 1 weak", categories = {lang:getCanonicalName() .. " class 1 weak verbs"}}
-- Present indicative
data.forms["pres_indc_1sg"] = {args[1] .. "ja"}
data.forms["pres_indc_2sg"] = {args[1] .. args["j"] .. "s"}
data.forms["pres_indc_3sg"] = {args[1] .. args["j"] .. "þ"}
data.forms["pres_indc_1du"] = {args[1] .. "jōs"}
data.forms["pres_indc_2du"] = {args[1] .. "jats"}
data.forms["pres_indc_1pl"] = {args[1] .. "jam"}
data.forms["pres_indc_2pl"] = {args[1] .. args["j"] .. "þ"}
data.forms["pres_indc_3pl"] = {args[1] .. "jand"}
-- Present subjunctive
data.forms["pres_subj_1sg"] = {args[1] .. "jau"}
data.forms["pres_subj_2sg"] = {args[1] .. "jais"}
data.forms["pres_subj_3sg"] = {args[1] .. "jai"}
data.forms["pres_subj_1du"] = {args[1] .. "jaiwa"}
data.forms["pres_subj_2du"] = {args[1] .. "jaits"}
data.forms["pres_subj_1pl"] = {args[1] .. "jaima"}
data.forms["pres_subj_2pl"] = {args[1] .. "jaiþ"}
data.forms["pres_subj_3pl"] = {args[1] .. "jaina"}
-- Imperative
data.forms["impr_2sg"] = {(args[2] or args[1]) .. "ei"}
data.forms["impr_3sg"] = {args[1] .. "jadau"}
data.forms["impr_2du"] = {args[1] .. "jats"}
data.forms["impr_2pl"] = {args[1] .. args["j"] .. "þ"}
data.forms["impr_3pl"] = {args[1] .. "jandau"}
-- Passive indicative
data.forms["pasv_indc_1sg"] = {args[1] .. "jada"}
data.forms["pasv_indc_2sg"] = {args[1] .. "jaza"}
data.forms["pasv_indc_3sg"] = {args[1] .. "jada"}
data.forms["pasv_indc_1pl"] = {args[1] .. "janda"}
data.forms["pasv_indc_2pl"] = {args[1] .. "janda"}
data.forms["pasv_indc_3pl"] = {args[1] .. "janda"}
-- Passive subjunctive
data.forms["pasv_subj_1sg"] = {args[1] .. "jaidau"}
data.forms["pasv_subj_2sg"] = {args[1] .. "jaizau"}
data.forms["pasv_subj_3sg"] = {args[1] .. "jaidau"}
data.forms["pasv_subj_1pl"] = {args[1] .. "jaindau"}
data.forms["pasv_subj_2pl"] = {args[1] .. "jaindau"}
data.forms["pasv_subj_3pl"] = {args[1] .. "jaindau"}
-- Past indicative
data.forms["past_indc_1sg"] = {(args[2] or args[1]) .. "ida"}
data.forms["past_indc_2sg"] = {(args[2] or args[1]) .. "idēs"}
data.forms["past_indc_3sg"] = {(args[2] or args[1]) .. "ida"}
data.forms["past_indc_1du"] = {(args[2] or args[1]) .. "idēdu"}
data.forms["past_indc_2du"] = {(args[2] or args[1]) .. "idēduts"}
data.forms["past_indc_1pl"] = {(args[2] or args[1]) .. "idēdum"}
data.forms["past_indc_2pl"] = {(args[2] or args[1]) .. "idēduþ"}
data.forms["past_indc_3pl"] = {(args[2] or args[1]) .. "idēdun"}
-- Past subjunctive
data.forms["past_subj_1sg"] = {(args[2] or args[1]) .. "idēdjau"}
data.forms["past_subj_2sg"] = {(args[2] or args[1]) .. "idēdeis"}
data.forms["past_subj_3sg"] = {(args[2] or args[1]) .. "idēdi"}
data.forms["past_subj_1du"] = {(args[2] or args[1]) .. "idēdeiwa"}
data.forms["past_subj_2du"] = {(args[2] or args[1]) .. "idēdeits"}
data.forms["past_subj_1pl"] = {(args[2] or args[1]) .. "idēdeima"}
data.forms["past_subj_2pl"] = {(args[2] or args[1]) .. "idēdeiþ"}
data.forms["past_subj_3pl"] = {(args[2] or args[1]) .. "idēdeina"}
-- Non-finite forms
data.forms["inf"] = {args[1] .. "jan"}
data.forms["pres_ptcp"] = {args[1] .. "jands"}
data.forms["past_ptcp"] = {(args[2] or args[1]) .. "iþs"}
postprocess(args, data)
return make_table(data) .. m_utilities.format_categories(data.categories, lang)
end
export["wk1ir"] = function(frame)
local params = {
[1] = {required = true, default = "{{{1}}}"},
[2] = {required = true, default = "{{{2}}}"},
["j"] = {required = true, default = "ji"},
["nopasv"] = {type = "boolean"},
["pastpart"] = {}
}
local args = require("Module:parameters").process(frame:getParent().args, params)
make_Latn(args, {1, 2})
if not (args["j"] == "ji" or args["j"] == "ei") then
error("Invalid value for parameter j=, must be \"ji\" or \"ei\".")
end
local data = {forms = {}, info = "class 1 weak irregular", categories = {lang:getCanonicalName() .. " class 1 weak irregular verbs"}}
-- Present indicative
data.forms["pres_indc_1sg"] = {args[1] .. "ja"}
data.forms["pres_indc_2sg"] = {args[1] .. args["j"] .. "s"}
data.forms["pres_indc_3sg"] = {args[1] .. args["j"] .. "þ"}
data.forms["pres_indc_1du"] = {args[1] .. "jōs"}
data.forms["pres_indc_2du"] = {args[1] .. "jats"}
data.forms["pres_indc_1pl"] = {args[1] .. "jam"}
data.forms["pres_indc_2pl"] = {args[1] .. args["j"] .. "þ"}
data.forms["pres_indc_3pl"] = {args[1] .. "jand"}
-- Present subjunctive
data.forms["pres_subj_1sg"] = {args[1] .. "jau"}
data.forms["pres_subj_2sg"] = {args[1] .. "jais"}
data.forms["pres_subj_3sg"] = {args[1] .. "jai"}
data.forms["pres_subj_1du"] = {args[1] .. "jaiwa"}
data.forms["pres_subj_2du"] = {args[1] .. "jaits"}
data.forms["pres_subj_1pl"] = {args[1] .. "jaima"}
data.forms["pres_subj_2pl"] = {args[1] .. "jaiþ"}
data.forms["pres_subj_3pl"] = {args[1] .. "jaina"}
-- Imperative
data.forms["impr_2sg"] = {args[1] .. "ei"}
data.forms["impr_3sg"] = {args[1] .. "jadau"}
data.forms["impr_2du"] = {args[1] .. "jats"}
data.forms["impr_2pl"] = {args[1] .. args["j"] .. "þ"}
data.forms["impr_3pl"] = {args[1] .. "jandau"}
-- Passive indicative
data.forms["pasv_indc_1sg"] = {args[1] .. "jada"}
data.forms["pasv_indc_2sg"] = {args[1] .. "jaza"}
data.forms["pasv_indc_3sg"] = {args[1] .. "jada"}
data.forms["pasv_indc_1pl"] = {args[1] .. "janda"}
data.forms["pasv_indc_2pl"] = {args[1] .. "janda"}
data.forms["pasv_indc_3pl"] = {args[1] .. "janda"}
-- Passive subjunctive
data.forms["pasv_subj_1sg"] = {args[1] .. "jaidau"}
data.forms["pasv_subj_2sg"] = {args[1] .. "jaizau"}
data.forms["pasv_subj_3sg"] = {args[1] .. "jaidau"}
data.forms["pasv_subj_1pl"] = {args[1] .. "jaindau"}
data.forms["pasv_subj_2pl"] = {args[1] .. "jaindau"}
data.forms["pasv_subj_3pl"] = {args[1] .. "jaindau"}
-- Past indicative
data.forms["past_indc_1sg"] = {args[2] .. "a"}
data.forms["past_indc_2sg"] = {args[2] .. "ēs"}
data.forms["past_indc_3sg"] = {args[2] .. "a"}
data.forms["past_indc_1du"] = {args[2] .. "ēdu"}
data.forms["past_indc_2du"] = {args[2] .. "ēduts"}
data.forms["past_indc_1pl"] = {args[2] .. "ēdum"}
data.forms["past_indc_2pl"] = {args[2] .. "ēduþ"}
data.forms["past_indc_3pl"] = {args[2] .. "ēdun"}
-- Past subjunctive
data.forms["past_subj_1sg"] = {args[2] .. "ēdjau"}
data.forms["past_subj_2sg"] = {args[2] .. "ēdeis"}
data.forms["past_subj_3sg"] = {args[2] .. "ēdi"}
data.forms["past_subj_1du"] = {args[2] .. "ēdeiwa"}
data.forms["past_subj_2du"] = {args[2] .. "ēdeits"}
data.forms["past_subj_1pl"] = {args[2] .. "ēdeima"}
data.forms["past_subj_2pl"] = {args[2] .. "ēdeiþ"}
data.forms["past_subj_3pl"] = {args[2] .. "ēdeina"}
-- Non-finite forms
data.forms["inf"] = {args[1] .. "jan"}
data.forms["pres_ptcp"] = {args[1] .. "jands"}
data.forms["past_ptcp"] = {args["pastpart"] or args[2] .. "s"}
postprocess(args, data)
return make_table(data) .. m_utilities.format_categories(data.categories, lang)
end
export["wk2"] = function(frame)
local params = {
[1] = {required = true, default = "{{{1}}}"},
["nopasv"] = {type = "boolean"},
}
local args = require("Module:parameters").process(frame:getParent().args, params)
make_Latn(args, {1})
local data = {forms = {}, info = "class 2 weak", categories = {lang:getCanonicalName() .. " class 2 weak verbs"}}
-- Present indicative
data.forms["pres_indc_1sg"] = {args[1] .. "ō"}
data.forms["pres_indc_2sg"] = {args[1] .. "ōs"}
data.forms["pres_indc_3sg"] = {args[1] .. "ōþ"}
data.forms["pres_indc_1du"] = {args[1] .. "ōs"}
data.forms["pres_indc_2du"] = {args[1] .. "ōts"}
data.forms["pres_indc_1pl"] = {args[1] .. "ōm"}
data.forms["pres_indc_2pl"] = {args[1] .. "ōþ"}
data.forms["pres_indc_3pl"] = {args[1] .. "ōnd"}
-- Present subjunctive
data.forms["pres_subj_1sg"] = {args[1] .. "ō"}
data.forms["pres_subj_2sg"] = {args[1] .. "ōs"}
data.forms["pres_subj_3sg"] = {args[1] .. "ō"}
data.forms["pres_subj_1du"] = {args[1] .. "ōwa"}
data.forms["pres_subj_2du"] = {args[1] .. "ōts"}
data.forms["pres_subj_1pl"] = {args[1] .. "ōma"}
data.forms["pres_subj_2pl"] = {args[1] .. "ōþ"}
data.forms["pres_subj_3pl"] = {args[1] .. "ōna"}
-- Imperative
data.forms["impr_2sg"] = {args[1] .. "ō"}
data.forms["impr_3sg"] = {args[1] .. "ōdau"}
data.forms["impr_2du"] = {args[1] .. "ōts"}
data.forms["impr_2pl"] = {args[1] .. "ōþ"}
data.forms["impr_3pl"] = {args[1] .. "ōndau"}
-- Passive indicative
data.forms["pasv_indc_1sg"] = {args[1] .. "ōda"}
data.forms["pasv_indc_2sg"] = {args[1] .. "ōza"}
data.forms["pasv_indc_3sg"] = {args[1] .. "ōda"}
data.forms["pasv_indc_1pl"] = {args[1] .. "ōnda"}
data.forms["pasv_indc_2pl"] = {args[1] .. "ōnda"}
data.forms["pasv_indc_3pl"] = {args[1] .. "ōnda"}
-- Passive subjunctive
data.forms["pasv_subj_1sg"] = {args[1] .. "ōdau"}
data.forms["pasv_subj_2sg"] = {args[1] .. "ōzau"}
data.forms["pasv_subj_3sg"] = {args[1] .. "ōdau"}
data.forms["pasv_subj_1pl"] = {args[1] .. "ōndau"}
data.forms["pasv_subj_2pl"] = {args[1] .. "ōndau"}
data.forms["pasv_subj_3pl"] = {args[1] .. "ōndau"}
-- Past indicative
data.forms["past_indc_1sg"] = {args[1] .. "ōda"}
data.forms["past_indc_2sg"] = {args[1] .. "ōdēs"}
data.forms["past_indc_3sg"] = {args[1] .. "ōda"}
data.forms["past_indc_1du"] = {args[1] .. "ōdēdu"}
data.forms["past_indc_2du"] = {args[1] .. "ōdēduts"}
data.forms["past_indc_1pl"] = {args[1] .. "ōdēdum"}
data.forms["past_indc_2pl"] = {args[1] .. "ōdēduþ"}
data.forms["past_indc_3pl"] = {args[1] .. "ōdēdun"}
-- Past subjunctive
data.forms["past_subj_1sg"] = {args[1] .. "ōdēdjau"}
data.forms["past_subj_2sg"] = {args[1] .. "ōdēdeis"}
data.forms["past_subj_3sg"] = {args[1] .. "ōdēdi"}
data.forms["past_subj_1du"] = {args[1] .. "ōdēdeiwa"}
data.forms["past_subj_2du"] = {args[1] .. "ōdēdeits"}
data.forms["past_subj_1pl"] = {args[1] .. "ōdēdeima"}
data.forms["past_subj_2pl"] = {args[1] .. "ōdēdeiþ"}
data.forms["past_subj_3pl"] = {args[1] .. "ōdēdeina"}
-- Non-finite forms
data.forms["inf"] = {args[1] .. "ōn"}
data.forms["pres_ptcp"] = {args[1] .. "ōnds"}
data.forms["past_ptcp"] = {args[1] .. "ōþs"}
postprocess(args, data)
return make_table(data) .. m_utilities.format_categories(data.categories, lang)
end
export["wk3"] = function(frame)
local params = {
[1] = {required = true, default = "{{{1}}}"},
["nopasv"] = {type = "boolean"},
}
local args = require("Module:parameters").process(frame:getParent().args, params)
make_Latn(args, {1})
local data = {forms = {}, info = "class 3 weak", categories = {lang:getCanonicalName() .. " class 3 weak verbs"}}
-- Present indicative
data.forms["pres_indc_1sg"] = {args[1] .. "a"}
data.forms["pres_indc_2sg"] = {args[1] .. "ais"}
data.forms["pres_indc_3sg"] = {args[1] .. "aiþ"}
data.forms["pres_indc_1du"] = {args[1] .. "ōs"}
data.forms["pres_indc_2du"] = {args[1] .. "āts"}
data.forms["pres_indc_1pl"] = {args[1] .. "ām"}
data.forms["pres_indc_2pl"] = {args[1] .. "aiþ"}
data.forms["pres_indc_3pl"] = {args[1] .. "ānd"}
-- Present subjunctive
data.forms["pres_subj_1sg"] = {args[1] .. "au"}
data.forms["pres_subj_2sg"] = {args[1] .. "ais"}
data.forms["pres_subj_3sg"] = {args[1] .. "ai"}
data.forms["pres_subj_1du"] = {args[1] .. "aiwa"}
data.forms["pres_subj_2du"] = {args[1] .. "aits"}
data.forms["pres_subj_1pl"] = {args[1] .. "aima"}
data.forms["pres_subj_2pl"] = {args[1] .. "aiþ"}
data.forms["pres_subj_3pl"] = {args[1] .. "aina"}
-- Imperative
data.forms["impr_2sg"] = {args[1] .. "ai"}
data.forms["impr_3sg"] = {args[1] .. "ādau"}
data.forms["impr_2du"] = {args[1] .. "āts"}
data.forms["impr_2pl"] = {args[1] .. "aiþ"}
data.forms["impr_3pl"] = {args[1] .. "āndau"}
-- Passive indicative
data.forms["pasv_indc_1sg"] = {args[1] .. "āda"}
data.forms["pasv_indc_2sg"] = {args[1] .. "āza"}
data.forms["pasv_indc_3sg"] = {args[1] .. "āda"}
data.forms["pasv_indc_1pl"] = {args[1] .. "ānda"}
data.forms["pasv_indc_2pl"] = {args[1] .. "ānda"}
data.forms["pasv_indc_3pl"] = {args[1] .. "ānda"}
-- Passive subjunctive
data.forms["pasv_subj_1sg"] = {args[1] .. "aidau"}
data.forms["pasv_subj_2sg"] = {args[1] .. "aizau"}
data.forms["pasv_subj_3sg"] = {args[1] .. "aidau"}
data.forms["pasv_subj_1pl"] = {args[1] .. "aindau"}
data.forms["pasv_subj_2pl"] = {args[1] .. "aindau"}
data.forms["pasv_subj_3pl"] = {args[1] .. "aindau"}
-- Past indicative
data.forms["past_indc_1sg"] = {args[1] .. "aida"}
data.forms["past_indc_2sg"] = {args[1] .. "aidēs"}
data.forms["past_indc_3sg"] = {args[1] .. "aida"}
data.forms["past_indc_1du"] = {args[1] .. "aidēdu"}
data.forms["past_indc_2du"] = {args[1] .. "aidēduts"}
data.forms["past_indc_1pl"] = {args[1] .. "aidēdum"}
data.forms["past_indc_2pl"] = {args[1] .. "aidēduþ"}
data.forms["past_indc_3pl"] = {args[1] .. "aidēdun"}
-- Past subjunctive
data.forms["past_subj_1sg"] = {args[1] .. "aidēdjau"}
data.forms["past_subj_2sg"] = {args[1] .. "aidēdeis"}
data.forms["past_subj_3sg"] = {args[1] .. "aidēdi"}
data.forms["past_subj_1du"] = {args[1] .. "aidēdeiwa"}
data.forms["past_subj_2du"] = {args[1] .. "aidēdeits"}
data.forms["past_subj_1pl"] = {args[1] .. "aidēdeima"}
data.forms["past_subj_2pl"] = {args[1] .. "aidēdeiþ"}
data.forms["past_subj_3pl"] = {args[1] .. "aidēdeina"}
-- Non-finite forms
data.forms["inf"] = {args[1] .. "ān"}
data.forms["pres_ptcp"] = {args[1] .. "ānds"}
data.forms["past_ptcp"] = {args[1] .. "aiþs"}
postprocess(args, data)
return make_table(data) .. m_utilities.format_categories(data.categories, lang)
end
export["wk4"] = function(frame)
local params = {
[1] = {required = true, default = "{{{1}}}"},
["nopasv"] = {type = "boolean"},
}
local args = require("Module:parameters").process(frame:getParent().args, params)
make_Latn(args, {1})
local data = {forms = {}, info = "class 4 weak", categories = {lang:getCanonicalName() .. " class 4 weak verbs"}}
-- Present indicative
data.forms["pres_indc_1sg"] = {args[1] .. "na"}
data.forms["pres_indc_2sg"] = {args[1] .. "nis"}
data.forms["pres_indc_3sg"] = {args[1] .. "niþ"}
data.forms["pres_indc_1du"] = {args[1] .. "nōs"}
data.forms["pres_indc_2du"] = {args[1] .. "nats"}
data.forms["pres_indc_1pl"] = {args[1] .. "nam"}
data.forms["pres_indc_2pl"] = {args[1] .. "niþ"}
data.forms["pres_indc_3pl"] = {args[1] .. "nand"}
-- Present subjunctive
data.forms["pres_subj_1sg"] = {args[1] .. "nau"}
data.forms["pres_subj_2sg"] = {args[1] .. "nais"}
data.forms["pres_subj_3sg"] = {args[1] .. "nai"}
data.forms["pres_subj_1du"] = {args[1] .. "naiwa"}
data.forms["pres_subj_2du"] = {args[1] .. "naits"}
data.forms["pres_subj_1pl"] = {args[1] .. "naima"}
data.forms["pres_subj_2pl"] = {args[1] .. "naiþ"}
data.forms["pres_subj_3pl"] = {args[1] .. "naina"}
-- Imperative
data.forms["impr_2sg"] = {args[1] .. "n"}
data.forms["impr_3sg"] = {args[1] .. "nadau"}
data.forms["impr_2du"] = {args[1] .. "nats"}
data.forms["impr_2pl"] = {args[1] .. "niþ"}
data.forms["impr_3pl"] = {args[1] .. "nandau"}
-- Passive indicative
-- No forms
-- Passive subjunctive
-- No forms
-- Past indicative
data.forms["past_indc_1sg"] = {args[1] .. "nōda"}
data.forms["past_indc_2sg"] = {args[1] .. "nōdēs"}
data.forms["past_indc_3sg"] = {args[1] .. "nōda"}
data.forms["past_indc_1du"] = {args[1] .. "nōdēdu"}
data.forms["past_indc_2du"] = {args[1] .. "nōdēduts"}
data.forms["past_indc_1pl"] = {args[1] .. "nōdēdum"}
data.forms["past_indc_2pl"] = {args[1] .. "nōdēduþ"}
data.forms["past_indc_3pl"] = {args[1] .. "nōdēdun"}
-- Past subjunctive
data.forms["past_subj_1sg"] = {args[1] .. "nōdēdjau"}
data.forms["past_subj_2sg"] = {args[1] .. "nōdēdeis"}
data.forms["past_subj_3sg"] = {args[1] .. "nōdēdi"}
data.forms["past_subj_1du"] = {args[1] .. "nōdēdeiwa"}
data.forms["past_subj_2du"] = {args[1] .. "nōdēdeits"}
data.forms["past_subj_1pl"] = {args[1] .. "nōdēdeima"}
data.forms["past_subj_2pl"] = {args[1] .. "nōdēdeiþ"}
data.forms["past_subj_3pl"] = {args[1] .. "nōdēdeina"}
-- Non-finite forms
data.forms["inf"] = {args[1] .. "nan"}
data.forms["pres_ptcp"] = {args[1] .. "nands"}
data.forms["past_ptcp"] = nil
postprocess(args, data)
return make_table(data) .. m_utilities.format_categories(data.categories, lang)
end
export["pp"] = function(frame)
local params = {
[1] = {required = true, default = "{{{1}}}"},
[2] = {required = true, default = "{{{2}}}"},
[3] = {required = true, default = "{{{3}}}"},
["pres2sg"] = {},
["imp2sg"] = {},
["pastpart"] = {},
}
local args = require("Module:parameters").process(frame:getParent().args, params)
make_Latn(args, {1, 2, 3, "pres2sg", "imp2sg", "pastpart"})
local data = {forms = {}, info = "preterite-present", categories = {lang:getCanonicalName() .. " preterite-present verbs"}}
-- Present indicative
data.forms["pres_indc_1sg"] = {args[2]}
data.forms["pres_indc_2sg"] = {args["pres2sg"] or args[2] .. "t"}
data.forms["pres_indc_3sg"] = {args[2]}
data.forms["pres_indc_1du"] = {args[1] .. "u"}
data.forms["pres_indc_2du"] = {args[1] .. "uts"}
data.forms["pres_indc_1pl"] = {args[1] .. "um"}
data.forms["pres_indc_2pl"] = {args[1] .. "uþ"}
data.forms["pres_indc_3pl"] = {args[1] .. "un"}
-- Present subjunctive
data.forms["pres_subj_1sg"] = {args[1] .. "jau"}
data.forms["pres_subj_2sg"] = {args[1] .. "eis"}
data.forms["pres_subj_3sg"] = {args[1] .. "i"}
data.forms["pres_subj_1du"] = {args[1] .. "eiwa"}
data.forms["pres_subj_2du"] = {args[1] .. "eits"}
data.forms["pres_subj_1pl"] = {args[1] .. "eima"}
data.forms["pres_subj_2pl"] = {args[1] .. "eiþ"}
data.forms["pres_subj_3pl"] = {args[1] .. "eina"}
-- Imperative
-- No forms (except at ōgan)
data.forms["impr_2sg"] = {args["imp2sg"] or nil}
-- Passive indicative
-- No forms
-- Passive subjunctive
-- No forms
-- Past indicative
data.forms["past_indc_1sg"] = {args[3] .. "a"}
data.forms["past_indc_2sg"] = {args[3] .. "ēs"}
data.forms["past_indc_3sg"] = {args[3] .. "a"}
data.forms["past_indc_1du"] = {args[3] .. "ēdu"}
data.forms["past_indc_2du"] = {args[3] .. "ēduts"}
data.forms["past_indc_1pl"] = {args[3] .. "ēdum"}
data.forms["past_indc_2pl"] = {args[3] .. "ēduþ"}
data.forms["past_indc_3pl"] = {args[3] .. "ēdun"}
-- Past subjunctive
data.forms["past_subj_1sg"] = {args[3] .. "ēdjau"}
data.forms["past_subj_2sg"] = {args[3] .. "ēdeis"}
data.forms["past_subj_3sg"] = {args[3] .. "ēdi"}
data.forms["past_subj_1du"] = {args[3] .. "ēdeiwa"}
data.forms["past_subj_2du"] = {args[3] .. "ēdeits"}
data.forms["past_subj_1pl"] = {args[3] .. "ēdeima"}
data.forms["past_subj_2pl"] = {args[3] .. "ēdeiþ"}
data.forms["past_subj_3pl"] = {args[3] .. "ēdeina"}
-- Non-finite forms
data.forms["inf"] = {args[1] .. "an"}
data.forms["pres_ptcp"] = {args[1] .. "ands"}
data.forms["past_ptcp"] = {args["pastpart"] or args[3] .. "s"}
postprocess(args, data)
return make_table(data) .. m_utilities.format_categories(data.categories, lang)
end
-- Irregular verbs
export["ufkunnan"] = function(frame)
local params = {
["pres2sg"] = {},
["imp2sg"] = {},
["pastpart"] = {},
}
local args = require("Module:parameters").process(frame:getParent().args, params)
make_Latn(args, {1, 2, 3, "pres2sg", "imp2sg", "pastpart"})
local data = {forms = {}, info = "irregular, mixed class 3 weak and preterite-present", categories = {lang:getCanonicalName() .. " class 3 weak verbs", lang:getCanonicalName() .. " irregular verbs", lang:getCanonicalName() .. " preterite-present verbs"}
}
-- Present indicative
data.forms["pres_indc_1sg"] = {"ufkunna"}
data.forms["pres_indc_2sg"] = {"ufkunnais"}
data.forms["pres_indc_3sg"] = {"ufkunnaiþ"}
data.forms["pres_indc_1du"] = {"ufkunnōs"}
data.forms["pres_indc_2du"] = {"ufkunnāts"}
data.forms["pres_indc_1pl"] = {"ufkunnaim"}
data.forms["pres_indc_2pl"] = {"ufkunnaiþ"}
data.forms["pres_indc_3pl"] = {"ufkunnānd"}
-- Present subjunctive
data.forms["pres_subj_1sg"] = {"ufkunnau"}
data.forms["pres_subj_2sg"] = {"ufkunnais"}
data.forms["pres_subj_3sg"] = {"ufkunnai"}
data.forms["pres_subj_1du"] = {"ufkunnaiwa"}
data.forms["pres_subj_2du"] = {"ufkunnaits"}
data.forms["pres_subj_1pl"] = {"ufkunnaima"}
data.forms["pres_subj_2pl"] = {"ufkunnaiþ"}
data.forms["pres_subj_3pl"] = {"ufkunnaina"}
-- Imperative
data.forms["impr_2sg"] = {"ufkunnai"}
data.forms["impr_3sg"] = {"ufkunnādau"}
data.forms["impr_2du"] = {"ufkunnāts"}
data.forms["impr_2pl"] = {"ufkunnaiþ"}
data.forms["impr_3pl"] = {"ufkunnāndau"}
-- Passive indicative
data.forms["pasv_indc_1sg"] = {"ufkunnāda"}
data.forms["pasv_indc_2sg"] = {"ufkunnāza"}
data.forms["pasv_indc_3sg"] = {"ufkunnāda"}
data.forms["pasv_indc_1pl"] = {"ufkunnānda"}
data.forms["pasv_indc_2pl"] = {"ufkunnānda"}
data.forms["pasv_indc_3pl"] = {"ufkunnānda"}
-- Passive subjunctive
data.forms["pasv_subj_1sg"] = {"ufkunnaidau"}
data.forms["pasv_subj_2sg"] = {"ufkunnaizau"}
data.forms["pasv_subj_3sg"] = {"ufkunnaidau"}
data.forms["pasv_subj_1pl"] = {"ufkunnaindau"}
data.forms["pasv_subj_2pl"] = {"ufkunnaindau"}
data.forms["pasv_subj_3pl"] = {"ufkunnaindau"}
-- Past indicative
data.forms["past_indc_1sg"] = {"ufkunþa", "ufkunnaida"}
data.forms["past_indc_2sg"] = {"ufkunþēs"}
data.forms["past_indc_3sg"] = {"ufkunþa", "ufkunnaida"}
data.forms["past_indc_1du"] = {"ufkunþēdu"}
data.forms["past_indc_2du"] = {"ufkunþēduts"}
data.forms["past_indc_1pl"] = {"ufkunþēdum"}
data.forms["past_indc_2pl"] = {"ufkunþēduþ"}
data.forms["past_indc_3pl"] = {"ufkunþēdun"}
-- Past subjunctive
data.forms["past_subj_1sg"] = {"ufkunþēdjau"}
data.forms["past_subj_2sg"] = {"ufkunþēdeis"}
data.forms["past_subj_3sg"] = {"ufkunþēdi"}
data.forms["past_subj_1du"] = {"ufkunþēdeiwa"}
data.forms["past_subj_2du"] = {"ufkunþēdeits"}
data.forms["past_subj_1pl"] = {"ufkunþēdeima"}
data.forms["past_subj_2pl"] = {"ufkunþēdeiþ"}
data.forms["past_subj_3pl"] = {"ufkunþēdeina"}
-- Non-finite forms
data.forms["inf"] = {"ufkunnān"}
data.forms["pres_ptcp"] = {"ufkunnānds"}
data.forms["past_ptcp"] = {"ufkunnaiþs"}
postprocess(args, data)
return make_table(data) .. m_utilities.format_categories(data.categories, lang)
end
export["wiljan"] = function(frame)
local params = {
}
local args = require("Module:parameters").process(frame:getParent().args, params)
local data = {
forms = {}, info = "weak, irregular, no present indicative forms",
categories = {lang:getCanonicalName() .. " weak verbs", lang:getCanonicalName() .. " irregular verbs", lang:getCanonicalName() .. " defective verbs"}
}
-- Present indicative
-- No forms
-- Present subjunctive
data.forms["pres_subj_1sg"] = {"wiljau"}
data.forms["pres_subj_2sg"] = {"wileis"}
data.forms["pres_subj_3sg"] = {"wili"}
data.forms["pres_subj_1du"] = {"wileiwa"}
data.forms["pres_subj_2du"] = {"wileits"}
data.forms["pres_subj_1pl"] = {"wileima"}
data.forms["pres_subj_2pl"] = {"wileiþ"}
data.forms["pres_subj_3pl"] = {"wileina"}
-- Imperative
-- No forms
-- Passive indicative
-- No forms
-- Passive subjunctive
-- No forms
-- Past indicative
data.forms["past_indc_1sg"] = {"wilda"}
data.forms["past_indc_2sg"] = {"wildēs"}
data.forms["past_indc_3sg"] = {"wilda"}
data.forms["past_indc_1du"] = {"wildēdu"}
data.forms["past_indc_2du"] = {"wildēduts"}
data.forms["past_indc_1pl"] = {"wildēdum"}
data.forms["past_indc_2pl"] = {"wildēduþ"}
data.forms["past_indc_3pl"] = {"wildēdun"}
-- Past subjunctive
data.forms["past_subj_1sg"] = {"wildēdjau"}
data.forms["past_subj_2sg"] = {"wildēdeis"}
data.forms["past_subj_3sg"] = {"wildēdi"}
data.forms["past_subj_1du"] = {"wildēdeiwa"}
data.forms["past_subj_2du"] = {"wildēdeits"}
data.forms["past_subj_1pl"] = {"wildēdeima"}
data.forms["past_subj_2pl"] = {"wildēdeiþ"}
data.forms["past_subj_3pl"] = {"wildēdeina"}
-- Non-finite forms
data.forms["inf"] = {"wiljan"}
data.forms["pres_ptcp"] = {"wiljands"}
data.forms["past_ptcp"] = nil
postprocess(args, data)
return make_table(data) .. m_utilities.format_categories(data.categories, lang)
end
export["wisan"] = function(frame)
local params = {
["prefix"] = {default = ""},
}
local args = require("Module:parameters").process(frame:getParent().args, params)
make_Latn(args, {"prefix"})
local data = {
forms = {}, info = "class 5 strong, irregular, [[Appendix:Glossary#suppletive|suppletive]]",
categories = {lang:getCanonicalName() .. " class 5 strong verbs", lang:getCanonicalName() .. " irregular verbs", lang:getCanonicalName() .. " suppletive verbs"}
}
-- Present indicative
data.forms["pres_indc_1sg"] = {args["prefix"] .. "im"}
data.forms["pres_indc_2sg"] = {args["prefix"] .. "is"}
data.forms["pres_indc_3sg"] = {args["prefix"] .. "ist"}
data.forms["pres_indc_1du"] = {args["prefix"] .. "siju"}
data.forms["pres_indc_2du"] = {args["prefix"] .. "sijuts"}
data.forms["pres_indc_1pl"] = {args["prefix"] .. "sijum"}
data.forms["pres_indc_2pl"] = {args["prefix"] .. "sijuþ"}
data.forms["pres_indc_3pl"] = {args["prefix"] .. "sind"}
-- Present subjunctive
data.forms["pres_subj_1sg"] = {args["prefix"] .. "sijau"}
data.forms["pres_subj_2sg"] = {args["prefix"] .. "sijais"}
data.forms["pres_subj_3sg"] = {args["prefix"] .. "sijai"}
data.forms["pres_subj_1du"] = {args["prefix"] .. "sijaiwa"}
data.forms["pres_subj_2du"] = {args["prefix"] .. "sijaits"}
data.forms["pres_subj_1pl"] = {args["prefix"] .. "sijaima"}
data.forms["pres_subj_2pl"] = {args["prefix"] .. "sijaiþ"}
data.forms["pres_subj_3pl"] = {args["prefix"] .. "sijaina"}
-- Imperative
-- No forms
-- Passive indicative
-- No forms
-- Passive subjunctive
-- No forms
-- Past indicative
data.forms["past_indc_1sg"] = {args["prefix"] .. "was"}
data.forms["past_indc_2sg"] = {args["prefix"] .. "wast"}
data.forms["past_indc_3sg"] = {args["prefix"] .. "was"}
data.forms["past_indc_1du"] = {args["prefix"] .. "wēsu"}
data.forms["past_indc_2du"] = {args["prefix"] .. "wēsuts"}
data.forms["past_indc_1pl"] = {args["prefix"] .. "wēsum"}
data.forms["past_indc_2pl"] = {args["prefix"] .. "wēsuþ"}
data.forms["past_indc_3pl"] = {args["prefix"] .. "wēsun"}
-- Past subjunctive
data.forms["past_subj_1sg"] = {args["prefix"] .. "wēsjau"}
data.forms["past_subj_2sg"] = {args["prefix"] .. "wēseis"}
data.forms["past_subj_3sg"] = {args["prefix"] .. "wēsi"}
data.forms["past_subj_1du"] = {args["prefix"] .. "wēseiwa"}
data.forms["past_subj_2du"] = {args["prefix"] .. "wēseits"}
data.forms["past_subj_1pl"] = {args["prefix"] .. "wēseima"}
data.forms["past_subj_2pl"] = {args["prefix"] .. "wēseiþ"}
data.forms["past_subj_3pl"] = {args["prefix"] .. "wēseina"}
-- Non-finite forms
data.forms["inf"] = {args["prefix"] .. "wisan"}
data.forms["pres_ptcp"] = {args["prefix"] .. "wisands"}
data.forms["past_ptcp"] = {args["prefix"] .. "wisans"}
postprocess(args, data)
return make_table(data) .. m_utilities.format_categories(data.categories, lang)
end
export["briggan"] = function(frame)
local params = {
}
local args = require("Module:parameters").process(frame:getParent().args, params)
local data = {
forms = {}, info = "class 3 strong",
categories = {lang:getCanonicalName() .. " class 3 strong verbs"}
}
-- Present indicative
data.forms["pres_indc_1sg"] = {"brigga"}
data.forms["pres_indc_2sg"] = {"briggis"}
data.forms["pres_indc_3sg"] = {"briggiþ"}
data.forms["pres_indc_1du"] = {"briggōs"}
data.forms["pres_indc_2du"] = {"briggats"}
data.forms["pres_indc_1pl"] = {"briggam"}
data.forms["pres_indc_2pl"] = {"briggiþ"}
data.forms["pres_indc_3pl"] = {"briggand"}
-- Present subjunctive
data.forms["pres_subj_1sg"] = {"briggau"}
data.forms["pres_subj_2sg"] = {"briggais"}
data.forms["pres_subj_3sg"] = {"briggai"}
data.forms["pres_subj_1du"] = {"briggaiwa"}
data.forms["pres_subj_2du"] = {"briggaits"}
data.forms["pres_subj_1pl"] = {"briggaima"}
data.forms["pres_subj_2pl"] = {"briggaiþ"}
data.forms["pres_subj_3pl"] = {"briggaina"}
-- Imperative
data.forms["impr_2sg"] = {"brigg"}
data.forms["impr_3sg"] = {"briggadau"}
data.forms["impr_2du"] = {"briggats"}
data.forms["impr_2pl"] = {"briggiþ"}
data.forms["impr_3pl"] = {"briggandau"}
-- Passive indicative
data.forms["pasv_indc_1sg"] = {"briggada"}
data.forms["pasv_indc_2sg"] = {"briggaza"}
data.forms["pasv_indc_3sg"] = {"briggada"}
data.forms["pasv_indc_1pl"] = {"brigganda"}
data.forms["pasv_indc_2pl"] = {"brigganda"}
data.forms["pasv_indc_3pl"] = {"brigganda"}
-- Passive subjunctive
data.forms["pasv_subj_1sg"] = {"briggadau"}
data.forms["pasv_subj_2sg"] = {"briggazau"}
data.forms["pasv_subj_3sg"] = {"briggadau"}
data.forms["pasv_subj_1pl"] = {"briggandau"}
data.forms["pasv_subj_2pl"] = {"briggandau"}
data.forms["pasv_subj_3pl"] = {"briggandau"}
-- Past indicative
data.forms["past_indc_1sg"] = {"brāhta"}
data.forms["past_indc_2sg"] = {"brāhtēs"}
data.forms["past_indc_3sg"] = {"brāhta"}
data.forms["past_indc_1du"] = {"brāhtēdu"}
data.forms["past_indc_2du"] = {"brāhtēduts"}
data.forms["past_indc_1pl"] = {"brāhtēdum"}
data.forms["past_indc_2pl"] = {"brāhtēduþ"}
data.forms["past_indc_3pl"] = {"brāhtēdun"}
-- Past subjunctive
data.forms["past_subj_1sg"] = {"brāhtēdjau"}
data.forms["past_subj_2sg"] = {"brāhtēdeis"}
data.forms["past_subj_3sg"] = {"brāhtēdi"}
data.forms["past_subj_1du"] = {"brāhtēdeiwa"}
data.forms["past_subj_2du"] = {"brāhtēdeits"}
data.forms["past_subj_1pl"] = {"brāhtēdeima"}
data.forms["past_subj_2pl"] = {"brāhtēdeiþ"}
data.forms["past_subj_3pl"] = {"brāhtēdeina"}
-- Non-finite forms
data.forms["inf"] = {"briggan"}
data.forms["pres_ptcp"] = {"briggands"}
data.forms["past_ptcp"] = {"brāhts"}
postprocess(args, data)
return make_table(data) .. m_utilities.format_categories(data.categories, lang)
end
export["bauan"] = function(frame)
local params = {
["prefix"] = {default = ""},
}
local args = require("Module:parameters").process(frame:getParent().args, params)
local data = {
forms = {}, info = "irregular, mixed strong and class 3 weak",
categories = {lang:getCanonicalName() .. " irregular verbs"}
}
-- Present indicative
data.forms["pres_indc_1sg"] = {args["prefix"] .. "baua"}
data.forms["pres_indc_2sg"] = {args["prefix"] .. "bauis"}
data.forms["pres_indc_3sg"] = {args["prefix"] .. "bauiþ"}
data.forms["pres_indc_1du"] = {args["prefix"] .. "bauōs"}
data.forms["pres_indc_2du"] = {args["prefix"] .. "bauats"}
data.forms["pres_indc_1pl"] = {args["prefix"] .. "bauam"}
data.forms["pres_indc_2pl"] = {args["prefix"] .. "bauiþ"}
data.forms["pres_indc_3pl"] = {args["prefix"] .. "bauand"}
-- Present subjunctive
data.forms["pres_subj_1sg"] = {args["prefix"] .. "bauau"}
data.forms["pres_subj_2sg"] = {args["prefix"] .. "bauais"}
data.forms["pres_subj_3sg"] = {args["prefix"] .. "bauai"}
data.forms["pres_subj_1du"] = {args["prefix"] .. "bauaiwa"}
data.forms["pres_subj_2du"] = {args["prefix"] .. "bauaits"}
data.forms["pres_subj_1pl"] = {args["prefix"] .. "bauaima"}
data.forms["pres_subj_2pl"] = {args["prefix"] .. "bauaiþ"}
data.forms["pres_subj_3pl"] = {args["prefix"] .. "bauaina"}
-- Imperative
data.forms["impr_2sg"] = {args["prefix"] .. "bau"}
data.forms["impr_3sg"] = {args["prefix"] .. "bauadau"}
data.forms["impr_2du"] = {args["prefix"] .. "bauats"}
data.forms["impr_2pl"] = {args["prefix"] .. "bauiþ"}
data.forms["impr_3pl"] = {args["prefix"] .. "bauandau"}
-- Passive indicative
data.forms["pasv_indc_1sg"] = {args["prefix"] .. "bauada"}
data.forms["pasv_indc_2sg"] = {args["prefix"] .. "bauaza"}
data.forms["pasv_indc_3sg"] = {args["prefix"] .. "bauada"}
data.forms["pasv_indc_1pl"] = {args["prefix"] .. "bauanda"}
data.forms["pasv_indc_2pl"] = {args["prefix"] .. "bauanda"}
data.forms["pasv_indc_3pl"] = {args["prefix"] .. "bauanda"}
-- Passive subjunctive
data.forms["pasv_subj_1sg"] = {args["prefix"] .. "bauaidau"}
data.forms["pasv_subj_2sg"] = {args["prefix"] .. "bauaizau"}
data.forms["pasv_subj_3sg"] = {args["prefix"] .. "bauaidau"}
data.forms["pasv_subj_1pl"] = {args["prefix"] .. "bauaindau"}
data.forms["pasv_subj_2pl"] = {args["prefix"] .. "bauaindau"}
data.forms["pasv_subj_3pl"] = {args["prefix"] .. "bauaindau"}
-- Past indicative
data.forms["past_indc_1sg"] = {args["prefix"] .. "bauaida"}
data.forms["past_indc_2sg"] = {args["prefix"] .. "bauaidēs"}
data.forms["past_indc_3sg"] = {args["prefix"] .. "bauaida"}
data.forms["past_indc_1du"] = {args["prefix"] .. "bauaidēdu"}
data.forms["past_indc_2du"] = {args["prefix"] .. "bauaidēduts"}
data.forms["past_indc_1pl"] = {args["prefix"] .. "bauaidēdum"}
data.forms["past_indc_2pl"] = {args["prefix"] .. "bauaidēduþ"}
data.forms["past_indc_3pl"] = {args["prefix"] .. "bauaidēdun"}
-- Past subjunctive
data.forms["past_subj_1sg"] = {args["prefix"] .. "bauaidēdjau"}
data.forms["past_subj_2sg"] = {args["prefix"] .. "bauaidēdeis"}
data.forms["past_subj_3sg"] = {args["prefix"] .. "bauaidēdi"}
data.forms["past_subj_1du"] = {args["prefix"] .. "bauaidēdeiwa"}
data.forms["past_subj_2du"] = {args["prefix"] .. "bauaidēdeits"}
data.forms["past_subj_1pl"] = {args["prefix"] .. "bauaidēdeima"}
data.forms["past_subj_2pl"] = {args["prefix"] .. "bauaidēdeiþ"}
data.forms["past_subj_3pl"] = {args["prefix"] .. "bauaidēdeina"}
-- Non-finite forms
data.forms["inf"] = {args["prefix"] .. "bauan"}
data.forms["pres_ptcp"] = {args["prefix"] .. "bauands"}
data.forms["past_ptcp"] = {args["prefix"] .. "bauaiþs"}
postprocess(args, data)
return make_table(data) .. m_utilities.format_categories(data.categories, lang)
end
-- Make the table
function make_table(data)
local function repl(param)
if param == "info" then
return mw.getContentLanguage():ucfirst(data.info or "")
end
local form = data.forms[param]
if not form or #form == 0 then
return "—"
end
local ret_Goth = {}
local ret_Latn = {}
for key, subform in ipairs(form) do
table.insert(ret_Latn, m_links.full_link({lang = lang, term = subform, tr = "-"}))
table.insert(ret_Goth, m_links.full_link({lang = lang, term = m_translit.tr_reverse(subform), tr = "-"}))
end
return table.concat(ret_Goth, ", ") .. "<br/>" .. table.concat(ret_Latn, ", ")
end
local names = {
["indc"] = "indicative",
["subj"] = "subjunctive",
["impr"] = "imperative",
["pres"] = "present",
["pasv"] = "present passive",
["past"] = "past",
["1sg"] = "1st singular",
["2sg"] = "2nd singular",
["3sg"] = "3rd singular",
["1du"] = "1st dual",
["2du"] = "2nd dual",
["1pl"] = "1st plural",
["2pl"] = "2nd plural",
["3pl"] = "3rd plural",
}
local pns = {"1sg", "2sg", "3sg", "1du", "2du", "1pl", "2pl", "3pl"}
local impr_pns = {"2sg", "3sg", "2du", "2pl", "3pl"}
local moods = {"indc", "subj"}
local tenses = {"pres", "past", "pasv"}
local wikicode = {}
table.insert(wikicode, "{| class=\"wikitable inflection-table vsSwitcher\" style=\"border-style: double; border-width: 3px;\" cellspacing=\"1\" data-toggle-category=\"conjugation\"")
table.insert(wikicode, "|-")
table.insert(wikicode, "! class=\"vsToggleElement\" style=\"background: #CCC; min-width: " .. (8 + #tenses * 12) .. "em; text-align: left;\" colspan=\"" .. (#tenses + 1) .. "\" | {{{info}}}")
table.insert(wikicode, "|- class=\"vsHide\"")
table.insert(wikicode, "! " .. mw.getContentLanguage():ucfirst("infinitive"))
table.insert(wikicode, "| colspan=\"" .. (#tenses) .. "\" | {{{inf}}}")
for _, mood in ipairs(moods) do
table.insert(wikicode, "|- class=\"vsHide\"")
table.insert(wikicode, "! style=\"min-width: 8em;\" | " .. mw.getContentLanguage():ucfirst(names[mood]))
for _, tense in ipairs(tenses) do
table.insert(wikicode, "! style=\"min-width: 12em;\" | " .. mw.getContentLanguage():ucfirst(names[tense]))
end
for _, pn in ipairs(pns) do
table.insert(wikicode, "|- class=\"vsHide\"")
table.insert(wikicode, "! " .. mw.getContentLanguage():ucfirst(names[pn]))
for _, tense in ipairs(tenses) do
table.insert(wikicode, "| {{{" .. tense .. "_" .. mood .. "_" .. pn .. "}}}")
end
end
end
table.insert(wikicode, "|- class=\"vsHide\"")
table.insert(wikicode, "! " .. mw.getContentLanguage():ucfirst(names["impr"]))
table.insert(wikicode, "!")
table.insert(wikicode, "! colspan=\"" .. (#tenses) .. "\" rowspan=\"" .. (#impr_pns + 1) .. "\"|")
for _, pn in ipairs(impr_pns) do
table.insert(wikicode, "|- class=\"vsHide\"")
table.insert(wikicode, "! " .. mw.getContentLanguage():ucfirst(names[pn]))
table.insert(wikicode, "| {{{impr_" .. pn .. "}}}")
end
table.insert(wikicode, "|- class=\"vsHide\"")
table.insert(wikicode, "|")
table.insert(wikicode, "! " .. mw.getContentLanguage():ucfirst("present"))
table.insert(wikicode, "! " .. mw.getContentLanguage():ucfirst("past"))
table.insert(wikicode, "! rowspan=\"2\" |")
table.insert(wikicode, "|- class=\"vsHide\"")
table.insert(wikicode, "! " .. mw.getContentLanguage():ucfirst("participles"))
table.insert(wikicode, "| {{{pres_ptcp}}}")
table.insert(wikicode, "| {{{past_ptcp}}}")
table.insert(wikicode, "|}")
wikicode = table.concat(wikicode, "\n")
return mw.ustring.gsub(wikicode, "{{{([a-z0-9_]+)}}}", repl)
end
return export