local m_utilities = require("Module:utilities")
local m_links = require("Module:links")
local m_common = require("Module:zu-common")
local lang = require("Module:languages").getByCode("zu")
local export = {}
function export.verb(frame)
local params = {
[1] = {},
["i"] = {type = "boolean"},
["passive"] = {type = "boolean"},
}
local args = require("Module:parameters").process(frame:getParent().args, params)
local data = {forms = {}, info = "", categories = {}}
if args[1] == "L" or args[1] == "H" or args[1] == "HH" then
data.info = "tone " .. args[1]
table.insert(data.categories, lang:getCanonicalName() .. " verbs with tone " .. args[1])
elseif args[1] then
error("The tone class must be \"L\", \"H\" or \"HH\".")
else
data.info = "tone unknown"
table.insert(data.categories, lang:getCanonicalName() .. " verbs needing tone")
end
if args["i"] then
data.info = data.info .. ", latent ''i''"
table.insert(data.categories, lang:getCanonicalName() .. " verbs with latent i")
end
local base = mw.ustring.gsub(mw.title.getCurrentTitle().subpageText, "a$", "")
local syllables = m_common.split_syllables(mw.title.getCurrentTitle().subpageText)
local a = "a"
local al = "ā"
local e = "e"
local e2 = "e"
local i = "i" -- preceding consonant
local i2 = "i" -- no preceding consonant
local o2 = "o"
local u = "u" -- after b
local u2 = "u" -- no preceding consonant
local u3 = "u" -- after a consonant other than b
local w = "w" -- before the remote past prefix in o- stems
local yi = ""
local ku = ""
local neg = "i"
if args["passive"] or base == "zw" then
neg = "a"
end
if syllables[1] == "a" or syllables[1] == "e" or syllables[1] == "o" then
base = mw.ustring.gsub(base, "^[aeo]", "")
a = syllables[1]
al = syllables[1] .. "̄"
e = syllables[1]
e2 = "ey" .. syllables[1]
i = syllables[1]
i2 = "y" .. syllables[1]
o2 = "ow" .. syllables[1]
u = syllables[1]
u2 = "w" .. syllables[1]
u3 = "w" .. syllables[1]
ku = "kw" .. syllables[1]
if syllables[1] == "o" then
u3 = syllables[1]
w = ""
ku = "k" .. syllables[1]
end
yi = "y" .. syllables[1]
elseif args["i"] then
a = "e"
ku = "ku"
yi = "yi"
elseif #syllables == 1 then
ku = "ku"
yi = "yi"
end
-- Infinitive
data.forms["pos_inf"] = {"uk" .. u3 .. base .. "a"}
data.forms["neg_inf"] = {"ukung" .. a .. base .. neg}
-- Imperative
data.forms["simp_impr_sg"] = {yi .. base .. "a"}
data.forms["simp_impr_pl"] = {yi .. base .. "ani"}
data.forms["objc_impr_sg"] = {yi .. base .. "e"}
data.forms["objc_impr_pl"] = {yi .. base .. "eni"}
-- Present
data.forms["pos_abs_pres_1sg"] = {"ngiy" .. a .. base .. "a", "ng" .. i .. base .. "a"}
data.forms["pos_abs_pres_2sg"] = { "uy" .. a .. base .. "a", u2 .. base .. "a"}
data.forms["pos_abs_pres_1pl"] = { "siy" .. a .. base .. "a", "s" .. i .. base .. "a"}
data.forms["pos_abs_pres_2pl"] = { "niy" .. a .. base .. "a", "n" .. i .. base .. "a"}
data.forms["pos_abs_pres_c1"] = { "uy" .. a .. base .. "a", u2 .. base .. "a"}
data.forms["pos_abs_pres_c2"] = { "bay" .. a .. base .. "a", "b" .. a .. base .. "a"}
data.forms["pos_abs_pres_c3"] = { "uy" .. a .. base .. "a", u2 .. base .. "a"}
data.forms["pos_abs_pres_c4"] = { "iy" .. a .. base .. "a", i2 .. base .. "a"}
data.forms["pos_abs_pres_c5"] = { "liy" .. a .. base .. "a", "l" .. i .. base .. "a"}
data.forms["pos_abs_pres_c6"] = { "ay" .. a .. base .. "a", a .. base .. "a"}
data.forms["pos_abs_pres_c7"] = { "siy" .. a .. base .. "a", "s" .. i .. base .. "a"}
data.forms["pos_abs_pres_c8"] = { "ziy" .. a .. base .. "a", "z" .. i .. base .. "a"}
data.forms["pos_abs_pres_c9"] = { "iy" .. a .. base .. "a", i2 .. base .. "a"}
data.forms["pos_abs_pres_c10"] = { "ziy" .. a .. base .. "a", "z" .. i .. base .. "a"}
data.forms["pos_abs_pres_c11"] = { "luy" .. a .. base .. "a", "l" .. u3 .. base .. "a"}
data.forms["pos_abs_pres_c14"] = { "buy" .. a .. base .. "a", "b" .. u .. base .. "a"}
data.forms["pos_abs_pres_c15"] = { "kuy" .. a .. base .. "a", "k" .. u3 .. base .. "a"}
data.forms["pos_abs_pres_c17"] = { "kuy" .. a .. base .. "a", "k" .. u3 .. base .. "a"}
data.forms["pos_rel_pres_1sg"] = {"eng" .. i .. base .. "ayo", "eng" .. i .. base .. "a"}
data.forms["pos_rel_pres_2sg"] = { o2 .. base .. "ayo", o2 .. base .. "a"}
data.forms["pos_rel_pres_1pl"] = { "es" .. i .. base .. "ayo", "es" .. i .. base .. "a"}
data.forms["pos_rel_pres_2pl"] = { "en" .. i .. base .. "ayo", "en" .. i .. base .. "a"}
data.forms["pos_rel_pres_c1"] = { o2 .. base .. "ayo", o2 .. base .. "a"}
data.forms["pos_rel_pres_c2"] = { "ab" .. a .. base .. "ayo", "ab" .. a .. base .. "a"}
data.forms["pos_rel_pres_c3"] = { o2 .. base .. "ayo", o2 .. base .. "a"}
data.forms["pos_rel_pres_c4"] = { e2 .. base .. "ayo", e2 .. base .. "a"}
data.forms["pos_rel_pres_c5"] = { "el" .. i .. base .. "ayo", "el" .. i .. base .. "a"}
data.forms["pos_rel_pres_c6"] = { a .. base .. "ayo", a .. base .. "a"}
data.forms["pos_rel_pres_c7"] = { "es" .. i .. base .. "ayo", "es" .. i .. base .. "a"}
data.forms["pos_rel_pres_c8"] = { "ez" .. i .. base .. "ayo", "ez" .. i .. base .. "a"}
data.forms["pos_rel_pres_c9"] = { e2 .. base .. "ayo", e2 .. base .. "a"}
data.forms["pos_rel_pres_c10"] = { "ez" .. i .. base .. "ayo", "ez" .. i .. base .. "a"}
data.forms["pos_rel_pres_c11"] = { "ol" .. u3 .. base .. "ayo", "ol" .. u3 .. base .. "a"}
data.forms["pos_rel_pres_c14"] = { "ob" .. u .. base .. "ayo", "ob" .. u .. base .. "a"}
data.forms["pos_rel_pres_c15"] = { "ok" .. u3 .. base .. "ayo", "ok" .. u3 .. base .. "a"}
data.forms["pos_rel_pres_c17"] = { "ok" .. u3 .. base .. "ayo", "ok" .. u3 .. base .. "a"}
data.forms["pos_par_pres_1sg"] = {"ng" .. i .. base .. "a"}
data.forms["pos_par_pres_2sg"] = { u2 .. base .. "a"}
data.forms["pos_par_pres_1pl"] = { "s" .. i .. base .. "a"}
data.forms["pos_par_pres_2pl"] = { "n" .. i .. base .. "a"}
data.forms["pos_par_pres_c1"] = { e .. base .. "a"}
data.forms["pos_par_pres_c2"] = { "b" .. e .. base .. "a"}
data.forms["pos_par_pres_c3"] = { u2 .. base .. "a"}
data.forms["pos_par_pres_c4"] = { i2 .. base .. "a"}
data.forms["pos_par_pres_c5"] = { "l" .. i .. base .. "a"}
data.forms["pos_par_pres_c6"] = { e .. base .. "a"}
data.forms["pos_par_pres_c7"] = { "s" .. i .. base .. "a"}
data.forms["pos_par_pres_c8"] = { "z" .. i .. base .. "a"}
data.forms["pos_par_pres_c9"] = { i2 .. base .. "a"}
data.forms["pos_par_pres_c10"] = { "z" .. i .. base .. "a"}
data.forms["pos_par_pres_c11"] = { "l" .. u3 .. base .. "a"}
data.forms["pos_par_pres_c14"] = { "b" .. u .. base .. "a"}
data.forms["pos_par_pres_c15"] = { "k" .. u3 .. base .. "a"}
data.forms["pos_par_pres_c17"] = { "k" .. u3 .. base .. "a"}
data.forms["neg_abs_pres_1sg"] = {"ang" .. i .. base .. neg}
data.forms["neg_abs_pres_2sg"] = { "aw" .. u .. base .. neg}
data.forms["neg_abs_pres_1pl"] = { "as" .. i .. base .. neg}
data.forms["neg_abs_pres_2pl"] = { "an" .. i .. base .. neg}
data.forms["neg_abs_pres_c1"] = { "ak" .. a .. base .. neg}
data.forms["neg_abs_pres_c2"] = { "ab" .. a .. base .. neg}
data.forms["neg_abs_pres_c3"] = { "aw" .. u .. base .. neg}
data.forms["neg_abs_pres_c4"] = { "ay" .. i .. base .. neg}
data.forms["neg_abs_pres_c5"] = { "al" .. i .. base .. neg}
data.forms["neg_abs_pres_c6"] = { "aw" .. a .. base .. neg}
data.forms["neg_abs_pres_c7"] = { "as" .. i .. base .. neg}
data.forms["neg_abs_pres_c8"] = { "az" .. i .. base .. neg}
data.forms["neg_abs_pres_c9"] = { "ay" .. i .. base .. neg}
data.forms["neg_abs_pres_c10"] = { "az" .. i .. base .. neg}
data.forms["neg_abs_pres_c11"] = { "al" .. u3 .. base .. neg}
data.forms["neg_abs_pres_c14"] = { "ab" .. u .. base .. neg}
data.forms["neg_abs_pres_c15"] = { "ak" .. u3 .. base .. neg}
data.forms["neg_abs_pres_c17"] = { "ak" .. u3 .. base .. neg}
data.forms["neg_rel_pres_1sg"] = {"enging" .. a .. base .. neg}
data.forms["neg_rel_pres_2sg"] = { "ong" .. a .. base .. neg}
data.forms["neg_rel_pres_1pl"] = { "esing" .. a .. base .. neg}
data.forms["neg_rel_pres_2pl"] = { "ening" .. a .. base .. neg}
data.forms["neg_rel_pres_c1"] = { "ong" .. a .. base .. neg}
data.forms["neg_rel_pres_c2"] = { "abang" .. a .. base .. neg}
data.forms["neg_rel_pres_c3"] = { "ong" .. a .. base .. neg}
data.forms["neg_rel_pres_c4"] = { "eng" .. a .. base .. neg}
data.forms["neg_rel_pres_c5"] = { "eling" .. a .. base .. neg}
data.forms["neg_rel_pres_c6"] = { "ang" .. a .. base .. neg}
data.forms["neg_rel_pres_c7"] = { "esing" .. a .. base .. neg}
data.forms["neg_rel_pres_c8"] = { "ezing" .. a .. base .. neg}
data.forms["neg_rel_pres_c9"] = { "eng" .. a .. base .. neg}
data.forms["neg_rel_pres_c10"] = { "ezing" .. a .. base .. neg}
data.forms["neg_rel_pres_c11"] = { "olung" .. a .. base .. neg}
data.forms["neg_rel_pres_c14"] = { "obung" .. a .. base .. neg}
data.forms["neg_rel_pres_c15"] = { "okung" .. a .. base .. neg}
data.forms["neg_rel_pres_c17"] = { "okung" .. a .. base .. neg}
data.forms["neg_par_pres_1sg"] = {"nging" .. a .. base .. neg}
data.forms["neg_par_pres_2sg"] = { "ung" .. a .. base .. neg}
data.forms["neg_par_pres_1pl"] = { "sing" .. a .. base .. neg}
data.forms["neg_par_pres_2pl"] = { "ning" .. a .. base .. neg}
data.forms["neg_par_pres_c1"] = { "eng" .. a .. base .. neg}
data.forms["neg_par_pres_c2"] = { "beng" .. a .. base .. neg}
data.forms["neg_par_pres_c3"] = { "ung" .. a .. base .. neg}
data.forms["neg_par_pres_c4"] = { "ing" .. a .. base .. neg}
data.forms["neg_par_pres_c5"] = { "ling" .. a .. base .. neg}
data.forms["neg_par_pres_c6"] = { "eng" .. a .. base .. neg}
data.forms["neg_par_pres_c7"] = { "sing" .. a .. base .. neg}
data.forms["neg_par_pres_c8"] = { "zing" .. a .. base .. neg}
data.forms["neg_par_pres_c9"] = { "ing" .. a .. base .. neg}
data.forms["neg_par_pres_c10"] = { "zing" .. a .. base .. neg}
data.forms["neg_par_pres_c11"] = { "lung" .. a .. base .. neg}
data.forms["neg_par_pres_c14"] = { "bung" .. a .. base .. neg}
data.forms["neg_par_pres_c15"] = { "kung" .. a .. base .. neg}
data.forms["neg_par_pres_c17"] = { "kung" .. a .. base .. neg}
-- Recent past
if #syllables > 2 and mw.ustring.find(base, "[ae][lmns]$") then
local base2 = mw.ustring.gsub(base, "a([^aeiou]+)$", "e%1")
data.forms["pos_abs_recp_1sg"] = {"ng" .. i .. base2 .. "e"}
data.forms["pos_abs_recp_2sg"] = { u2 .. base2 .. "e"}
data.forms["pos_abs_recp_1pl"] = { "s" .. i .. base2 .. "e"}
data.forms["pos_abs_recp_2pl"] = { "n" .. i .. base2 .. "e"}
data.forms["pos_abs_recp_c1"] = { u2 .. base2 .. "e"}
data.forms["pos_abs_recp_c2"] = { "b" .. a .. base2 .. "e"}
data.forms["pos_abs_recp_c3"] = { u2 .. base2 .. "e"}
data.forms["pos_abs_recp_c4"] = { i2 .. base2 .. "e"}
data.forms["pos_abs_recp_c5"] = { "l" .. i .. base2 .. "e"}
data.forms["pos_abs_recp_c6"] = { a .. base2 .. "e"}
data.forms["pos_abs_recp_c7"] = { "s" .. i .. base2 .. "e"}
data.forms["pos_abs_recp_c8"] = { "z" .. i .. base2 .. "e"}
data.forms["pos_abs_recp_c9"] = { i2 .. base2 .. "e"}
data.forms["pos_abs_recp_c10"] = { "z" .. i .. base2 .. "e"}
data.forms["pos_abs_recp_c11"] = { "l" .. u3 .. base2 .. "e"}
data.forms["pos_abs_recp_c14"] = { "b" .. u .. base2 .. "e"}
data.forms["pos_abs_recp_c15"] = { "k" .. u3 .. base2 .. "e"}
data.forms["pos_abs_recp_c17"] = { "k" .. u3 .. base2 .. "e"}
data.forms["pos_rel_recp_1sg"] = {"eng" .. i .. base2 .. "e"}
data.forms["pos_rel_recp_2sg"] = { o2 .. base2 .. "e"}
data.forms["pos_rel_recp_1pl"] = { "es" .. i .. base2 .. "e"}
data.forms["pos_rel_recp_2pl"] = { "en" .. i .. base2 .. "e"}
data.forms["pos_rel_recp_c1"] = { o2 .. base2 .. "e"}
data.forms["pos_rel_recp_c2"] = { "ab" .. a .. base2 .. "e"}
data.forms["pos_rel_recp_c3"] = { o2 .. base2 .. "e"}
data.forms["pos_rel_recp_c4"] = { e2 .. base2 .. "e"}
data.forms["pos_rel_recp_c5"] = { "el" .. i .. base2 .. "e"}
data.forms["pos_rel_recp_c6"] = { a .. base2 .. "e"}
data.forms["pos_rel_recp_c7"] = { "es" .. i .. base2 .. "e"}
data.forms["pos_rel_recp_c8"] = { "ez" .. i .. base2 .. "e"}
data.forms["pos_rel_recp_c9"] = { e2 .. base2 .. "e"}
data.forms["pos_rel_recp_c10"] = { "ez" .. i .. base2 .. "e"}
data.forms["pos_rel_recp_c11"] = { "ol" .. u3 .. base2 .. "e"}
data.forms["pos_rel_recp_c14"] = { "ob" .. u .. base2 .. "e"}
data.forms["pos_rel_recp_c15"] = { "ok" .. u3 .. base2 .. "e"}
data.forms["pos_rel_recp_c17"] = { "ok" .. u3 .. base2 .. "e"}
data.forms["pos_par_recp_1sg"] = {"ng" .. i .. base2 .. "e"}
data.forms["pos_par_recp_2sg"] = { u2 .. base2 .. "e"}
data.forms["pos_par_recp_1pl"] = { "s" .. i .. base2 .. "e"}
data.forms["pos_par_recp_2pl"] = { "n" .. i .. base2 .. "e"}
data.forms["pos_par_recp_c1"] = { e .. base2 .. "e"}
data.forms["pos_par_recp_c2"] = { "b" .. e .. base2 .. "e"}
data.forms["pos_par_recp_c3"] = { u2 .. base2 .. "e"}
data.forms["pos_par_recp_c4"] = { i2 .. base2 .. "e"}
data.forms["pos_par_recp_c5"] = { "l" .. i .. base2 .. "e"}
data.forms["pos_par_recp_c6"] = { e .. base2 .. "e"}
data.forms["pos_par_recp_c7"] = { "s" .. i .. base2 .. "e"}
data.forms["pos_par_recp_c8"] = { "z" .. i .. base2 .. "e"}
data.forms["pos_par_recp_c9"] = { i2 .. base2 .. "e"}
data.forms["pos_par_recp_c10"] = { "z" .. i .. base2 .. "e"}
data.forms["pos_par_recp_c11"] = { "l" .. u3 .. base2 .. "e"}
data.forms["pos_par_recp_c14"] = { "b" .. u .. base2 .. "e"}
data.forms["pos_par_recp_c15"] = { "k" .. u3 .. base2 .. "e"}
data.forms["pos_par_recp_c17"] = { "k" .. u3 .. base2 .. "e"}
elseif args["passive"] then
local base2, pass_recp_long, pass_recp_short
if mw.ustring.find(base, "iw$") then
base2 = base
pass_recp_long = "e"
pass_recp_short = "ē"
else
base2 = mw.ustring.gsub(base, "w$", "")
pass_recp_long = "iwe"
pass_recp_short = "wē"
end
data.forms["pos_abs_recp_1sg"] = {"ng" .. i .. base2 .. pass_recp_long, "ng" .. i .. base2 .. pass_recp_short}
data.forms["pos_abs_recp_2sg"] = { u2 .. base2 .. pass_recp_long, u2 .. base2 .. pass_recp_short}
data.forms["pos_abs_recp_1pl"] = { "s" .. i .. base2 .. pass_recp_long, "s" .. i .. base2 .. pass_recp_short}
data.forms["pos_abs_recp_2pl"] = { "n" .. i .. base2 .. pass_recp_long, "n" .. i .. base2 .. pass_recp_short}
data.forms["pos_abs_recp_c1"] = { u2 .. base2 .. pass_recp_long, u2 .. base2 .. pass_recp_short}
data.forms["pos_abs_recp_c2"] = { "b" .. a .. base2 .. pass_recp_long, "b" .. a .. base2 .. pass_recp_short}
data.forms["pos_abs_recp_c3"] = { u2 .. base2 .. pass_recp_long, u2 .. base2 .. pass_recp_short}
data.forms["pos_abs_recp_c4"] = { i2 .. base2 .. pass_recp_long, i2 .. base2 .. pass_recp_short}
data.forms["pos_abs_recp_c5"] = { "l" .. i .. base2 .. pass_recp_long, "l" .. i .. base2 .. pass_recp_short}
data.forms["pos_abs_recp_c6"] = { a .. base2 .. pass_recp_long, a .. base2 .. pass_recp_short}
data.forms["pos_abs_recp_c7"] = { "s" .. i .. base2 .. pass_recp_long, "s" .. i .. base2 .. pass_recp_short}
data.forms["pos_abs_recp_c8"] = { "z" .. i .. base2 .. pass_recp_long, "z" .. i .. base2 .. pass_recp_short}
data.forms["pos_abs_recp_c9"] = { i2 .. base2 .. pass_recp_long, i2 .. base2 .. pass_recp_short}
data.forms["pos_abs_recp_c10"] = { "z" .. i .. base2 .. pass_recp_long, "z" .. i .. base2 .. pass_recp_short}
data.forms["pos_abs_recp_c11"] = { "l" .. u3 .. base2 .. pass_recp_long, "l" .. u3 .. base2 .. pass_recp_short}
data.forms["pos_abs_recp_c14"] = { "b" .. u .. base2 .. pass_recp_long, "b" .. u .. base2 .. pass_recp_short}
data.forms["pos_abs_recp_c15"] = { "k" .. u3 .. base2 .. pass_recp_long, "k" .. u3 .. base2 .. pass_recp_short}
data.forms["pos_abs_recp_c17"] = { "k" .. u3 .. base2 .. pass_recp_long, "k" .. u3 .. base2 .. pass_recp_short}
data.forms["pos_rel_recp_1sg"] = {"eng" .. i .. base2 .. pass_recp_long, "eng" .. i .. base2 .. pass_recp_short}
data.forms["pos_rel_recp_2sg"] = { o2 .. base2 .. pass_recp_long, o2 .. base2 .. pass_recp_short}
data.forms["pos_rel_recp_1pl"] = { "es" .. i .. base2 .. pass_recp_long, "es" .. i .. base2 .. pass_recp_short}
data.forms["pos_rel_recp_2pl"] = { "en" .. i .. base2 .. pass_recp_long, "en" .. i .. base2 .. pass_recp_short}
data.forms["pos_rel_recp_c1"] = { o2 .. base2 .. pass_recp_long, o2 .. base2 .. pass_recp_short}
data.forms["pos_rel_recp_c2"] = { "ab" .. a .. base2 .. pass_recp_long, "ab" .. a .. base2 .. pass_recp_short}
data.forms["pos_rel_recp_c3"] = { o2 .. base2 .. pass_recp_long, o2 .. base2 .. pass_recp_short}
data.forms["pos_rel_recp_c4"] = { e2 .. base2 .. pass_recp_long, e2 .. base2 .. pass_recp_short}
data.forms["pos_rel_recp_c5"] = { "el" .. i .. base2 .. pass_recp_long, "el" .. i .. base2 .. pass_recp_short}
data.forms["pos_rel_recp_c6"] = { a .. base2 .. pass_recp_long, a .. base2 .. pass_recp_short}
data.forms["pos_rel_recp_c7"] = { "es" .. i .. base2 .. pass_recp_long, "es" .. i .. base2 .. pass_recp_short}
data.forms["pos_rel_recp_c8"] = { "ez" .. i .. base2 .. pass_recp_long, "ez" .. i .. base2 .. pass_recp_short}
data.forms["pos_rel_recp_c9"] = { e2 .. base2 .. pass_recp_long, e2 .. base2 .. pass_recp_short}
data.forms["pos_rel_recp_c10"] = { "ez" .. i .. base2 .. pass_recp_long, "ez" .. i .. base2 .. pass_recp_short}
data.forms["pos_rel_recp_c11"] = { "ol" .. u3 .. base2 .. pass_recp_long, "ol" .. u3 .. base2 .. pass_recp_short}
data.forms["pos_rel_recp_c14"] = { "ob" .. u .. base2 .. pass_recp_long, "ob" .. u .. base2 .. pass_recp_short}
data.forms["pos_rel_recp_c15"] = { "ok" .. u3 .. base2 .. pass_recp_long, "ok" .. u3 .. base2 .. pass_recp_short}
data.forms["pos_rel_recp_c17"] = { "ok" .. u3 .. base2 .. pass_recp_long, "ok" .. u3 .. base2 .. pass_recp_short}
data.forms["pos_par_recp_1sg"] = {"ng" .. i .. base2 .. pass_recp_long, "ng" .. i .. base2 .. pass_recp_short}
data.forms["pos_par_recp_2sg"] = { u2 .. base2 .. pass_recp_long, u2 .. base2 .. pass_recp_short}
data.forms["pos_par_recp_1pl"] = { "s" .. i .. base2 .. pass_recp_long, "s" .. i .. base2 .. pass_recp_short}
data.forms["pos_par_recp_2pl"] = { "n" .. i .. base2 .. pass_recp_long, "n" .. i .. base2 .. pass_recp_short}
data.forms["pos_par_recp_c1"] = { e .. base2 .. pass_recp_long, e .. base2 .. pass_recp_short}
data.forms["pos_par_recp_c2"] = { "b" .. e .. base2 .. pass_recp_long, "b" .. e .. base2 .. pass_recp_short}
data.forms["pos_par_recp_c3"] = { u2 .. base2 .. pass_recp_long, u2 .. base2 .. pass_recp_short}
data.forms["pos_par_recp_c4"] = { i2 .. base2 .. pass_recp_long, i2 .. base2 .. pass_recp_short}
data.forms["pos_par_recp_c5"] = { "l" .. i .. base2 .. pass_recp_long, "l" .. i .. base2 .. pass_recp_short}
data.forms["pos_par_recp_c6"] = { e .. base2 .. pass_recp_long, e .. base2 .. pass_recp_short}
data.forms["pos_par_recp_c7"] = { "s" .. i .. base2 .. pass_recp_long, "s" .. i .. base2 .. pass_recp_short}
data.forms["pos_par_recp_c8"] = { "z" .. i .. base2 .. pass_recp_long, "z" .. i .. base2 .. pass_recp_short}
data.forms["pos_par_recp_c9"] = { i2 .. base2 .. pass_recp_long, i2 .. base2 .. pass_recp_short}
data.forms["pos_par_recp_c10"] = { "z" .. i .. base2 .. pass_recp_long, "z" .. i .. base2 .. pass_recp_short}
data.forms["pos_par_recp_c11"] = { "l" .. u3 .. base2 .. pass_recp_long, "l" .. u3 .. base2 .. pass_recp_short}
data.forms["pos_par_recp_c14"] = { "b" .. u .. base2 .. pass_recp_long, "b" .. u .. base2 .. pass_recp_short}
data.forms["pos_par_recp_c15"] = { "k" .. u3 .. base2 .. pass_recp_long, "k" .. u3 .. base2 .. pass_recp_short}
data.forms["pos_par_recp_c17"] = { "k" .. u3 .. base2 .. pass_recp_long, "k" .. u3 .. base2 .. pass_recp_short}
else
data.forms["pos_abs_recp_1sg"] = {"ng" .. i .. base .. "ile", "ng" .. i .. base .. "ē"}
data.forms["pos_abs_recp_2sg"] = { u2 .. base .. "ile", u2 .. base .. "ē"}
data.forms["pos_abs_recp_1pl"] = { "s" .. i .. base .. "ile", "s" .. i .. base .. "ē"}
data.forms["pos_abs_recp_2pl"] = { "n" .. i .. base .. "ile", "n" .. i .. base .. "ē"}
data.forms["pos_abs_recp_c1"] = { u2 .. base .. "ile", u2 .. base .. "ē"}
data.forms["pos_abs_recp_c2"] = { "b" .. a .. base .. "ile", "b" .. a .. base .. "ē"}
data.forms["pos_abs_recp_c3"] = { u2 .. base .. "ile", u2 .. base .. "ē"}
data.forms["pos_abs_recp_c4"] = { i2 .. base .. "ile", i2 .. base .. "ē"}
data.forms["pos_abs_recp_c5"] = { "l" .. i .. base .. "ile", "l" .. i .. base .. "ē"}
data.forms["pos_abs_recp_c6"] = { a .. base .. "ile", a .. base .. "ē"}
data.forms["pos_abs_recp_c7"] = { "s" .. i .. base .. "ile", "s" .. i .. base .. "ē"}
data.forms["pos_abs_recp_c8"] = { "z" .. i .. base .. "ile", "z" .. i .. base .. "ē"}
data.forms["pos_abs_recp_c9"] = { i2 .. base .. "ile", i2 .. base .. "ē"}
data.forms["pos_abs_recp_c10"] = { "z" .. i .. base .. "ile", "z" .. i .. base .. "ē"}
data.forms["pos_abs_recp_c11"] = { "l" .. u3 .. base .. "ile", "l" .. u3 .. base .. "ē"}
data.forms["pos_abs_recp_c14"] = { "b" .. u .. base .. "ile", "b" .. u .. base .. "ē"}
data.forms["pos_abs_recp_c15"] = { "k" .. u3 .. base .. "ile", "k" .. u3 .. base .. "ē"}
data.forms["pos_abs_recp_c17"] = { "k" .. u3 .. base .. "ile", "k" .. u3 .. base .. "ē"}
data.forms["pos_rel_recp_1sg"] = {"eng" .. i .. base .. "ile", "eng" .. i .. base .. "ē"}
data.forms["pos_rel_recp_2sg"] = { o2 .. base .. "ile", o2 .. base .. "ē"}
data.forms["pos_rel_recp_1pl"] = { "es" .. i .. base .. "ile", "es" .. i .. base .. "ē"}
data.forms["pos_rel_recp_2pl"] = { "en" .. i .. base .. "ile", "en" .. i .. base .. "ē"}
data.forms["pos_rel_recp_c1"] = { o2 .. base .. "ile", o2 .. base .. "ē"}
data.forms["pos_rel_recp_c2"] = { "ab" .. a .. base .. "ile", "ab" .. a .. base .. "ē"}
data.forms["pos_rel_recp_c3"] = { o2 .. base .. "ile", o2 .. base .. "ē"}
data.forms["pos_rel_recp_c4"] = { e2 .. base .. "ile", e2 .. base .. "ē"}
data.forms["pos_rel_recp_c5"] = { "el" .. i .. base .. "ile", "el" .. i .. base .. "ē"}
data.forms["pos_rel_recp_c6"] = { a .. base .. "ile", a .. base .. "ē"}
data.forms["pos_rel_recp_c7"] = { "es" .. i .. base .. "ile", "es" .. i .. base .. "ē"}
data.forms["pos_rel_recp_c8"] = { "ez" .. i .. base .. "ile", "ez" .. i .. base .. "ē"}
data.forms["pos_rel_recp_c9"] = { e2 .. base .. "ile", e2 .. base .. "ē"}
data.forms["pos_rel_recp_c10"] = { "ez" .. i .. base .. "ile", "ez" .. i .. base .. "ē"}
data.forms["pos_rel_recp_c11"] = { "ol" .. u3 .. base .. "ile", "ol" .. u3 .. base .. "ē"}
data.forms["pos_rel_recp_c14"] = { "ob" .. u .. base .. "ile", "ob" .. u .. base .. "ē"}
data.forms["pos_rel_recp_c15"] = { "ok" .. u3 .. base .. "ile", "ok" .. u3 .. base .. "ē"}
data.forms["pos_rel_recp_c17"] = { "ok" .. u3 .. base .. "ile", "ok" .. u3 .. base .. "ē"}
data.forms["pos_par_recp_1sg"] = {"ng" .. i .. base .. "ile", "ng" .. i .. base .. "ē"}
data.forms["pos_par_recp_2sg"] = { u2 .. base .. "ile", u2 .. base .. "ē"}
data.forms["pos_par_recp_1pl"] = { "s" .. i .. base .. "ile", "s" .. i .. base .. "ē"}
data.forms["pos_par_recp_2pl"] = { "n" .. i .. base .. "ile", "n" .. i .. base .. "ē"}
data.forms["pos_par_recp_c1"] = { e .. base .. "ile", e .. base .. "ē"}
data.forms["pos_par_recp_c2"] = { "b" .. e .. base .. "ile", "b" .. e .. base .. "ē"}
data.forms["pos_par_recp_c3"] = { u2 .. base .. "ile", u2 .. base .. "ē"}
data.forms["pos_par_recp_c4"] = { i2 .. base .. "ile", i2 .. base .. "ē"}
data.forms["pos_par_recp_c5"] = { "l" .. i .. base .. "ile", "l" .. i .. base .. "ē"}
data.forms["pos_par_recp_c6"] = { e .. base .. "ile", e .. base .. "ē"}
data.forms["pos_par_recp_c7"] = { "s" .. i .. base .. "ile", "s" .. i .. base .. "ē"}
data.forms["pos_par_recp_c8"] = { "z" .. i .. base .. "ile", "z" .. i .. base .. "ē"}
data.forms["pos_par_recp_c9"] = { i2 .. base .. "ile", i2 .. base .. "ē"}
data.forms["pos_par_recp_c10"] = { "z" .. i .. base .. "ile", "z" .. i .. base .. "ē"}
data.forms["pos_par_recp_c11"] = { "l" .. u3 .. base .. "ile", "l" .. u3 .. base .. "ē"}
data.forms["pos_par_recp_c14"] = { "b" .. u .. base .. "ile", "b" .. u .. base .. "ē"}
data.forms["pos_par_recp_c15"] = { "k" .. u3 .. base .. "ile", "k" .. u3 .. base .. "ē"}
data.forms["pos_par_recp_c17"] = { "k" .. u3 .. base .. "ile", "k" .. u3 .. base .. "ē"}
end
data.forms["neg_abs_recp_1sg"] = {"ang" .. i .. base .. "anga"}
data.forms["neg_abs_recp_2sg"] = { "aw" .. u .. base .. "anga"}
data.forms["neg_abs_recp_1pl"] = { "as" .. i .. base .. "anga"}
data.forms["neg_abs_recp_2pl"] = { "an" .. i .. base .. "anga"}
data.forms["neg_abs_recp_c1"] = { "ak" .. a .. base .. "anga"}
data.forms["neg_abs_recp_c2"] = { "ab" .. a .. base .. "anga"}
data.forms["neg_abs_recp_c3"] = { "aw" .. u .. base .. "anga"}
data.forms["neg_abs_recp_c4"] = { "ay" .. i .. base .. "anga"}
data.forms["neg_abs_recp_c5"] = { "al" .. i .. base .. "anga"}
data.forms["neg_abs_recp_c6"] = { "aw" .. a .. base .. "anga"}
data.forms["neg_abs_recp_c7"] = { "as" .. i .. base .. "anga"}
data.forms["neg_abs_recp_c8"] = { "az" .. i .. base .. "anga"}
data.forms["neg_abs_recp_c9"] = { "ay" .. i .. base .. "anga"}
data.forms["neg_abs_recp_c10"] = { "az" .. i .. base .. "anga"}
data.forms["neg_abs_recp_c11"] = { "al" .. u3 .. base .. "anga"}
data.forms["neg_abs_recp_c14"] = { "ab" .. u .. base .. "anga"}
data.forms["neg_abs_recp_c15"] = { "ak" .. u3 .. base .. "anga"}
data.forms["neg_abs_recp_c17"] = { "ak" .. u3 .. base .. "anga"}
data.forms["neg_rel_recp_1sg"] = {"enging" .. a .. base .. "anga"}
data.forms["neg_rel_recp_2sg"] = { "ong" .. a .. base .. "anga"}
data.forms["neg_rel_recp_1pl"] = { "esing" .. a .. base .. "anga"}
data.forms["neg_rel_recp_2pl"] = { "ening" .. a .. base .. "anga"}
data.forms["neg_rel_recp_c1"] = { "ong" .. a .. base .. "anga"}
data.forms["neg_rel_recp_c2"] = { "abang" .. a .. base .. "anga"}
data.forms["neg_rel_recp_c3"] = { "ong" .. a .. base .. "anga"}
data.forms["neg_rel_recp_c4"] = { "eng" .. a .. base .. "anga"}
data.forms["neg_rel_recp_c5"] = { "eling" .. a .. base .. "anga"}
data.forms["neg_rel_recp_c6"] = { "ang" .. a .. base .. "anga"}
data.forms["neg_rel_recp_c7"] = { "esing" .. a .. base .. "anga"}
data.forms["neg_rel_recp_c8"] = { "ezing" .. a .. base .. "anga"}
data.forms["neg_rel_recp_c9"] = { "eng" .. a .. base .. "anga"}
data.forms["neg_rel_recp_c10"] = { "ezing" .. a .. base .. "anga"}
data.forms["neg_rel_recp_c11"] = { "olung" .. a .. base .. "anga"}
data.forms["neg_rel_recp_c14"] = { "obung" .. a .. base .. "anga"}
data.forms["neg_rel_recp_c15"] = { "okung" .. a .. base .. "anga"}
data.forms["neg_rel_recp_c17"] = { "okung" .. a .. base .. "anga"}
data.forms["neg_par_recp_1sg"] = {"nging" .. a .. base .. "anga"}
data.forms["neg_par_recp_2sg"] = { "ung" .. a .. base .. "anga"}
data.forms["neg_par_recp_1pl"] = { "sing" .. a .. base .. "anga"}
data.forms["neg_par_recp_2pl"] = { "ning" .. a .. base .. "anga"}
data.forms["neg_par_recp_c1"] = { "eng" .. a .. base .. "anga"}
data.forms["neg_par_recp_c2"] = { "beng" .. a .. base .. "anga"}
data.forms["neg_par_recp_c3"] = { "ung" .. a .. base .. "anga"}
data.forms["neg_par_recp_c4"] = { "ing" .. a .. base .. "anga"}
data.forms["neg_par_recp_c5"] = { "ling" .. a .. base .. "anga"}
data.forms["neg_par_recp_c6"] = { "eng" .. a .. base .. "anga"}
data.forms["neg_par_recp_c7"] = { "sing" .. a .. base .. "anga"}
data.forms["neg_par_recp_c8"] = { "zing" .. a .. base .. "anga"}
data.forms["neg_par_recp_c9"] = { "ing" .. a .. base .. "anga"}
data.forms["neg_par_recp_c10"] = { "zing" .. a .. base .. "anga"}
data.forms["neg_par_recp_c11"] = { "lung" .. a .. base .. "anga"}
data.forms["neg_par_recp_c14"] = { "bung" .. a .. base .. "anga"}
data.forms["neg_par_recp_c15"] = { "kung" .. a .. base .. "anga"}
data.forms["neg_par_recp_c17"] = { "kung" .. a .. base .. "anga"}
-- Remote past
data.forms["pos_abs_remp_1sg"] = {"ng" .. al .. base .. "a"}
data.forms["pos_abs_remp_2sg"] = { "w" .. al .. base .. "a"}
data.forms["pos_abs_remp_1pl"] = { "s" .. al .. base .. "a"}
data.forms["pos_abs_remp_2pl"] = { "n" .. al .. base .. "a"}
data.forms["pos_abs_remp_c1"] = { "w" .. al .. base .. "a"}
data.forms["pos_abs_remp_c2"] = { "b" .. al .. base .. "a"}
data.forms["pos_abs_remp_c3"] = { "w" .. al .. base .. "a"}
data.forms["pos_abs_remp_c4"] = { "y" .. al .. base .. "a"}
data.forms["pos_abs_remp_c5"] = { "l" .. al .. base .. "a"}
data.forms["pos_abs_remp_c6"] = { al .. base .. "a"}
data.forms["pos_abs_remp_c7"] = { "s" .. al .. base .. "a"}
data.forms["pos_abs_remp_c8"] = { "z" .. al .. base .. "a"}
data.forms["pos_abs_remp_c9"] = { "y" .. al .. base .. "a"}
data.forms["pos_abs_remp_c10"] = { "z" .. al .. base .. "a"}
data.forms["pos_abs_remp_c11"] = { "l" .. w .. al .. base .. "a"}
data.forms["pos_abs_remp_c14"] = { "b" .. al .. base .. "a"}
data.forms["pos_abs_remp_c15"] = { "k" .. w .. al .. base .. "a"}
data.forms["pos_abs_remp_c17"] = { "k" .. w .. al .. base .. "a"}
data.forms["pos_rel_remp_1sg"] = {"eng" .. al .. base .. "a"}
data.forms["pos_rel_remp_2sg"] = { "ow" .. al .. base .. "a"}
data.forms["pos_rel_remp_1pl"] = { "es" .. al .. base .. "a"}
data.forms["pos_rel_remp_2pl"] = { "en" .. al .. base .. "a"}
data.forms["pos_rel_remp_c1"] = { "ow" .. al .. base .. "a"}
data.forms["pos_rel_remp_c2"] = { "ab" .. al .. base .. "a"}
data.forms["pos_rel_remp_c3"] = { "ow" .. al .. base .. "a"}
data.forms["pos_rel_remp_c4"] = { "ey" .. al .. base .. "a"}
data.forms["pos_rel_remp_c5"] = { "el" .. al .. base .. "a"}
data.forms["pos_rel_remp_c6"] = { al .. base .. "a"}
data.forms["pos_rel_remp_c7"] = { "es" .. al .. base .. "a"}
data.forms["pos_rel_remp_c8"] = { "ez" .. al .. base .. "a"}
data.forms["pos_rel_remp_c9"] = { "ey" .. al .. base .. "a"}
data.forms["pos_rel_remp_c10"] = { "ez" .. al .. base .. "a"}
data.forms["pos_rel_remp_c11"] = { "ol" .. w .. al .. base .. "a"}
data.forms["pos_rel_remp_c14"] = { "ob" .. al .. base .. "a"}
data.forms["pos_rel_remp_c15"] = { "ok" .. w .. al .. base .. "a"}
data.forms["pos_rel_remp_c17"] = { "ok" .. w .. al .. base .. "a"}
data.forms["pos_par_remp_1sg"] = {"ng" .. al .. base .. "a"}
data.forms["pos_par_remp_2sg"] = { "w" .. al .. base .. "a"}
data.forms["pos_par_remp_1pl"] = { "s" .. al .. base .. "a"}
data.forms["pos_par_remp_2pl"] = { "n" .. al .. base .. "a"}
data.forms["pos_par_remp_c1"] = { al .. base .. "a"}
data.forms["pos_par_remp_c2"] = { "b" .. al .. base .. "a"}
data.forms["pos_par_remp_c3"] = { "w" .. al .. base .. "a"}
data.forms["pos_par_remp_c4"] = { "y" .. al .. base .. "a"}
data.forms["pos_par_remp_c5"] = { "l" .. al .. base .. "a"}
data.forms["pos_par_remp_c6"] = { al .. base .. "a"}
data.forms["pos_par_remp_c7"] = { "s" .. al .. base .. "a"}
data.forms["pos_par_remp_c8"] = { "z" .. al .. base .. "a"}
data.forms["pos_par_remp_c9"] = { "y" .. al .. base .. "a"}
data.forms["pos_par_remp_c10"] = { "z" .. al .. base .. "a"}
data.forms["pos_par_remp_c11"] = { "l" .. w .. al .. base .. "a"}
data.forms["pos_par_remp_c14"] = { "b" .. al .. base .. "a"}
data.forms["pos_par_remp_c15"] = { "k" .. w .. al .. base .. "a"}
data.forms["pos_par_remp_c17"] = { "k" .. w .. al .. base .. "a"}
data.forms["neg_abs_remp_1sg"] = data.forms["neg_abs_recp_1sg"]
data.forms["neg_abs_remp_2sg"] = data.forms["neg_abs_recp_2sg"]
data.forms["neg_abs_remp_1pl"] = data.forms["neg_abs_recp_1pl"]
data.forms["neg_abs_remp_2pl"] = data.forms["neg_abs_recp_2pl"]
data.forms["neg_abs_remp_c1"] = data.forms["neg_abs_recp_c1"]
data.forms["neg_abs_remp_c2"] = data.forms["neg_abs_recp_c2"]
data.forms["neg_abs_remp_c3"] = data.forms["neg_abs_recp_c3"]
data.forms["neg_abs_remp_c4"] = data.forms["neg_abs_recp_c4"]
data.forms["neg_abs_remp_c5"] = data.forms["neg_abs_recp_c5"]
data.forms["neg_abs_remp_c6"] = data.forms["neg_abs_recp_c6"]
data.forms["neg_abs_remp_c7"] = data.forms["neg_abs_recp_c7"]
data.forms["neg_abs_remp_c8"] = data.forms["neg_abs_recp_c8"]
data.forms["neg_abs_remp_c9"] = data.forms["neg_abs_recp_c9"]
data.forms["neg_abs_remp_c10"] = data.forms["neg_abs_recp_c10"]
data.forms["neg_abs_remp_c11"] = data.forms["neg_abs_recp_c11"]
data.forms["neg_abs_remp_c14"] = data.forms["neg_abs_recp_c14"]
data.forms["neg_abs_remp_c15"] = data.forms["neg_abs_recp_c15"]
data.forms["neg_abs_remp_c17"] = data.forms["neg_abs_recp_c17"]
data.forms["neg_rel_remp_1sg"] = data.forms["neg_rel_recp_1sg"]
data.forms["neg_rel_remp_2sg"] = data.forms["neg_rel_recp_2sg"]
data.forms["neg_rel_remp_1pl"] = data.forms["neg_rel_recp_1pl"]
data.forms["neg_rel_remp_2pl"] = data.forms["neg_rel_recp_2pl"]
data.forms["neg_rel_remp_c1"] = data.forms["neg_rel_recp_c1"]
data.forms["neg_rel_remp_c2"] = data.forms["neg_rel_recp_c2"]
data.forms["neg_rel_remp_c3"] = data.forms["neg_rel_recp_c3"]
data.forms["neg_rel_remp_c4"] = data.forms["neg_rel_recp_c4"]
data.forms["neg_rel_remp_c5"] = data.forms["neg_rel_recp_c5"]
data.forms["neg_rel_remp_c6"] = data.forms["neg_rel_recp_c6"]
data.forms["neg_rel_remp_c7"] = data.forms["neg_rel_recp_c7"]
data.forms["neg_rel_remp_c8"] = data.forms["neg_rel_recp_c8"]
data.forms["neg_rel_remp_c9"] = data.forms["neg_rel_recp_c9"]
data.forms["neg_rel_remp_c10"] = data.forms["neg_rel_recp_c10"]
data.forms["neg_rel_remp_c11"] = data.forms["neg_rel_recp_c11"]
data.forms["neg_rel_remp_c14"] = data.forms["neg_rel_recp_c14"]
data.forms["neg_rel_remp_c15"] = data.forms["neg_rel_recp_c15"]
data.forms["neg_rel_remp_c17"] = data.forms["neg_rel_recp_c17"]
data.forms["neg_par_remp_1sg"] = data.forms["neg_par_recp_1sg"]
data.forms["neg_par_remp_2sg"] = data.forms["neg_par_recp_2sg"]
data.forms["neg_par_remp_1pl"] = data.forms["neg_par_recp_1pl"]
data.forms["neg_par_remp_2pl"] = data.forms["neg_par_recp_2pl"]
data.forms["neg_par_remp_c1"] = data.forms["neg_par_recp_c1"]
data.forms["neg_par_remp_c2"] = data.forms["neg_par_recp_c2"]
data.forms["neg_par_remp_c3"] = data.forms["neg_par_recp_c3"]
data.forms["neg_par_remp_c4"] = data.forms["neg_par_recp_c4"]
data.forms["neg_par_remp_c5"] = data.forms["neg_par_recp_c5"]
data.forms["neg_par_remp_c6"] = data.forms["neg_par_recp_c6"]
data.forms["neg_par_remp_c7"] = data.forms["neg_par_recp_c7"]
data.forms["neg_par_remp_c8"] = data.forms["neg_par_recp_c8"]
data.forms["neg_par_remp_c9"] = data.forms["neg_par_recp_c9"]
data.forms["neg_par_remp_c10"] = data.forms["neg_par_recp_c10"]
data.forms["neg_par_remp_c11"] = data.forms["neg_par_recp_c11"]
data.forms["neg_par_remp_c14"] = data.forms["neg_par_recp_c14"]
data.forms["neg_par_remp_c15"] = data.forms["neg_par_recp_c15"]
data.forms["neg_par_remp_c17"] = data.forms["neg_par_recp_c17"]
-- Potential
data.forms["pos_abs_potn_1sg"] = {"nging" .. a .. base .. "a"}
data.forms["pos_abs_potn_2sg"] = { "ung" .. a .. base .. "a"}
data.forms["pos_abs_potn_1pl"] = { "sing" .. a .. base .. "a"}
data.forms["pos_abs_potn_2pl"] = { "ning" .. a .. base .. "a"}
data.forms["pos_abs_potn_c1"] = { "ang" .. a .. base .. "a"}
data.forms["pos_abs_potn_c2"] = { "bang" .. a .. base .. "a"}
data.forms["pos_abs_potn_c3"] = { "ung" .. a .. base .. "a"}
data.forms["pos_abs_potn_c4"] = { "ing" .. a .. base .. "a"}
data.forms["pos_abs_potn_c5"] = { "ling" .. a .. base .. "a"}
data.forms["pos_abs_potn_c6"] = { "ang" .. a .. base .. "a"}
data.forms["pos_abs_potn_c7"] = { "sing" .. a .. base .. "a"}
data.forms["pos_abs_potn_c8"] = { "zing" .. a .. base .. "a"}
data.forms["pos_abs_potn_c9"] = { "ing" .. a .. base .. "a"}
data.forms["pos_abs_potn_c10"] = { "zing" .. a .. base .. "a"}
data.forms["pos_abs_potn_c11"] = { "lung" .. a .. base .. "a"}
data.forms["pos_abs_potn_c14"] = { "bung" .. a .. base .. "a"}
data.forms["pos_abs_potn_c15"] = { "kung" .. a .. base .. "a"}
data.forms["pos_abs_potn_c17"] = { "kung" .. a .. base .. "a"}
data.forms["pos_par_potn_1sg"] = {"nging" .. a .. base .. "a"}
data.forms["pos_par_potn_2sg"] = { "ung" .. a .. base .. "a"}
data.forms["pos_par_potn_1pl"] = { "sing" .. a .. base .. "a"}
data.forms["pos_par_potn_2pl"] = { "ning" .. a .. base .. "a"}
data.forms["pos_par_potn_c1"] = { "eng" .. a .. base .. "a"}
data.forms["pos_par_potn_c2"] = { "beng" .. a .. base .. "a"}
data.forms["pos_par_potn_c3"] = { "ung" .. a .. base .. "a"}
data.forms["pos_par_potn_c4"] = { "ing" .. a .. base .. "a"}
data.forms["pos_par_potn_c5"] = { "ling" .. a .. base .. "a"}
data.forms["pos_par_potn_c6"] = { "eng" .. a .. base .. "a"}
data.forms["pos_par_potn_c7"] = { "sing" .. a .. base .. "a"}
data.forms["pos_par_potn_c8"] = { "zing" .. a .. base .. "a"}
data.forms["pos_par_potn_c9"] = { "ing" .. a .. base .. "a"}
data.forms["pos_par_potn_c10"] = { "zing" .. a .. base .. "a"}
data.forms["pos_par_potn_c11"] = { "lung" .. a .. base .. "a"}
data.forms["pos_par_potn_c14"] = { "bung" .. a .. base .. "a"}
data.forms["pos_par_potn_c15"] = { "kung" .. a .. base .. "a"}
data.forms["pos_par_potn_c17"] = { "kung" .. a .. base .. "a"}
data.forms["neg_abs_potn_1sg"] = {"nging" .. e .. base .. "e"}
data.forms["neg_abs_potn_2sg"] = { "ung" .. e .. base .. "e"}
data.forms["neg_abs_potn_1pl"] = { "sing" .. e .. base .. "e"}
data.forms["neg_abs_potn_2pl"] = { "ning" .. e .. base .. "e"}
data.forms["neg_abs_potn_c1"] = { "ang" .. e .. base .. "e"}
data.forms["neg_abs_potn_c2"] = { "bang" .. e .. base .. "e"}
data.forms["neg_abs_potn_c3"] = { "ung" .. e .. base .. "e"}
data.forms["neg_abs_potn_c4"] = { "ing" .. e .. base .. "e"}
data.forms["neg_abs_potn_c5"] = { "ling" .. e .. base .. "e"}
data.forms["neg_abs_potn_c6"] = { "ang" .. e .. base .. "e"}
data.forms["neg_abs_potn_c7"] = { "sing" .. e .. base .. "e"}
data.forms["neg_abs_potn_c8"] = { "zing" .. e .. base .. "e"}
data.forms["neg_abs_potn_c9"] = { "ing" .. e .. base .. "e"}
data.forms["neg_abs_potn_c10"] = { "zing" .. e .. base .. "e"}
data.forms["neg_abs_potn_c11"] = { "lung" .. e .. base .. "e"}
data.forms["neg_abs_potn_c14"] = { "bung" .. e .. base .. "e"}
data.forms["neg_abs_potn_c15"] = { "kung" .. e .. base .. "e"}
data.forms["neg_abs_potn_c17"] = { "kung" .. e .. base .. "e"}
data.forms["neg_par_potn_1sg"] = {"nging" .. e .. base .. "e"}
data.forms["neg_par_potn_2sg"] = { "ung" .. e .. base .. "e"}
data.forms["neg_par_potn_1pl"] = { "sing" .. e .. base .. "e"}
data.forms["neg_par_potn_2pl"] = { "ning" .. e .. base .. "e"}
data.forms["neg_par_potn_c1"] = { "eng" .. e .. base .. "e"}
data.forms["neg_par_potn_c2"] = { "beng" .. e .. base .. "e"}
data.forms["neg_par_potn_c3"] = { "ung" .. e .. base .. "e"}
data.forms["neg_par_potn_c4"] = { "ing" .. e .. base .. "e"}
data.forms["neg_par_potn_c5"] = { "ling" .. e .. base .. "e"}
data.forms["neg_par_potn_c6"] = { "eng" .. e .. base .. "e"}
data.forms["neg_par_potn_c7"] = { "sing" .. e .. base .. "e"}
data.forms["neg_par_potn_c8"] = { "zing" .. e .. base .. "e"}
data.forms["neg_par_potn_c9"] = { "ing" .. e .. base .. "e"}
data.forms["neg_par_potn_c10"] = { "zing" .. e .. base .. "e"}
data.forms["neg_par_potn_c11"] = { "lung" .. e .. base .. "e"}
data.forms["neg_par_potn_c14"] = { "bung" .. e .. base .. "e"}
data.forms["neg_par_potn_c15"] = { "kung" .. e .. base .. "e"}
data.forms["neg_par_potn_c17"] = { "kung" .. e .. base .. "e"}
-- Immediate future
data.forms["pos_abs_immf_1sg"] = {"ngizo" .. ku .. base .. "a"}
data.forms["pos_abs_immf_2sg"] = { "uzo" .. ku .. base .. "a"}
data.forms["pos_abs_immf_1pl"] = { "sizo" .. ku .. base .. "a"}
data.forms["pos_abs_immf_2pl"] = { "nizo" .. ku .. base .. "a"}
data.forms["pos_abs_immf_c1"] = { "uzo" .. ku .. base .. "a"}
data.forms["pos_abs_immf_c2"] = { "bazo" .. ku .. base .. "a"}
data.forms["pos_abs_immf_c3"] = { "uzo" .. ku .. base .. "a"}
data.forms["pos_abs_immf_c4"] = { "izo" .. ku .. base .. "a"}
data.forms["pos_abs_immf_c5"] = { "lizo" .. ku .. base .. "a"}
data.forms["pos_abs_immf_c6"] = { "azo" .. ku .. base .. "a"}
data.forms["pos_abs_immf_c7"] = { "sizo" .. ku .. base .. "a"}
data.forms["pos_abs_immf_c8"] = { "zizo" .. ku .. base .. "a"}
data.forms["pos_abs_immf_c9"] = { "izo" .. ku .. base .. "a"}
data.forms["pos_abs_immf_c10"] = { "zizo" .. ku .. base .. "a"}
data.forms["pos_abs_immf_c11"] = { "luzo" .. ku .. base .. "a"}
data.forms["pos_abs_immf_c14"] = { "buzo" .. ku .. base .. "a"}
data.forms["pos_abs_immf_c15"] = { "kuzo" .. ku .. base .. "a"}
data.forms["pos_abs_immf_c17"] = { "kuzo" .. ku .. base .. "a"}
data.forms["pos_rel_immf_1sg"] = {"engizo" .. ku .. base .. "a"}
data.forms["pos_rel_immf_2sg"] = { "ozo" .. ku .. base .. "a"}
data.forms["pos_rel_immf_1pl"] = { "esizo" .. ku .. base .. "a"}
data.forms["pos_rel_immf_2pl"] = { "enizo" .. ku .. base .. "a"}
data.forms["pos_rel_immf_c1"] = { "ozo" .. ku .. base .. "a"}
data.forms["pos_rel_immf_c2"] = { "abazo" .. ku .. base .. "a"}
data.forms["pos_rel_immf_c3"] = { "ozo" .. ku .. base .. "a"}
data.forms["pos_rel_immf_c4"] = { "ezo" .. ku .. base .. "a"}
data.forms["pos_rel_immf_c5"] = { "elizo" .. ku .. base .. "a"}
data.forms["pos_rel_immf_c6"] = { "azo" .. ku .. base .. "a"}
data.forms["pos_rel_immf_c7"] = { "esizo" .. ku .. base .. "a"}
data.forms["pos_rel_immf_c8"] = { "ezizo" .. ku .. base .. "a"}
data.forms["pos_rel_immf_c9"] = { "ezo" .. ku .. base .. "a"}
data.forms["pos_rel_immf_c10"] = { "ezizo" .. ku .. base .. "a"}
data.forms["pos_rel_immf_c11"] = { "oluzo" .. ku .. base .. "a"}
data.forms["pos_rel_immf_c14"] = { "obuzo" .. ku .. base .. "a"}
data.forms["pos_rel_immf_c15"] = { "okuzo" .. ku .. base .. "a"}
data.forms["pos_rel_immf_c17"] = { "okuzo" .. ku .. base .. "a"}
data.forms["pos_par_immf_1sg"] = {"ngizo" .. ku .. base .. "a"}
data.forms["pos_par_immf_2sg"] = { "uzo" .. ku .. base .. "a"}
data.forms["pos_par_immf_1pl"] = { "sizo" .. ku .. base .. "a"}
data.forms["pos_par_immf_2pl"] = { "nizo" .. ku .. base .. "a"}
data.forms["pos_par_immf_c1"] = { "ezo" .. ku .. base .. "a"}
data.forms["pos_par_immf_c2"] = { "bezo" .. ku .. base .. "a"}
data.forms["pos_par_immf_c3"] = { "uzo" .. ku .. base .. "a"}
data.forms["pos_par_immf_c4"] = { "izo" .. ku .. base .. "a"}
data.forms["pos_par_immf_c5"] = { "lizo" .. ku .. base .. "a"}
data.forms["pos_par_immf_c6"] = { "ezo" .. ku .. base .. "a"}
data.forms["pos_par_immf_c7"] = { "sizo" .. ku .. base .. "a"}
data.forms["pos_par_immf_c8"] = { "zizo" .. ku .. base .. "a"}
data.forms["pos_par_immf_c9"] = { "izo" .. ku .. base .. "a"}
data.forms["pos_par_immf_c10"] = { "zizo" .. ku .. base .. "a"}
data.forms["pos_par_immf_c11"] = { "luzo" .. ku .. base .. "a"}
data.forms["pos_par_immf_c14"] = { "buzo" .. ku .. base .. "a"}
data.forms["pos_par_immf_c15"] = { "kuzo" .. ku .. base .. "a"}
data.forms["pos_par_immf_c17"] = { "kuzo" .. ku .. base .. "a"}
data.forms["neg_abs_immf_1sg"] = {"angizu" .. ku .. base .. "a"}
data.forms["neg_abs_immf_2sg"] = { "awuzu" .. ku .. base .. "a"}
data.forms["neg_abs_immf_1pl"] = { "asizu" .. ku .. base .. "a"}
data.forms["neg_abs_immf_2pl"] = { "anizu" .. ku .. base .. "a"}
data.forms["neg_abs_immf_c1"] = { "akazu" .. ku .. base .. "a"}
data.forms["neg_abs_immf_c2"] = { "abazu" .. ku .. base .. "a"}
data.forms["neg_abs_immf_c3"] = { "awuzu" .. ku .. base .. "a"}
data.forms["neg_abs_immf_c4"] = { "ayizu" .. ku .. base .. "a"}
data.forms["neg_abs_immf_c5"] = { "alizu" .. ku .. base .. "a"}
data.forms["neg_abs_immf_c6"] = { "awazu" .. ku .. base .. "a"}
data.forms["neg_abs_immf_c7"] = { "asizu" .. ku .. base .. "a"}
data.forms["neg_abs_immf_c8"] = { "azizu" .. ku .. base .. "a"}
data.forms["neg_abs_immf_c9"] = { "ayizu" .. ku .. base .. "a"}
data.forms["neg_abs_immf_c10"] = { "azizu" .. ku .. base .. "a"}
data.forms["neg_abs_immf_c11"] = { "aluzu" .. ku .. base .. "a"}
data.forms["neg_abs_immf_c14"] = { "abuzu" .. ku .. base .. "a"}
data.forms["neg_abs_immf_c15"] = { "akuzu" .. ku .. base .. "a"}
data.forms["neg_abs_immf_c17"] = { "akuzu" .. ku .. base .. "a"}
data.forms["neg_par_immf_1sg"] = {"ngingezu" .. ku .. base .. "a"}
data.forms["neg_par_immf_2sg"] = { "ungezu" .. ku .. base .. "a"}
data.forms["neg_par_immf_1pl"] = { "singezu" .. ku .. base .. "a"}
data.forms["neg_par_immf_2pl"] = { "ningezu" .. ku .. base .. "a"}
data.forms["neg_par_immf_c1"] = { "engezu" .. ku .. base .. "a"}
data.forms["neg_par_immf_c2"] = { "bengezu" .. ku .. base .. "a"}
data.forms["neg_par_immf_c3"] = { "ungezu" .. ku .. base .. "a"}
data.forms["neg_par_immf_c4"] = { "ingezu" .. ku .. base .. "a"}
data.forms["neg_par_immf_c5"] = { "lingezu" .. ku .. base .. "a"}
data.forms["neg_par_immf_c6"] = { "engezu" .. ku .. base .. "a"}
data.forms["neg_par_immf_c7"] = { "singezu" .. ku .. base .. "a"}
data.forms["neg_par_immf_c8"] = { "zingezu" .. ku .. base .. "a"}
data.forms["neg_par_immf_c9"] = { "ingezu" .. ku .. base .. "a"}
data.forms["neg_par_immf_c10"] = { "zingezu" .. ku .. base .. "a"}
data.forms["neg_par_immf_c11"] = { "lungezu" .. ku .. base .. "a"}
data.forms["neg_par_immf_c14"] = { "bungezu" .. ku .. base .. "a"}
data.forms["neg_par_immf_c15"] = { "kungezu" .. ku .. base .. "a"}
data.forms["neg_par_immf_c17"] = { "kungezu" .. ku .. base .. "a"}
-- Remote future
data.forms["pos_abs_remf_1sg"] = {"ngiyo" .. ku .. base .. "a"}
data.forms["pos_abs_remf_2sg"] = { "uyo" .. ku .. base .. "a"}
data.forms["pos_abs_remf_1pl"] = { "siyo" .. ku .. base .. "a"}
data.forms["pos_abs_remf_2pl"] = { "niyo" .. ku .. base .. "a"}
data.forms["pos_abs_remf_c1"] = { "uyo" .. ku .. base .. "a"}
data.forms["pos_abs_remf_c2"] = { "bayo" .. ku .. base .. "a"}
data.forms["pos_abs_remf_c3"] = { "uyo" .. ku .. base .. "a"}
data.forms["pos_abs_remf_c4"] = { "iyo" .. ku .. base .. "a"}
data.forms["pos_abs_remf_c5"] = { "liyo" .. ku .. base .. "a"}
data.forms["pos_abs_remf_c6"] = { "ayo" .. ku .. base .. "a"}
data.forms["pos_abs_remf_c7"] = { "siyo" .. ku .. base .. "a"}
data.forms["pos_abs_remf_c8"] = { "ziyo" .. ku .. base .. "a"}
data.forms["pos_abs_remf_c9"] = { "iyo" .. ku .. base .. "a"}
data.forms["pos_abs_remf_c10"] = { "ziyo" .. ku .. base .. "a"}
data.forms["pos_abs_remf_c11"] = { "luyo" .. ku .. base .. "a"}
data.forms["pos_abs_remf_c14"] = { "buyo" .. ku .. base .. "a"}
data.forms["pos_abs_remf_c15"] = { "kuyo" .. ku .. base .. "a"}
data.forms["pos_abs_remf_c17"] = { "kuyo" .. ku .. base .. "a"}
data.forms["pos_rel_remf_1sg"] = {"engiyo" .. ku .. base .. "a"}
data.forms["pos_rel_remf_2sg"] = { "oyo" .. ku .. base .. "a"}
data.forms["pos_rel_remf_1pl"] = { "esiyo" .. ku .. base .. "a"}
data.forms["pos_rel_remf_2pl"] = { "eniyo" .. ku .. base .. "a"}
data.forms["pos_rel_remf_c1"] = { "oyo" .. ku .. base .. "a"}
data.forms["pos_rel_remf_c2"] = { "abayo" .. ku .. base .. "a"}
data.forms["pos_rel_remf_c3"] = { "oyo" .. ku .. base .. "a"}
data.forms["pos_rel_remf_c4"] = { "eyo" .. ku .. base .. "a"}
data.forms["pos_rel_remf_c5"] = { "eliyo" .. ku .. base .. "a"}
data.forms["pos_rel_remf_c6"] = { "ayo" .. ku .. base .. "a"}
data.forms["pos_rel_remf_c7"] = { "esiyo" .. ku .. base .. "a"}
data.forms["pos_rel_remf_c8"] = { "eziyo" .. ku .. base .. "a"}
data.forms["pos_rel_remf_c9"] = { "eyo" .. ku .. base .. "a"}
data.forms["pos_rel_remf_c10"] = { "eziyo" .. ku .. base .. "a"}
data.forms["pos_rel_remf_c11"] = { "oluyo" .. ku .. base .. "a"}
data.forms["pos_rel_remf_c14"] = { "obuyo" .. ku .. base .. "a"}
data.forms["pos_rel_remf_c15"] = { "okuyo" .. ku .. base .. "a"}
data.forms["pos_rel_remf_c17"] = { "okuyo" .. ku .. base .. "a"}
data.forms["pos_par_remf_1sg"] = {"ngiyo" .. ku .. base .. "a"}
data.forms["pos_par_remf_2sg"] = { "uyo" .. ku .. base .. "a"}
data.forms["pos_par_remf_1pl"] = { "siyo" .. ku .. base .. "a"}
data.forms["pos_par_remf_2pl"] = { "niyo" .. ku .. base .. "a"}
data.forms["pos_par_remf_c1"] = { "eyo" .. ku .. base .. "a"}
data.forms["pos_par_remf_c2"] = { "beyo" .. ku .. base .. "a"}
data.forms["pos_par_remf_c3"] = { "uyo" .. ku .. base .. "a"}
data.forms["pos_par_remf_c4"] = { "iyo" .. ku .. base .. "a"}
data.forms["pos_par_remf_c5"] = { "liyo" .. ku .. base .. "a"}
data.forms["pos_par_remf_c6"] = { "eyo" .. ku .. base .. "a"}
data.forms["pos_par_remf_c7"] = { "siyo" .. ku .. base .. "a"}
data.forms["pos_par_remf_c8"] = { "ziyo" .. ku .. base .. "a"}
data.forms["pos_par_remf_c9"] = { "iyo" .. ku .. base .. "a"}
data.forms["pos_par_remf_c10"] = { "ziyo" .. ku .. base .. "a"}
data.forms["pos_par_remf_c11"] = { "luyo" .. ku .. base .. "a"}
data.forms["pos_par_remf_c14"] = { "buyo" .. ku .. base .. "a"}
data.forms["pos_par_remf_c15"] = { "kuyo" .. ku .. base .. "a"}
data.forms["pos_par_remf_c17"] = { "kuyo" .. ku .. base .. "a"}
data.forms["neg_abs_remf_1sg"] = {"angiyu" .. ku .. base .. "a"}
data.forms["neg_abs_remf_2sg"] = { "awuyu" .. ku .. base .. "a"}
data.forms["neg_abs_remf_1pl"] = { "asiyu" .. ku .. base .. "a"}
data.forms["neg_abs_remf_2pl"] = { "aniyu" .. ku .. base .. "a"}
data.forms["neg_abs_remf_c1"] = { "akayu" .. ku .. base .. "a"}
data.forms["neg_abs_remf_c2"] = { "abayu" .. ku .. base .. "a"}
data.forms["neg_abs_remf_c3"] = { "awuyu" .. ku .. base .. "a"}
data.forms["neg_abs_remf_c4"] = { "ayiyu" .. ku .. base .. "a"}
data.forms["neg_abs_remf_c5"] = { "aliyu" .. ku .. base .. "a"}
data.forms["neg_abs_remf_c6"] = { "awayu" .. ku .. base .. "a"}
data.forms["neg_abs_remf_c7"] = { "asiyu" .. ku .. base .. "a"}
data.forms["neg_abs_remf_c8"] = { "aziyu" .. ku .. base .. "a"}
data.forms["neg_abs_remf_c9"] = { "ayiyu" .. ku .. base .. "a"}
data.forms["neg_abs_remf_c10"] = { "aziyu" .. ku .. base .. "a"}
data.forms["neg_abs_remf_c11"] = { "aluyu" .. ku .. base .. "a"}
data.forms["neg_abs_remf_c14"] = { "abuyu" .. ku .. base .. "a"}
data.forms["neg_abs_remf_c15"] = { "akuyu" .. ku .. base .. "a"}
data.forms["neg_abs_remf_c17"] = { "akuyu" .. ku .. base .. "a"}
data.forms["neg_par_remf_1sg"] = {"ngingeyu" .. ku .. base .. "a"}
data.forms["neg_par_remf_2sg"] = { "ungeyu" .. ku .. base .. "a"}
data.forms["neg_par_remf_1pl"] = { "singeyu" .. ku .. base .. "a"}
data.forms["neg_par_remf_2pl"] = { "ningeyu" .. ku .. base .. "a"}
data.forms["neg_par_remf_c1"] = { "engeyu" .. ku .. base .. "a"}
data.forms["neg_par_remf_c2"] = { "bengeyu" .. ku .. base .. "a"}
data.forms["neg_par_remf_c3"] = { "ungeyu" .. ku .. base .. "a"}
data.forms["neg_par_remf_c4"] = { "ingeyu" .. ku .. base .. "a"}
data.forms["neg_par_remf_c5"] = { "lingeyu" .. ku .. base .. "a"}
data.forms["neg_par_remf_c6"] = { "engeyu" .. ku .. base .. "a"}
data.forms["neg_par_remf_c7"] = { "singeyu" .. ku .. base .. "a"}
data.forms["neg_par_remf_c8"] = { "zingeyu" .. ku .. base .. "a"}
data.forms["neg_par_remf_c9"] = { "ingeyu" .. ku .. base .. "a"}
data.forms["neg_par_remf_c10"] = { "zingeyu" .. ku .. base .. "a"}
data.forms["neg_par_remf_c11"] = { "lungeyu" .. ku .. base .. "a"}
data.forms["neg_par_remf_c14"] = { "bungeyu" .. ku .. base .. "a"}
data.forms["neg_par_remf_c15"] = { "kungeyu" .. ku .. base .. "a"}
data.forms["neg_par_remf_c17"] = { "kungeyu" .. ku .. base .. "a"}
-- Present subjunctive
data.forms["pos_pres_subj_1sg"] = {"ng" .. i .. base .. "e"}
data.forms["pos_pres_subj_2sg"] = { u2 .. base .. "e"}
data.forms["pos_pres_subj_1pl"] = { "s" .. i .. base .. "e"}
data.forms["pos_pres_subj_2pl"] = { "n" .. i .. base .. "e"}
data.forms["pos_pres_subj_c1"] = { a .. base .. "e"}
data.forms["pos_pres_subj_c2"] = { "b" .. a .. base .. "e"}
data.forms["pos_pres_subj_c3"] = { u2 .. base .. "e"}
data.forms["pos_pres_subj_c4"] = { i2 .. base .. "e"}
data.forms["pos_pres_subj_c5"] = { "l" .. i .. base .. "e"}
data.forms["pos_pres_subj_c6"] = { a .. base .. "e"}
data.forms["pos_pres_subj_c7"] = { "s" .. i .. base .. "e"}
data.forms["pos_pres_subj_c8"] = { "z" .. i .. base .. "e"}
data.forms["pos_pres_subj_c9"] = { i2 .. base .. "e"}
data.forms["pos_pres_subj_c10"] = { "z" .. i .. base .. "e"}
data.forms["pos_pres_subj_c11"] = { "l" .. u3 .. base .. "e"}
data.forms["pos_pres_subj_c14"] = { "b" .. u .. base .. "e"}
data.forms["pos_pres_subj_c15"] = { "k" .. u3 .. base .. "e"}
data.forms["pos_pres_subj_c17"] = { "k" .. u3 .. base .. "e"}
data.forms["neg_pres_subj_1sg"] = {"nging" .. a .. base .. neg}
data.forms["neg_pres_subj_2sg"] = { "ung" .. a .. base .. neg}
data.forms["neg_pres_subj_1pl"] = { "sing" .. a .. base .. neg}
data.forms["neg_pres_subj_2pl"] = { "ning" .. a .. base .. neg}
data.forms["neg_pres_subj_c1"] = { "ang" .. a .. base .. neg}
data.forms["neg_pres_subj_c2"] = { "bang" .. a .. base .. neg}
data.forms["neg_pres_subj_c3"] = { "ung" .. a .. base .. neg}
data.forms["neg_pres_subj_c4"] = { "ing" .. a .. base .. neg}
data.forms["neg_pres_subj_c5"] = { "ling" .. a .. base .. neg}
data.forms["neg_pres_subj_c6"] = { "ang" .. a .. base .. neg}
data.forms["neg_pres_subj_c7"] = { "sing" .. a .. base .. neg}
data.forms["neg_pres_subj_c8"] = { "zing" .. a .. base .. neg}
data.forms["neg_pres_subj_c9"] = { "ing" .. a .. base .. neg}
data.forms["neg_pres_subj_c10"] = { "zing" .. a .. base .. neg}
data.forms["neg_pres_subj_c11"] = { "lung" .. a .. base .. neg}
data.forms["neg_pres_subj_c14"] = { "bung" .. a .. base .. neg}
data.forms["neg_pres_subj_c15"] = { "kung" .. a .. base .. neg}
data.forms["neg_pres_subj_c17"] = { "kung" .. a .. base .. neg}
-- Past subjunctive
data.forms["pos_past_subj_1sg"] = {"ng" .. a .. base .. "a"}
data.forms["pos_past_subj_2sg"] = { "w" .. a .. base .. "a"}
data.forms["pos_past_subj_1pl"] = { "s" .. a .. base .. "a"}
data.forms["pos_past_subj_2pl"] = { "n" .. a .. base .. "a"}
data.forms["pos_past_subj_c1"] = { "w" .. a .. base .. "a"}
data.forms["pos_past_subj_c2"] = { "b" .. a .. base .. "a"}
data.forms["pos_past_subj_c3"] = { "w" .. a .. base .. "a"}
data.forms["pos_past_subj_c4"] = { "y" .. a .. base .. "a"}
data.forms["pos_past_subj_c5"] = { "l" .. a .. base .. "a"}
data.forms["pos_past_subj_c6"] = { a .. base .. "a"}
data.forms["pos_past_subj_c7"] = { "s" .. a .. base .. "a"}
data.forms["pos_past_subj_c8"] = { "z" .. a .. base .. "a"}
data.forms["pos_past_subj_c9"] = { "y" .. a .. base .. "a"}
data.forms["pos_past_subj_c10"] = { "z" .. a .. base .. "a"}
data.forms["pos_past_subj_c11"] = { "l" .. w .. a .. base .. "a"}
data.forms["pos_past_subj_c14"] = { "b" .. a .. base .. "a"}
data.forms["pos_past_subj_c15"] = { "k" .. w .. a .. base .. "a"}
data.forms["pos_past_subj_c17"] = { "k" .. w .. a .. base .. "a"}
data.forms["neg_past_subj_1sg"] = {"ngang" .. a .. base .. "a", "ang" .. a .. base .. "a", "angang" .. a .. base .. "a"}
data.forms["neg_past_subj_2sg"] = { "wang" .. a .. base .. "a", "aw" .. a .. base .. "a", "awang" .. a .. base .. "a"}
data.forms["neg_past_subj_1pl"] = { "sang" .. a .. base .. "a", "as" .. a .. base .. "a", "asang" .. a .. base .. "a"}
data.forms["neg_past_subj_2pl"] = { "nang" .. a .. base .. "a", "an" .. a .. base .. "a", "anang" .. a .. base .. "a"}
data.forms["neg_past_subj_c1"] = { "wang" .. a .. base .. "a", "ak" .. a .. base .. "a", "akang" .. a .. base .. "a"}
data.forms["neg_past_subj_c2"] = { "bang" .. a .. base .. "a", "ab" .. a .. base .. "a", "abang" .. a .. base .. "a"}
data.forms["neg_past_subj_c3"] = { "wang" .. a .. base .. "a", "aw" .. a .. base .. "a", "awang" .. a .. base .. "a"}
data.forms["neg_past_subj_c4"] = { "yang" .. a .. base .. "a", "ay" .. a .. base .. "a", "ayang" .. a .. base .. "a"}
data.forms["neg_past_subj_c5"] = { "lang" .. a .. base .. "a", "al" .. a .. base .. "a", "alang" .. a .. base .. "a"}
data.forms["neg_past_subj_c6"] = { "ang" .. a .. base .. "a", "aw" .. a .. base .. "a", "awang" .. a .. base .. "a"}
data.forms["neg_past_subj_c7"] = { "sang" .. a .. base .. "a", "as" .. a .. base .. "a", "asang" .. a .. base .. "a"}
data.forms["neg_past_subj_c8"] = { "zang" .. a .. base .. "a", "az" .. a .. base .. "a", "azang" .. a .. base .. "a"}
data.forms["neg_past_subj_c9"] = { "yang" .. a .. base .. "a", "ay" .. a .. base .. "a", "ayang" .. a .. base .. "a"}
data.forms["neg_past_subj_c10"] = { "zang" .. a .. base .. "a", "az" .. a .. base .. "a", "azang" .. a .. base .. "a"}
data.forms["neg_past_subj_c11"] = { "lwang" .. a .. base .. "a", "al" .. w .. a .. base .. "a", "alwang" .. a .. base .. "a"}
data.forms["neg_past_subj_c14"] = { "bang" .. a .. base .. "a", "ab" .. a .. base .. "a", "abang" .. a .. base .. "a"}
data.forms["neg_past_subj_c15"] = { "kwang" .. a .. base .. "a", "ak" .. w .. a .. base .. "a", "akwang" .. a .. base .. "a"}
data.forms["neg_past_subj_c17"] = { "kwang" .. a .. base .. "a", "ak" .. w .. a .. base .. "a", "akwang" .. a .. base .. "a"}
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 = {}
for key, subform in ipairs(form) do
table.insert(ret, m_links.full_link({lang = lang, term = subform}))
end
return table.concat(ret, ", ")
end
local names = {
["inf"] = "infinitive",
["impr"] = "imperative",
["pres"] = "present",
["recp"] = "recent past",
["remp"] = "remote past",
["potn"] = "potential",
["immf"] = "immediate future",
["remf"] = "remote future",
["pres_subj"] = "present subjunctive",
["past_subj"] = "past subjunctive",
["pos"] = "positive",
["pos_abs"] = "positive absolute",
["pos_rel"] = "positive relative",
["pos_par"] = "positive participial",
["neg"] = "negative",
["neg_abs"] = "negative absolute",
["neg_rel"] = "negative relative",
["neg_par"] = "negative participial",
["simp"] = "simple",
["objc"] = "+ object concord",
["sg"] = "singular",
["1sg"] = "1st singular",
["2sg"] = "2nd singular",
["pl"] = "plural",
["1pl"] = "1st plural",
["2pl"] = "2nd plural",
["c1"] = "class 1",
["c2"] = "class 2",
["c3"] = "class 3",
["c4"] = "class 4",
["c5"] = "class 5",
["c6"] = "class 6",
["c7"] = "class 7",
["c8"] = "class 8",
["c9"] = "class 9",
["c10"] = "class 10",
["c11"] = "class 11",
["c14"] = "class 14",
["c15"] = "class 15",
["c17"] = "class 17",
}
local classes = {"1sg", "2sg", "1pl", "2pl", "c1", "c2", "c3", "c4", "c5", "c6", "c7", "c8", "c9", "c10", "c11", "c14", "c15", "c17"}
local numbers = {"sg", "pl"}
local rows = {"inf", "impr", "pres", "recp", "remp", "potn", "immf", "remf", "pres_subj", "past_subj"}
local cols_rel = {"pos_abs", "pos_rel", "pos_par", "neg_abs", "neg_rel", "neg_par"}
local cols_norel = {"pos", "neg"}
local cols_impr = {"simp", "objc"}
local maxcols = 0
for _, row in ipairs(rows) do
maxcols = math.max(maxcols, #row)
end
local wikicode = {}
table.insert(wikicode, "{| class=\"wikitable inflection-table vsSwitcher vsToggleCategory-inflection\" style=\"border-style: double; border-width: 3px; margin: 0;\"")
table.insert(wikicode, "|-")
table.insert(wikicode, "! class=\"vsToggleElement\" style=\"background: #CCC; text-align: left;\" colspan=\"" .. tostring(maxcols + 1) .. "\" | {{{info}}}")
table.insert(wikicode, "|- class=\"vsShow\"")
table.insert(wikicode, "! style=\"min-width: 8em;\" |" .. mw.getContentLanguage():ucfirst(names["inf"]))
table.insert(wikicode, "| style=\"min-width: 12em;\" | {{{pos_inf}}}")
for _, row in ipairs(rows) do
local cols = cols_rel
if row == "inf" or row == "pres_subj" or row == "past_subj" then
cols = cols_norel
elseif row == "impr" then
cols = cols_impr
end
if row ~= "inf" then
table.insert(wikicode, "|- class=\"vsHide\"")
table.insert(wikicode, "|")
table.insert(wikicode, "! colspan=\"" .. tostring(#cols) .. "\" | " .. mw.getContentLanguage():ucfirst(names[row]))
end
table.insert(wikicode, "|- class=\"vsHide\"")
table.insert(wikicode, "| style=\"min-width: 8em;\" |")
for _, col in ipairs(cols) do
table.insert(wikicode, "! style=\"min-width: 12em;\" | " .. mw.getContentLanguage():ucfirst(names[col]))
end
for _, class in ipairs(row == "inf" and {"inf"} or row == "impr" and numbers or classes) do
table.insert(wikicode, "|- class=\"vsHide\"")
table.insert(wikicode, "! " .. mw.getContentLanguage():ucfirst(names[class]))
for _, col in ipairs(cols) do
table.insert(wikicode, "| {{{" .. col .. "_" .. row .. (row == "inf" and "" or "_" .. class) .. "}}}")
end
end
end
table.insert(wikicode, "|}")
wikicode = table.concat(wikicode, "\n")
return mw.ustring.gsub(wikicode, "{{{([a-z0-9_]+)}}}", repl)
end
function export.derived_verbs(frame)
local labels = {
["appl"] = "applicative",
["caus"] = "causative",
["dim"] = "diminutive",
["intn"] = "intensive",
["neut"] = "neuter-passive",
["pasv"] = "passive",
["pfv"] = "perfective",
["reci"] = "reciprocal",
["stat"] = "stative",
}
local params = {
["appl"] = {list = true},
["caus"] = {list = true},
["dim"] = {list = true},
["intn"] = {list = true},
["neut"] = {list = true},
["pasv"] = {list = true},
["pfv"] = {list = true},
["reci"] = {list = true},
["stat"] = {list = true},
}
local args = require("Module:parameters").process(frame:getParent().args, params)
local forms = {}
for _, label in ipairs({"appl", "caus", "dim", "intn", "neut", "pasv", "pfv", "reci", "stat"}) do
if #args[label] > 0 then
for i, form in ipairs(args[label]) do
args[label][i] = m_links.full_link({lang = lang, term = form, alt = "-" .. form, pos = i == #args[label] and labels[label] or nil})
end
table.insert(forms, "* " .. table.concat(args[label], ", "))
end
end
return table.concat(forms, "\n")
end
return export