La documentation pour ce module peut être créée à Amṣada:lemme/doc

local l = {}
local typ = require("Module:types de mots")
local lg = require("Module:langues")

-- Critères basés sur [[Wiktionnaire:Prise de décision/Catégories de lemmes]]

local ok_langs = {
	['fr'] = true,
	['de'] = true,
	['en'] = true,
	['es'] = true,
	['it'] = true,
	['ru'] = true,
	['bg'] = true
}
local not_ok_types = {
	['erreur'] = true,
	['nom propre'] = true,
	['prénom'] = true,
	['nom de famille'] = true,
	['nom scientifique'] = true,
	['infixe'] = true,
	['interfixe'] = true,
	['préfixe'] = true,
	['suffixe'] = true,
	['circonfixe'] = true,
	['symbole'] = true
}

function l.is_lemme(lang, type, flexion, loc)
	if not lang then
		return false
	end
	
	if not ok_langs[lang] then
		return false
	end
	
	if flexion then
		return false
	end
	
	if not type or not typ.is_type(type) or not_ok_types[typ.get_nom(type)] then
		return false
	end
	
	if loc then
		return false
	end
	
	return true
end

function l.cat_lemme(lang, type, flexion, loc)
	if lang == nil  or type == nil or flexion == nil  or loc == nil then
		return ''
	end
	
	if l.is_lemme(lang, type, flexion, loc) then
		nom_langue = lg.get_nom(lang)
		if nom_langue then
			return  "ilemmen s " .. nom_langue
		else
			return ''
		end
	end
end

return l