This module contains new entry creation rules for Catalan; see WT:ACCEL for an overview, and Module:accel for information on creating new rules.


return {generate = function (params, entry)
	-- special handling for female equivalents
	if params.pos == "noun" and params.form == "f" then
		entry.head = "{{ca-noun|f}}"
		-- definition already correct
		return
	end
	-- special handling for verb forms
	local gerund_verb_spec = params.form:match("^gerund%-(.*)$")
	if gerund_verb_spec then
		entry.head = "{{head|ca|gerund}}"
		entry.def = "{{ca-verb form of|" .. gerund_verb_spec .. "}}"
		return
	end
	local verb_spec = params.form:match("^verb%-form%-(.*)$")
	if verb_spec then
		entry.def = "{{ca-verb form of|" .. verb_spec .. "}}"
		return
	end
	-- special handling for participles and participle forms
	if params.form == "pp_ms" then
		entry.pos_header = "Participle"
		entry.head = "{{ca-pp}}"
		entry.def = "{{past participle of|ca|" .. params.origin .. "}}"
	elseif params.form:find("^pp_") then
		entry.pos_header = "Participle"
		local form_of_template = {pp_fs = "feminine singular of", pp_mp = "masculine plural of", pp_fp = "feminine plural of"}
		local gender = {pp_fs = "f-s", pp_mp = "m-p", pp_fp = "f-p"}
		entry.head = "{{head|ca|past participle form|g=" .. gender[params.form] .. "}}"
		-- FIXME! This won't always work. Need the actual target.
		entry.def = "{{" .. form_of_template[params.form] .. "|ca|" .. params.target:gsub("[eo]?s?$", ""):gsub("d$", "t") .. "}}"
	end
end}