Mòdul:eu-lema/proves

De Viccionari

La documentació d'ús d'aquest mòdul es pot crear a Mòdul:eu-lema/proves/ús

local p = {}
local pos_functions = {}
local m_lema = require("Mòdul:lema")

-- Funció d'entrada, l'única que s'invoca des d'una plantilla
function p.flex(frame)
	local args = frame:getParent().args
	pagename = args.pagename
	if not pagename or pagename == "" then
		pagename = mw.title.getCurrentTitle().subpageText
	end
	
	local data = {lang = "eu", sc = "Latn", heads = {}, categories = {}}
	local lema = args.lema; if lema == "" then lema = nil end
	table.insert(data.heads, lema)
	
	local poscat = frame.args[1] or error("Falta especificar la categoria lèxica com a primer paràmetre.")
	if pos_functions[poscat] then
		pos_functions[poscat].func(args, data)
	else
		table.insert(data.categories, poscat .. " en basc")
	end
	
	if args.cat and args.cat ~= "" then
		table.insert(data.categories, args.cat)
	end
	
	return m_lema.full_headword(data)
end

-- Informació per a substantius
pos_functions["Substantius"] = {func = function(args, data)
	local genders = mw.text.split(args[1] or "", "/")
	for _, g in ipairs(genders) do
		table.insert(data.genders, string.gsub(g, "i$", "indef"))
	end
	
	if mw.ustring.find(pagename, "[^ ]+ [^ ]+") then
		table.insert(data.categories, "Locucions nominals en basc")
	else
		table.insert(data.categories, "Substantius en basc")
	end
	return
end
}

-- Informació per a noms propis
pos_functions["Noms propis"] = {func = function(args, data)
	local genere = args[1] or ""
	table.insert(data.genders, (genere == "" and "?" or genere))
	
	table.insert(data.categories, "Noms propis en basc")
	return
end
}

return p