Module:amf-headword
Appearance
- This module lacks a documentation subpage. Please create it.
- Useful links: subpage list • links • transclusions • testcases • sandbox
local export = {}
local pos_functions = {}
local m_nominal = require("Module:amf-nominal")
local m_utilities = require("Module:amf-utilities")
local m_headword = require("Module:headword")
local amf = require("Module:languages").getByCode("amf")
local syllabify = m_utilities.syllabify
local combine = m_utilities.combine
local PAGENAME = mw.loadData("Module:headword/data").pagename
function export.make(frame)
local poscat = frame.args[1]
local params = {
[1] = { default = PAGENAME },
}
if pos_functions[poscat] then
for key, val in pairs(pos_functions[poscat].params) do
params[key] = val
end
end
local args = require("Module:parameters").process(frame:getParent().args, params)
local data = {
lang = amf,
pagename = args[1],
pos_category = poscat,
genders = {},
inflections = {},
}
if pos_functions[poscat] then
pos_functions[poscat].func(args, data)
end
return m_headword.full_headword(data)
end
pos_functions["nouns"] = {
params = {
["fem"] = true,
["masc"] = true,
["pl"] = true,
["voc"] = true,
},
func = function(args, data)
if args[1] ~= "-" then
local result = {}
args[1] = syllabify(args[1])
if args["masc"] ~= "-" then
result.masc = {args["masc"] or combine(m_nominal.make_masculine(args[1]))}
result.masc.label, result.masc.accel = "masculine", {form = "m"}
end
if args["fem"] ~= "-" then
result.fem = {args["fem"] or combine(m_nominal.attach_CV(args[1],"n","o"))}
result.fem.label, result.fem.accel = "feminine", {form = "f"}
end
if args["pl"] ~= "-" then
result.pl = {args["pl"] or combine(m_nominal.attach_CV(args[1],"n","a"))}
result.pl.label, result.pl.accel = "plural", {form = "p"}
end
if args["voc"] then
result.voc = {
args["voc"],
label = "vocative",
accel = "vocative"
}
table.insert(data.inflections, result.voc)
end
table.insert(data.inflections, result.pl)
table.insert(data.inflections, result.masc)
table.insert(data.inflections, result.fem)
else
data.pagename = PAGENAME
end
end
}
return export