Module:nn-verb-irreg

local export = {}

local lang = require("Module:languages").getByCode("nn")

function export.main(frame) local PAGENAME = mw.title.getCurrentTitle.text local NAMESPACE = mw.title.getCurrentTitle.nsText -- Retrieve and process arguments local params = { [1] = {required = true, list = "pres_tense"}, [2] = {required = true, list = "past_tense"}, [3] = {required = true, list = "past_part"}, [4] = {default = "", list = "pasv_inf"}, [5] = {default = "", list = "pres_part"}, [6] = {default = "", list = "imp"}, ["imp"] = {alias_of = 6}, ["second_root"] = {}, ["no_present_part"] = {type = "boolean"}, ["no_passive_inf"] = {type = "boolean"}, ["no_imp"] = {type = "boolean"}, ["first_four"] = {type = "boolean"}, }	local args = require("Module:parameters").process(frame:getParent.args, params) -- Figure out roots local length = PAGENAME:len local cons1 = PAGENAME:sub(1, 1):find('[bcdfghjklmnpqrstvxz]') local cons2 = PAGENAME:sub(2, 2):find('[bcdfghjklmnpqrstvxz]') local root = PAGENAME if not (length == 3 and cons1 and cons2) and PAGENAME:find('[ae]$') and length > 2 then root = PAGENAME:sub(1, length-1) end local second_root = args["second_root"] or root local root2 = root if root:sub(length-1, length-1) == 'j' and length > 3 then root2 = root:sub(1, length-2) end if PAGENAME:find('ast$') or PAGENAME:find('as$') then args["no_present_part"] = true args["no_passive_inf"] = true end local data = {lang = lang, pos_category = "verbs", categories = {}, inflections = {}} -- Add inflections args[1].label = "present tense" table.insert(data.inflections, args[1]) args[2].label = "past tense" table.insert(data.inflections, args[2]) args[3].label = "past participle" table.insert(data.inflections, args[3]) if not (args["no_passive_inf"] or args["first_four"]) then if args[4][1] == "" then args[4][1] = second_root .. "ast" end args[4].label = "passive infinitive" table.insert(data.inflections, args[4]) end if not (args["no_present_part"] or args["first_four"]) then if args[5][1] == "" then args[5][1] = second_root .. "ande" end args[5].label = "present participle" table.insert(data.inflections, args[5]) end if not (args["no_imp"] or args["first_four"]) then if args[6][1] == "" then if root:sub(length-2, length-1) == 'mm' then args[6][1] = root:sub(1, length-2) else args[6][1] = root2 end end args[6].label = "imperative" table.insert(data.inflections, args[6]) end return require('Module:headword').full_headword(data) end

return export