Module:gem-decl-adj/data

local decl_data = {}

local strong_only = {"ainaz", "allaz", "aljaz", "anþeraz", "bainaz", "fawaz", "ganōgaz", "hwarjaz", "hwaþeraz", "inkweraz", "izweraz", "jainaz", "lataz", "mīnaz", "sīnaz", "sumaz", "þīnaz", "unkeraz", "unseraz"}

decl_data.strong_only = {}

for _, word in ipairs(strong_only) do	decl_data.strong_only[word] = true end

decl_data.weak_only = {}

local function weak(stem, data, stem_i) data.forms["w_nom_sg_m"] = {stem .. "ô"} data.forms["w_acc_sg_m"] = {stem .. "anų"} data.forms["w_gen_sg_m"] = {stem_i .. (stem_i == stem and "iniz" or "niz")} data.forms["w_dat_sg_m"] = {stem_i .. (stem_i == stem and "ini" or "ni")} data.forms["w_ins_sg_m"] = {stem_i .. (stem_i == stem and "inē" or "nē")}

data.forms["w_nom_pl_m"] = {stem .. "aniz"} data.forms["w_acc_pl_m"] = {stem .. "anunz"} data.forms["w_gen_pl_m"] = {stem .. "anǫ̂"} data.forms["w_dat_pl_m"] = {stem .. "ammaz"} data.forms["w_ins_pl_m"] = {stem .. "ammiz"} data.forms["w_nom_sg_f"] = {stem .. "ǭ"} data.forms["w_acc_sg_f"] = {stem .. "ōnų"} data.forms["w_gen_sg_f"] = {stem .. "ōniz"} data.forms["w_dat_sg_f"] = {stem .. "ōni"} data.forms["w_ins_sg_f"] = {stem .. "ōnē"} data.forms["w_nom_pl_f"] = {stem .. "ōniz"} data.forms["w_acc_pl_f"] = {stem .. "ōnunz"} data.forms["w_gen_pl_f"] = {stem .. "ōnǫ̂"} data.forms["w_dat_pl_f"] = {stem .. "ōmaz"} data.forms["w_ins_pl_f"] = {stem .. "ōmiz"} data.forms["w_nom_sg_n"] = {stem .. "ô"} data.forms["w_acc_sg_n"] = data.forms["w_nom_sg_n"] data.forms["w_gen_sg_n"] = data.forms["w_gen_sg_m"] data.forms["w_dat_sg_n"] = data.forms["w_dat_sg_m"] data.forms["w_ins_sg_n"] = data.forms["w_ins_sg_m"] data.forms["w_nom_pl_n"] = {stem .. "ōnō"} data.forms["w_acc_pl_n"] = data.forms["w_nom_pl_n"] data.forms["w_gen_pl_n"] = data.forms["w_gen_pl_m"] data.forms["w_dat_pl_n"] = data.forms["w_dat_pl_m"] data.forms["w_ins_pl_n"] = data.forms["w_ins_pl_m"] end

decl_data["a"] = { params = { [1] = {},		["j"] = {}, }, } setmetatable(decl_data["a"], {__call = function(self, args, data, nocat)	local stem = args[1]	local stem_i = ""	if mw.ustring.sub(stem, -2) == "ij" then		stem_i = mw.ustring.sub(stem, 1, -3) .. "ī"		data.decl_type = "ja-stem"		if not nocat then			table.insert(data.categories, "Proto-Germanic ja-stem adjectives")		end	elseif mw.ustring.sub(stem, -1) == "j" then		stem_i = mw.ustring.sub(stem, 1, -2) .. "i"		data.decl_type = "ja-stem"		if not nocat then			table.insert(data.categories, "Proto-Germanic ja-stem adjectives")		end	else		stem_i = stem		data.decl_type = "a-stem"		if not nocat then			table.insert(data.categories, "Proto-Germanic a-stem adjectives")		end	end	local pagename = mw.title.getCurrentTitle.subpageText

if not decl_data.weak_only[pagename] then data.forms["s_nom_sg_m"] = {stem .. "az"} data.forms["s_acc_sg_m"] = {stem .. "anǭ"} data.forms["s_gen_sg_m"] = {stem .. "as", stem_i .. (stem_i == stem and "is" or "s")} data.forms["s_dat_sg_m"] = {stem .. "ammai"} data.forms["s_ins_sg_m"] = {stem .. "anō"} data.forms["s_nom_pl_m"] = {stem .. "ai"} data.forms["s_acc_pl_m"] = {stem .. "anz"} data.forms["s_gen_pl_m"] = {stem .. "aizǫ̂"} data.forms["s_dat_pl_m"] = {stem .. "aimaz"} data.forms["s_ins_pl_m"] = {stem .. "aimiz"} data.forms["s_nom_sg_f"] = {stem .. "ō"} data.forms["s_acc_sg_f"] = {stem .. "ǭ"} data.forms["s_gen_sg_f"] = {stem .. "aizōz"} data.forms["s_dat_sg_f"] = {stem .. "aizōi"} data.forms["s_ins_sg_f"] = {stem .. "aizō"} data.forms["s_nom_pl_f"] = {stem .. "ôz"} data.forms["s_acc_pl_f"] = {stem .. "ōz"} data.forms["s_gen_pl_f"] = data.forms["s_gen_pl_m"] data.forms["s_dat_pl_f"] = data.forms["s_dat_pl_m"] data.forms["s_ins_pl_f"] = data.forms["s_ins_pl_m"] data.forms["s_nom_sg_n"] = {stem .. "ą", "-at(ō)"} data.forms["s_acc_sg_n"] = data.forms["s_nom_sg_n"] data.forms["s_gen_sg_n"] = data.forms["s_gen_sg_m"] data.forms["s_dat_sg_n"] = data.forms["s_dat_sg_m"] data.forms["s_ins_sg_n"] = data.forms["s_ins_sg_m"] data.forms["s_nom_pl_n"] = data.forms["s_nom_sg_f"] data.forms["s_acc_pl_n"] = data.forms["s_nom_sg_f"] data.forms["s_gen_pl_n"] = data.forms["s_gen_pl_m"] data.forms["s_dat_pl_n"] = data.forms["s_dat_pl_m"] data.forms["s_ins_pl_n"] = data.forms["s_ins_pl_m"] else data.decl_type = data.decl_type .. ", weak only" data.weak_only = true end if not decl_data.strong_only[pagename] then weak(stem, data, stem_i) else data.decl_type = data.decl_type .. ", strong only" data.strong_only = true end end })

decl_data["i"] = { params = { [1] = {},		["j"] = {}, }, } setmetatable(decl_data["i"], {__call = function(self, args, data)	local j = require("Module:gem-pronunc").determine_sievers(args[1])	decl_data["a"]({args[1] .. j}, data, true)

data.decl_type = "i-stem"

data.forms["s_nom_sg_m"] = {args[1] .. "iz"} data.forms["s_nom_sg_f"] = {args[1] .. "ī"} data.forms["s_nom_sg_n"] = {args[1] .. "į", "-jatō"} data.forms["s_acc_sg_n"] = data.forms["s_nom_sg_n"] table.insert(data.categories, "Proto-Germanic i-stem adjectives") end })

decl_data["in"] = { params = { [1] = {},	}, } setmetatable(decl_data["in"], {__call = function(self, args, data)	data.forms["nom_sg_m"] = {stem .. "ô"}	data.forms["acc_sg_m"] = {stem .. "anų"}	data.forms["gen_sg_m"] = {stem_i .. (stem_i == stem and "iniz" or "niz")}	data.forms["dat_sg_m"] = {stem_i .. (stem_i == stem and "ini" or "ni")}	data.forms["ins_sg_m"] = {stem_i .. (stem_i == stem and "inē" or "nē")}

data.forms["nom_pl_m"] = {stem .. "aniz"} data.forms["acc_pl_m"] = {stem .. "anunz"} data.forms["gen_pl_m"] = {stem .. "anǫ̂"} data.forms["dat_pl_m"] = {stem .. "ammaz"} data.forms["ins_pl_m"] = {stem .. "ammiz"} data.forms["nom_sg_f"] = {stem .. "į̄"} data.forms["acc_sg_f"] = {stem .. "īnų"} data.forms["gen_sg_f"] = {stem .. "īniz"} data.forms["dat_sg_f"] = {stem .. "īni"} data.forms["ins_sg_f"] = {stem .. "īnē"} data.forms["nom_pl_f"] = {stem .. "īniz"} data.forms["acc_pl_f"] = {stem .. "īnunz"} data.forms["gen_pl_f"] = {stem .. "īnǫ̂"} data.forms["dat_pl_f"] = {stem .. "īmaz"} data.forms["ins_pl_f"] = {stem .. "īmiz"} data.forms["nom_sg_n"] = {stem .. "ô"} data.forms["acc_sg_n"] = data.forms["acc_sg_n"] data.forms["gen_sg_n"] = data.forms["gen_sg_m"] data.forms["dat_sg_n"] = data.forms["dat_sg_m"] data.forms["ins_sg_n"] = data.forms["ins_sg_m"] data.forms["nom_pl_n"] = {stem .. "ōnō"} data.forms["acc_pl_n"] = data.forms["nom_pl_n"] data.forms["gen_pl_n"] = data.forms["gen_pl_m"] data.forms["dat_pl_n"] = data.forms["dat_pl_m"] data.forms["ins_pl_n"] = data.forms["ins_pl_m"] end })

decl_data["u"] = { params = { [1] = {},		["j"] = {}, }, } setmetatable(decl_data["u"], {__call = function(self, args, data)	local j = require("Module:gem-pronunc").determine_sievers(args[1])	decl_data["a"]({args[1] .. j}, data, true)	local stem_u = mw.ustring.find(args[1], "[hgk]w$") and mw.ustring.sub(args[1], 1, -2) or args[1]

data.decl_type = "u-stem"

data.forms["s_nom_sg_m"] = {stem_u .. "uz"} data.forms["s_nom_sg_f"] = {args[1] .. "ī"} data.forms["s_nom_sg_n"] = {stem_u .. "ų", "-jatō"} data.forms["s_acc_sg_n"] = data.forms["s_nom_sg_n"] table.insert(data.categories, "Proto-Germanic u-stem adjectives") end })

return decl_data