Module:qhv-noun/data: Difference between revisions

From Linguifex
Jump to navigation Jump to search
mNo edit summary
mNo edit summary
 
(25 intermediate revisions by the same user not shown)
Line 1: Line 1:
local sub = mw.ustring.sub
local sub = mw.ustring.sub
local function lengthen(v)
local switch = {["a"] = "ā", ["e"] = "ē", ["i"] = "ī", ["o"] = "ō", ["u"] = "ū", ["y"] = "ȳ"}
return switch[v] or v
end


local alldata = {}
local alldata = {}
Line 14: Line 19:
local stemi = sub(stem, 1, -2)
local stemi = sub(stem, 1, -2)
data.decl_type = "lunar first-declension"
data.decl_type = "lunar first-declension"
table.insert(data.categories, "High Valyrian first-declension " .. (data.proper and "proper" or "") .. "nouns")
table.insert(data.categories, "High Valyrian first-declension " .. (data.proper and "proper " or "") .. "nouns")
 
data.forms["nom_sg"] = {stem .. "a"}
data.forms["acc_sg"] = {stem .. "e"}
data.forms["gen_sg"] = {stem .. "o"}
data.forms["dat_sg"] = {stem .. "ot"}
data.forms["loc_sg"] = {stem .. "ā"}
data.forms["ins_sg"] = {i and stemi .. "ȳsa" or stem .. "osa"}
data.forms["com_sg"] = {i and stemi .. "ȳma" or stem .. "oma"}
data.forms["voc_sg"] = {i and stemi .. "ȳs" or stem .. "us"}
 
if not args.nopl then
data.forms["nom_pl"] = {i and stemi .. "ī" or stem .. "i"}
data.forms["acc_pl"] = {i and stemi .. "ī" or stem .. "ī"}
data.forms["gen_pl"] = {i and stemi .. "ȳti" or stem .. "oti"}
data.forms["dat_pl"] = data.forms["gen_pl"]
data.forms["loc_pl"] = data.forms["gen_pl"]
data.forms["ins_pl"] = {i and stemi .. "ȳssi" or stem .. "ossi"}
data.forms["com_pl"] = {i and stemi .. "ȳmmi" or stem .. "ommi"}
data.forms["voc_pl"] = {i and stemi .. "īs" or stem .. "is"}
data.forms["nom_pa"] = {i and stemi .. "ȳn" or stem .. "un"}
data.forms["acc_pa"] = {i and stemi .. "ȳni" or stem .. "uni"}
data.forms["gen_pa"] = {i and stemi .. "ȳno" or stem .. "uno"}
data.forms["dat_pa"] = {i and stemi .. "ȳnta" or stem .. "unta"}
data.forms["loc_pa"] = {i and stemi .. "ȳnna" or stem .. "unna"}
data.forms["ins_pa"] = {i and stemi .. "ȳssa" or stem .. "ussa"}
data.forms["com_pa"] = {i and stemi .. "ȳmma" or stem .. "umma"}
data.forms["voc_pa"] = data.forms["ins_pa"]
data.forms["nom_co"] = {stem .. "ar"}
data.forms["acc_co"] = {stem .. "ari"}
data.forms["gen_co"] = {stem .. "aro"}
data.forms["dat_co"] = {stem .. "arta"}
data.forms["loc_co"] = {stem .. "arra"}
data.forms["ins_co"] = {stem .. "arza"}
data.forms["com_co"] = {stem .. "arma"}
data.forms["voc_co"] = data.forms["ins_co"]
end
end
})
 
alldata["-illa"] = {
params = {
[1] = {},
["nopl"] = {},
},
}
setmetatable(alldata["-illa"], {__call = function(self, args, data)
local stem = args[1]
local i = sub(stem, -1) == "i"
local stemi = sub(stem, 1, -2)
data.decl_type = "aquatic first-declension"
table.insert(data.categories, "High Valyrian first-declension " .. (data.proper and "proper " or "") .. "nouns")


data.forms["nom_sg"] = {stem .. "a"}
data.forms["nom_sg"] = {stem .. "a"}
Line 64: Line 122:
setmetatable(alldata["1-a"], {__call = function(self, args, data)
setmetatable(alldata["1-a"], {__call = function(self, args, data)
local stem = args[1]
local stem = args[1]
local v = sub(stem, -2, -2)
local stemr = (sub(stem, -1) == "m" and sub(stem, 1, -3) .. lengthen(v) .. "b"
or sub(stem, -1) == "n" and sub(stem, 1, -3) .. lengthen(v) .. "d"
or stem)
data.decl_type = "aquatic first-declension"
data.decl_type = "aquatic first-declension"
table.insert(data.categories, "High Valyrian first-declension " .. (data.proper and "proper" or "") .. "nouns")
table.insert(data.categories, "High Valyrian first-declension " .. (data.proper and "proper " or "") .. "nouns")


data.forms["nom_sg"] = {stem .. "ar"}
data.forms["nom_sg"] = {stem .. "ar"}
data.forms["acc_sg"] = {stem .. "ri"}
data.forms["acc_sg"] = {stemr .. "ri"}
data.forms["gen_sg"] = {stem .. "ro"}
data.forms["gen_sg"] = {stemr .. "ro"}
data.forms["dat_sg"] = {stem .. "rot"}
data.forms["dat_sg"] = {stemr .. "rot"}
data.forms["loc_sg"] = {stem .. "ār"}
data.forms["loc_sg"] = {stem .. "ār"}
data.forms["ins_sg"] = {stem .. "rosa"}
data.forms["ins_sg"] = {stemr .. "rosa"}
data.forms["com_sg"] = {stem .. "roma"}
data.forms["com_sg"] = {stemr .. "roma"}
data.forms["voc_sg"] = {stem .. "us"}
data.forms["voc_sg"] = {stem .. "us"}


if not args.nopl then
if not args.nopl then
data.forms["nom_pl"] = {stem .. "ri"}
data.forms["nom_pl"] = {stemr .. "ri"}
data.forms["acc_pl"] = {stem .. "rī"}
data.forms["acc_pl"] = {stemr .. "rī"}
data.forms["gen_pl"] = {stem .. "oti"}
data.forms["gen_pl"] = {stem .. "oti"}
data.forms["dat_pl"] = data.forms["gen_pl"]
data.forms["dat_pl"] = data.forms["gen_pl"]
data.forms["loc_pl"] = data.forms["gen_pl"]
data.forms["loc_pl"] = data.forms["gen_pl"]
data.forms["ins_pl"] = {stem .. "rossi"}
data.forms["ins_pl"] = {stemr .. "rossi"}
data.forms["com_pl"] = {stem .. "rommi"}
data.forms["com_pl"] = {stemr .. "rommi"}
data.forms["voc_pl"] = {stem .. "is"}
data.forms["voc_pl"] = {stem .. "is"}
data.forms["nom_pa"] = {stem .. "run"}
data.forms["nom_pa"] = {stemr .. "run"}
data.forms["acc_pa"] = {stem .. "runi"}
data.forms["acc_pa"] = {stemr .. "runi"}
data.forms["gen_pa"] = {stem .. "runo"}
data.forms["gen_pa"] = {stemr .. "runo"}
data.forms["dat_pa"] = {stem .. "runta"}
data.forms["dat_pa"] = {stemr .. "runta"}
data.forms["loc_pa"] = {stem .. "runna"}
data.forms["loc_pa"] = {stemr .. "runna"}
data.forms["ins_pa"] = {stem .. "russa"}
data.forms["ins_pa"] = {stemr .. "russa"}
data.forms["com_pa"] = {stem .. "rumma"}
data.forms["com_pa"] = {stemr .. "rumma"}
data.forms["voc_pa"] = data.forms["ins_pa"]
data.forms["voc_pa"] = data.forms["ins_pa"]
data.forms["nom_co"] = {stem .. "rar"}
data.forms["nom_co"] = {stemr .. "rar"}
data.forms["acc_co"] = {stem .. "rari"}
data.forms["acc_co"] = {stemr .. "rari"}
data.forms["gen_co"] = {stem .. "raro"}
data.forms["gen_co"] = {stemr .. "raro"}
data.forms["dat_co"] = {stem .. "rarta"}
data.forms["dat_co"] = {stemr .. "rarta"}
data.forms["loc_co"] = {stem .. "rarra"}
data.forms["loc_co"] = {stemr .. "rarra"}
data.forms["ins_co"] = {stem .. "rarza"}
data.forms["ins_co"] = {stemr .. "rarza"}
data.forms["com_co"] = {stem .. "rarma"}
data.forms["com_co"] = {stemr .. "rarma"}
data.forms["voc_co"] = data.forms["ins_co"]
data.forms["voc_co"] = data.forms["ins_co"]
end
end
})
alldata["p-1"] = {
params = {
[1] = {},
["nopl"] = {},
},
}
setmetatable(alldata["p-1"], {__call = function(self, args, data)
local stem = args[1]
local i = sub(stem, -1) == "i"
local stemi = sub(stem, 1, -2)
data.decl_type = "sixth-declension"
table.insert(data.categories, "High Valyrian sixth-declension " .. (data.proper and "proper " or "") .. "nouns")
data.forms["nom_sg"] = {i and stemi .. "ȳn" or stem .. "un"}
data.forms["acc_sg"] = {i and stemi .. "ȳni" or stem .. "uni"}
data.forms["gen_sg"] = {i and stemi .. "ȳno" or stem .. "uno"}
data.forms["dat_sg"] = {i and stemi .. "ȳnta" or stem .. "unta"}
data.forms["loc_sg"] = {i and stemi .. "ȳnna" or stem .. "unna"}
data.forms["ins_sg"] = {i and stemi .. "ȳssa" or stem .. "ussa"}
data.forms["com_sg"] = {i and stemi .. "ȳmma" or stem .. "umma"}
data.forms["voc_sg"] = data.forms["ins_sg"]
if not args.nopl then
data.forms["nom_pl"] = {i and stemi .. "y" or stem .. "i"}
data.forms["acc_pl"] = {i and stemi .. "ī" or stem .. "ī"}
data.forms["gen_pl"] = {}
data.forms["dat_pl"] = data.forms["gen_pl"]
data.forms["loc_pl"] = data.forms["gen_pl"]
data.forms["ins_pl"] = {}
data.forms["com_pl"] = {}
data.forms["voc_pl"] = {}
end
end
end
end
Line 116: Line 213:
local stem = args[1]
local stem = args[1]
data.decl_type = "lunar second-declension"
data.decl_type = "lunar second-declension"
table.insert(data.categories, "High Valyrian second-declension " .. (data.proper and "proper" or "") .. "nouns")
table.insert(data.categories, "High Valyrian second-declension " .. (data.proper and "proper " or "") .. "nouns")


data.forms["nom_sg"] = {stem .. "y"}
data.forms["nom_sg"] = {stem .. "y"}
Line 167: Line 264:
local stem = args[1]
local stem = args[1]
data.decl_type = "solar second-declension"
data.decl_type = "solar second-declension"
table.insert(data.categories, "High Valyrian second-declension " .. (data.proper and "proper" or "") .. "nouns")
table.insert(data.categories, "High Valyrian second-declension " .. (data.proper and "proper " or "") .. "nouns")


data.forms["nom_sg"] = {stem .. "ys"}
data.forms["nom_sg"] = {stem .. "ys"}
Line 220: Line 317:
local stemi = sub(stem, 1, -2)
local stemi = sub(stem, 1, -2)
data.decl_type = "lunar third-declension"
data.decl_type = "lunar third-declension"
table.insert(data.categories, "High Valyrian third-declension " .. (data.proper and "proper" or "") .. "nouns")
table.insert(data.categories, "High Valyrian third-declension " .. (data.proper and "proper " or "") .. "nouns")


data.forms["nom_sg"] = {stem .. "o"}
data.forms["nom_sg"] = {stem .. "o"}
Line 271: Line 368:
local stem = args[1]
local stem = args[1]
data.decl_type = "solar third-declension"
data.decl_type = "solar third-declension"
table.insert(data.categories, "High Valyrian third-declension " .. (data.proper and "proper" or "") .. "nouns")
table.insert(data.categories, "High Valyrian third-declension " .. (data.proper and "proper " or "") .. "nouns")


data.forms["nom_sg"] = {stem .. "os"}
data.forms["nom_sg"] = {stem .. "os"}
Line 322: Line 419:
local stem = args[1]
local stem = args[1]
data.decl_type = "k-stem solar third-declension"
data.decl_type = "k-stem solar third-declension"
table.insert(data.categories, "High Valyrian third-declension " .. (data.proper and "proper" or "") .. "nouns")
table.insert(data.categories, "High Valyrian third-declension " .. (data.proper and "proper " or "") .. "nouns")
table.insert(data.categories, "High Valyrian k-stem " .. (data.proper and "proper" or "") .. "nouns")
table.insert(data.categories, "High Valyrian k-stem " .. (data.proper and "proper " or "") .. "nouns")


data.forms["nom_sg"] = {stem .. "ks"}
data.forms["nom_sg"] = {stem .. "ks"}
Line 372: Line 469:
}
}
setmetatable(alldata["3-s-v"], {__call = function(self, args, data)
setmetatable(alldata["3-s-v"], {__call = function(self, args, data)
local stem = mw.title.getCurrentTitle().text == "Lȳs" and "L" .. args[1] or args[1]
local stem = nil and "" or args[1]
data.decl_type = "v-stem solar third-declension"
data.decl_type = "v-stem solar third-declension"
table.insert(data.categories, "High Valyrian third-declension " .. (data.proper and "proper" or "") .. "nouns")
table.insert(data.categories, "High Valyrian third-declension " .. (data.proper and "proper " or "") .. "nouns")
table.insert(data.categories, "High Valyrian v-stem " .. (data.proper and "proper" or "") .. "nouns")
table.insert(data.categories, "High Valyrian v-stem " .. (data.proper and "proper " or "") .. "nouns")


data.forms["nom_sg"] = {stem .. "ȳs"}
data.forms["nom_sg"] = {stem .. "ȳs"}
Line 426: Line 523:
local stem = args[1]
local stem = args[1]
data.decl_type = "h-stem solar third-declension"
data.decl_type = "h-stem solar third-declension"
table.insert(data.categories, "High Valyrian third-declension " .. (data.proper and "proper" or "") .. "nouns")
table.insert(data.categories, "High Valyrian third-declension " .. (data.proper and "proper " or "") .. "nouns")
table.insert(data.categories, "High Valyrian h-stem " .. (data.proper and "proper" or "") .. "nouns")
table.insert(data.categories, "High Valyrian h-stem " .. (data.proper and "proper " or "") .. "nouns")


data.forms["nom_sg"] = {stem .. "s"}
data.forms["nom_sg"] = {stem .. "s"}
Line 480: Line 577:
local stemi = sub(stem, 1, -2)
local stemi = sub(stem, 1, -2)
data.decl_type = "terrestrial third-declension"
data.decl_type = "terrestrial third-declension"
table.insert(data.categories, "High Valyrian third-declension " .. (data.proper and "proper" or "") .. "nouns")
table.insert(data.categories, "High Valyrian third-declension " .. (data.proper and "proper " or "") .. "nouns")


data.forms["nom_sg"] = {stem .. "on"}
data.forms["nom_sg"] = {stem .. "on"}
Line 530: Line 627:
setmetatable(alldata["3-a"], {__call = function(self, args, data)
setmetatable(alldata["3-a"], {__call = function(self, args, data)
local stem = args[1]
local stem = args[1]
local v = sub(stem, -2, -2)
local stemr = (sub(stem, -1) == "m" and sub(stem, 1, -3) .. lengthen(v) .. "b"
or sub(stem, -1) == "n" and sub(stem, 1, -3) .. lengthen(v) .. "d"
or stem)
data.decl_type = "aquatic third-declension"
data.decl_type = "aquatic third-declension"
table.insert(data.categories, "High Valyrian third-declension " .. (data.proper and "proper" or "") .. "nouns")
table.insert(data.categories, "High Valyrian third-declension " .. (data.proper and "proper " or "") .. "nouns")


data.forms["nom_sg"] = {stem .. "or"}
data.forms["nom_sg"] = {stem .. "or"}
data.forms["acc_sg"] = data.forms["nom_sg"]
data.forms["acc_sg"] = data.forms["nom_sg"]
data.forms["gen_sg"] = {stem .. "ro"}
data.forms["gen_sg"] = {stemr .. "ro"}
data.forms["dat_sg"] = {stem .. "rot"}
data.forms["dat_sg"] = {stemr .. "rot"}
data.forms["loc_sg"] = data.forms["dat_sg"]
data.forms["loc_sg"] = data.forms["dat_sg"]
data.forms["ins_sg"] = {stem .. "roso"}
data.forms["ins_sg"] = {stemr .. "roso"}
data.forms["com_sg"] = data.forms["ins_sg"]
data.forms["com_sg"] = data.forms["ins_sg"]
data.forms["voc_sg"] = {stem .. "os"}
data.forms["voc_sg"] = {stem .. "os"}


if not args.nopl then
if not args.nopl then
data.forms["nom_pl"] = {stem .. "ra"}
data.forms["nom_pl"] = {stemr .. "ra"}
data.forms["acc_pl"] = data.forms["nom_pl"]
data.forms["acc_pl"] = data.forms["nom_pl"]
data.forms["gen_pl"] = {stem .. "roti"}
data.forms["gen_pl"] = {stemr .. "roti"}
data.forms["dat_pl"] = data.forms["gen_pl"]
data.forms["dat_pl"] = data.forms["gen_pl"]
data.forms["loc_pl"] = data.forms["gen_pl"]
data.forms["loc_pl"] = data.forms["gen_pl"]
data.forms["ins_pl"] = {stem .. "rossi"}
data.forms["ins_pl"] = {stemr .. "rossi"}
data.forms["com_pl"] = data.forms["ins_pl"]
data.forms["com_pl"] = data.forms["ins_pl"]
data.forms["voc_pl"] = {stem .. "as"}
data.forms["voc_pl"] = {stem .. "as"}
data.forms["nom_pa"] = {stem .. "run"}
data.forms["nom_pa"] = {stemr .. "run"}
data.forms["acc_pa"] = {stem .. "runi"}
data.forms["acc_pa"] = {stemr .. "runi"}
data.forms["gen_pa"] = {stem .. "runo"}
data.forms["gen_pa"] = {stemr .. "runo"}
data.forms["dat_pa"] = {stem .. "runto"}
data.forms["dat_pa"] = {stemr .. "runto"}
data.forms["loc_pa"] = {stem .. "runno"}
data.forms["loc_pa"] = {stemr .. "runno"}
data.forms["ins_pa"] = {stem .. "russo"}
data.forms["ins_pa"] = {stemr .. "russo"}
data.forms["com_pa"] = {stem .. "rummo"}
data.forms["com_pa"] = {stemr .. "rummo"}
data.forms["voc_pa"] = data.forms["ins_pa"]
data.forms["voc_pa"] = data.forms["ins_pa"]
data.forms["nom_co"] = {stem .. "ror"}
data.forms["nom_co"] = {stemr .. "ror"}
data.forms["acc_co"] = {stem .. "rori"}
data.forms["acc_co"] = {stemr .. "rori"}
data.forms["gen_co"] = {stem .. "roro"}
data.forms["gen_co"] = {stemr .. "roro"}
data.forms["dat_co"] = {stem .. "rorto"}
data.forms["dat_co"] = {stemr .. "rorto"}
data.forms["loc_co"] = {stem .. "rorro"}
data.forms["loc_co"] = {stemr .. "rorro"}
data.forms["ins_co"] = {stem .. "rorzo"}
data.forms["ins_co"] = {stemr .. "rorzo"}
data.forms["com_co"] = {stem .. "rormo"}
data.forms["com_co"] = {stemr .. "rormo"}
data.forms["voc_co"] = data.forms["ins_co"]
data.forms["voc_co"] = data.forms["ins_co"]
end
end
Line 582: Line 683:
local stem = args[1]
local stem = args[1]
data.decl_type = "lunar fourth-declension"
data.decl_type = "lunar fourth-declension"
table.insert(data.categories, "High Valyrian fourth-declension " .. (data.proper and "proper" or "") .. "nouns")
table.insert(data.categories, "High Valyrian fourth-declension " .. (data.proper and "proper " or "") .. "nouns")


data.forms["nom_sg"] = {stem .. "e"}
data.forms["nom_sg"] = {stem .. "e"}
Line 633: Line 734:
local stem = args[1]
local stem = args[1]
data.decl_type = "solar fourth-declension"
data.decl_type = "solar fourth-declension"
table.insert(data.categories, "High Valyrian fourth-declension " .. (data.proper and "proper" or "") .. "nouns")
table.insert(data.categories, "High Valyrian fourth-declension " .. (data.proper and "proper " or "") .. "nouns")


data.forms["nom_sg"] = {stem .. "es"}
data.forms["nom_sg"] = {stem .. "es"}
Line 684: Line 785:
local stem = args[1]
local stem = args[1]
data.decl_type = "terrestrial fourth-declension"
data.decl_type = "terrestrial fourth-declension"
table.insert(data.categories, "High Valyrian fourth-declension " .. (data.proper and "proper" or "") .. "nouns")
table.insert(data.categories, "High Valyrian fourth-declension " .. (data.proper and "proper " or "") .. "nouns")


data.forms["nom_sg"] = {stem .. "ien"}
data.forms["nom_sg"] = {stem .. "ien"}
Line 735: Line 836:
local stem = args[1]
local stem = args[1]
data.decl_type = "lunar fifth-declension"
data.decl_type = "lunar fifth-declension"
table.insert(data.categories, "High Valyrian fifth-declension " .. (data.proper and "proper" or "") .. "nouns")
table.insert(data.categories, "High Valyrian fifth-declension " .. (data.proper and "proper " or "") .. "nouns")


data.forms["nom_sg"] = {stem .. "i"}
data.forms["nom_sg"] = {stem .. "i"}
Line 786: Line 887:
local stem = args[1]
local stem = args[1]
data.decl_type = "solar fifth-declension"
data.decl_type = "solar fifth-declension"
table.insert(data.categories, "High Valyrian fifth-declension " .. (data.proper and "proper" or "") .. "nouns")
table.insert(data.categories, "High Valyrian fifth-declension " .. (data.proper and "proper " or "") .. "nouns")


data.forms["nom_sg"] = {stem .. "is"}
data.forms["nom_sg"] = {stem .. "is"}
Line 836: Line 937:
setmetatable(alldata["5-a"], {__call = function(self, args, data)
setmetatable(alldata["5-a"], {__call = function(self, args, data)
local stem = args[1]
local stem = args[1]
local v = sub(stem, -2, -2)
local stemr = (sub(stem, -1) == "m" and sub(stem, 1, -3) .. lengthen(v) .. "b"
or sub(stem, -1) == "n" and sub(stem, 1, -3) .. lengthen(v) .. "d"
or stem)
local z = sub(stem, -2) == "rz"
local z = sub(stem, -2) == "rz"
local stemz = sub(stem, 1, -3)
local stemz = sub(stem, 1, -3)
data.decl_type = "aquatic fifth-declension"
data.decl_type = "aquatic fifth-declension"
table.insert(data.categories, "High Valyrian fifth-declension " .. (data.proper and "proper" or "") .. "nouns")
table.insert(data.categories, "High Valyrian fifth-declension " .. (data.proper and "proper " or "") .. "nouns")


data.forms["nom_sg"] = {stem .. "ir"}
data.forms["nom_sg"] = {stem .. "ir"}
data.forms["acc_sg"] = data.forms["nom_sg"]
data.forms["acc_sg"] = data.forms["nom_sg"]
data.forms["gen_sg"] = {z and stemz .. "rjio" or stem .. "rio"}
data.forms["gen_sg"] = {z and stemz .. "rjio" or stemr .. "rio"}
data.forms["dat_sg"] = {z and stemz .. "rjiot" or stem .. "riot"}
data.forms["dat_sg"] = {z and stemz .. "rjiot" or stemr .. "riot"}
data.forms["loc_sg"] = {stem .. "īr"}
data.forms["loc_sg"] = {stem .. "īr"}
data.forms["ins_sg"] = {z and stemz .. "rjȳsi" or stem .. "ȳsi"}
data.forms["ins_sg"] = {z and stemz .. "rjȳsi" or stemr .. "ȳsi"}
data.forms["com_sg"] = {z and stemz .. "rjȳmi" or stem .. "ȳmi"}
data.forms["com_sg"] = {z and stemz .. "rjȳmi" or stemr .. "ȳmi"}
data.forms["voc_sg"] = {stem .. "ys"}
data.forms["voc_sg"] = {stem .. "ys"}


if not args.nopl then
if not args.nopl then
data.forms["nom_pl"] = {z and stemz .. "rja" or stem .. "ra"}
data.forms["nom_pl"] = {z and stemz .. "rja" or stemr .. "ra"}
data.forms["acc_pl"] = data.forms["nom_pl"]
data.forms["acc_pl"] = data.forms["nom_pl"]
data.forms["gen_pl"] = {z and stemz .. "rjȳti" or stem .. "rȳti"}
data.forms["gen_pl"] = {z and stemz .. "rjȳti" or stemr .. "rȳti"}
data.forms["dat_pl"] = data.forms["gen_pl"]
data.forms["dat_pl"] = data.forms["gen_pl"]
data.forms["loc_pl"] = data.forms["gen_pl"]
data.forms["loc_pl"] = data.forms["gen_pl"]
data.forms["ins_pl"] = {z and stemz .. "rjȳssi" or stem .. "rȳssi"}
data.forms["ins_pl"] = {z and stemz .. "rjȳssi" or stemr .. "rȳssi"}
data.forms["com_pl"] = {z and stemz .. "rjȳmmi" or stem .. "rȳmmi"}
data.forms["com_pl"] = {z and stemz .. "rjȳmmi" or stemr .. "rȳmmi"}
data.forms["voc_pl"] = {stem .. "as"}
data.forms["voc_pl"] = {stem .. "as"}
data.forms["nom_pa"] = {z and stemz .. "rjin" or stem .. "rin"}
data.forms["nom_pa"] = {z and stemz .. "rjin" or stemr .. "rin"}
data.forms["acc_pa"] = {z and stemz .. "rjini" or stem .. "rini"}
data.forms["acc_pa"] = {z and stemz .. "rjini" or stemr .. "rini"}
data.forms["gen_pa"] = {z and stemz .. "rjino" or stem .. "rino"}
data.forms["gen_pa"] = {z and stemz .. "rjino" or stemr .. "rino"}
data.forms["dat_pa"] = {z and stemz .. "rjinti" or stem .. "rinti"}
data.forms["dat_pa"] = {z and stemz .. "rjinti" or stemr .. "rinti"}
data.forms["loc_pa"] = {z and stemz .. "rjinni" or stem .. "rinni"}
data.forms["loc_pa"] = {z and stemz .. "rjinni" or stemr .. "rinni"}
data.forms["ins_pa"] = {z and stemz .. "rjissi" or stem .. "rissi"}
data.forms["ins_pa"] = {z and stemz .. "rjissi" or stemr .. "rissi"}
data.forms["com_pa"] = {z and stemz .. "rjimmi" or stem .. "rimmi"}
data.forms["com_pa"] = {z and stemz .. "rjimmi" or stemr .. "rimmi"}
data.forms["voc_pa"] = data.forms["ins_pa"]
data.forms["voc_pa"] = data.forms["ins_pa"]
data.forms["nom_co"] = {z and stemz .. "rjir" or stem .. "rir"}
data.forms["nom_co"] = {z and stemz .. "rjir" or stemr .. "rir"}
data.forms["acc_co"] = {z and stemz .. "rjiri" or stem .. "riri"}
data.forms["acc_co"] = {z and stemz .. "rjiri" or stemr .. "riri"}
data.forms["gen_co"] = {z and stemz .. "rjiro" or stem .. "riro"}
data.forms["gen_co"] = {z and stemz .. "rjiro" or stemr .. "riro"}
data.forms["dat_co"] = {z and stemz .. "rjirti" or stem .. "rirti"}
data.forms["dat_co"] = {z and stemz .. "rjirti" or stemr .. "rirti"}
data.forms["loc_co"] = {z and stemz .. "rjirri" or stem .. "rirri"}
data.forms["loc_co"] = {z and stemz .. "rjirri" or stemr .. "rirri"}
data.forms["ins_co"] = {z and stemz .. "rjirzi" or stem .. "rirzi"}
data.forms["ins_co"] = {z and stemz .. "rjirzi" or stemr .. "rirzi"}
data.forms["com_co"] = {z and stemz .. "rjirmi" or stem .. "rirmi"}
data.forms["com_co"] = {z and stemz .. "rjirmi" or stemr .. "rirmi"}
data.forms["voc_co"] = data.forms["ins_co"]
data.forms["voc_co"] = data.forms["ins_co"]
end
end
Line 883: Line 988:
alldata["ōz"] = function(args, data)
alldata["ōz"] = function(args, data)
data.decl_type = "n-stem solar third-declension"
data.decl_type = "n-stem solar third-declension"
table.insert(data.categories, "High Valyrian third-declension " .. (data.proper and "proper" or "") .. "nouns")
table.insert(data.categories, "High Valyrian third-declension nouns")
table.insert(data.categories, "High Valyrian n-stem " .. (data.proper and "proper" or "") .. "nouns")
table.insert(data.categories, "High Valyrian n-stem nouns")


data.forms["nom_sg"] = {"ōz"}
data.forms["nom_sg"] = {"ōz"}
Line 925: Line 1,030:
alldata["Mȳr"] = function(args, data)
alldata["Mȳr"] = function(args, data)
data.decl_type = "solar third-declension"
data.decl_type = "solar third-declension"
table.insert(data.categories, "High Valyrian third-declension " .. (data.proper and "proper" or "") .. "nouns")
table.insert(data.categories, "High Valyrian third-declension nouns")


data.forms["nom_sg"] = {"Mȳr"}
data.forms["nom_sg"] = {"Mȳr"}
Line 946: Line 1,051:
local stem = args[1]  
local stem = args[1]  
data.decl_type = "sixth-declension"
data.decl_type = "sixth-declension"
table.insert(data.categories, "High Valyrian sixth-declension " .. (data.proper and "proper" or "") .. "nouns")
table.insert(data.categories, "High Valyrian sixth-declension " .. (data.proper and "proper " or "") .. "nouns")
 
data.forms["nom_sg"] = {stem .. "i", stem}
data.forms["acc_sg"] = {stem .. "i"}
data.forms["gen_sg"] = {stem .. "o"}
data.forms["dat_sg"] = {stem .. "ot"}
data.forms["loc_sg"] = {stem .. "ī"}
data.forms["ins_sg"] = {stem .. "isi"}
data.forms["com_sg"] = {stem .. "imi"}
data.forms["voc_sg"] = {stem .. "is"}
 
if not args.nopl then
data.forms["nom_pl"] = {stem .. "i"}
data.forms["acc_pl"] = {stem .. "ī"}
data.forms["gen_pl"] = {stem .. "oti"}
data.forms["dat_pl"] = data.forms["gen_pl"]
data.forms["loc_pl"] = data.forms["gen_pl"]
data.forms["ins_pl"] = {stem .. "issi"}
data.forms["com_pl"] = {stem .. "immi"}
data.forms["voc_pl"] = {stem .. "issis"}
data.forms["nom_pa"] = {stem .. "in"}
data.forms["acc_pa"] = {stem .. "ini"}
data.forms["gen_pa"] = {stem .. "ino"}
data.forms["dat_pa"] = {stem .. "inti"}
data.forms["loc_pa"] = {stem .. "inni"}
data.forms["ins_pa"] = {stem .. "issi"}
data.forms["com_pa"] = {stem .. "immi"}
data.forms["voc_pa"] = data.forms["ins_pa"]
data.forms["nom_co"] = {stem .. "ir"}
data.forms["acc_co"] = {stem .. "iri"}
data.forms["gen_co"] = {stem .. "iro"}
data.forms["dat_co"] = {stem .. "irti"}
data.forms["loc_co"] = {stem .. "irri"}
data.forms["ins_co"] = {stem .. "irzi"}
data.forms["com_co"] = {stem .. "irmi"}
data.forms["voc_co"] = data.forms["ins_co"]
end
end
})
 
alldata["6-u"] = {
params = {
[1] = {},
["nopl"] = {},
},
}
setmetatable(alldata["6-u"], {__call = function(self, args, data)
local stem = args[1]
data.decl_type = "sixth-declension"
table.insert(data.categories, "High Valyrian sixth-declension " .. (data.proper and "proper " or "") .. "nouns")


data.forms["nom_sg"] = {stem, stem .. "i"}
data.forms["nom_sg"] = {stem .. "i", stem}
data.forms["acc_sg"] = {stem .. "i"}
data.forms["acc_sg"] = {stem .. "i"}
data.forms["gen_sg"] = {stem .. "o"}
data.forms["gen_sg"] = {stem .. "o"}
Line 990: Line 1,146:
alldata["mhysa"] = function(args, data)
alldata["mhysa"] = function(args, data)
data.decl_type = "sixth-declension"
data.decl_type = "sixth-declension"
table.insert(data.categories, "High Valyrian sixth-declension " .. (data.proper and "proper" or "") .. "nouns")
table.insert(data.categories, "High Valyrian sixth-declension nouns")


data.forms["nom_sg"] = {"mhysa"}
data.forms["nom_sg"] = {"mhysa"}
Line 1,032: Line 1,188:
alldata["bianor"] = function(args, data)
alldata["bianor"] = function(args, data)
data.decl_type = "lunar third-declension"
data.decl_type = "lunar third-declension"
table.insert(data.categories, "High Valyrian third-declension " .. (data.proper and "proper" or "") .. "nouns")
table.insert(data.categories, "High Valyrian third-declension nouns")


data.forms["nom_sg"] = {"bianor"}
data.forms["nom_sg"] = {"bianor"}
Line 1,072: Line 1,228:
end
end


alldata["6-u"] = {
alldata["nāqopsir"] = function(args, data)
params = {
data.decl_type = "lunar fifth-declension"
[1] = {},
table.insert(data.categories, "High Valyrian fifth-declension nouns")
["nopl"] = {},
 
},
data.forms["nom_sg"] = {"nāqopsir"}
}
data.forms["acc_sg"] = data.forms["nom_sg"]
setmetatable(alldata["6-u"], {__call = function(self, args, data)
data.forms["gen_sg"] = {"nāqobjio", "nāqōjio"}
local stem = args[1]  
data.forms["dat_sg"] = {"nāqobjiot", "nāqōjiot"}
data.forms["loc_sg"] = {"nāqobjī", "nāqōjī"}
data.forms["ins_sg"] = {"nāqobjȳsi", "nāqōjȳsi"}
data.forms["com_sg"] = {"nāqobjȳmi", "nāqōjȳmi"}
data.forms["voc_sg"] = {"nāqobjys", "nāqōjys"}
 
 
data.forms["nom_pl"] = {"nāqobja", "nāqōja"}
data.forms["acc_pl"] = data.forms["nom_pl"]
data.forms["gen_pl"] = {"nāqobjȳti", "nāqōjȳti"}
data.forms["dat_pl"] = data.forms["gen_pl"]
data.forms["loc_pl"] = data.forms["gen_pl"]
data.forms["ins_pl"] = {"nāqobjȳssi", "nāqōjȳssi"}
data.forms["com_pl"] = {"nāqobjȳmmi", "nāqōjȳmmi"}
data.forms["voc_pl"] = {"nāqobjas", "nāqōjas"}
data.forms["nom_pa"] = {"nāqobjin", "nāqōjin"}
data.forms["acc_pa"] = {"nāqobjini", "nāqōjini"}
data.forms["gen_pa"] = {"nāqobjino", "nāqōjino"}
data.forms["dat_pa"] = {"nāqobjinti", "nāqōjinti"}
data.forms["loc_pa"] = {"nāqobjinni", "nāqōjinni"}
data.forms["ins_pa"] = {"nāqobjissi", "nāqōjissi"}
data.forms["com_pa"] = {"nāqobjimmi", "nāqōjimmi"}
data.forms["voc_pa"] = data.forms["ins_pa"]
data.forms["nom_co"] = {"nāqobjir", "nāqōjir"}
data.forms["acc_co"] = {"nāqobjiri", "nāqōjiri"}
data.forms["gen_co"] = {"nāqobjiro", "nāqōjiro"}
data.forms["dat_co"] = {"nāqobjirti", "nāqōjirti"}
data.forms["loc_co"] = {"nāqobjirri", "nāqōjirri"}
data.forms["ins_co"] = {"nāqobjirzi", "nāqōjirzi"}
data.forms["com_co"] = {"nāqobjirmi", "nāqōjirmi"}
data.forms["voc_co"] = data.forms["ins_co"]
end
 
alldata["ēs"] = function(args, data)
data.decl_type = "l-stem solar third-declension"
table.insert(data.categories, "High Valyrian third-declension nouns")
table.insert(data.categories, "High Valyrian l-stem nouns")
 
data.forms["nom_sg"] = {"ēs"}
data.forms["acc_sg"] = data.forms["nom_sg"]
data.forms["gen_sg"] = {"elo"}
data.forms["dat_sg"] = {"elot"}
data.forms["loc_sg"] = data.forms["dat_sg"]
data.forms["ins_sg"] = {"ēso"}
data.forms["com_sg"] = data.forms["ins_sg"]
data.forms["voc_sg"] = data.forms["nom_sg"]
 
 
data.forms["nom_pl"] = {"elossa"}
data.forms["acc_pl"] = data.forms["nom_pl"]
data.forms["gen_pl"] = {"eloti"}
data.forms["dat_pl"] = data.forms["gen_pl"]
data.forms["loc_pl"] = data.forms["gen_pl"]
data.forms["ins_pl"] = {"elossi"}
data.forms["com_pl"] = data.forms["ins_pl"]
data.forms["voc_pl"] = {"elossas"}
data.forms["nom_pa"] = {"elun"}
data.forms["acc_pa"] = {"eluni"}
data.forms["gen_pa"] = {"eluno"}
data.forms["dat_pa"] = {"elunto"}
data.forms["loc_pa"] = {"elunno"}
data.forms["ins_pa"] = {"elusso"}
data.forms["com_pa"] = {"elummo"}
data.forms["voc_pa"] = data.forms["ins_pa"]
data.forms["nom_co"] = {"elor"}
data.forms["acc_co"] = {"elori"}
data.forms["gen_co"] = {"eloro"}
data.forms["dat_co"] = {"elorto"}
data.forms["loc_co"] = {"elorro"}
data.forms["ins_co"] = {"elorzo"}
data.forms["com_co"] = {"elormo"}
data.forms["voc_co"] = data.forms["ins_co"]
end
 
alldata["jelmor"] = function(args, data)
data.decl_type = "aquatic third-declension"
table.insert(data.categories, "High Valyrian third-declension nouns")
 
data.forms["nom_sg"] = {"jelmor"}
data.forms["acc_sg"] = data.forms["nom_sg"]
data.forms["gen_sg"] = {"jēmbro"}
data.forms["dat_sg"] = {"jēmbrot"}
data.forms["loc_sg"] = data.forms["dat_sg"]
data.forms["ins_sg"] = {"jēmbroso"}
data.forms["com_sg"] = data.forms["ins_sg"]
data.forms["voc_sg"] = {"jelmos"}
 
data.forms["nom_pl"] = {"jēmbra"}
data.forms["acc_pl"] = data.forms["nom_pl"]
data.forms["gen_pl"] = {"jēmbroti"}
data.forms["dat_pl"] = data.forms["gen_pl"]
data.forms["loc_pl"] = data.forms["gen_pl"]
data.forms["ins_pl"] = {"jēmbrossi"}
data.forms["com_pl"] = data.forms["ins_pl"]
data.forms["voc_pl"] = {"jelmas"}
data.forms["nom_pa"] = {"jēmbrun"}
data.forms["acc_pa"] = {"jēmbruni"}
data.forms["gen_pa"] = {"jēmbruno"}
data.forms["dat_pa"] = {"jēmbrunto"}
data.forms["loc_pa"] = {"jēmbrunno"}
data.forms["ins_pa"] = {"jēmbrusso"}
data.forms["com_pa"] = {"jēmbrummo"}
data.forms["voc_pa"] = data.forms["ins_pa"]
data.forms["nom_co"] = {"jēmbror"}
data.forms["acc_co"] = {"jēmbrori"}
data.forms["gen_co"] = {"jēmbroro"}
data.forms["dat_co"] = {"jēmbrorto"}
data.forms["loc_co"] = {"jēmbrorro"}
data.forms["ins_co"] = {"jēmbrorzo"}
data.forms["com_co"] = {"jēmbrormo"}
data.forms["voc_co"] = data.forms["ins_co"]
end
 
alldata["Qelbria"] = function(args, data)
data.decl_type = "aquatic first-declension"
table.insert(data.categories, "High Valyrian first-declension nouns")
 
data.forms["nom_sg"] = {"Qelbria"}
data.forms["acc_sg"] = {"Qelbri"}
data.forms["gen_sg"] = {"Qelbro"}
data.forms["dat_sg"] = {"Qelbrot"}
data.forms["loc_sg"] = {"Qelbrār"}
data.forms["ins_sg"] = {"Qelbrosa"}
data.forms["com_sg"] = {"Qelbroma"}
data.forms["voc_sg"] = {"Qelbrus"}
end
 
alldata["sēter"] = function(args, data)
data.decl_type = "aquatic third-declension"
table.insert(data.categories, "High Valyrian third-declension nouns")
 
data.forms["nom_sg"] = {"sēter"}
data.forms["acc_sg"] = data.forms["nom_sg"]
data.forms["gen_sg"] = {"sētero"}
data.forms["dat_sg"] = {"sēterot"}
data.forms["loc_sg"] = data.forms["dat_sg"]
data.forms["ins_sg"] = {"sēteroso"}
data.forms["com_sg"] = data.forms["ins_sg"]
data.forms["voc_sg"] = {"sēteros"}
data.forms["nom_pl"] = {"sētera"}
data.forms["acc_pl"] = data.forms["nom_pl"]
data.forms["gen_pl"] = {"sēteroti"}
data.forms["dat_pl"] = data.forms["gen_pl"]
data.forms["loc_pl"] = data.forms["gen_pl"]
data.forms["ins_pl"] = {"sēterossi"}
data.forms["com_pl"] = data.forms["ins_pl"]
data.forms["voc_pl"] = {"sēteras"}
data.forms["nom_pa"] = {"sēterun"}
data.forms["acc_pa"] = {"sēteruni"}
data.forms["gen_pa"] = {"sēteruno"}
data.forms["dat_pa"] = {"sēterunto"}
data.forms["loc_pa"] = {"sēterunno"}
data.forms["ins_pa"] = {"sēterusso"}
data.forms["com_pa"] = {"sēterummo"}
data.forms["voc_pa"] = data.forms["ins_pa"]
data.forms["nom_co"] = {"sēteror"}
data.forms["acc_co"] = {"sēterori"}
data.forms["gen_co"] = {"sēteroro"}
data.forms["dat_co"] = {"sēterorto"}
data.forms["loc_co"] = {"sēterorro"}
data.forms["ins_co"] = {"sēterorzo"}
data.forms["com_co"] = {"sēterormo"}
data.forms["voc_co"] = data.forms["ins_co"]
end
 
alldata["Junkae"] = function(args, data)
data.decl_type = "sixth-declension"
data.decl_type = "sixth-declension"
table.insert(data.categories, "High Valyrian sixth-declension " .. (data.proper and "proper" or "") .. "nouns")
table.insert(data.categories, "High Valyrian sixth-declension proper nouns")
 
data.forms["nom_sg"] = {"Junkae"}
data.forms["acc_sg"] = data.forms["nom_sg"]
data.forms["gen_sg"] = {"Junkaeho"}
data.forms["dat_sg"] = {"Junkaehot"}
data.forms["loc_sg"] = data.forms["dat_sg"]
data.forms["ins_sg"] = {"Junkaeso"}
data.forms["com_sg"] = data.forms["ins_sg"]
data.forms["voc_sg"] = {"Junkaes"}
end


data.forms["nom_sg"] = {stem, stem .. "i"}
alldata["nager"] = function(args, data)
data.forms["acc_sg"] = {stem .. "i"}
local stem = "nager"
data.decl_type = "irregular"
data.forms["nom_sg"] = {stem}
data.forms["acc_sg"] = {stem .. "ī"}
data.forms["gen_sg"] = {stem .. "o"}
data.forms["gen_sg"] = {stem .. "o"}
data.forms["dat_sg"] = {stem .. "ot"}
data.forms["dat_sg"] = {stem .. "ot"}
data.forms["loc_sg"] = {stem .. "ī"}
data.forms["loc_sg"] = {stem .. "ē"}
data.forms["ins_sg"] = {stem .. "isi"}
data.forms["ins_sg"] = {stem .. "ose"}
data.forms["com_sg"] = {stem .. "imi"}
data.forms["com_sg"] = {stem .. "ome"}
data.forms["voc_sg"] = {stem .. "is"}
data.forms["voc_sg"] = {stem .. "ys"}


if not args.nopl then
data.forms["nom_pl"] = {stem .. "i"}
data.forms["nom_pl"] = {stem .. "i"}
data.forms["acc_pl"] = {stem .. "ī"}
data.forms["acc_pl"] = {stem .. "ī"}
data.forms["gen_pl"] = {stem .. "oti"}
data.forms["gen_pl"] = {stem .. "oti"}
data.forms["dat_pl"] = data.forms["gen_pl"]
data.forms["dat_pl"] = data.forms["gen_pl"]
data.forms["loc_pl"] = data.forms["gen_pl"]
data.forms["loc_pl"] = data.forms["gen_pl"]
data.forms["ins_pl"] = {stem .. "ossi"}
data.forms["ins_pl"] = {stem .. "issi"}
data.forms["com_pl"] = {stem .. "ommi"}
data.forms["com_pl"] = {stem .. "immi"}
data.forms["voc_pl"] = {stem .. "īs"}
data.forms["voc_pl"] = {stem .. "issis"}
data.forms["nom_pa"] = {stem .. "in"}
data.forms["nom_pa"] = {stem .. "in"}
data.forms["acc_pa"] = {stem .. "ini"}
data.forms["acc_pa"] = {stem .. "ini"}
data.forms["gen_pa"] = {stem .. "ino"}
data.forms["gen_pa"] = {stem .. "ino"}
data.forms["dat_pa"] = {stem .. "inte"}
data.forms["dat_pa"] = {stem .. "inti"}
data.forms["loc_pa"] = {stem .. "inne"}
data.forms["loc_pa"] = {stem .. "inni"}
data.forms["ins_pa"] = {stem .. "isse"}
data.forms["ins_pa"] = {stem .. "issi"}
data.forms["com_pa"] = {stem .. "imme"}
data.forms["com_pa"] = {stem .. "immi"}
data.forms["voc_pa"] = data.forms["ins_pa"]
data.forms["voc_pa"] = data.forms["ins_pa"]
data.forms["nom_co"] = {stem .. "er"}
data.forms["nom_co"] = {stem .. "ir"}
data.forms["acc_co"] = {stem .. "eri"}
data.forms["acc_co"] = {stem .. "iri"}
data.forms["gen_co"] = {stem .. "ero"}
data.forms["gen_co"] = {stem .. "iro"}
data.forms["dat_co"] = {stem .. "erte"}
data.forms["dat_co"] = {stem .. "irti"}
data.forms["loc_co"] = {stem .. "erre"}
data.forms["loc_co"] = {stem .. "irri"}
data.forms["ins_co"] = {stem .. "erze"}
data.forms["ins_co"] = {stem .. "irzi"}
data.forms["com_co"] = {stem .. "erme"}
data.forms["com_co"] = {stem .. "irmi"}
data.forms["voc_co"] = data.forms["ins_co"]
data.forms["voc_co"] = data.forms["ins_co"]
end
end
end
})


return alldata
return alldata

Latest revision as of 22:39, 26 June 2021



local sub = mw.ustring.sub

local function lengthen(v)
	local switch = {["a"] = "ā", ["e"] = "ē", ["i"] = "ī", ["o"] = "ō", ["u"] = "ū", ["y"] = "ȳ"}
	return switch[v] or v
end

local alldata = {}

alldata["1-l"] = {
	params = {
		[1] = {},
		["nopl"] = {},
	},
}
setmetatable(alldata["1-l"], {__call = function(self, args, data)
	local stem = args[1]
	local i = sub(stem, -1) == "i"
	local stemi = sub(stem, 1, -2)
	data.decl_type = "lunar first-declension"
	table.insert(data.categories, "High Valyrian first-declension " .. (data.proper and "proper " or "") .. "nouns")

	data.forms["nom_sg"] = {stem .. "a"}
	data.forms["acc_sg"] = {stem .. "e"}
	data.forms["gen_sg"] = {stem .. "o"}
	data.forms["dat_sg"] = {stem .. "ot"}
	data.forms["loc_sg"] = {stem .. "ā"}
	data.forms["ins_sg"] = {i and stemi .. "ȳsa" or stem .. "osa"}
	data.forms["com_sg"] = {i and stemi .. "ȳma" or stem .. "oma"}
	data.forms["voc_sg"] = {i and stemi .. "ȳs" or stem .. "us"}

	if not args.nopl then
		data.forms["nom_pl"] = {i and stemi .. "ī" or stem .. "i"}
		data.forms["acc_pl"] = {i and stemi .. "ī" or stem .. "ī"}
		data.forms["gen_pl"] = {i and stemi .. "ȳti" or stem .. "oti"}
		data.forms["dat_pl"] = data.forms["gen_pl"]
		data.forms["loc_pl"] = data.forms["gen_pl"]
		data.forms["ins_pl"] = {i and stemi .. "ȳssi" or stem .. "ossi"}
		data.forms["com_pl"] = {i and stemi .. "ȳmmi" or stem .. "ommi"}
		data.forms["voc_pl"] = {i and stemi .. "īs" or stem .. "is"}
		
		data.forms["nom_pa"] = {i and stemi .. "ȳn" or stem .. "un"}
		data.forms["acc_pa"] = {i and stemi .. "ȳni" or stem .. "uni"}
		data.forms["gen_pa"] = {i and stemi .. "ȳno" or stem .. "uno"}
		data.forms["dat_pa"] = {i and stemi .. "ȳnta" or stem .. "unta"}
		data.forms["loc_pa"] = {i and stemi .. "ȳnna" or stem .. "unna"}
		data.forms["ins_pa"] = {i and stemi .. "ȳssa" or stem .. "ussa"}
		data.forms["com_pa"] = {i and stemi .. "ȳmma" or stem .. "umma"}
		data.forms["voc_pa"] = data.forms["ins_pa"]
		
		data.forms["nom_co"] = {stem .. "ar"}
		data.forms["acc_co"] = {stem .. "ari"}
		data.forms["gen_co"] = {stem .. "aro"}
		data.forms["dat_co"] = {stem .. "arta"}
		data.forms["loc_co"] = {stem .. "arra"}
		data.forms["ins_co"] = {stem .. "arza"}
		data.forms["com_co"] = {stem .. "arma"}
		data.forms["voc_co"] = data.forms["ins_co"]
	end
end
})

alldata["-illa"] = {
	params = {
		[1] = {},
		["nopl"] = {},
	},
}
setmetatable(alldata["-illa"], {__call = function(self, args, data)
	local stem = args[1]
	local i = sub(stem, -1) == "i"
	local stemi = sub(stem, 1, -2)
	data.decl_type = "aquatic first-declension"
	table.insert(data.categories, "High Valyrian first-declension " .. (data.proper and "proper " or "") .. "nouns")

	data.forms["nom_sg"] = {stem .. "a"}
	data.forms["acc_sg"] = {stem .. "e"}
	data.forms["gen_sg"] = {stem .. "o"}
	data.forms["dat_sg"] = {stem .. "ot"}
	data.forms["loc_sg"] = {stem .. "ā"}
	data.forms["ins_sg"] = {i and stemi .. "ȳsa" or stem .. "osa"}
	data.forms["com_sg"] = {i and stemi .. "ȳma" or stem .. "oma"}
	data.forms["voc_sg"] = {i and stemi .. "ȳs" or stem .. "us"}

	if not args.nopl then
		data.forms["nom_pl"] = {i and stemi .. "ī" or stem .. "i"}
		data.forms["acc_pl"] = {i and stemi .. "ī" or stem .. "ī"}
		data.forms["gen_pl"] = {i and stemi .. "ȳti" or stem .. "oti"}
		data.forms["dat_pl"] = data.forms["gen_pl"]
		data.forms["loc_pl"] = data.forms["gen_pl"]
		data.forms["ins_pl"] = {i and stemi .. "ȳssi" or stem .. "ossi"}
		data.forms["com_pl"] = {i and stemi .. "ȳmmi" or stem .. "ommi"}
		data.forms["voc_pl"] = {i and stemi .. "īs" or stem .. "is"}
		
		data.forms["nom_pa"] = {i and stemi .. "ȳn" or stem .. "un"}
		data.forms["acc_pa"] = {i and stemi .. "ȳni" or stem .. "uni"}
		data.forms["gen_pa"] = {i and stemi .. "ȳno" or stem .. "uno"}
		data.forms["dat_pa"] = {i and stemi .. "ȳnta" or stem .. "unta"}
		data.forms["loc_pa"] = {i and stemi .. "ȳnna" or stem .. "unna"}
		data.forms["ins_pa"] = {i and stemi .. "ȳssa" or stem .. "ussa"}
		data.forms["com_pa"] = {i and stemi .. "ȳmma" or stem .. "umma"}
		data.forms["voc_pa"] = data.forms["ins_pa"]
		
		data.forms["nom_co"] = {stem .. "ar"}
		data.forms["acc_co"] = {stem .. "ari"}
		data.forms["gen_co"] = {stem .. "aro"}
		data.forms["dat_co"] = {stem .. "arta"}
		data.forms["loc_co"] = {stem .. "arra"}
		data.forms["ins_co"] = {stem .. "arza"}
		data.forms["com_co"] = {stem .. "arma"}
		data.forms["voc_co"] = data.forms["ins_co"]
	end
end
})

alldata["1-a"] = {
	params = {
		[1] = {},
		["nopl"] = {},
	},
}
setmetatable(alldata["1-a"], {__call = function(self, args, data)
	local stem = args[1]
	local v = sub(stem, -2, -2)
	local stemr = (sub(stem, -1) == "m" and sub(stem, 1, -3) .. lengthen(v) .. "b"
					or sub(stem, -1) == "n" and sub(stem, 1, -3) .. lengthen(v) .. "d"
					or stem)
	data.decl_type = "aquatic first-declension"
	table.insert(data.categories, "High Valyrian first-declension " .. (data.proper and "proper " or "") .. "nouns")

	data.forms["nom_sg"] = {stem .. "ar"}
	data.forms["acc_sg"] = {stemr .. "ri"}
	data.forms["gen_sg"] = {stemr .. "ro"}
	data.forms["dat_sg"] = {stemr .. "rot"}
	data.forms["loc_sg"] = {stem .. "ār"}
	data.forms["ins_sg"] = {stemr .. "rosa"}
	data.forms["com_sg"] = {stemr .. "roma"}
	data.forms["voc_sg"] = {stem .. "us"}

	if not args.nopl then
		data.forms["nom_pl"] = {stemr .. "ri"}
		data.forms["acc_pl"] = {stemr .. "rī"}
		data.forms["gen_pl"] = {stem .. "oti"}
		data.forms["dat_pl"] = data.forms["gen_pl"]
		data.forms["loc_pl"] = data.forms["gen_pl"]
		data.forms["ins_pl"] = {stemr .. "rossi"}
		data.forms["com_pl"] = {stemr .. "rommi"}
		data.forms["voc_pl"] = {stem .. "is"}
		
		data.forms["nom_pa"] = {stemr .. "run"}
		data.forms["acc_pa"] = {stemr .. "runi"}
		data.forms["gen_pa"] = {stemr .. "runo"}
		data.forms["dat_pa"] = {stemr .. "runta"}
		data.forms["loc_pa"] = {stemr .. "runna"}
		data.forms["ins_pa"] = {stemr .. "russa"}
		data.forms["com_pa"] = {stemr .. "rumma"}
		data.forms["voc_pa"] = data.forms["ins_pa"]
		
		data.forms["nom_co"] = {stemr .. "rar"}
		data.forms["acc_co"] = {stemr .. "rari"}
		data.forms["gen_co"] = {stemr .. "raro"}
		data.forms["dat_co"] = {stemr .. "rarta"}
		data.forms["loc_co"] = {stemr .. "rarra"}
		data.forms["ins_co"] = {stemr .. "rarza"}
		data.forms["com_co"] = {stemr .. "rarma"}
		data.forms["voc_co"] = data.forms["ins_co"]
	end
end
})

alldata["p-1"] = {
	params = {
		[1] = {},
		["nopl"] = {},
	},
}
setmetatable(alldata["p-1"], {__call = function(self, args, data)
	local stem = args[1]
	local i = sub(stem, -1) == "i"
	local stemi = sub(stem, 1, -2)
	data.decl_type = "sixth-declension"
	table.insert(data.categories, "High Valyrian sixth-declension " .. (data.proper and "proper " or "") .. "nouns")

	data.forms["nom_sg"] = {i and stemi .. "ȳn" or stem .. "un"}
	data.forms["acc_sg"] = {i and stemi .. "ȳni" or stem .. "uni"}
	data.forms["gen_sg"] = {i and stemi .. "ȳno" or stem .. "uno"}
	data.forms["dat_sg"] = {i and stemi .. "ȳnta" or stem .. "unta"}
	data.forms["loc_sg"] = {i and stemi .. "ȳnna" or stem .. "unna"}
	data.forms["ins_sg"] = {i and stemi .. "ȳssa" or stem .. "ussa"}
	data.forms["com_sg"] = {i and stemi .. "ȳmma" or stem .. "umma"}
	data.forms["voc_sg"] = data.forms["ins_sg"]

	if not args.nopl then
		data.forms["nom_pl"] = {i and stemi .. "y" or stem .. "i"}
		data.forms["acc_pl"] = {i and stemi .. "ī" or stem .. "ī"}
		data.forms["gen_pl"] = {}
		data.forms["dat_pl"] = data.forms["gen_pl"]
		data.forms["loc_pl"] = data.forms["gen_pl"]
		data.forms["ins_pl"] = {}
		data.forms["com_pl"] = {}
		data.forms["voc_pl"] = {}
	end
end
})

alldata["2-l"] = {
	params = {
		[1] = {},
		["nopl"] = {},
	},
}
setmetatable(alldata["2-l"], {__call = function(self, args, data)
	local stem = args[1]
	data.decl_type = "lunar second-declension"
	table.insert(data.categories, "High Valyrian second-declension " .. (data.proper and "proper " or "") .. "nouns")

	data.forms["nom_sg"] = {stem .. "y"}
	data.forms["acc_sg"] = {stem .. "i"}
	data.forms["gen_sg"] = {stem .. "o"}
	data.forms["dat_sg"] = {stem .. "ot"}
	data.forms["loc_sg"] = {stem .. "ȳ"}
	data.forms["ins_sg"] = {stem .. "omy"}
	data.forms["com_sg"] = data.forms["ins_sg"]
	data.forms["voc_sg"] = {stem .. "ys"}

	if not args.nopl then
		data.forms["nom_pl"] = {stem .. "i"}
		data.forms["acc_pl"] = {stem .. "ī"}
		data.forms["gen_pl"] = {stem .. "oti"}
		data.forms["dat_pl"] = data.forms["gen_pl"]
		data.forms["loc_pl"] = {stem .. "ī"}
		data.forms["ins_pl"] = {stem .. "ommi"}
		data.forms["com_pl"] = data.forms["ins_pl"]
		data.forms["voc_pl"] = {stem .. "ys"}
		
		data.forms["nom_pa"] = {stem .. "yn"}
		data.forms["acc_pa"] = {stem .. "yni"}
		data.forms["gen_pa"] = {stem .. "yno"}
		data.forms["dat_pa"] = {stem .. "ynty"}
		data.forms["loc_pa"] = {stem .. "ynny"}
		data.forms["ins_pa"] = {stem .. "yssy"}
		data.forms["com_pa"] = {stem .. "ymmy"}
		data.forms["voc_pa"] = data.forms["ins_pa"]
		
		data.forms["nom_co"] = {stem .. "yr"}
		data.forms["acc_co"] = {stem .. "yri"}
		data.forms["gen_co"] = {stem .. "yro"}
		data.forms["dat_co"] = {stem .. "yrty"}
		data.forms["loc_co"] = {stem .. "yrry"}
		data.forms["ins_co"] = {stem .. "yrzy"}
		data.forms["com_co"] = {stem .. "yrmy"}
		data.forms["voc_co"] = data.forms["ins_co"]
	end
end
})

alldata["2-s"] = {
	params = {
		[1] = {},
		["nopl"] = {},
	},
}
setmetatable(alldata["2-s"], {__call = function(self, args, data)
	local stem = args[1]
	data.decl_type = "solar second-declension"
	table.insert(data.categories, "High Valyrian second-declension " .. (data.proper and "proper " or "") .. "nouns")

	data.forms["nom_sg"] = {stem .. "ys"}
	data.forms["acc_sg"] = {stem .. "i"}
	data.forms["gen_sg"] = {stem .. "o"}
	data.forms["dat_sg"] = {stem .. "ot"}
	data.forms["loc_sg"] = {stem .. "ȳ"}
	data.forms["ins_sg"] = {stem .. "omy"}
	data.forms["com_sg"] = data.forms["ins_sg"]
	data.forms["voc_sg"] = {stem .. "ys"}

	if not args.nopl then
		data.forms["nom_pl"] = {stem .. "yssy"}
		data.forms["acc_pl"] = {stem .. "ī"}
		data.forms["gen_pl"] = {stem .. "oti"}
		data.forms["dat_pl"] = data.forms["gen_pl"]
		data.forms["loc_pl"] = {stem .. "ī"}
		data.forms["ins_pl"] = {stem .. "ommi"}
		data.forms["com_pl"] = data.forms["ins_pl"]
		data.forms["voc_pl"] = {stem .. "yssys"}
		
		data.forms["nom_pa"] = {stem .. "yn"}
		data.forms["acc_pa"] = {stem .. "yni"}
		data.forms["gen_pa"] = {stem .. "yno"}
		data.forms["dat_pa"] = {stem .. "ynty"}
		data.forms["loc_pa"] = {stem .. "ynny"}
		data.forms["ins_pa"] = {stem .. "yssy"}
		data.forms["com_pa"] = {stem .. "ymmy"}
		data.forms["voc_pa"] = data.forms["ins_pa"]
		
		data.forms["nom_co"] = {stem .. "yr"}
		data.forms["acc_co"] = {stem .. "yri"}
		data.forms["gen_co"] = {stem .. "yro"}
		data.forms["dat_co"] = {stem .. "yrty"}
		data.forms["loc_co"] = {stem .. "yrry"}
		data.forms["ins_co"] = {stem .. "yrzy"}
		data.forms["com_co"] = {stem .. "yrmy"}
		data.forms["voc_co"] = data.forms["ins_co"]
	end
end
})

alldata["3-l"] = {
	params = {
		[1] = {},
		["nopl"] = {},
	},
}
setmetatable(alldata["3-l"], {__call = function(self, args, data)
	local stem = args[1]
	local i = sub(stem, -1) == "i"
	local stemi = sub(stem, 1, -2)
	data.decl_type = "lunar third-declension"
	table.insert(data.categories, "High Valyrian third-declension " .. (data.proper and "proper " or "") .. "nouns")

	data.forms["nom_sg"] = {stem .. "o"}
	data.forms["acc_sg"] = data.forms["nom_sg"]
	data.forms["gen_sg"] = {stem .. "ō"}
	data.forms["dat_sg"] = {stem .. "ot"}
	data.forms["loc_sg"] = data.forms["dat_sg"]
	data.forms["ins_sg"] = {i and stemi .. "ȳso" or stem .. "oso"}
	data.forms["com_sg"] = data.forms["ins_sg"]
	data.forms["voc_sg"] = {stem .. "os"}

	if not args.nopl then
		data.forms["nom_pl"] = {stem .. "a"}
		data.forms["acc_pl"] = data.forms["nom_pl"]
		data.forms["gen_pl"] = {i and stemi .. "ȳti" or stem .. "oti"}
		data.forms["dat_pl"] = data.forms["gen_pl"]
		data.forms["loc_pl"] = data.forms["gen_pl"]
		data.forms["ins_pl"] = {i and stemi .. "ȳssi" or stem .. "ossi"}
		data.forms["com_pl"] = data.forms["ins_pl"]
		data.forms["voc_pl"] = {i and stemi .. "īs" or stem .. "as"}
		
		data.forms["nom_pa"] = {i and stemi .. "ȳn" or stem .. "un"}
		data.forms["acc_pa"] = {i and stemi .. "ȳni" or stem .. "uni"}
		data.forms["gen_pa"] = {i and stemi .. "ȳno" or stem .. "uno"}
		data.forms["dat_pa"] = {i and stemi .. "ȳnto" or stem .. "unto"}
		data.forms["loc_pa"] = {i and stemi .. "ȳnno" or stem .. "unno"}
		data.forms["ins_pa"] = {i and stemi .. "ȳsso" or stem .. "usso"}
		data.forms["com_pa"] = {i and stemi .. "ȳmmo" or stem .. "ummo"}
		data.forms["voc_pa"] = data.forms["ins_pa"]
		
		data.forms["nom_co"] = {stem .. "or"}
		data.forms["acc_co"] = {i and stemi .. "ȳri" or stem .. "ori"}
		data.forms["gen_co"] = {i and stemi .. "ȳro" or stem .. "oro"}
		data.forms["dat_co"] = {i and stemi .. "ȳrto" or stem .. "orto"}
		data.forms["loc_co"] = {i and stemi .. "ȳrro" or stem .. "orro"}
		data.forms["ins_co"] = {i and stemi .. "ȳrzo" or stem .. "orzo"}
		data.forms["com_co"] = {i and stemi .. "ȳrmo" or stem .. "ormo"}
		data.forms["voc_co"] = data.forms["ins_co"]
	end
end
})

alldata["3-s"] = {
	params = {
		[1] = {},
		["nopl"] = {},
	},
}
setmetatable(alldata["3-s"], {__call = function(self, args, data)
	local stem = args[1]
	data.decl_type = "solar third-declension"
	table.insert(data.categories, "High Valyrian third-declension " .. (data.proper and "proper " or "") .. "nouns")

	data.forms["nom_sg"] = {stem .. "os"}
	data.forms["acc_sg"] = data.forms["nom_sg"]
	data.forms["gen_sg"] = {stem .. "o"}
	data.forms["dat_sg"] = {stem .. "ot"}
	data.forms["loc_sg"] = data.forms["dat_sg"]
	data.forms["ins_sg"] = {stem .. "oso"}
	data.forms["com_sg"] = data.forms["ins_sg"]
	data.forms["voc_sg"] = data.forms["nom_sg"]

	if not args.nopl then
		data.forms["nom_pl"] = {stem .. "ossa"}
		data.forms["acc_pl"] = data.forms["nom_pl"]
		data.forms["gen_pl"] = {stem .. "oti"}
		data.forms["dat_pl"] = data.forms["gen_pl"]
		data.forms["loc_pl"] = data.forms["gen_pl"]
		data.forms["ins_pl"] = {stem .. "ossi"}
		data.forms["com_pl"] = data.forms["ins_pl"]
		data.forms["voc_pl"] = {stem .. "ossas"}
		
		data.forms["nom_pa"] = {stem .. "un"}
		data.forms["acc_pa"] = {stem .. "uni"}
		data.forms["gen_pa"] = {stem .. "uno"}
		data.forms["dat_pa"] = {stem .. "unto"}
		data.forms["loc_pa"] = {stem .. "unno"}
		data.forms["ins_pa"] = {stem .. "usso"}
		data.forms["com_pa"] = {stem .. "ummo"}
		data.forms["voc_pa"] = data.forms["ins_pa"]
		
		data.forms["nom_co"] = {stem .. "or"}
		data.forms["acc_co"] = {stem .. "ori"}
		data.forms["gen_co"] = {stem .. "oro"}
		data.forms["dat_co"] = {stem .. "orto"}
		data.forms["loc_co"] = {stem .. "orro"}
		data.forms["ins_co"] = {stem .. "orzo"}
		data.forms["com_co"] = {stem .. "ormo"}
		data.forms["voc_co"] = data.forms["ins_co"]
	end
end
})

alldata["3-s-k"] = {
	params = {
		[1] = {},
		["nopl"] = {},
	},
}
setmetatable(alldata["3-s-k"], {__call = function(self, args, data)
	local stem = args[1]
	data.decl_type = "k-stem solar third-declension"
	table.insert(data.categories, "High Valyrian third-declension " .. (data.proper and "proper " or "") .. "nouns")
	table.insert(data.categories, "High Valyrian k-stem " .. (data.proper and "proper " or "") .. "nouns")

	data.forms["nom_sg"] = {stem .. "ks"}
	data.forms["acc_sg"] = data.forms["nom_sg"]
	data.forms["gen_sg"] = {stem .. "ko"}
	data.forms["dat_sg"] = {stem .. "kot"}
	data.forms["loc_sg"] = data.forms["dat_sg"]
	data.forms["ins_sg"] = {stem .. "kso"}
	data.forms["com_sg"] = data.forms["ins_sg"]
	data.forms["voc_sg"] = data.forms["nom_sg"]

	if not args.nopl then
		data.forms["nom_pl"] = {stem .. "kossa"}
		data.forms["acc_pl"] = data.forms["nom_pl"]
		data.forms["gen_pl"] = {stem .. "koti"}
		data.forms["dat_pl"] = data.forms["gen_pl"]
		data.forms["loc_pl"] = data.forms["gen_pl"]
		data.forms["ins_pl"] = {stem .. "kossi"}
		data.forms["com_pl"] = data.forms["ins_pl"]
		data.forms["voc_pl"] = {stem .. "kossas"}
		
		data.forms["nom_pa"] = {stem .. "kun"}
		data.forms["acc_pa"] = {stem .. "kuni"}
		data.forms["gen_pa"] = {stem .. "kuno"}
		data.forms["dat_pa"] = {stem .. "kunto"}
		data.forms["loc_pa"] = {stem .. "kunno"}
		data.forms["ins_pa"] = {stem .. "kusso"}
		data.forms["com_pa"] = {stem .. "kummo"}
		data.forms["voc_pa"] = data.forms["ins_pa"]
		
		data.forms["nom_co"] = {stem .. "kor"}
		data.forms["acc_co"] = {stem .. "kori"}
		data.forms["gen_co"] = {stem .. "koro"}
		data.forms["dat_co"] = {stem .. "korto"}
		data.forms["loc_co"] = {stem .. "korro"}
		data.forms["ins_co"] = {stem .. "korzo"}
		data.forms["com_co"] = {stem .. "kormo"}
		data.forms["voc_co"] = data.forms["ins_co"]
	end
end
})

alldata["3-s-v"] = {
	params = {
		[1] = {},
		["nopl"] = {},
	},
}
setmetatable(alldata["3-s-v"], {__call = function(self, args, data)
	local stem = nil and "" or args[1]
	data.decl_type = "v-stem solar third-declension"
	table.insert(data.categories, "High Valyrian third-declension " .. (data.proper and "proper " or "") .. "nouns")
	table.insert(data.categories, "High Valyrian v-stem " .. (data.proper and "proper " or "") .. "nouns")

	data.forms["nom_sg"] = {stem .. "ȳs"}
	data.forms["acc_sg"] = data.forms["nom_sg"]
	data.forms["gen_sg"] = {stem .. "yvo"}
	data.forms["dat_sg"] = {stem .. "yvot"}
	data.forms["loc_sg"] = data.forms["dat_sg"]
	data.forms["ins_sg"] = {stem .. "ȳso"}
	data.forms["com_sg"] = data.forms["ins_sg"]
	data.forms["voc_sg"] = data.forms["nom_sg"]

	if not args.nopl then
		data.forms["nom_pl"] = {stem .. "yvossa"}
		data.forms["acc_pl"] = data.forms["nom_pl"]
		data.forms["gen_pl"] = {stem .. "yvoti"}
		data.forms["dat_pl"] = data.forms["gen_pl"]
		data.forms["loc_pl"] = data.forms["gen_pl"]
		data.forms["ins_pl"] = {stem .. "yvossi"}
		data.forms["com_pl"] = data.forms["ins_pl"]
		data.forms["voc_pl"] = {stem .. "yvossas"}
		
		data.forms["nom_pa"] = {stem .. "yvun"}
		data.forms["acc_pa"] = {stem .. "yvuni"}
		data.forms["gen_pa"] = {stem .. "yvuno"}
		data.forms["dat_pa"] = {stem .. "yvunto"}
		data.forms["loc_pa"] = {stem .. "yvunno"}
		data.forms["ins_pa"] = {stem .. "yvusso"}
		data.forms["com_pa"] = {stem .. "yvummo"}
		data.forms["voc_pa"] = data.forms["ins_pa"]
		
		data.forms["nom_co"] = {stem .. "yvor"}
		data.forms["acc_co"] = {stem .. "yvori"}
		data.forms["gen_co"] = {stem .. "yvoro"}
		data.forms["dat_co"] = {stem .. "yvorto"}
		data.forms["loc_co"] = {stem .. "yvorro"}
		data.forms["ins_co"] = {stem .. "yvorzo"}
		data.forms["com_co"] = {stem .. "yvormo"}
		data.forms["voc_co"] = data.forms["ins_co"]
	end
end
})

alldata["3-s-h"] = {
	params = {
		[1] = {},
		["nopl"] = {},
	},
}
setmetatable(alldata["3-s-h"], {__call = function(self, args, data)
	local stem = args[1]
	data.decl_type = "h-stem solar third-declension"
	table.insert(data.categories, "High Valyrian third-declension " .. (data.proper and "proper " or "") .. "nouns")
	table.insert(data.categories, "High Valyrian h-stem " .. (data.proper and "proper " or "") .. "nouns")

	data.forms["nom_sg"] = {stem .. "s"}
	data.forms["acc_sg"] = data.forms["nom_sg"]
	data.forms["gen_sg"] = {stem .. "ho"}
	data.forms["dat_sg"] = {stem .. "hot"}
	data.forms["loc_sg"] = data.forms["dat_sg"]
	data.forms["ins_sg"] = {stem .. "so"}
	data.forms["com_sg"] = data.forms["ins_sg"]
	data.forms["voc_sg"] = data.forms["nom_sg"]

	if not args.nopl then
		data.forms["nom_pl"] = {stem .. "hossa"}
		data.forms["acc_pl"] = data.forms["nom_pl"]
		data.forms["gen_pl"] = {stem .. "hoti"}
		data.forms["dat_pl"] = data.forms["gen_pl"]
		data.forms["loc_pl"] = data.forms["gen_pl"]
		data.forms["ins_pl"] = {stem .. "hossi"}
		data.forms["com_pl"] = data.forms["ins_pl"]
		data.forms["voc_pl"] = {stem .. "hossas"}
		
		data.forms["nom_pa"] = {stem .. "hun"}
		data.forms["acc_pa"] = {stem .. "huni"}
		data.forms["gen_pa"] = {stem .. "huno"}
		data.forms["dat_pa"] = {stem .. "hunto"}
		data.forms["loc_pa"] = {stem .. "hunno"}
		data.forms["ins_pa"] = {stem .. "husso"}
		data.forms["com_pa"] = {stem .. "hummo"}
		data.forms["voc_pa"] = data.forms["ins_pa"]
		
		data.forms["nom_co"] = {stem .. "hor"}
		data.forms["acc_co"] = {stem .. "hori"}
		data.forms["gen_co"] = {stem .. "horo"}
		data.forms["dat_co"] = {stem .. "horto"}
		data.forms["loc_co"] = {stem .. "horro"}
		data.forms["ins_co"] = {stem .. "horzo"}
		data.forms["com_co"] = {stem .. "hormo"}
		data.forms["voc_co"] = data.forms["ins_co"]
	end
end
})

alldata["3-t"] = {
	params = {
		[1] = {},
		["nopl"] = {},
	},
}
setmetatable(alldata["3-t"], {__call = function(self, args, data)
	local stem = args[1]
	local i = sub(stem, -1) == "i"
	local stemi = sub(stem, 1, -2)
	data.decl_type = "terrestrial third-declension"
	table.insert(data.categories, "High Valyrian third-declension " .. (data.proper and "proper " or "") .. "nouns")

	data.forms["nom_sg"] = {stem .. "on"}
	data.forms["acc_sg"] = data.forms["nom_sg"]
	data.forms["gen_sg"] = {stem .. "o"}
	data.forms["dat_sg"] = {stem .. "ot"}
	data.forms["loc_sg"] = data.forms["dat_sg"]
	data.forms["ins_sg"] = {i and stemi .. "ȳso" or stem .. "oso"}
	data.forms["com_sg"] = data.forms["ins_sg"]
	data.forms["voc_sg"] = {stem .. "os"}

	if not args.nopl then
		data.forms["nom_pl"] = {stem .. "a"}
		data.forms["acc_pl"] = data.forms["nom_pl"]
		data.forms["gen_pl"] = {i and stemi .. "ȳti" or stem .. "oti"}
		data.forms["dat_pl"] = data.forms["gen_pl"]
		data.forms["loc_pl"] = data.forms["gen_pl"]
		data.forms["ins_pl"] = {i and stemi .. "ȳssi" or stem .. "ossi"}
		data.forms["com_pl"] = data.forms["ins_pl"]
		data.forms["voc_pl"] = {i and stemi .. "īs" or stem .. "as"}
		
		data.forms["nom_pa"] = {i and stemi .. "ȳn" or stem .. "un"}
		data.forms["acc_pa"] = {i and stemi .. "ȳni" or stem .. "uni"}
		data.forms["gen_pa"] = {i and stemi .. "ȳno" or stem .. "uno"}
		data.forms["dat_pa"] = {i and stemi .. "ȳnto" or stem .. "unto"}
		data.forms["loc_pa"] = {i and stemi .. "ȳnno" or stem .. "unno"}
		data.forms["ins_pa"] = {i and stemi .. "ȳsso" or stem .. "usso"}
		data.forms["com_pa"] = {i and stemi .. "ȳmmo" or stem .. "ummo"}
		data.forms["voc_pa"] = data.forms["ins_pa"]
		
		data.forms["nom_co"] = {stem .. "or"}
		data.forms["acc_co"] = {i and stemi .. "ȳndi" or stem .. "ondi"}
		data.forms["gen_co"] = {i and stemi .. "ȳndo" or stem .. "ondo"}
		data.forms["dat_co"] = data.forms["gen_co"]
		data.forms["loc_co"] = {i and stemi .. "ȳrro" or stem .. "orro"}
		data.forms["ins_co"] = {i and stemi .. "ȳrzo" or stem .. "orzo"}
		data.forms["com_co"] = {i and stemi .. "ȳrmo" or stem .. "ormo"}
		data.forms["voc_co"] = data.forms["ins_co"]
	end
end
})

alldata["3-a"] = {
	params = {
		[1] = {},
		["nopl"] = {},
	},
}
setmetatable(alldata["3-a"], {__call = function(self, args, data)
	local stem = args[1]
	local v = sub(stem, -2, -2)
	local stemr = (sub(stem, -1) == "m" and sub(stem, 1, -3) .. lengthen(v) .. "b"
					or sub(stem, -1) == "n" and sub(stem, 1, -3) .. lengthen(v) .. "d"
					or stem)
	data.decl_type = "aquatic third-declension"
	table.insert(data.categories, "High Valyrian third-declension " .. (data.proper and "proper " or "") .. "nouns")

	data.forms["nom_sg"] = {stem .. "or"}
	data.forms["acc_sg"] = data.forms["nom_sg"]
	data.forms["gen_sg"] = {stemr .. "ro"}
	data.forms["dat_sg"] = {stemr .. "rot"}
	data.forms["loc_sg"] = data.forms["dat_sg"]
	data.forms["ins_sg"] = {stemr .. "roso"}
	data.forms["com_sg"] = data.forms["ins_sg"]
	data.forms["voc_sg"] = {stem .. "os"}

	if not args.nopl then
		data.forms["nom_pl"] = {stemr .. "ra"}
		data.forms["acc_pl"] = data.forms["nom_pl"]
		data.forms["gen_pl"] = {stemr .. "roti"}
		data.forms["dat_pl"] = data.forms["gen_pl"]
		data.forms["loc_pl"] = data.forms["gen_pl"]
		data.forms["ins_pl"] = {stemr .. "rossi"}
		data.forms["com_pl"] = data.forms["ins_pl"]
		data.forms["voc_pl"] = {stem .. "as"}
		
		data.forms["nom_pa"] = {stemr .. "run"}
		data.forms["acc_pa"] = {stemr .. "runi"}
		data.forms["gen_pa"] = {stemr .. "runo"}
		data.forms["dat_pa"] = {stemr .. "runto"}
		data.forms["loc_pa"] = {stemr .. "runno"}
		data.forms["ins_pa"] = {stemr .. "russo"}
		data.forms["com_pa"] = {stemr .. "rummo"}
		data.forms["voc_pa"] = data.forms["ins_pa"]
		
		data.forms["nom_co"] = {stemr .. "ror"}
		data.forms["acc_co"] = {stemr .. "rori"}
		data.forms["gen_co"] = {stemr .. "roro"}
		data.forms["dat_co"] = {stemr .. "rorto"}
		data.forms["loc_co"] = {stemr .. "rorro"}
		data.forms["ins_co"] = {stemr .. "rorzo"}
		data.forms["com_co"] = {stemr .. "rormo"}
		data.forms["voc_co"] = data.forms["ins_co"]
	end
end
})

alldata["4-l"] = {
	params = {
		[1] = {},
		["nopl"] = {},
	},
}
setmetatable(alldata["4-l"], {__call = function(self, args, data)
	local stem = args[1]
	data.decl_type = "lunar fourth-declension"
	table.insert(data.categories, "High Valyrian fourth-declension " .. (data.proper and "proper " or "") .. "nouns")

	data.forms["nom_sg"] = {stem .. "e"}
	data.forms["acc_sg"] = {stem .. "ī"}
	data.forms["gen_sg"] = {stem .. "o"}
	data.forms["dat_sg"] = {stem .. "ot"}
	data.forms["loc_sg"] = {stem .. "ē"}
	data.forms["ins_sg"] = {stem .. "ose"}
	data.forms["com_sg"] = {stem .. "ome"}
	data.forms["voc_sg"] = {stem .. "ys"}

	if not args.nopl then
		data.forms["nom_pl"] = {stem .. "i"}
		data.forms["acc_pl"] = {stem .. "ī"}
		data.forms["gen_pl"] = {stem .. "oti"}
		data.forms["dat_pl"] = data.forms["gen_pl"]
		data.forms["loc_pl"] = data.forms["gen_pl"]
		data.forms["ins_pl"] = {stem .. "ossi"}
		data.forms["com_pl"] = {stem .. "ommi"}
		data.forms["voc_pl"] = {stem .. "is"}
		
		data.forms["nom_pa"] = {stem .. "in"}
		data.forms["acc_pa"] = {stem .. "ini"}
		data.forms["gen_pa"] = {stem .. "ino"}
		data.forms["dat_pa"] = {stem .. "inte"}
		data.forms["loc_pa"] = {stem .. "inne"}
		data.forms["ins_pa"] = {stem .. "isse"}
		data.forms["com_pa"] = {stem .. "imme"}
		data.forms["voc_pa"] = data.forms["ins_pa"]
		
		data.forms["nom_co"] = {stem .. "er"}
		data.forms["acc_co"] = {stem .. "eri"}
		data.forms["gen_co"] = {stem .. "ero"}
		data.forms["dat_co"] = {stem .. "erte"}
		data.forms["loc_co"] = {stem .. "erre"}
		data.forms["ins_co"] = {stem .. "erze"}
		data.forms["com_co"] = {stem .. "erme"}
		data.forms["voc_co"] = data.forms["ins_co"]
	end
end
})

alldata["4-s"] = {
	params = {
		[1] = {},
		["nopl"] = {},
	},
}
setmetatable(alldata["4-s"], {__call = function(self, args, data)
	local stem = args[1]
	data.decl_type = "solar fourth-declension"
	table.insert(data.categories, "High Valyrian fourth-declension " .. (data.proper and "proper " or "") .. "nouns")

	data.forms["nom_sg"] = {stem .. "es"}
	data.forms["acc_sg"] = {stem .. "ī"}
	data.forms["gen_sg"] = {stem .. "o"}
	data.forms["dat_sg"] = {stem .. "ot"}
	data.forms["loc_sg"] = {stem .. "ē"}
	data.forms["ins_sg"] = {stem .. "ose"}
	data.forms["com_sg"] = {stem .. "ome"}
	data.forms["voc_sg"] = {stem .. "ys"}

	if not args.nopl then
		data.forms["nom_pl"] = {stem .. "esse"}
		data.forms["acc_pl"] = {stem .. "ī"}
		data.forms["gen_pl"] = {stem .. "oti"}
		data.forms["dat_pl"] = data.forms["gen_pl"]
		data.forms["loc_pl"] = data.forms["gen_pl"]
		data.forms["ins_pl"] = {stem .. "ossi"}
		data.forms["com_pl"] = {stem .. "ommi"}
		data.forms["voc_pl"] = {stem .. "esses"}
		
		data.forms["nom_pa"] = {stem .. "in"}
		data.forms["acc_pa"] = {stem .. "ini"}
		data.forms["gen_pa"] = {stem .. "ino"}
		data.forms["dat_pa"] = {stem .. "inte"}
		data.forms["loc_pa"] = {stem .. "inne"}
		data.forms["ins_pa"] = {stem .. "isse"}
		data.forms["com_pa"] = {stem .. "imme"}
		data.forms["voc_pa"] = data.forms["ins_pa"]
		
		data.forms["nom_co"] = {stem .. "er"}
		data.forms["acc_co"] = {stem .. "eri"}
		data.forms["gen_co"] = {stem .. "ero"}
		data.forms["dat_co"] = {stem .. "erte"}
		data.forms["loc_co"] = {stem .. "erre"}
		data.forms["ins_co"] = {stem .. "erze"}
		data.forms["com_co"] = {stem .. "erme"}
		data.forms["voc_co"] = data.forms["ins_co"]
	end
end
})

alldata["4-t"] = {
	params = {
		[1] = {},
		["nopl"] = {},
	},
}
setmetatable(alldata["4-t"], {__call = function(self, args, data)
	local stem = args[1]
	data.decl_type = "terrestrial fourth-declension"
	table.insert(data.categories, "High Valyrian fourth-declension " .. (data.proper and "proper " or "") .. "nouns")

	data.forms["nom_sg"] = {stem .. "ien"}
	data.forms["acc_sg"] = {stem .. "ī"}
	data.forms["gen_sg"] = {stem .. "io"}
	data.forms["dat_sg"] = {stem .. "iot"}
	data.forms["loc_sg"] = {stem .. "iēn"}
	data.forms["ins_sg"] = {stem .. "ȳse"}
	data.forms["com_sg"] = {stem .. "ȳme"}
	data.forms["voc_sg"] = {stem .. "ies"}

	if not args.nopl then
		data.forms["nom_pl"] = {stem .. "ī"}
		data.forms["acc_pl"] = data.forms["nom_pl"]
		data.forms["gen_pl"] = {stem .. "ȳti"}
		data.forms["dat_pl"] = data.forms["gen_pl"]
		data.forms["loc_pl"] = data.forms["gen_pl"]
		data.forms["ins_pl"] = {stem .. "ȳssi"}
		data.forms["com_pl"] = {stem .. "ȳmmi"}
		data.forms["voc_pl"] = {stem .. "īs"}
		
		data.forms["nom_pa"] = {stem .. "ȳn"}
		data.forms["acc_pa"] = {stem .. "ȳni"}
		data.forms["gen_pa"] = {stem .. "ȳno"}
		data.forms["dat_pa"] = {stem .. "ȳnte"}
		data.forms["loc_pa"] = {stem .. "ȳnne"}
		data.forms["ins_pa"] = {stem .. "ȳsse"}
		data.forms["com_pa"] = {stem .. "ȳmme"}
		data.forms["voc_pa"] = data.forms["ins_pa"]
		
		data.forms["nom_co"] = {stem .. "ior"}
		data.forms["acc_co"] = {stem .. "ȳndi"}
		data.forms["gen_co"] = {stem .. "ȳndo"}
		data.forms["dat_co"] = {stem .. "ȳnde"}
		data.forms["loc_co"] = {stem .. "ȳrre"}
		data.forms["ins_co"] = {stem .. "ȳrze"}
		data.forms["com_co"] = {stem .. "ȳrme"}
		data.forms["voc_co"] = data.forms["ins_co"]
	end
end
})

alldata["5-l"] = {
	params = {
		[1] = {},
		["nopl"] = {},
	},
}
setmetatable(alldata["5-l"], {__call = function(self, args, data)
	local stem = args[1]
	data.decl_type = "lunar fifth-declension"
	table.insert(data.categories, "High Valyrian fifth-declension " .. (data.proper and "proper " or "") .. "nouns")

	data.forms["nom_sg"] = {stem .. "i"}
	data.forms["acc_sg"] = data.forms["nom_sg"]
	data.forms["gen_sg"] = {stem .. "io"}
	data.forms["dat_sg"] = {stem .. "iot"}
	data.forms["loc_sg"] = {stem .. "ī"}
	data.forms["ins_sg"] = {stem .. "ȳsi"}
	data.forms["com_sg"] = {stem .. "ȳmi"}
	data.forms["voc_sg"] = {stem .. "ys"}

	if not args.nopl then
		data.forms["nom_pl"] = {stem .. "a"}
		data.forms["acc_pl"] = data.forms["nom_pl"]
		data.forms["gen_pl"] = {stem .. "ȳti"}
		data.forms["dat_pl"] = data.forms["gen_pl"]
		data.forms["loc_pl"] = data.forms["gen_pl"]
		data.forms["ins_pl"] = {stem .. "ȳssi"}
		data.forms["com_pl"] = {stem .. "ȳmmi"}
		data.forms["voc_pl"] = {stem .. "as"}
		
		data.forms["nom_pa"] = {stem .. "in"}
		data.forms["acc_pa"] = {stem .. "ini"}
		data.forms["gen_pa"] = {stem .. "ino"}
		data.forms["dat_pa"] = {stem .. "inti"}
		data.forms["loc_pa"] = {stem .. "inni"}
		data.forms["ins_pa"] = {stem .. "issi"}
		data.forms["com_pa"] = {stem .. "immi"}
		data.forms["voc_pa"] = data.forms["ins_pa"]
		
		data.forms["nom_co"] = {stem .. "ir"}
		data.forms["acc_co"] = {stem .. "iri"}
		data.forms["gen_co"] = {stem .. "iro"}
		data.forms["dat_co"] = {stem .. "irti"}
		data.forms["loc_co"] = {stem .. "irri"}
		data.forms["ins_co"] = {stem .. "irzi"}
		data.forms["com_co"] = {stem .. "irmi"}
		data.forms["voc_co"] = data.forms["ins_co"]
	end
end
})

alldata["5-s"] = {
	params = {
		[1] = {},
		["nopl"] = {},
	},
}
setmetatable(alldata["5-s"], {__call = function(self, args, data)
	local stem = args[1]
	data.decl_type = "solar fifth-declension"
	table.insert(data.categories, "High Valyrian fifth-declension " .. (data.proper and "proper " or "") .. "nouns")

	data.forms["nom_sg"] = {stem .. "is"}
	data.forms["acc_sg"] = data.forms["nom_sg"]
	data.forms["gen_sg"] = {stem .. "io"}
	data.forms["dat_sg"] = {stem .. "iot"}
	data.forms["loc_sg"] = {stem .. "ī"}
	data.forms["ins_sg"] = {stem .. "ȳsi"}
	data.forms["com_sg"] = {stem .. "ȳmi"}
	data.forms["voc_sg"] = {stem .. "ys"}

	if not args.nopl then
		data.forms["nom_pl"] = {stem .. "issa"}
		data.forms["acc_pl"] = data.forms["nom_pl"]
		data.forms["gen_pl"] = {stem .. "ȳti"}
		data.forms["dat_pl"] = data.forms["gen_pl"]
		data.forms["loc_pl"] = data.forms["gen_pl"]
		data.forms["ins_pl"] = {stem .. "ȳssi"}
		data.forms["com_pl"] = {stem .. "ȳmmi"}
		data.forms["voc_pl"] = {stem .. "issas"}
		
		data.forms["nom_pa"] = {stem .. "in"}
		data.forms["acc_pa"] = {stem .. "ini"}
		data.forms["gen_pa"] = {stem .. "ino"}
		data.forms["dat_pa"] = {stem .. "inti"}
		data.forms["loc_pa"] = {stem .. "inni"}
		data.forms["ins_pa"] = {stem .. "issi"}
		data.forms["com_pa"] = {stem .. "immi"}
		data.forms["voc_pa"] = data.forms["ins_pa"]
		
		data.forms["nom_co"] = {stem .. "ir"}
		data.forms["acc_co"] = {stem .. "iri"}
		data.forms["gen_co"] = {stem .. "iro"}
		data.forms["dat_co"] = {stem .. "irti"}
		data.forms["loc_co"] = {stem .. "irri"}
		data.forms["ins_co"] = {stem .. "irzi"}
		data.forms["com_co"] = {stem .. "irmi"}
		data.forms["voc_co"] = data.forms["ins_co"]
	end
end
})

alldata["5-a"] = {
	params = {
		[1] = {},
		["nopl"] = {},
	},
}
setmetatable(alldata["5-a"], {__call = function(self, args, data)
	local stem = args[1]
	local v = sub(stem, -2, -2)
	local stemr = (sub(stem, -1) == "m" and sub(stem, 1, -3) .. lengthen(v) .. "b"
					or sub(stem, -1) == "n" and sub(stem, 1, -3) .. lengthen(v) .. "d"
					or stem)
	local z = sub(stem, -2) == "rz"
	local stemz = sub(stem, 1, -3)
	data.decl_type = "aquatic fifth-declension"
	table.insert(data.categories, "High Valyrian fifth-declension " .. (data.proper and "proper " or "") .. "nouns")

	data.forms["nom_sg"] = {stem .. "ir"}
	data.forms["acc_sg"] = data.forms["nom_sg"]
	data.forms["gen_sg"] = {z and stemz .. "rjio" or stemr .. "rio"}
	data.forms["dat_sg"] = {z and stemz .. "rjiot" or stemr .. "riot"}
	data.forms["loc_sg"] = {stem .. "īr"}
	data.forms["ins_sg"] = {z and stemz .. "rjȳsi" or stemr .. "ȳsi"}
	data.forms["com_sg"] = {z and stemz .. "rjȳmi" or stemr .. "ȳmi"}
	data.forms["voc_sg"] = {stem .. "ys"}

	if not args.nopl then
		data.forms["nom_pl"] = {z and stemz .. "rja" or stemr .. "ra"}
		data.forms["acc_pl"] = data.forms["nom_pl"]
		data.forms["gen_pl"] = {z and stemz .. "rjȳti" or stemr .. "rȳti"}
		data.forms["dat_pl"] = data.forms["gen_pl"]
		data.forms["loc_pl"] = data.forms["gen_pl"]
		data.forms["ins_pl"] = {z and stemz .. "rjȳssi" or stemr .. "rȳssi"}
		data.forms["com_pl"] = {z and stemz .. "rjȳmmi" or stemr .. "rȳmmi"}
		data.forms["voc_pl"] = {stem .. "as"}
		
		data.forms["nom_pa"] = {z and stemz .. "rjin" or stemr .. "rin"}
		data.forms["acc_pa"] = {z and stemz .. "rjini" or stemr .. "rini"}
		data.forms["gen_pa"] = {z and stemz .. "rjino" or stemr .. "rino"}
		data.forms["dat_pa"] = {z and stemz .. "rjinti" or stemr .. "rinti"}
		data.forms["loc_pa"] = {z and stemz .. "rjinni" or stemr .. "rinni"}
		data.forms["ins_pa"] = {z and stemz .. "rjissi" or stemr .. "rissi"}
		data.forms["com_pa"] = {z and stemz .. "rjimmi" or stemr .. "rimmi"}
		data.forms["voc_pa"] = data.forms["ins_pa"]
		
		data.forms["nom_co"] = {z and stemz .. "rjir" or stemr .. "rir"}
		data.forms["acc_co"] = {z and stemz .. "rjiri" or stemr .. "riri"}
		data.forms["gen_co"] = {z and stemz .. "rjiro" or stemr .. "riro"}
		data.forms["dat_co"] = {z and stemz .. "rjirti" or stemr .. "rirti"}
		data.forms["loc_co"] = {z and stemz .. "rjirri" or stemr .. "rirri"}
		data.forms["ins_co"] = {z and stemz .. "rjirzi" or stemr .. "rirzi"}
		data.forms["com_co"] = {z and stemz .. "rjirmi" or stemr .. "rirmi"}
		data.forms["voc_co"] = data.forms["ins_co"]
	end
end
})

alldata["ōz"] = function(args, data)
	data.decl_type = "n-stem solar third-declension"
	table.insert(data.categories, "High Valyrian third-declension nouns")
	table.insert(data.categories, "High Valyrian n-stem nouns")

	data.forms["nom_sg"] = {"ōz"}
	data.forms["acc_sg"] = data.forms["nom_sg"]
	data.forms["gen_sg"] = {"ono"}
	data.forms["dat_sg"] = {"onot"}
	data.forms["loc_sg"] = data.forms["dat_sg"]
	data.forms["ins_sg"] = {"ōzo"}
	data.forms["com_sg"] = data.forms["ins_sg"]
	data.forms["voc_sg"] = data.forms["nom_sg"]
	
	data.forms["nom_pl"] = {"onossa"}
	data.forms["acc_pl"] = data.forms["nom_pl"]
	data.forms["gen_pl"] = {"onoti"}
	data.forms["dat_pl"] = data.forms["gen_pl"]
	data.forms["loc_pl"] = data.forms["gen_pl"]
	data.forms["ins_pl"] = {"onossi"}
	data.forms["com_pl"] = data.forms["ins_pl"]
	data.forms["voc_pl"] = {"onossas"}
	
	data.forms["nom_pa"] = {"onun"}
	data.forms["acc_pa"] = {"onuni"}
	data.forms["gen_pa"] = {"onuno"}
	data.forms["dat_pa"] = {"onunto"}
	data.forms["loc_pa"] = {"onunno"}
	data.forms["ins_pa"] = {"onusso"}
	data.forms["com_pa"] = {"onummo"}
	data.forms["voc_pa"] = data.forms["ins_pa"]
		
	data.forms["nom_co"] = {"onor"}
	data.forms["acc_co"] = {"onori"}
	data.forms["gen_co"] = {"onoro"}
	data.forms["dat_co"] = {"onorto"}
	data.forms["loc_co"] = {"onorro"}
	data.forms["ins_co"] = {"onorzo"}
	data.forms["com_co"] = {"onormo"}
	data.forms["voc_co"] = data.forms["ins_co"]
end

alldata["Mȳr"] = function(args, data)
	data.decl_type = "solar third-declension"
	table.insert(data.categories, "High Valyrian third-declension nouns")

	data.forms["nom_sg"] = {"Mȳr"}
	data.forms["acc_sg"] = data.forms["nom_sg"]
	data.forms["gen_sg"] = {"Mȳro"}
	data.forms["dat_sg"] = {"Mȳrot"}
	data.forms["loc_sg"] = data.forms["dat_sg"]
	data.forms["ins_sg"] = {"Mȳroso"}
	data.forms["com_sg"] = data.forms["ins_sg"]
	data.forms["voc_sg"] = data.forms["nom_sg"]
end

alldata["6"] = {
	params = {
		[1] = {},
		["nopl"] = {},
	},
}
setmetatable(alldata["6"], {__call = function(self, args, data)
	local stem = args[1] 
	data.decl_type = "sixth-declension"
	table.insert(data.categories, "High Valyrian sixth-declension " .. (data.proper and "proper " or "") .. "nouns")

	data.forms["nom_sg"] = {stem .. "i", stem}
	data.forms["acc_sg"] = {stem .. "i"}
	data.forms["gen_sg"] = {stem .. "o"}
	data.forms["dat_sg"] = {stem .. "ot"}
	data.forms["loc_sg"] = {stem .. "ī"}
	data.forms["ins_sg"] = {stem .. "isi"}
	data.forms["com_sg"] = {stem .. "imi"}
	data.forms["voc_sg"] = {stem .. "is"}

	if not args.nopl then
		data.forms["nom_pl"] = {stem .. "i"}
		data.forms["acc_pl"] = {stem .. "ī"}
		data.forms["gen_pl"] = {stem .. "oti"}
		data.forms["dat_pl"] = data.forms["gen_pl"]
		data.forms["loc_pl"] = data.forms["gen_pl"]
		data.forms["ins_pl"] = {stem .. "issi"}
		data.forms["com_pl"] = {stem .. "immi"}
		data.forms["voc_pl"] = {stem .. "issis"}
		
		data.forms["nom_pa"] = {stem .. "in"}
		data.forms["acc_pa"] = {stem .. "ini"}
		data.forms["gen_pa"] = {stem .. "ino"}
		data.forms["dat_pa"] = {stem .. "inti"}
		data.forms["loc_pa"] = {stem .. "inni"}
		data.forms["ins_pa"] = {stem .. "issi"}
		data.forms["com_pa"] = {stem .. "immi"}
		data.forms["voc_pa"] = data.forms["ins_pa"]
		
		data.forms["nom_co"] = {stem .. "ir"}
		data.forms["acc_co"] = {stem .. "iri"}
		data.forms["gen_co"] = {stem .. "iro"}
		data.forms["dat_co"] = {stem .. "irti"}
		data.forms["loc_co"] = {stem .. "irri"}
		data.forms["ins_co"] = {stem .. "irzi"}
		data.forms["com_co"] = {stem .. "irmi"}
		data.forms["voc_co"] = data.forms["ins_co"]
	end
end
})

alldata["6-u"] = {
	params = {
		[1] = {},
		["nopl"] = {},
	},
}
setmetatable(alldata["6-u"], {__call = function(self, args, data)
	local stem = args[1] 
	data.decl_type = "sixth-declension"
	table.insert(data.categories, "High Valyrian sixth-declension " .. (data.proper and "proper " or "") .. "nouns")

	data.forms["nom_sg"] = {stem .. "i", stem}
	data.forms["acc_sg"] = {stem .. "i"}
	data.forms["gen_sg"] = {stem .. "o"}
	data.forms["dat_sg"] = {stem .. "ot"}
	data.forms["loc_sg"] = {stem .. "ī"}
	data.forms["ins_sg"] = {stem .. "isi"}
	data.forms["com_sg"] = {stem .. "imi"}
	data.forms["voc_sg"] = {stem .. "is"}

	if not args.nopl then
		data.forms["nom_pl"] = {stem .. "i"}
		data.forms["acc_pl"] = {stem .. "ī"}
		data.forms["gen_pl"] = {stem .. "oti"}
		data.forms["dat_pl"] = data.forms["gen_pl"]
		data.forms["loc_pl"] = data.forms["gen_pl"]
		data.forms["ins_pl"] = {stem .. "issi"}
		data.forms["com_pl"] = {stem .. "immi"}
		data.forms["voc_pl"] = {stem .. "issis"}
		
		data.forms["nom_pa"] = {stem .. "in"}
		data.forms["acc_pa"] = {stem .. "ini"}
		data.forms["gen_pa"] = {stem .. "ino"}
		data.forms["dat_pa"] = {stem .. "inti"}
		data.forms["loc_pa"] = {stem .. "inni"}
		data.forms["ins_pa"] = {stem .. "issi"}
		data.forms["com_pa"] = {stem .. "immi"}
		data.forms["voc_pa"] = data.forms["ins_pa"]
		
		data.forms["nom_co"] = {stem .. "ir"}
		data.forms["acc_co"] = {stem .. "iri"}
		data.forms["gen_co"] = {stem .. "iro"}
		data.forms["dat_co"] = {stem .. "irti"}
		data.forms["loc_co"] = {stem .. "irri"}
		data.forms["ins_co"] = {stem .. "irzi"}
		data.forms["com_co"] = {stem .. "irmi"}
		data.forms["voc_co"] = data.forms["ins_co"]
	end
end
})

alldata["mhysa"] = function(args, data)
	data.decl_type = "sixth-declension"
	table.insert(data.categories, "High Valyrian sixth-declension nouns")

	data.forms["nom_sg"] = {"mhysa"}
	data.forms["acc_sg"] = {"mhysi"}
	data.forms["gen_sg"] = {"mhyso"}
	data.forms["dat_sg"] = {"mhysot"}
	data.forms["loc_sg"] = {"mhysī"}
	data.forms["ins_sg"] = {"mhysisi"}
	data.forms["com_sg"] = {"mhysimi"}
	data.forms["voc_sg"] = {"mhysis"}


	data.forms["nom_pl"] = {"mhysi"}
	data.forms["acc_pl"] = {"mhysī"}
	data.forms["gen_pl"] = {"mhysoti"}
	data.forms["dat_pl"] = data.forms["gen_pl"]
	data.forms["loc_pl"] = data.forms["gen_pl"]
	data.forms["ins_pl"] = {"mhysissi"}
	data.forms["com_pl"] = {"mhysimmi"}
	data.forms["voc_pl"] = {"mhysissis"}
	
	data.forms["nom_pa"] = {"mhysin"}
	data.forms["acc_pa"] = {"mhysini"}
	data.forms["gen_pa"] = {"mhysino"}
	data.forms["dat_pa"] = {"mhysinti"}
	data.forms["loc_pa"] = {"mhysinni"}
	data.forms["ins_pa"] = {"mhysissi"}
	data.forms["com_pa"] = {"mhysimmi"}
	data.forms["voc_pa"] = data.forms["ins_pa"]
	
	data.forms["nom_co"] = {"mhysir"}
	data.forms["acc_co"] = {"mhysiri"}
	data.forms["gen_co"] = {"mhysiro"}
	data.forms["dat_co"] = {"mhysirti"}
	data.forms["loc_co"] = {"mhysirri"}
	data.forms["ins_co"] = {"mhysirzi"}
	data.forms["com_co"] = {"mhysirmi"}
	data.forms["voc_co"] = data.forms["ins_co"]
end

alldata["bianor"] = function(args, data)
	data.decl_type = "lunar third-declension"
	table.insert(data.categories, "High Valyrian third-declension nouns")

	data.forms["nom_sg"] = {"bianor"}
	data.forms["acc_sg"] = data.forms["nom_sg"]
	data.forms["gen_sg"] = {"biādro"}
	data.forms["dat_sg"] = {"biādrot"}
	data.forms["loc_sg"] = data.forms["dat_sg"]
	data.forms["ins_sg"] = {"biādroso"}
	data.forms["com_sg"] = data.forms["ins_sg"]
	data.forms["voc_sg"] = {"bianos"}


	data.forms["nom_pl"] = {"biādra"}
	data.forms["acc_pl"] = data.forms["nom_pl"]
	data.forms["gen_pl"] = {"biādroti"}
	data.forms["dat_pl"] = data.forms["gen_pl"]
	data.forms["loc_pl"] = data.forms["gen_pl"]
	data.forms["ins_pl"] = {"biādrossi"}
	data.forms["com_pl"] = {"biādrossi"}
	data.forms["voc_pl"] = {"biādras"}
	
	data.forms["nom_pa"] = {"biādrun"}
	data.forms["acc_pa"] = {"biādruni"}
	data.forms["gen_pa"] = {"biādruno"}
	data.forms["dat_pa"] = {"biādrunto"}
	data.forms["loc_pa"] = {"biādrunno"}
	data.forms["ins_pa"] = {"biādrusso"}
	data.forms["com_pa"] = {"biādrummo"}
	data.forms["voc_pa"] = data.forms["ins_pa"]
	
	data.forms["nom_co"] = {"biādror"}
	data.forms["acc_co"] = {"biādrori"}
	data.forms["gen_co"] = {"biādroro"}
	data.forms["dat_co"] = {"biādrorto"}
	data.forms["loc_co"] = {"biādrorro"}
	data.forms["ins_co"] = {"biādrorzo"}
	data.forms["com_co"] = {"biādrormo"}
	data.forms["voc_co"] = data.forms["ins_co"]
end

alldata["nāqopsir"] = function(args, data)
	data.decl_type = "lunar fifth-declension"
	table.insert(data.categories, "High Valyrian fifth-declension nouns")

	data.forms["nom_sg"] = {"nāqopsir"}
	data.forms["acc_sg"] = data.forms["nom_sg"]
	data.forms["gen_sg"] = {"nāqobjio", "nāqōjio"}
	data.forms["dat_sg"] = {"nāqobjiot", "nāqōjiot"}
	data.forms["loc_sg"] = {"nāqobjī", "nāqōjī"}
	data.forms["ins_sg"] = {"nāqobjȳsi", "nāqōjȳsi"}
	data.forms["com_sg"] = {"nāqobjȳmi", "nāqōjȳmi"}
	data.forms["voc_sg"] = {"nāqobjys", "nāqōjys"}


	data.forms["nom_pl"] = {"nāqobja", "nāqōja"}
	data.forms["acc_pl"] = data.forms["nom_pl"]
	data.forms["gen_pl"] = {"nāqobjȳti", "nāqōjȳti"}
	data.forms["dat_pl"] = data.forms["gen_pl"]
	data.forms["loc_pl"] = data.forms["gen_pl"]
	data.forms["ins_pl"] = {"nāqobjȳssi", "nāqōjȳssi"}
	data.forms["com_pl"] = {"nāqobjȳmmi", "nāqōjȳmmi"}
	data.forms["voc_pl"] = {"nāqobjas", "nāqōjas"}
	
	data.forms["nom_pa"] = {"nāqobjin", "nāqōjin"}
	data.forms["acc_pa"] = {"nāqobjini", "nāqōjini"}
	data.forms["gen_pa"] = {"nāqobjino", "nāqōjino"}
	data.forms["dat_pa"] = {"nāqobjinti", "nāqōjinti"}
	data.forms["loc_pa"] = {"nāqobjinni", "nāqōjinni"}
	data.forms["ins_pa"] = {"nāqobjissi", "nāqōjissi"}
	data.forms["com_pa"] = {"nāqobjimmi", "nāqōjimmi"}
	data.forms["voc_pa"] = data.forms["ins_pa"]
	
	data.forms["nom_co"] = {"nāqobjir", "nāqōjir"}
	data.forms["acc_co"] = {"nāqobjiri", "nāqōjiri"}
	data.forms["gen_co"] = {"nāqobjiro", "nāqōjiro"}
	data.forms["dat_co"] = {"nāqobjirti", "nāqōjirti"}
	data.forms["loc_co"] = {"nāqobjirri", "nāqōjirri"}
	data.forms["ins_co"] = {"nāqobjirzi", "nāqōjirzi"}
	data.forms["com_co"] = {"nāqobjirmi", "nāqōjirmi"}
	data.forms["voc_co"] = data.forms["ins_co"]
end

alldata["ēs"] = function(args, data)
	data.decl_type = "l-stem solar third-declension"
	table.insert(data.categories, "High Valyrian third-declension nouns")
	table.insert(data.categories, "High Valyrian l-stem nouns")

	data.forms["nom_sg"] = {"ēs"}
	data.forms["acc_sg"] = data.forms["nom_sg"]
	data.forms["gen_sg"] = {"elo"}
	data.forms["dat_sg"] = {"elot"}
	data.forms["loc_sg"] = data.forms["dat_sg"]
	data.forms["ins_sg"] = {"ēso"}
	data.forms["com_sg"] = data.forms["ins_sg"]
	data.forms["voc_sg"] = data.forms["nom_sg"]


	data.forms["nom_pl"] = {"elossa"}
	data.forms["acc_pl"] = data.forms["nom_pl"]
	data.forms["gen_pl"] = {"eloti"}
	data.forms["dat_pl"] = data.forms["gen_pl"]
	data.forms["loc_pl"] = data.forms["gen_pl"]
	data.forms["ins_pl"] = {"elossi"}
	data.forms["com_pl"] = data.forms["ins_pl"]
	data.forms["voc_pl"] = {"elossas"}
	
	data.forms["nom_pa"] = {"elun"}
	data.forms["acc_pa"] = {"eluni"}
	data.forms["gen_pa"] = {"eluno"}
	data.forms["dat_pa"] = {"elunto"}
	data.forms["loc_pa"] = {"elunno"}
	data.forms["ins_pa"] = {"elusso"}
	data.forms["com_pa"] = {"elummo"}
	data.forms["voc_pa"] = data.forms["ins_pa"]
	
	data.forms["nom_co"] = {"elor"}
	data.forms["acc_co"] = {"elori"}
	data.forms["gen_co"] = {"eloro"}
	data.forms["dat_co"] = {"elorto"}
	data.forms["loc_co"] = {"elorro"}
	data.forms["ins_co"] = {"elorzo"}
	data.forms["com_co"] = {"elormo"}
	data.forms["voc_co"] = data.forms["ins_co"]
end

alldata["jelmor"] = function(args, data)
	data.decl_type = "aquatic third-declension"
	table.insert(data.categories, "High Valyrian third-declension nouns")

	data.forms["nom_sg"] = {"jelmor"}
	data.forms["acc_sg"] = data.forms["nom_sg"]
	data.forms["gen_sg"] = {"jēmbro"}
	data.forms["dat_sg"] = {"jēmbrot"}
	data.forms["loc_sg"] = data.forms["dat_sg"]
	data.forms["ins_sg"] = {"jēmbroso"}
	data.forms["com_sg"] = data.forms["ins_sg"]
	data.forms["voc_sg"] = {"jelmos"}

	data.forms["nom_pl"] = {"jēmbra"}
	data.forms["acc_pl"] = data.forms["nom_pl"]
	data.forms["gen_pl"] = {"jēmbroti"}
	data.forms["dat_pl"] = data.forms["gen_pl"]
	data.forms["loc_pl"] = data.forms["gen_pl"]
	data.forms["ins_pl"] = {"jēmbrossi"}
	data.forms["com_pl"] = data.forms["ins_pl"]
	data.forms["voc_pl"] = {"jelmas"}
	
	data.forms["nom_pa"] = {"jēmbrun"}
	data.forms["acc_pa"] = {"jēmbruni"}
	data.forms["gen_pa"] = {"jēmbruno"}
	data.forms["dat_pa"] = {"jēmbrunto"}
	data.forms["loc_pa"] = {"jēmbrunno"}
	data.forms["ins_pa"] = {"jēmbrusso"}
	data.forms["com_pa"] = {"jēmbrummo"}
	data.forms["voc_pa"] = data.forms["ins_pa"]
	
	data.forms["nom_co"] = {"jēmbror"}
	data.forms["acc_co"] = {"jēmbrori"}
	data.forms["gen_co"] = {"jēmbroro"}
	data.forms["dat_co"] = {"jēmbrorto"}
	data.forms["loc_co"] = {"jēmbrorro"}
	data.forms["ins_co"] = {"jēmbrorzo"}
	data.forms["com_co"] = {"jēmbrormo"}
	data.forms["voc_co"] = data.forms["ins_co"]
end

alldata["Qelbria"] = function(args, data)
	data.decl_type = "aquatic first-declension"
	table.insert(data.categories, "High Valyrian first-declension nouns")

	data.forms["nom_sg"] = {"Qelbria"}
	data.forms["acc_sg"] = {"Qelbri"}
	data.forms["gen_sg"] = {"Qelbro"}
	data.forms["dat_sg"] = {"Qelbrot"}
	data.forms["loc_sg"] = {"Qelbrār"}
	data.forms["ins_sg"] = {"Qelbrosa"}
	data.forms["com_sg"] = {"Qelbroma"}
	data.forms["voc_sg"] = {"Qelbrus"}
end

alldata["sēter"] = function(args, data)
	data.decl_type = "aquatic third-declension"
	table.insert(data.categories, "High Valyrian third-declension nouns")

	data.forms["nom_sg"] = {"sēter"}
	data.forms["acc_sg"] = data.forms["nom_sg"]
	data.forms["gen_sg"] = {"sētero"}
	data.forms["dat_sg"] = {"sēterot"}
	data.forms["loc_sg"] = data.forms["dat_sg"]
	data.forms["ins_sg"] = {"sēteroso"}
	data.forms["com_sg"] = data.forms["ins_sg"]
	data.forms["voc_sg"] = {"sēteros"}
	
	data.forms["nom_pl"] = {"sētera"}
	data.forms["acc_pl"] = data.forms["nom_pl"]
	data.forms["gen_pl"] = {"sēteroti"}
	data.forms["dat_pl"] = data.forms["gen_pl"]
	data.forms["loc_pl"] = data.forms["gen_pl"]
	data.forms["ins_pl"] = {"sēterossi"}
	data.forms["com_pl"] = data.forms["ins_pl"]
	data.forms["voc_pl"] = {"sēteras"}
	
	data.forms["nom_pa"] = {"sēterun"}
	data.forms["acc_pa"] = {"sēteruni"}
	data.forms["gen_pa"] = {"sēteruno"}
	data.forms["dat_pa"] = {"sēterunto"}
	data.forms["loc_pa"] = {"sēterunno"}
	data.forms["ins_pa"] = {"sēterusso"}
	data.forms["com_pa"] = {"sēterummo"}
	data.forms["voc_pa"] = data.forms["ins_pa"]
	
	data.forms["nom_co"] = {"sēteror"}
	data.forms["acc_co"] = {"sēterori"}
	data.forms["gen_co"] = {"sēteroro"}
	data.forms["dat_co"] = {"sēterorto"}
	data.forms["loc_co"] = {"sēterorro"}
	data.forms["ins_co"] = {"sēterorzo"}
	data.forms["com_co"] = {"sēterormo"}
	data.forms["voc_co"] = data.forms["ins_co"]
end

alldata["Junkae"] = function(args, data)
	data.decl_type = "sixth-declension"
	table.insert(data.categories, "High Valyrian sixth-declension proper nouns")

	data.forms["nom_sg"] = {"Junkae"}
	data.forms["acc_sg"] = data.forms["nom_sg"]
	data.forms["gen_sg"] = {"Junkaeho"}
	data.forms["dat_sg"] = {"Junkaehot"}
	data.forms["loc_sg"] = data.forms["dat_sg"]
	data.forms["ins_sg"] = {"Junkaeso"}
	data.forms["com_sg"] = data.forms["ins_sg"]
	data.forms["voc_sg"] = {"Junkaes"}
end

alldata["nager"] = function(args, data)
	local stem = "nager"
	data.decl_type = "irregular"
	
	
	data.forms["nom_sg"] = {stem}
	data.forms["acc_sg"] = {stem .. "ī"}
	data.forms["gen_sg"] = {stem .. "o"}
	data.forms["dat_sg"] = {stem .. "ot"}
	data.forms["loc_sg"] = {stem .. "ē"}
	data.forms["ins_sg"] = {stem .. "ose"}
	data.forms["com_sg"] = {stem .. "ome"}
	data.forms["voc_sg"] = {stem .. "ys"}

	data.forms["nom_pl"] = {stem .. "i"}
	data.forms["acc_pl"] = {stem .. "ī"}
	data.forms["gen_pl"] = {stem .. "oti"}
	data.forms["dat_pl"] = data.forms["gen_pl"]
	data.forms["loc_pl"] = data.forms["gen_pl"]
	data.forms["ins_pl"] = {stem .. "ossi"}
	data.forms["com_pl"] = {stem .. "ommi"}
	data.forms["voc_pl"] = {stem .. "īs"}
	
	data.forms["nom_pa"] = {stem .. "in"}
	data.forms["acc_pa"] = {stem .. "ini"}
	data.forms["gen_pa"] = {stem .. "ino"}
	data.forms["dat_pa"] = {stem .. "inte"}
	data.forms["loc_pa"] = {stem .. "inne"}
	data.forms["ins_pa"] = {stem .. "isse"}
	data.forms["com_pa"] = {stem .. "imme"}
	data.forms["voc_pa"] = data.forms["ins_pa"]
	
	data.forms["nom_co"] = {stem .. "er"}
	data.forms["acc_co"] = {stem .. "eri"}
	data.forms["gen_co"] = {stem .. "ero"}
	data.forms["dat_co"] = {stem .. "erte"}
	data.forms["loc_co"] = {stem .. "erre"}
	data.forms["ins_co"] = {stem .. "erze"}
	data.forms["com_co"] = {stem .. "erme"}
	data.forms["voc_co"] = data.forms["ins_co"]
end

return alldata