Module:head/languages/lfv

< Module:head‎ | languages
Revision as of 10:48, 12 August 2023 by Maria (talk | contribs)

Documentation for this module may be created at Module:head/languages/lfv/documentation

local export = {}

local m_head = require("Module:head")
local m_head_languages = require("Module:head/languages")
local m_parameters = require("Module:parameters")
local lfv = require("Module:languages").get_by_code("lfv")

local params = {
	[1] = {list = true},
	head = {},
}
local inflection_params = {
	adjective = {
		{param = "pl", label = "plural", glossary = true},
		{param = "cmp", label = "comparative", glossary = true},
		{param = "rel", label = "relative superlative", glossary = true},
		{param = "abs", label = "absolute superlative", glossary = true},
		{param = "ela", label = "elative", glossary = true},
		{param = "pej", label = "pejorative", glossary = true},
	},
	adverb = {
		{param = "cmp", label = "comparative", glossary = true},
		{param = "rel", label = "relative superlative", glossary = true},
		{param = "abs", label = "absolute superlative", glossary = true},
		{param = "ela", label = "elative", glossary = true},
	},
	noun = {
		{param = "du", label = "dual", glossary = true},
		{param = "pl", label = "mplural", glossary = true},
		{param = "dim", label = "diminutive", glossary = true},
		{param = "aug", label = "augmentative", glossary = true},
		{param = "pej", label = "pejorative", glossary = true},
	},
	verb = {
		{param = "pfv", label = "perfective", glossary = true},
		{param = "impfv", label = "imperfective", glossary = true},
		{param = "pres-3s", label = "3rd person singular present"},
		{param = "rem-3s", label = "3rd person singular remote past"},
		{param = "pass", label = "passive participle"},
	},
}

function export.adjective(frame)
	local args, inflections = m_head_languages.get_args(frame:getParent().args, params, inflection_params.adjective)
	return m_head.full_head{
		term = mw.title.getCurrentTitle().text,
		head = args["head"],
		language = lfv,
		pos = "adjective",
		genders = args[1],
		inflections = inflections,
	} 
end

function export.adverb(frame)
	local args, inflections = m_head_languages.get_args(frame:getParent().args, params, inflection_params.adverb)
	return m_head.full_head{
		term = mw.title.getCurrentTitle().text,
		head = args["head"],
		language = lfv,
		pos = "adverb",
		genders = args[1],
		inflections = inflections,
	} 
end

function export.noun(frame)
	local args, inflections = m_head_languages.get_args(frame:getParent().args, params, inflection_params.noun)
	return m_head.full_head{
		term = mw.title.getCurrentTitle().text,
		head = args["head"],
		language = lfv,
		pos = "noun",
		genders = args[1],
		inflections = inflections,
	}
end

function export.verb(frame)
	local args, inflections = m_head_languages.get_args(frame:getParent().args, params, inflection_params.verb)
	return m_head.full_head{
		term = m_head_languages.get_term(),
		head = args["head"],
		language = lfv,
		pos = "verb",
		genders = args[1],
		inflections = inflections,
	}
end

return export