local conj = {}
local function add_asterisks(forms, data)
for _, form in ipairs(forms) do
for i, subform in ipairs(data.forms) do
data.forms = "*" .. subform
end
end
end
conj = {
params = {
= {},
= {},
= {},
= {},
= {},
= {},
= {},
},
}
setmetatable(conj, {__call = function(self, args, data)
data.conj_type = "]"
data.forms = {args.head or (args .. "an")}
data.forms = {args}
data.forms = {args or (args .. "t")}
data.forms = {args}
data.forms = {args .. "un"}
data.forms = {args .. "a"}
data.forms = {args .. "es"}
data.forms = {args .. "a"}
data.forms = {args .. "un"}
data.forms = {args .. "i"}
data.forms = {args .. "is"}
data.forms = {args .. "i"}
data.forms = {args .. "in"}
data.forms = {args .. "i"}
data.forms = {args .. "is"}
data.forms = {args .. "i"}
data.forms = {args .. "in"}
data.forms = {args .. "andi"}
data.forms = args.pastpart and {args.pastpart, (args.pastpart2 and args.pastpart2)} or (args and {"gi" .. args, args} or {"—"})
table.insert(data.categories, "Old Saxon preterite-present verbs")
end
})
conj = {
params = {
= {},
= {},
= {},
= {},
= {},
},
}
setmetatable(conj, {__call = function(self, args, data)
conj.pp(args, data)
data.forms = args and {args} or {"—"}
end
})
conj = {
params = {
= {},
= {},
= {},
= {},
= {},
= {},
= {},
= {},
= {},
},
}
setmetatable(conj, {__call = function(self, args, data)
mw.log("st " .. args.class)
if not args.class then
error("Class parameter required for strong verbs")
end
data.conj_type = "strong class " .. args.class
data.forms = {args.head or (args .. "an")}
data.forms = {args .. "u"}
data.forms = {(args.mutstem or args) .. "is"}
data.forms = {(args.mutstem or args) .. "id"}
data.forms = {args .. "ad"}
data.forms = {args}
data.forms = {args .. "i"}
data.forms = {args}
data.forms = {args .. "un"}
data.forms = {args .. "e"}
data.forms = {args .. "es"}
data.forms = {args .. "e"}
data.forms = {args .. "en"}
data.forms = {args .. "i"}
data.forms = {args .. "is"}
data.forms = {args .. "i"}
data.forms = {args .. "in"}
data.forms = {args.fstem or args}
data.forms = {args .. "ad"}
data.forms = {args .. "andi"}
data.forms = {"gi" .. args .. "an", args .. "an"}
if args.class == "5" and mw.ustring.sub(args, -1, -1) == "i" then
data.conj_type = data.conj_type .. " j-present"
table.insert(data.categories, "Old Saxon class 5 strong j-present verbs")
else
table.insert(data.categories, "Old Saxon class " .. args.class .. " strong verbs")
end
end
})
conj = {
params = {
= {},
= {},
= {},
= {},
= {},
= {},
= {},
= {},
= {},
},
}
setmetatable(conj, {__call = function(self, args, data)
conj.st(args, data)
data.forms = {args .. "an"}
end
})
conj = {
params = {
= {},
= {},
= {},
= {},
= {},
},
}
setmetatable(conj, {__call = function(self, args, data)
data.conj_type = "weak class 1"
data.forms = {args.head or (args .. "ian")}
data.forms = {args .. "iu"}
data.forms = {(args.mutstem or args) .. "is"}
data.forms = {(args.mutstem or args) .. "id"}
data.forms = {args .. "iad"}
data.forms = {args .. "a"}
data.forms = {args .. "es"}
data.forms = {args .. "a"}
data.forms = {args .. "un"}
data.forms = {args .. "ie"}
data.forms = {args .. "ies"}
data.forms = {args .. "ie"}
data.forms = {args .. "ien"}
data.forms = {args .. "i"}
data.forms = {args .. "is"}
data.forms = {args .. "i"}
data.forms = {args .. "in"}
data.forms = {(args.mutstem or args) .. "i"}
data.forms = {args .. "iad"}
data.forms = {args .. "iandi"}
data.forms = args.pastpart and {args.pastpart, args.pastpart2 and args.pastpart2} or {"gi" .. (args.mutstem or args) .. "id", (args.mutstem or args) .. "id"}
table.insert(data.categories, "Old Saxon class 1 weak verbs")
end
})
conj = {
params = {
= {},
= {},
= {},
= {},
},
}
setmetatable(conj, {__call = function(self, args, data)
conj.wk1(args, data)
data.forms = {args.pastpart or ((args.mutstem or args) .. "id")}
end
})
conj = {
params = {
= {},
},
}
setmetatable(conj, {__call = function(self, args, data)
data.conj_type = "weak class 2"
data.forms = {args.head or (args .. "on")}
data.forms = {args .. "on"}
data.forms = {args .. "os"}
data.forms = {args .. "od"}
data.forms = {(mw.ustring.gsub(args .. "iod", "ii", "i"))}
data.forms = {args .. "oda"}
data.forms = {args .. "odes"}
data.forms = {args .. "oda"}
data.forms = {args .. "odun"}
data.forms = {args .. "o"}
data.forms = {args .. "os"}
data.forms = {args .. "o"}
data.forms = {(mw.ustring.gsub(args .. "ion", "ii", "i"))}
data.forms = {args .. "odi"}
data.forms = {args .. "odis"}
data.forms = {args .. "odi"}
data.forms = {args .. "odin"}
data.forms = {args .. "o"}
data.forms = {(mw.ustring.gsub(args .. "iod", "ii", "i"))}
data.forms = {args .. "ondi"}
data.forms = {"gi" .. args .. "od", args .. "od"}
table.insert(data.categories, "Old Saxon class 2 weak verbs")
end
})
conj = {
params = {
= {},
},
}
setmetatable(conj, {__call = function(self, args, data)
conj.wk2(args, data)
data.forms = {args .. "od"}
end
})
conj = {
params = {
= {},
= {},
= {},
},
}
setmetatable(conj, {__call = function(self, args, data)
data.conj_type = "weak class 3"
data.forms = {args.head or (args .. "ian")}
data.forms = {args .. "iu"}
data.forms = {args .. "es"}
data.forms = {args .. "ed"}
data.forms = {args .. "iad"}
data.forms = {args .. "da"}
data.forms = {args .. "des"}
data.forms = {args .. "da"}
data.forms = {args .. "dun"}
data.forms = {args .. "ie"}
data.forms = {args .. "ies"}
data.forms = {args .. "ie"}
data.forms = {args .. "ien"}
data.forms = {args .. "di"}
data.forms = {args .. "dis"}
data.forms = {args .. "di"}
data.forms = {args .. "din"}
data.forms = {args .. "e"}
data.forms = {args .. "iad"}
data.forms = {args .. "iandi"}
data.forms = {"gi" .. args .. "d", args .. "d"}
table.insert(data.categories, "Old Saxon class 3 weak verbs")
end
})
conj = {
params = {
= {},
= {},
= {},
},
}
setmetatable(conj, {__call = function(self, args, data)
conj.wk3(args, data)
data.forms = {args .. "d"}
end
})
conj.irregular = {}
conj.irregular = function(data)
data.conj_type = "irregular, ]"
data.forms = {"wesan"}
data.forms = {"bium", "biun", "bion"}
data.forms = {"bist", "bis"}
data.forms = {"ist", "is"}
data.forms = {"sind", "sindun", "sindon", "sundon"}
data.forms = {"was"}
data.forms = {"*wāri"}
data.forms = {"was"}
data.forms = {"wārun"}
data.forms = {"sī"}
data.forms = {"sīs"}
data.forms = {"sī", "wese"}
data.forms = {"sīn"}
data.forms = {"wāri"}
data.forms = {"wāris"}
data.forms = {"wāri"}
data.forms = {"wārin"}
data.forms = {"wes", "wis"}
data.forms = {"wesad", "wesat", "wesath"}
data.forms = {"wesandi"}
data.forms = {"giwesan"}
table.insert(data.categories, "Old Saxon irregular verbs")
table.insert(data.categories, "Old Saxon suppletive verbs")
end
conj.irregular = function(data)
conj.irregular(data)
data.forms = {"sīn"}
data.forms = {"*em", "*im"}
data.forms = {"*art"}
data.forms = {"sind", "sindun", "*arun"}
data.forms = {"sī"}
end
conj.irregular = function(data)
data.conj_type = "irregular"
data.forms = {"dōn"}
data.forms = {"dōm"}
data.forms = {"dōs"}
data.forms = {"dōd"}
data.forms = {"dōth"}
data.forms = {"deda"}
data.forms = {"dādi"}
data.forms = {"deda"}
data.forms = {"dādun"}
data.forms = {"dōe"}
data.forms = {"dōes"}
data.forms = {"dōe"}
data.forms = {"dōen"}
data.forms = {"dādi"}
data.forms = {"dādis"}
data.forms = {"dādi"}
data.forms = {"dādin"}
data.forms = {"dō"}
data.forms = {"dōth"}
data.forms = {"dōndi"}
data.forms = {"gidōn", "dōn"}
table.insert(data.categories, "Old Saxon irregular verbs")
end
conj.irregular = function(data)
conj.irregular(data)
for _, forms in pairs(data.forms) do
forms = "gi" .. forms
end
data.forms = {"gidōn"}
end
conj.irregular = function(data)
data.conj_type = "irregular, ]"
data.forms = {"gān"}
data.forms = {"*gā"}
data.forms = {"*gēs"}
data.forms = {"gēd"}
data.forms = {"*gād"}
data.forms = {"gēng"}
data.forms = {"gēngi"}
data.forms = {"gēng"}
data.forms = {"gēngun"}
data.forms = {"*gāe"}
data.forms = {"*gāes"}
data.forms = {"*gāe"}
data.forms = {"*gāen"}
data.forms = {"gēngi"}
data.forms = {"gēngis"}
data.forms = {"gēngi"}
data.forms = {"gēngin"}
data.forms = {"*gā"}
data.forms = {"*gād"}
data.forms = {"gāndi"}
data.forms = {"gigangan", "gangan"}
table.insert(data.categories, "Old Saxon irregular verbs")
table.insert(data.categories, "Old Saxon suppletive verbs")
end
conj.irregular = function(data)
conj.irregular(data)
data.forms = {"gangan"}
for _, forms in pairs(data.forms) do
forms = mw.ustring.gsub(forms, "^(%*?)g", "%1fulg")
forms = mw.ustring.gsub(forms, "gēng", "geng")
end
end
conj.irregular = function(data)
data.conj_type = "irregular"
data.forms = {"stān"}
data.forms = {"*stā"}
data.forms = {"stēs"}
data.forms = {"stēd"}
data.forms = {"stād"}
data.forms = {"stōd"}
data.forms = {"stōdi"}
data.forms = {"stōd"}
data.forms = {"stōdun"}
data.forms = {"*stāe"}
data.forms = {"*stāes"}
data.forms = {"*stāe"}
data.forms = {"*stāen"}
data.forms = {"stōdi"}
data.forms = {"stōdis"}
data.forms = {"stōdi"}
data.forms = {"stōdin"}
data.forms = {"stā"}
data.forms = {"stād"}
data.forms = {"stāndi"}
data.forms = {"gistandan", "standan"}
table.insert(data.categories, "Old Saxon irregular verbs")
end
conj.irregular = function(data)
data.conj_type = "irregular"
data.forms = {"willian"}
data.forms = {"williu"}
data.forms = {"wilt", "wilis"}
data.forms = {"wili", "wil"}
data.forms = {"williad"}
data.forms = {"welda"}
data.forms = {"weldes"}
data.forms = {"welda"}
data.forms = {"weldun"}
data.forms = {"willie"}
data.forms = {"willies"}
data.forms = {"willie"}
data.forms = {"willien"}
data.forms = {"weldi"}
data.forms = {"weldis"}
data.forms = {"weldi"}
data.forms = {"weldin"}
data.forms = {"williandi"}
table.insert(data.categories, "Old Saxon irregular verbs")
end
conj.irregular = function(data)
data.conj_type = "class 1 strong ]"
data.forms = {"snīwan"}
data.forms = {"snīwid"}
data.forms = {"snēw"}
data.forms = {"snīwe"}
data.forms = {"sniwi"}
data.forms = {"snīwandi"}
data.forms = {"gisniwan", "sniwan"}
table.insert(data.categories, "Old Saxon class 1 strong verbs")
table.insert(data.categories, "Old Saxon impersonal verbs")
end
----------------------------------------------------------------------
conj.irregular = function(data)
conj({ = 3, "antfind", "antfind", "antfand", "antfund", "antfund"}, data)
data.conj_type = "strong class 3 with weak past"
data.forms = {"antfunda"}
data.forms = {"*antfundes"}
data.forms = {"antfunda"}
data.forms = {"antfundun"}
add_asterisks({"past_sub_1s", "past_sub_2s", "past_sub_3s", "past_sub_p"}, data)
table.insert(data.categories, "Old Saxon irregular verbs")
end
conj.irregular = function(data)
conj({"anbreng", "anbrāht", = "anbrāht"}, data)
add_asterisks({"pres_ind_1s", "pres_ind_2s", "pres_ind_p", "pres_sub_1s", "pres_sub_2s", "pres_sub_3s", "pres_sub_p", "imp_s", "imp_p"}, data)
table.insert(data.categories, "Old Saxon irregular verbs")
end
conj.irregular = function(data)
conj.st({"bakk", "bakk", "bōk", "bōk", "bakk", = "bak", = 6}, data)
add_asterisks({"pres_ind_1s", "pres_ind_2s", "pres_ind_p", "pres_sub_1s", "pres_sub_2s", "pres_sub_3s", "pres_sub_p", "imp_s", "imp_p"}, data)
end
conj.irregular = function(data)
conj({"bibreng", "bibrāht", = "bibrāht"}, data)
add_asterisks({"pres_ind_1s", "pres_ind_2s", "pres_ind_p", "pres_sub_1s", "pres_sub_2s", "pres_sub_3s", "pres_sub_p", "imp_s", "imp_p"}, data)
table.insert(data.categories, "Old Saxon irregular verbs")
end
conj.irregular = function(data)
conj.wk1({"bugg", = "bug", "boht", = "giboht", = "boht"}, data)
add_asterisks({"pres_ind_1s", "pres_ind_2s", "pres_sub_1s", "pres_sub_2s", "pres_sub_3s", "pres_sub_p", "imp_s", "imp_p"}, data)
table.insert(data.categories, "Old Saxon irregular verbs")
end
conj.irregular = function(data)
conj({"fargev", "fargev", "fargaf", "fargāv", = "fargef", "fargev", = 5}, data)
add_asterisks({"pres_ind_1s", "pres_ind_2s", "pres_ind_3s", "pres_ind_p",
"pres_sub_1s", "pres_sub_2s", "pres_sub_3s", "pres_sub_p", "imp_s", "imp_p"}, data)
end
conj.irregular = function(data)
conj({"gibreng", "gibrāht", = "gibrāht"}, data)
add_asterisks({"pres_ind_1s", "pres_ind_2s", "pres_ind_p", "pres_sub_1s", "pres_sub_2s", "pres_sub_3s", "pres_sub_p", "imp_s", "imp_p"}, data)
table.insert(data.categories, "Old Saxon irregular verbs")
end
conj.irregular = function(data)
conj({"gidēl", "gidēld"}, data)
data.forms = {"gidēli"}
add_asterisks({"pres_ind_1s", "pres_ind_2s", "pres_ind_p", "pres_sub_1s", "pres_sub_2s", "pres_sub_3s", "pres_sub_p", "imp_s", "imp_p"}, data)
table.insert(data.categories, "Old Saxon irregular verbs")
end
conj.irregular = function(data)
conj.pp({"nēt", = "nēst", "nit", "niss", "nitan", = "] ]", = "ne ]"}, data)
data.conj_type = data.conj_type .. " irregular"
add_asterisks({"pres_ind_2s", "pres_ind_p", "past_ind_1s", "past_ind_2s", "past_ind_3s", "past_ind_p",
"pres_sub_1s", "pres_sub_2s", "pres_sub_3s", "pres_sub_p",
"past_sub_1s", "past_sub_2s", "past_sub_3s", "past_sub_p", "pres_part"}, data)
table.insert(data.categories, "Old Saxon irregular verbs")
end
conj.irregular = function(data)
conj.wk1({"rekk", = "rek", "raht", = "giraht", = "raht"}, data)
add_asterisks({"past_ind_2s", "past_ind_p", "past_sub_1s", "past_sub_2s", "past_sub_3s", "past_sub_p", "past_part"}, data)
table.insert(data.categories, "Old Saxon irregular verbs")
end
conj.irregular = function(data)
conj({"tesamnabreng", "tesamnabrāht", = "tesamnabrāht"}, data)
add_asterisks({"pres_ind_1s", "pres_ind_2s", "pres_ind_3s", "pres_ind_p", "pres_sub_1s", "pres_sub_2s", "pres_sub_3s", "pres_sub_p", "imp_s", "imp_p"}, data)
table.insert(data.categories, "Old Saxon irregular verbs")
end
conj.irregular = function(data)
conj.wk1({"thenk", "thāht", = "githāht", = "thāht"}, data)
data.conj_type = data.conj_type .. " irregular"
add_asterisks({"pres_ind_1s", "pres_ind_2s", "pres_ind_p", "pres_sub_1s", "pres_sub_2s", "pres_sub_3s", "pres_sub_p",
"imp_s", "imp_p"}, data)
table.insert(data.categories, "Old Saxon irregular verbs")
end
conj.irregular = function(data)
conj.wk1({"thrukk", = "thruk", "thruht", = "githruht", = "thruht"}, data)
add_asterisks({"past_ind_2s", "past_ind_p", "past_sub_1s", "past_sub_2s", "past_sub_3s", "past_sub_p", "past_part"}, data)
table.insert(data.categories, "Old Saxon irregular verbs")
end
return conj