Module:gem-decl-adj/data
Appearance
- The following documentation is located at Module:gem-decl-adj/data/documentation. [edit] Categories were auto-generated by Module:module categorization. [edit]
- Useful links: root page • root page’s subpages • links • transclusions • testcases • sandbox
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