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 = true
end
decl_data.weak_only = {}
local function weak(stem, data, stem_i)
data.forms = {stem .. "ô"}
data.forms = {stem .. "anų"}
data.forms = {stem_i .. (stem_i == stem and "iniz" or "niz")}
data.forms = {stem_i .. (stem_i == stem and "ini" or "ni")}
data.forms = {stem_i .. (stem_i == stem and "inē" or "nē")}
data.forms = {stem .. "aniz"}
data.forms = {stem .. "anunz"}
data.forms = {stem .. "anǫ̂"}
data.forms = {stem .. "ammaz"}
data.forms = {stem .. "ammiz"}
data.forms = {stem .. "ǭ"}
data.forms = {stem .. "ōnų"}
data.forms = {stem .. "ōniz"}
data.forms = {stem .. "ōni"}
data.forms = {stem .. "ōnē"}
data.forms = {stem .. "ōniz"}
data.forms = {stem .. "ōnunz"}
data.forms = {stem .. "ōnǫ̂"}
data.forms = {stem .. "ōmaz"}
data.forms = {stem .. "ōmiz"}
data.forms = {stem .. "ô"}
data.forms = data.forms
data.forms = data.forms
data.forms = data.forms
data.forms = data.forms
data.forms = {stem .. "ōnō"}
data.forms = data.forms
data.forms = data.forms
data.forms = data.forms
data.forms = data.forms
end
decl_data = {
params = {
= {},
= {},
},
}
setmetatable(decl_data, {__call = function(self, args, data, nocat)
local stem = args
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 then
data.forms = {stem .. "az"}
data.forms = {stem .. "anǭ"}
data.forms = {stem .. "as", stem_i .. (stem_i == stem and "is" or "s")}
data.forms = {stem .. "ammai"}
data.forms = {stem .. "anō"}
data.forms = {stem .. "ai"}
data.forms = {stem .. "anz"}
data.forms = {stem .. "aizǫ̂"}
data.forms = {stem .. "aimaz"}
data.forms = {stem .. "aimiz"}
data.forms = {stem .. "ō"}
data.forms = {stem .. "ǭ"}
data.forms = {stem .. "aizōz"}
data.forms = {stem .. "aizōi"}
data.forms = {stem .. "aizō"}
data.forms = {stem .. "ôz"}
data.forms = {stem .. "ōz"}
data.forms = data.forms
data.forms = data.forms
data.forms = data.forms
data.forms = {stem .. "ą", "-at(ō)"}
data.forms = data.forms
data.forms = data.forms
data.forms = data.forms
data.forms = data.forms
data.forms = data.forms
data.forms = data.forms
data.forms = data.forms
data.forms = data.forms
data.forms = data.forms
else
data.decl_type = data.decl_type .. ", weak only"
data.weak_only = true
end
if not decl_data.strong_only then
weak(stem, data, stem_i)
else
data.decl_type = data.decl_type .. ", strong only"
data.strong_only = true
end
end
})
decl_data = {
params = {
= {},
= {},
},
}
setmetatable(decl_data, {__call = function(self, args, data)
local j = require("Module:gem-pronunc").determine_sievers(args)
decl_data({args .. j}, data, true)
data.decl_type = "i-stem"
data.forms = {args .. "iz"}
data.forms = {args .. "ī"}
data.forms = {args .. "į", "-jatō"}
data.forms = data.forms
table.insert(data.categories, "Proto-Germanic i-stem adjectives")
end
})
decl_data = {
params = {
= {},
},
}
setmetatable(decl_data, {__call = function(self, args, data)
data.forms = {stem .. "ô"}
data.forms = {stem .. "anų"}
data.forms = {stem_i .. (stem_i == stem and "iniz" or "niz")}
data.forms = {stem_i .. (stem_i == stem and "ini" or "ni")}
data.forms = {stem_i .. (stem_i == stem and "inē" or "nē")}
data.forms = {stem .. "aniz"}
data.forms = {stem .. "anunz"}
data.forms = {stem .. "anǫ̂"}
data.forms = {stem .. "ammaz"}
data.forms = {stem .. "ammiz"}
data.forms = {stem .. "į̄"}
data.forms = {stem .. "īnų"}
data.forms = {stem .. "īniz"}
data.forms = {stem .. "īni"}
data.forms = {stem .. "īnē"}
data.forms = {stem .. "īniz"}
data.forms = {stem .. "īnunz"}
data.forms = {stem .. "īnǫ̂"}
data.forms = {stem .. "īmaz"}
data.forms = {stem .. "īmiz"}
data.forms = {stem .. "ô"}
data.forms = data.forms
data.forms = data.forms
data.forms = data.forms
data.forms = data.forms
data.forms = {stem .. "ōnō"}
data.forms = data.forms
data.forms = data.forms
data.forms = data.forms
data.forms = data.forms
end
})
decl_data = {
params = {
= {},
= {},
},
}
setmetatable(decl_data, {__call = function(self, args, data)
local j = require("Module:gem-pronunc").determine_sievers(args)
decl_data({args .. j}, data, true)
local stem_u = mw.ustring.find(args, "w$") and mw.ustring.sub(args, 1, -2) or args
data.decl_type = "u-stem"
data.forms = {stem_u .. "uz"}
data.forms = {args .. "ī"}
data.forms = {stem_u .. "ų", "-jatō"}
data.forms = data.forms
table.insert(data.categories, "Proto-Germanic u-stem adjectives")
end
})
return decl_data