Module:fo-noun/data-f

local decl = {}

decl["f1"] = { params = { [1] = {},		},	singular = function(args, data) data.forms["nom_sg"] = {args[1] .. "a"} data.forms["nom_sg_def"] = {args[1] .. "an"}

data.forms["acc_sg"] = {args[1] .. "u"} data.forms["acc_sg_def"] = {args[1] .. "una"} data.forms["dat_sg"] = {args[1] .. "u"} data.forms["dat_sg_def"] = {args[1] .. "uni"} data.forms["gen_sg"] = {args[1] .. "u"} data.forms["gen_sg_def"] = {args[1] .. "unnar"} end, plural = function(args, data) data.forms["nom_pl"] = {args[1] .. "ur"} data.forms["nom_pl_def"] = {args[1] .. "urnar"} data.forms["acc_pl"] = {args[1] .. "ur"} data.forms["acc_pl_def"] = {args[1] .. "urnar"} data.forms["dat_pl"] = {args[1] .. "um"} data.forms["dat_pl_def"] = {args[1] .. "unum"} data.forms["gen_pl"] = {args[1] .. "a"} data.forms["gen_pl_def"] = {args[1] .. "anna"} end } setmetatable(decl["f1"], {__call = function(self, args, data)	data.decl_type = "f1"	self.singular(args, data)	self.plural(args, data) end })

decl["f1-p"] = { params = { [1] = {},		}, } setmetatable(decl["f1-p"], {__call = function(self, args, data)	decl["f1"].plural(args, data)	data.info = " (plural only)"	data.decl_type = "f1p"	data.defective = "p" end })

decl["f1-s"] = { params = { [1] = {},		}, } setmetatable(decl["f1-s"], {__call = function(self, args, data)	decl["f1"].singular(args, data)	data.info = " (singular only)"	data.decl_type = "f1s"	data.defective = "s" end })

decl["f1-s-def"] = { params = { [1] = {},		}, } setmetatable(decl["f1-s-def"], {__call = function(self, args, data)	decl["f1"].singular(args, data)	data.info = " (singular definite only)"	data.decl_type = "f1s def"	data.defective = "s_def" end })

decl["f1-s-f6-p"] = { params = { [1] = {},		}, } setmetatable(decl["f1-s-f6-p"], {__call = function(self, args, data)	decl["f1"].singular(args, data)	decl["f2"].plural(args, data)			data.decl_type = "f1s/f6p"	data.forms["nom_pl"] = {args[1] .. "ar"}	data.forms["nom_pl_def"] = {args[1] .. "arnar"}	data.forms["acc_pl"] = {args[1] .. "ar"}	data.forms["acc_pl_def"] = {args[1] .. "arnar"} end })

decl["f1-s-indef"] = { params = { [1] = {},		}, } setmetatable(decl["f1-s-indef"], {__call = function(self, args, data)	decl["f1"].singular(args, data)	data.info = " (singular indefinite only)"	data.decl_type = "f1s indef"	data.defective = "s_indef" end })

decl["f2"] = { params = { [1] = {},		},	singular = function(args, data) data.forms["nom_sg"] = {args[1]} data.forms["nom_sg_def"] = {args[1] .. "in"}

data.forms["acc_sg"] = {args[1]} data.forms["acc_sg_def"] = {args[1] .. "ina"} data.forms["dat_sg"] = {args[1]} data.forms["dat_sg_def"] = {args[1] .. "ini"} data.forms["gen_sg"] = {args[1] .. "ar"} data.forms["gen_sg_def"] = {args[1] .. "arinnar"} end, plural = function(args, data) data.forms["nom_pl"] = {args[1] .. "ir"} data.forms["nom_pl_def"] = {args[1] .. "irnar"} data.forms["acc_pl"] = {args[1] .. "ir"} data.forms["acc_pl_def"] = {args[1] .. "irnar"} data.forms["dat_pl"] = {args[1] .. "um"} data.forms["dat_pl_def"] = {args[1] .. "unum"} data.forms["gen_pl"] = {args[1] .. "a"} data.forms["gen_pl_def"] = {args[1] .. "anna"} end } setmetatable(decl["f2"], {__call = function(self, args, data)	data.info = ""	data.decl_type = "f2"	self.singular(args, data)	self.plural(args, data) end })

decl["f2 (á)"] = { params = { [1] = {},		}, } setmetatable(decl["f2 (á)"], {__call = function(self, args, data)	decl["f2"](args, data)	data.decl_type = "f2 (á)"	data.forms["acc_sg_def"] = {args[1] .. "nna"}	data.forms["dat_sg_def"] = {args[1] .. "nni"} end })

decl["f2-p"] = { params = { [1] = {},		}, } setmetatable(decl["f2-p"], {__call = function(self, args, data)	decl["f2"].plural(args, data)	data.info = " (plural only)"	data.decl_type = "f2p"	data.defective = "p" end })

decl["f2-s"] = { params = { [1] = {},		}, } setmetatable(decl["f2-s"], {__call = function(self, args, data)	decl["f2"].singular(args, data)	data.info = " (singular only)"	data.decl_type = "f2s"	data.defective = "s" end })

decl["f2-skrá"] = { params = { [1] = {},		},

} setmetatable(decl["f2-skrá"], {__call = function(self, args, data)	decl["f2"](args, data)	data.decl_type = "f2 (skrá)"	data.forms["dat_sg_def"] = {args[1] .. "nni"} end })

decl["f3"] = { params = { [1] = {},		[2] = {},		[3] = {},		[4] = {},		},	singular = function(args, data) data.forms["nom_sg"] = {args[1] .. args[2] .. args[3]} data.forms["nom_sg_def"] = {args[1] .. args[2] .. args[3] .. "in"}

data.forms["acc_sg"] = {args[1] .. args[2] .. args[3]} data.forms["acc_sg_def"] = {args[1] .. args[2] .. args[3] .. "ina"} data.forms["dat_sg"] = {args[1] .. args[2] .. args[3]} data.forms["dat_sg_def"] = {args[1] .. args[2] .. args[3] .. "ini"} data.forms["gen_sg"] = {args[1] .. args[4] .. args[3] .. "ar"} data.forms["gen_sg_def"] = {args[1] .. args[4] .. args[3] .. "arinnar"} end, plural = function(args, data) data.forms["nom_pl"] = {args[1] .. args[4] .. args[3] .. "ir"} data.forms["nom_pl_def"] = {args[1] .. args[4] .. args[3] .. "irnar"} data.forms["acc_pl"] = {args[1] .. args[4] .. args[3] .. "ir"} data.forms["acc_pl_def"] = {args[1] .. args[4] .. args[3] .. "irnar"} data.forms["dat_pl"] = {args[1] .. args[2] .. args[3] .. "um", args[1] .. args[4] .. args[3] .. "um"} data.forms["dat_pl_def"] = {args[1] .. args[2] .. args[3] .. "unum", args[1] .. args[4] .. args[3] .. "unum"} data.forms["gen_pl"] = {args[1] .. args[4] .. args[3] .. "a"} data.forms["gen_pl_def"] = {args[1] .. args[4] .. args[3] .. "anna"} end } setmetatable(decl["f3"], {__call = function(self, args, data)	data.decl_type = "f3"	self.singular(args, data)	self.plural(args, data) end })

decl["f3-s"] = { params = { [1] = {},		[2] = {},		[3] = {},		[4] = {},		}, } setmetatable(decl["f3-s"], {__call = function(self, args, data)	decl["f3"].singular(args, data)	data.info = " (singular only)"	data.decl_type = "f3s"	data.defective = "s" end })

decl["f4"] = { params = { [1] = {},		[2] = {},		[3] = {},		[4] = {},		}, } setmetatable(decl["f4"], {__call = function(self, args, data)	decl["f3"](args, data)	data.decl_type = "f4"	data.forms["dat_pl"] = {args[1] .. args[2] .. args[3] .. "um"}	data.forms["dat_pl_def"] = {args[1] .. args[2] .. args[3] .. "unum"} end })

decl["f5"] = { params = { [1] = {},		[2] = {},		[3] = {},		}, } setmetatable(decl["f5"], {__call = function(self, args, data)	decl["f4"](args, data)	data.decl_type = "f5"	data.forms["nom_pl"] = {args[1] .. args[2] .. args[3] .. "ir"}	data.forms["nom_pl_def"] = {args[1] .. args[2] .. args[3] .. "irnar"}	data.forms["acc_pl"] = {args[1] .. args[2] .. args[3] .. "ir"}	data.forms["acc_pl_def"] = {args[1] .. args[2] .. args[3] .. "irnar"} end })

-- This pattern seems to be completely superfluous decl["f5-s"] = { params = { [1] = {},		[2] = {},		[3] = {},		}, } setmetatable(decl["f5-s"], {__call = function(self, args, data)	decl["f3-s"](args, data)	data.decl_type = "f5s" end })

decl["f6"] = { params = { [1] = {},		}, } setmetatable(decl["f6"], {__call = function(self, args, data)	decl["f2"].singular(args, data)	data.decl_type = "f6"	data.defective = "s"	data.forms["nom_pl"] = {args[1] .. "ar"}	data.forms["nom_pl_def"] = {args[1] .. "arnar"}	data.forms["acc_pl"] = {args[1] .. "ar"}	data.forms["acc_pl_def"] = {args[1] .. "arnar"} end })

decl["f6-oyggj"] = { params = { [1] = {},		}, } setmetatable(decl["f6-oyggj"], {__call = function(self, args, data)	data.decl_type = "f6-oyygj"	data.forms["nom_sg"] = {args[1] .. "ggj"}	data.forms["nom_sg_def"] = {args[1] .. "ggin"}	data.forms["nom_pl"] = {args[1] .. "ggjar"}	data.forms["nom_pl_def"] = {args[1] .. "ggjarnar"}

data.forms["acc_sg"] = {args[1] .. "ggj"} data.forms["acc_sg_def"] = {args[1] .. "nna"} data.forms["acc_pl"] = {args[1] .. "ggjar"} data.forms["acc_pl_def"] = {args[1] .. "ggjarnar"} data.forms["dat_sg"] = {args[1] .. "ggj"} data.forms["dat_sg_def"] = {args[1] .. "nni"} data.forms["dat_pl"] = {args[1] .. "ggjum"} data.forms["dat_pl_def"] = {args[1] .. "ggjunum"} data.forms["gen_sg"] = {args[1] .. "ggjar"} data.forms["gen_sg_def"] = {args[1] .. "ggjarinnar"} data.forms["gen_pl"] = {args[1] .. "ggja"} data.forms["gen_pl_def"] = {args[1] .. "ggjanna"} end })

-- This pattern seems to be completely superfluous decl["f6-s"] = { params = { [1] = {},		[2] = {},		[3] = {},		}, } setmetatable(decl["f6-s"], {__call = function(self, args, data)	decl["f2-s"](args, data)	data.decl_type = "f6s" end })

decl["f7"] = { params = { [1] = {},		[2] = {},		[3] = {},		},

} setmetatable(decl["f7"], {__call = function(self, args, data)	decl["f3"](args, data)	data.decl_type = "f7"	data.forms["nom_pl"] = {args[1] .. args[4] .. args[3] .. "ar"}	data.forms["nom_pl_def"] = {args[1] .. args[4] .. args[3] .. "arnar"}	data.forms["acc_pl"] = {args[1] .. args[4] .. args[3] .. "ar"}	data.forms["acc_pl_def"] = {args[1] .. args[4] .. args[3] .. "arnar"} end })

decl["f8"] = { params = { [1] = {},		}, } setmetatable(decl["f8"], {__call = function(self, args, data)	data.decl_type = "f8"	data.forms["nom_sg"] = {args[1]}	data.forms["nom_sg_def"] = {args[1] .. "in"}	data.forms["nom_pl"] = {args[1] .. "jar"}	data.forms["nom_pl_def"] = {args[1] .. "jarnar"}

data.forms["acc_sg"] = {args[1]} data.forms["acc_sg_def"] = {args[1] .. "ina"} data.forms["acc_pl"] = {args[1] .. "jar"} data.forms["acc_pl_def"] = {args[1] .. "jarnar"} data.forms["dat_sg"] = {args[1]} data.forms["dat_sg_def"] = {args[1] .. "ini"} data.forms["dat_pl"] = {args[1] .. "jum"} data.forms["dat_pl_def"] = {args[1] .. "junum"} data.forms["gen_sg"] = {args[1] .. "jar"} data.forms["gen_sg_def"] = {args[1] .. "jarinnar"} data.forms["gen_pl"] = {args[1] .. "ja"} data.forms["gen_pl_def"] = {args[1] .. "janna"} end })

decl["f9"] = { params = { [1] = {},		[2] = {},		}, } setmetatable(decl["f9"], {__call = function(self, args, data)	data.decl_type = "f9"	data.forms["nom_sg"] = {args[1] .. "o" .. args[2]}	data.forms["nom_sg_def"] = {args[1] .. "o" .. args[2] .. "in"}	data.forms["nom_pl"] = {args[1] .. "e" .. args[2] .. "ur"}	data.forms["nom_pl_def"] = {args[1] .. "e" .. args[2] .. "urnar"}

data.forms["acc_sg"] = {args[1] .. "o" .. args[2]} data.forms["acc_sg_def"] = {args[1] .. "o" .. args[2] .. "ina"} data.forms["acc_pl"] = {args[1] .. "e" .. args[2] .. "ur"} data.forms["acc_pl_def"] = {args[1] .. "e" .. args[2] .. "urnar"} data.forms["dat_sg"] = {args[1] .. "o" .. args[2]} data.forms["dat_sg_def"] = {args[1] .. "o" .. args[2] .. "ini"} data.forms["dat_pl"] = {args[1] .. "o" .. args[2] .. "um"} data.forms["dat_pl_def"] = {args[1] .. "o" .. args[2] .. "unum"} data.forms["gen_sg"] = {args[1] .. "a" .. args[2] .. "ar"} data.forms["gen_sg_def"] = {args[1] .. "a" .. args[2] .. "arinnar"} data.forms["gen_pl"] = {args[1] .. "a" .. args[2] .. "a"} data.forms["gen_pl_def"] = {args[1] .. "a" .. args[2] .. "anna"} end })

decl["f10"] = { params = { [1] = {},		[2] = {},		}, } setmetatable(decl["f10"], {__call = function(self, args, data)	decl["f9"](args, data)	data.decl_type = "f10"	data.forms["gen_sg"] = {args[1] .. "o" .. args[2] .. "ar"}	data.forms["gen_sg_def"] = {args[1] .. "o" .. args[2] .. "arinnar"}	data.forms["gen_pl"] = {args[1] .. "o" .. args[2] .. "a"}	data.forms["gen_pl_def"] = {args[1] .. "o" .. args[2] .. "anna"} end })

decl["f11"] = { params = { [1] = {},		[2] = {},		[3] = {},		[4] = {},		[5] = {},		}, } setmetatable(decl["f11"], {__call = function(self, args, data)	data.decl_type = "f11"	data.forms["nom_sg"] = {args[1] .. args[2] .. args[3]}	data.forms["nom_sg_def"] = {args[1] .. args[2] .. args[3] .. "in"}	data.forms["nom_pl"] = {args[1] .. args[4] .. args[3] .. "ir", args[1] .. args[5] .. args[3] .. "ur"}	data.forms["nom_pl_def"] = {args[1] .. args[4] .. args[3] .. "irnar", args[1] .. args[5] .. args[3] .. "urnar"}

data.forms["acc_sg"] = {args[1] .. args[2] .. args[3]} data.forms["acc_sg_def"] = {args[1] .. args[2] .. args[3] .. "ina"} data.forms["acc_pl"] = {args[1] .. args[4] .. args[3] .. "ir", args[1] .. args[5] .. args[3] .. "ur"} data.forms["acc_pl_def"] = {args[1] .. args[4] .. args[3] .. "irnar", args[1] .. args[5] .. args[3] .. "urnar"} data.forms["dat_sg"] = {args[1] .. args[2] .. args[3]} data.forms["dat_sg_def"] = {args[1] .. args[2] .. args[3] .. "ini"} data.forms["dat_pl"] = {args[1] .. args[4] .. args[3] .. "jum"} data.forms["dat_pl_def"] = {args[1] .. args[4] .. args[3] .. "junum"} data.forms["gen_sg"] = {args[1] .. args[4] .. args[3] .. "jar", args[1] .. args[2] .. args[3] .. "ar"} data.forms["gen_sg_def"] = {args[1] .. args[4] .. args[3] .. "jarrinar", args[1] .. args[2] .. args[3] .. "arinnar"} data.forms["gen_pl"] = {args[1] .. args[4] .. args[3] .. "ja"} data.forms["gen_pl_def"] = {args[1] .. args[4] .. args[3] .. "janna"} end })

decl["f12"] = { params = { [1] = {},		[2] = {},		[3] = {},		[4] = {},		},	singular = function(args, data) data.forms["nom_sg"] = {args[1] .. args[2] .. args[3]} data.forms["nom_sg_def"] = {args[1] .. args[2] .. args[3] .. "in"} data.forms["acc_sg"] = {args[1] .. args[2] .. args[3]} data.forms["acc_sg_def"] = {args[1] .. args[2] .. args[3] .. "ina"} data.forms["dat_sg"] = {args[1] .. args[2] .. args[3]} data.forms["dat_sg_def"] = {args[1] .. args[2] .. args[3] .. "ini"} data.forms["gen_sg"] = {args[1] .. args[2] .. args[3] .. "ar"} data.forms["gen_sg_def"] = {args[1] .. args[2] .. args[3] .. "arinnar"} end, plural = function(args, data) data.forms["nom_pl"] = {args[1] .. args[4] .. args[3] .. "ur"} data.forms["nom_pl_def"] = {args[1] .. args[4] .. args[3] .. "urnar"} data.forms["acc_pl"] = {args[1] .. args[4] .. args[3] .. "ur"} data.forms["acc_pl_def"] = {args[1] .. args[4] .. args[3] .. "urnar"} data.forms["dat_pl"] = {args[1] .. args[2] .. args[3] .. "um"} data.forms["dat_pl_def"] = {args[1] .. args[2] .. args[3] .. "unum"} data.forms["gen_pl"] = {args[1] .. args[2] .. args[3] .. "a"} data.forms["gen_pl_def"] = {args[1] .. args[2] .. args[3] .. "anna"} end } setmetatable(decl["f12"], {__call = function(self, args, data)	data.decl_type = "f12"	self.singular(args, data)	self.plural(args, data) end })

decl["f12-s"] = { params = { [1] = {},		[2] = {},		[3] = {},		}, } setmetatable(decl["f12-s"], {__call = function(self, args, data)	decl["f12"].singular(args, data)	data.info = " (singular only)"	data.decl_type = "f12s"	data.defective = "s" end })

decl["f13"] = { params = { [1] = {},		[2] = {},		[3] = {},		[4] = {},		[5] = {},		}, } setmetatable(decl["f13"], {__call = function(self, args, data)	decl["f12"](args, data)	data.decl_type = "f13"	data.forms["gen_sg"] = {args[1] .. args[5] .. args[3] .. "ar"}	data.forms["gen_sg_def"] = {args[1] .. args[5] .. args[3] .. "arinnar"}	data.forms["gen_pl"] = {args[1] .. args[5] .. args[3] .. "a"}	data.forms["gen_pl_def"] = {args[1] .. args[5] .. args[3] .. "anna"} end })

decl["f14"] = { params = { [1] = {},		[2] = {},		[3] = {},		[4] = {},		}, } setmetatable(decl["f14"], {__call = function(self, args, data)	data.decl_type = "f14"

data.forms["nom_sg"] = {args[1] .. args[2] .. args[3] .. args[3]} data.forms["nom_sg_def"] = {args[1] .. args[2] .. args[3] .. args[3] .. "in"} data.forms["nom_pl"] = {args[1] .. args[4] .. args[3] .. "ur"} data.forms["nom_pl_def"] = {args[1] .. args[4] .. args[3] .. "urnar"}

data.forms["acc_sg"] = {args[1] .. args[2] .. args[3] .. args[3]} data.forms["acc_sg_def"] = {args[1] .. args[2] .. args[3] .. args[3] .. "ina"} data.forms["acc_pl"] = {args[1] .. args[4] .. args[3] .. "ur"} data.forms["acc_pl_def"] = {args[1] .. args[2] .. args[3] .. args[3] .. "urnar"} data.forms["dat_sg"] = {args[1] .. args[2] .. args[3] .. args[3]} data.forms["dat_sg_def"] = {args[1] .. args[2] .. args[3] .. args[3] .. "ini"} data.forms["dat_pl"] = {args[1] .. args[2] .. args[3] .. args[3] .. "um"} data.forms["dat_pl_def"] = {args[1] .. args[2] .. args[3] .. args[3] .. "unum"} data.forms["gen_sg"] = {args[1] .. args[2] .. args[3] .. args[3] .. "ar"} data.forms["gen_sg_def"] = {args[1] .. args[2] .. args[3] .. args[3] .. "arinnar"} data.forms["gen_pl"] = {args[1] .. args[2] .. args[3] .. args[3] .. "a"} data.forms["gen_pl_def"] = {args[1] .. args[2] .. args[3] .. args[3] .. "anna"} end })

decl["f15"] = { params = { [1] = {},		[2] = {},		[3] = {},		[4] = {},		[5] = {},		}, } setmetatable(decl["f15"], {__call = function(self, args, data)	decl["f13"](args, data)	data.decl_type = "f15"	data.forms["nom_pl"] = {args[1] .. args[4] .. args[3]}	data.forms["nom_pl_def"] = {args[1] .. args[4] .. args[3] .. "inar"}	data.forms["acc_pl"] = {args[1] .. args[4] .. args[3]}	data.forms["acc_pl_def"] = {args[1] .. args[4] .. args[3] .. "inar"} end })

decl["f16"] = { params = { [1] = {},		[2] = {},		[3] = {},		[4] = {},		}, } setmetatable(decl["f16"], {__call = function(self, args, data)	data.decl_type = "f16"	data.forms["nom_sg"] = {args[1] .. args[2] .. args[3]}	data.forms["nom_sg_def"] = {args[1] .. args[2] .. args[3] .. "in"}	data.forms["nom_pl"] = {args[1] .. args[4] .. args[3]}	data.forms["nom_pl_def"] = {args[1] .. args[4] .. args[3] .. "nar"}	data.forms["acc_sg"] = {args[1] .. args[2] .. args[3]}	data.forms["acc_sg_def"] = {args[1] .. args[2] .. args[3] .. "ina"}	data.forms["acc_pl"] = {args[1] .. args[4] .. args[3]}	data.forms["acc_pl_def"] = {args[1] .. args[4] .. args[3] .. "nar"}	data.forms["dat_sg"] = {args[1] .. args[2] .. args[3]}	data.forms["dat_sg_def"] = {args[1] .. args[2] .. args[3] .. "ini"}	data.forms["dat_pl"] = {args[1] .. args[2] .. args[3] .. "um"}	data.forms["dat_pl_def"] = {args[1] .. args[2] .. args[3] .. "unum", args[1] .. args[4] .. args[3] .. "num"} data.forms["gen_sg"] = {args[1] .. args[2] .. args[3] .. "ar"} data.forms["gen_sg_def"] = {args[1] .. args[2] .. args[3] .. "arinnar"} data.forms["gen_pl"] = {args[1] .. args[2] .. args[3] .. "a"} data.forms["gen_pl_def"] = {args[1] .. args[2] .. args[3] .. "anna"} end })

decl["f17"] = { params = { [1] = {},		[2] = {},		},

} setmetatable(decl["f17"], {__call = function(self, args, data)	data.decl_type = "f17"	data.forms["nom_sg"] = {args[1] .. "u" .. args[2]}	data.forms["nom_sg_def"] = {args[1] .. "u" .. args[2] .. "in"}	data.forms["nom_pl"] = {args[1] .. args[2] .. "ar"}	data.forms["nom_pl_def"] = {args[1] .. args[2] .. "arnar"}

data.forms["acc_sg"] = {args[1] .. "u" .. args[2]} data.forms["acc_sg_def"] = {args[1] .. args[2] .. "ina"} data.forms["acc_pl"] = {args[1] .. args[2] .. "ar"} data.forms["acc_pl_def"] = {args[1] .. args[2] .. "arnar"} data.forms["dat_sg"] = {args[1] .. "u" .. args[2]} data.forms["dat_sg_def"] = {args[1] .. args[2] .. "ini"} data.forms["dat_pl"] = {args[1] .. args[2] .. "um"} data.forms["dat_pl_def"] = {args[1] .. args[2] .. "unum"} data.forms["gen_sg"] = {args[1] .. args[2] .. "ar"} data.forms["gen_sg_def"] = {args[1] .. args[2] .. "arinnar"} data.forms["gen_pl"] = {args[1] .. args[2] .. "a"} data.forms["gen_pl_def"] = {args[1] .. args[2] .. "anna"} end })

decl["f18"] = { params = { [1] = {},		[2] = {},		}, } setmetatable(decl["f18"], {__call = function(self, args, data)	decl["f17"](args, data)	data.decl_type = "f18"	data.forms["gen_sg"] = {args[1] .. "a" .. args[2]}	data.forms["gen_sg_def"] = {args[1] .. "a" .. args[2] .. "innar"} end })

decl["f19"] = { params = { [1] = {},		[2] = {},		[3] = {},		[4] = {},		[5] = {},		}, } setmetatable(decl["f19"], {__call = function(self, args, data)	data.decl_type = "f19"	data.forms["nom_sg"] = {args[1] .. args[2] .. args[3] .. "u" .. args[4]}	data.forms["nom_sg_def"] = {args[1] .. args[2] .. args[3] .. "u" .. args[4] .. "in"}	data.forms["nom_pl"] = {args[1] .. args[5] .. args[3] .. args[4] .. "ar"}	data.forms["nom_pl_def"] = {args[1] .. args[5] .. args[3] .. args[4] .. "arnar"}

data.forms["acc_sg"] = {args[1] .. args[2] .. args[3] .. "u" .. args[4]} data.forms["acc_sg_def"] = {args[1] .. args[2] .. args[3] .. args[4] .. "ina"} data.forms["acc_pl"] = {args[1] .. args[5] .. args[3] .. args[4] .. "ar"} data.forms["acc_pl_def"] = {args[1] .. args[5] .. args[3] .. args[4] .. "arnar"} data.forms["dat_sg"] = {args[1] .. args[2] .. args[3] .. "u" .. args[4]} data.forms["dat_sg_def"] = {args[1] .. args[2] .. args[3] .. args[4] .. "ini"} data.forms["dat_pl"] = {args[1] .. args[2] .. args[3] .. args[4] .. "um", args[1] .. args[5] .. args[3] .. args[4] .. "um"} data.forms["dat_pl_def"] = {args[1] .. args[2] .. args[3] .. args[4] .. "unum", args[1] .. args[5] .. args[3] .. args[4] .. "unum"} data.forms["gen_sg"] = {args[1] .. args[5] .. args[3] .. args[4] .. "ar"} data.forms["gen_sg_def"] = {args[1] .. args[5] .. args[3] .. args[4] .. "arinnar"} data.forms["gen_pl"] = {args[1] .. args[5] .. args[3] .. args[4] .. "a"} data.forms["gen_pl_def"] = {args[1] .. args[5] .. args[3] .. args[4] .. "anna"} end })

--Special case pattern: ær decl["f20"] = { params = { [1] = {},		[2] = {},		[3] = {},		}, } setmetatable(decl["f20"], {__call = function(self, args, data)	data.decl_type = "f20"	data.forms["nom_sg"] = {args[1]}	data.forms["nom_sg_def"] = {args[1] .. "in"}	data.forms["nom_pl"] = {args[1]}	data.forms["nom_pl_def"] = {args[1] .. "nar"}

data.forms["acc_sg"] = {args[1]} data.forms["acc_sg_def"] = {args[1] .. "ina"} data.forms["acc_pl"] = {args[1]} data.forms["acc_pl_def"] = {args[1] .. "nar"} data.forms["dat_sg"] = {args[1]} data.forms["dat_sg_def"] = {args[1] .. "ini"} data.forms["dat_pl"] = {args[2] .. "m"} data.forms["dat_pl_def"] = {args[2] .. "num"} data.forms["gen_sg"] = {args[1]} data.forms["gen_sg_def"] = {args[1] .. "innar"} data.forms["gen_pl"] = {args[3] .. "a"} data.forms["gen_pl_def"] = {args[3] .. "anna"} end })

decl["f21"] = { params = { [1] = {},		[2] = {},		[3] = {},		[4] = {},		}, } setmetatable(decl["f21"], {__call = function(self, args, data)	data.decl_type = "f21"	data.forms["nom_sg"] = {args[1] .. args[2] .. args[3]}	data.forms["nom_sg_def"] = {args[1] .. args[2] .. args[3] .. "in"}	data.forms["nom_pl"] = {args[1] .. args[4] .. "ir"}	data.forms["nom_pl_def"] = {args[1] .. args[4] .. "irnar"}

data.forms["acc_sg"] = {args[1] .. args[2] .. args[3]} data.forms["acc_sg_def"] = {args[1] .. args[2] .. "nna"} data.forms["acc_pl"] = {args[1] .. args[4] .. "ir"} data.forms["acc_pl_def"] = {args[1] .. args[4] .. "irnar"} data.forms["dat_sg"] = {args[1] .. args[2] .. args[3]} data.forms["dat_sg_def"] = {args[1] .. args[2] .. "nni"} data.forms["dat_pl"] = {args[1] .. args[4] .. "um"} data.forms["dat_pl_def"] = {args[1] .. args[4] .. "unum"} data.forms["gen_sg"] = {args[1] .. args[4] .. "ar"} data.forms["gen_sg_def"] = {args[1] .. args[4] .. "arinnar"} data.forms["gen_pl"] = {args[1] .. args[4] .. "a"} data.forms["gen_pl_def"] = {args[1] .. args[4] .. "anna"} end })

decl["f22"] = { params = { [1] = {},		[2] = {},		[3] = {},		[4] = {},		}, } setmetatable(decl["f22"], {__call = function(self, args, data)	decl["f21"](args, data)	data.decl_type = "f22"	data.forms["nom_pl"] = {args[1] .. args[4] .. "ur"}	data.forms["nom_pl_def"] = {args[1] .. args[4] .. "rnar"}	data.forms["acc_pl"] = {args[1] .. args[4] .. "ur"}	data.forms["acc_pl_def"] = {args[1] .. args[4] .. "rnar"}	data.forms["dat_pl"] = {args[1] .. args[2] .. "m"}	data.forms["dat_pl_def"] = {args[1] .. args[2] .. "num"}	data.forms["gen_sg"] = {args[1] .. args[2] .. "ar"}	data.forms["gen_sg_def"] = {args[1] .. args[2] .. "arinnar"}	data.forms["gen_pl"] = {args[1] .. args[2] .. args[3] .. "a"}	data.forms["gen_pl_def"] = {args[1] .. args[2] .. args[3] .. "anna"} end })

decl["f23"] = { params = { [1] = {},		[2] = {},		[3] = {},		}, } setmetatable(decl["f23"], {__call = function(self, args, data)	data.decl_type = "f23"	data.forms["nom_sg"] = {args[1] .. args[2] .. args[3]}	data.forms["nom_sg_def"] = {args[1] .. args[2] .. args[3] .. "in"}	data.forms["nom_pl"] = {args[1] .. args[2] .. args[3] .. "ir"}	data.forms["nom_pl_def"] = {args[1] .. args[2] .. args[3] .. "irnar"}

data.forms["acc_sg"] = {args[1] .. args[2] .. args[3]} data.forms["acc_sg_def"] = {args[1] .. args[2] .. "nna"} data.forms["acc_pl"] = {args[1] .. args[2] .. args[3] .. "ir"} data.forms["acc_pl_def"] = {args[1] .. args[2] .. args[3] .. "irnar"} data.forms["dat_sg"] = {args[1] .. args[2] .. args[3]} data.forms["dat_sg_def"] = {args[1] .. args[2] .. "nni"} data.forms["dat_pl"] = {args[1] .. args[2] .. args[3] .. "um"} data.forms["dat_pl_def"] = {args[1] .. args[2] .. args[3] .. "unum"} data.forms["gen_sg"] = {args[1] .. args[2] .. "ar"} data.forms["gen_sg_def"] = {args[1] .. args[2] .. "arinnar"} data.forms["gen_pl"] = {args[1] .. args[2] .. args[3] .. "a"} data.forms["gen_pl_def"] = {args[1] .. args[2] .. args[3] .. "anna"} end })

decl["f24"] = { params = { [1] = {},		[2] = {},		[3] = {},		[4] = {},		}, } setmetatable(decl["f24"], {__call = function(self, args, data)	for i = 1, 4 do		if not args[i] then args[i] = "" end	end	data.decl_type = "f24"	data.forms["nom_sg"] = {args[1] .. args[2] .. args[3]}	data.forms["nom_sg_def"] = {args[1] .. args[2] .. args[3] .. "in"}	data.forms["nom_pl"] = {args[1] .. args[4] .. "r"}	data.forms["nom_pl_def"] = {args[1] .. args[4] .. "rnar"}

data.forms["acc_sg"] = {args[1] .. args[2] .. args[3]} data.forms["acc_sg_def"] = {args[1] .. args[2] .. "nna"} data.forms["acc_pl"] = {args[1] .. args[4] .. "r"} data.forms["acc_pl_def"] = {args[1] .. args[4] .. "rnar"} data.forms["dat_sg"] = {args[1] .. args[2] .. args[3]} data.forms["dat_sg_def"] = {args[1] .. args[2] .. "nni"} data.forms["dat_pl"] = {args[1] .. args[2] .. "m"} data.forms["dat_pl_def"] = {args[1] .. args[2] .. "num"} data.forms["gen_sg"] = {args[1] .. args[2] .. args[3] .. "ar"} data.forms["gen_sg_def"] = {args[1] .. args[2] .. args[3] .. "arinnar"} data.forms["gen_pl"] = {args[1] .. args[2] .. args[3] .. "a"} data.forms["gen_pl_def"] = {args[1] .. args[2] .. args[3] .. "anna"} end })

decl["f24-s"] = { params = { [1] = {},		[2] = {},		[3] = {},		[4] = {},		}, } setmetatable(decl["f24-s"], {__call = function(self, args, data)	decl["f24"](args, data)	data.info = " (singular only)"	data.decl_type = "f24s"	data.defective = "s" end })

-- This pattern appears to be completely superfluous decl["f25"] = { params = { [1] = {},		[2] = {},		[3] = {},		[4] = {},		}, } setmetatable(decl["f25"], {__call = function(self, args, data)	decl["f16"](args, data)	data.decl_type = "f25" end })

decl["f26"] = { params = { [1] = {},		[2] = {},		[3] = {},		[4] = {},		}, } setmetatable(decl["f26"], {__call = function(self, args, data)	data.decl_type = "f26"	data.forms["nom_sg"] = {args[1] .. args[2]}	data.forms["nom_sg_def"] = {args[1] .. args[2] .. "in"}	data.forms["nom_pl"] = {args[1] .. args[3] .. "r"}	data.forms["nom_pl_def"] = {args[1] .. args[3] .. "rnar"}

data.forms["acc_sg"] = {args[1] .. args[2]} data.forms["acc_sg_def"] = {args[1] .. args[2] .. "nna"} data.forms["acc_pl"] = {args[1] .. args[3] .. "r"} data.forms["acc_pl_def"] = {args[1] .. args[3] .. "rnar"} data.forms["dat_sg"] = {args[1] .. args[2]} data.forms["dat_sg_def"] = {args[1] .. args[2] .. "nni"} data.forms["dat_pl"] = {args[1] .. args[4] .. "m"} data.forms["dat_pl_def"] = {args[1] .. args[4] .. "num"} data.forms["gen_sg"] = {args[1] .. args[2] .. "ar"} data.forms["gen_sg_def"] = {args[1] .. args[2] .. "arinnar"} data.forms["gen_pl"] = {args[1] .. args[2] .. "a"} data.forms["gen_pl_def"] = {args[1] .. args[2] .. "anna"} end })

-- This pattern appears to be completely superfluous decl["f27"] = { params = { [1] = {},		[2] = {},		[3] = {},		[4] = {},		}, } setmetatable(decl["f27"], {__call = function(self, args, data)	decl["f12"](args, data)	data.decl_type = "f27" end })

decl["f28"] = { params = { [1] = {},		[2] = {},		[3] = {},		[4] = {},		}, } setmetatable(decl["f28"], {__call = function(self, args, data)	data.decl_type = "f28"	data.info = " (plural only)"	data.defective = "p"	data.forms["nom_pl"] = {args[1] .. args[2] .. args[3]}	data.forms["nom_pl_def"] = {args[1] .. args[2] .. args[3] .. "nar"}

data.forms["acc_pl"] = {args[1] .. args[2] .. args[3]} data.forms["acc_pl_def"] = {args[1] .. args[2] .. args[3] .. "nar"} data.forms["dat_pl"] = {args[1] .. args[4] .. args[3] .. "um"} data.forms["dat_pl_def"] = {args[1] .. args[4] .. args[3] .. "unum"} data.forms["gen_pl"] = {args[1] .. args[4] .. args[3] .. "a"} data.forms["gen_pl_def"] = {args[1] .. args[4] .. args[3] .. "anna"} end })

--Special case pattern: móðir and derivatives decl["f29"] = { params = { [1] = {},		[2] = {},		[3] = {},		[4] = {},		},	singular = function(args, data) data.forms["nom_sg"] = {args[1] .. args[2] .. args[3] .. "ir"} data.forms["nom_sg_def"] = {args[1] .. args[2] .. args[3] .. "irin"} data.forms["acc_sg"] = {args[1] .. args[2] .. args[3] .. "ur"} data.forms["acc_sg_def"] = {args[1] .. args[2] .. args[3] .. "urina"} data.forms["dat_sg"] = {args[1] .. args[2] .. args[3] .. "ur"} data.forms["dat_sg_def"] = {args[1] .. args[2] .. args[3] .. "urini"} data.forms["gen_sg"] = {args[1] .. args[2] .. args[3] .. "ur"} data.forms["gen_sg_def"] = {args[1] .. args[2] .. args[3] .. "urinnar"} end, plural = function(args, data) data.forms["nom_pl"] = {args[1] .. args[4] .. args[3] .. "ur"} data.forms["nom_pl_def"] = {args[1] .. args[4] .. args[3] .. "urnar"}

data.forms["acc_pl"] = {args[1] .. args[4] .. args[3] .. "ur"} data.forms["acc_pl_def"] = {args[1] .. args[4] .. args[3] .. "urnar"}

data.forms["dat_pl"] = {args[1] .. args[4] .. args[3] .. "rum"} data.forms["dat_pl_def"] = {args[1] .. args[4] .. args[3].. "rnum"} data.forms["gen_pl"] = {args[1] .. args[4] .. args[3] .. "ra"} data.forms["gen_pl_def"] = {args[1] .. args[4] .. args[3] .. "ranna"} end } setmetatable(decl["f29"], {__call = function(self, args, data)	data.decl_type = "f29"	self.singular(args, data)	self.plural(args, data) end })

-- Special case pattern: dóttir and derivatives decl["f30"] = { params = { [1] = {},		[2] = {},		[3] = {},		[4] = {},		}, } setmetatable(decl["f30"], {__call = function(self, args, data)	data.decl_type = "f30"	data.forms["nom_sg"] = {args[1] .. args[2] .. args[3] .. args[3] .. "ir"}	data.forms["nom_sg_def"] = {args[1] .. args[2] .. args[3] .. args[3] .. "irin"}	data.forms["acc_sg"] = {args[1] .. args[2] .. args[3] .. args[3] .. "ur"}	data.forms["acc_sg_def"] = {args[1] .. args[2] .. args[3] .. args[3] .. "rina"}	data.forms["dat_sg"] = {args[1] .. args[2] .. args[3] .. args[3] .. "ur"}	data.forms["dat_sg_def"] = {args[1] .. args[2] .. args[3] .. args[3] .. "rini"}	data.forms["gen_sg"] = {args[1] .. args[2] .. args[3] .. args[3] .. "ur"}	data.forms["gen_sg_def"] = {args[1] .. args[2] .. args[3] .. args[3] .. "urinnar"}	decl["f29"].plural(args, data) end })

-- Special case pattern: systir and derivatives decl["f31"] = { params = { [1] = {},		}, } setmetatable(decl["f31"], {__call = function(self, args, data)	data.decl_type = "f31"	data.forms["nom_sg"] = {args[1] .. "ir"}	data.forms["nom_sg_def"] = {args[1] .. "irin"}	data.forms["nom_pl"] = {args[1] .. "rar"}	data.forms["nom_pl_def"] = {args[1] .. "rarnar"}

data.forms["acc_sg"] = {args[1] .. "ur"} data.forms["acc_sg_def"] = {args[1] .. "rina"} data.forms["acc_pl"] = {args[1] .. "rar"} data.forms["acc_pl_def"] = {args[1] .. "rarnar"} data.forms["dat_sg"] = {args[1] .. "ur"} data.forms["dat_sg_def"] = {args[1] .. "rini"} data.forms["dat_pl"] = {args[1] .. "rum"} data.forms["dat_pl_def"] = {args[1] .. "runum"} data.forms["gen_sg"] = {args[1] .. "ur"} data.forms["gen_sg_def"] = {args[1] .. "urinnar"} data.forms["gen_pl"] = {args[1] .. "ra"} data.forms["gen_pl_def"] = {args[1] .. "ranna"} end })

decl["f32"] = { params = { [1] = {},		},	singular = function(args, data) data.forms["nom_sg"] = {args[1] .. "i"} data.forms["nom_sg_def"] = {args[1] .. "in"}

data.forms["acc_sg"] = {args[1] .. "i"} data.forms["acc_sg_def"] = {args[1] .. "ina"}

data.forms["dat_sg"] = {args[1] .. "i"} data.forms["dat_sg_def"] = {args[1] .. "ini"}

data.forms["gen_sg"] = {args[1] .. "ar"} data.forms["gen_sg_def"] = {args[1] .. "arinnar"} end, plural = function(args, data) data.forms["nom_pl"] = {args[1] .. "ar"} data.forms["nom_pl_def"] = {args[1] .. "arnar"} data.forms["acc_pl"] = {args[1] .. "ar"} data.forms["acc_pl_def"] = {args[1] .. "arnar"} data.forms["dat_pl"] = {args[1] .. "um"} data.forms["dat_pl_def"] = {args[1] .. "unum"} data.forms["gen_pl"] = {args[1] .. "a"} data.forms["gen_pl_def"] = {args[1] .. "anna"} end } setmetatable(decl["f32"], {__call = function(self, args, data)	data.decl_type = "f32"	self.singular(args, data)	self.plural(args, data) end })

decl["f32-p"] = { params = { [1] = {},		}, } setmetatable(decl["f32-p"], {__call = function(self, args, data)	decl["f32"].plural(args, data)	data.decl_type = "f32p"	data.info = " (plural only)"	data.defective = "p" end })

decl["f33"] = { params = { [1] = {},		},	singular = function(args, data) data.forms["nom_sg"] = {args[1]} data.forms["nom_sg_def"] = {args[1] .. "n"}

data.forms["acc_sg"] = {args[1]} data.forms["acc_sg_def"] = {args[1] .. "na"}

data.forms["dat_sg"] = {args[1]} data.forms["dat_sg_def"] = {args[1] .. "ni"}

data.forms["gen_sg"] = {args[1]} data.forms["gen_sg_def"] = {args[1] .. "nnar"} end, plural = function(args, data) data.forms["nom_pl"] = {args[1] .. "r"} data.forms["nom_pl_def"] = {args[1] .. "rnar"} data.forms["acc_pl"] = {args[1] .. "r"} data.forms["acc_pl_def"] = {args[1] .. "rnar"} --data.forms["dat_pl"] = {args[1] .. "um"} --data.forms["dat_pl_def"] = {args[1] .. "unum"} --data.forms["gen_pl"] = {args[1] .. "a"} --data.forms["gen_pl_def"] = {args[1] .. "anna"} end } setmetatable(decl["f33"], {__call = function(self, args, data)	data.decl_type = "f33"	data.info = " (defective)"	self.singular(args, data)	self.plural(args, data) end })

decl["f33-s"] = { params = { [1] = {},		}, } setmetatable(decl["f33-s"], {__call = function(self, args, data)	decl["f33"].singular(args, data)	data.decl_type = "f33s"	data.info = " (singular only)"	data.defective = "s" end })

decl["f34"] = { params = { [1] = {},		[2] = {},		[3] = {},		[4] = {},		}, } setmetatable(decl["f34"], {__call = function(self, args, data)	decl["f3"](args, data)	data.decl_type = "f34"	data.forms["dat_pl"] = {args[1] .. args[4] .. args[3] .. "um"}	data.forms["dat_pl_def"] = {args[1] .. args[4] .. args[3] .. "unum"}	data.forms["gen_sg"] = {args[1] .. args[2] .. args[3] .. "ar"}	data.forms["gen_sg_def"] = {args[1] .. args[2] .. args[3] .. "arinnar"} end })

return decl