Module:form of/templates

Documentation for this module may be created at Module:form of/templates/documentation

local export = {}

local m_form_of = require("Module:form of")
local m_languages = require("Module:languages")
local m_parameters = require("Module:parameters")

local inflection_params = {
	[1] = {required = true},
	[2] = {required = true},
	[3] = {list = true},
	["alt"] = {},
	["t"] = {},
	["pos"] = {},
}

local form_params = {
	[1] = {required = true},
	[2] = {required = true},
	[3] = {alias_of = "form"},
	["form"] = {},
	["alt"] = {},
	["t"] = {},
	["pos"] = {},
	["nocat"] = {},
}

local list_params = {
	[1] = {list = true},
	["alt"] = {},
}

function export.inflection_of(frame)
	local args = m_parameters.process(frame:getParent().args, inflection_params)
	return m_form_of.make_form_of{
		language = m_languages.get_by_code(args[1]),
		term = args[2],
		inflection = args[3] or {"inflection"},
		alt = args["alt"],
		gloss = args["t"],
		pos = args["pos"],
	}
end

function export.form_of(frame)
	local args = m_parameters.process(frame:getParent().args, form_params)
	return m_form_of.make_form_of{
		language = m_languages.get_by_code(args[1]),
		term = args[2],
		form = args["form"],
		alt = args["alt"],
		gloss = args["t"],
		pos = args["pos"],
		nocat = args["nocat"],
	}
end

function export.inflection_list(frame)
	local args = m_parameters.process(frame:getParent().args, list_params)
	return m_form_of.list_form{
		inflection = args[1],
		alt = args["alt"],
	}
end

return export