Module:fo-noun/data-f
Appearance
- The following documentation is located at Module:fo-noun/data-f/documentation. [edit] Categories were auto-generated by Module:module categorization. [edit]
- Useful links: root page • root page’s subpages • links • transclusions • testcases • sandbox
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)
if args[1] == '-' then
-- e.g. øksl (f3), ørn (f5 which ultimately calls f3)
args[1] = ''
end
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] = {},
[4] = {},
},
}
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"](args, data)
data.decl_type = "f6"
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] = {},
[4] = {},
},
}
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"
if args[1] == '-' then
-- e.g. ont (f9)
args[1] = ''
end
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"
if args[1] == '-' then
-- e.g. ong
args[1] = ''
end
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