Module:qhv-noun/data

< Module:qhv-noun
Revision as of 21:50, 9 February 2021 by Sware (talk | contribs)


local sub = mw.ustring.sub

local alldata = {}

alldata["1-l"] = {
	params = {
		[1] = {},
		["nopl"] = {},
	},
}
setmetatable(alldata["1-l"], {__call = function(self, args, data)
	local stem = args[1]
	if sub(stem, -1) == "i" then local i = true end
	data.decl_type = "lunar first-declension"
	table.insert(data.categories, "High Valyrian first-declension 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 stem .. "ȳsa" or stem .. "osa"}
	data.forms["com_sg"] = {i and stem .. "ȳma" or stem .. "oma"}
	data.forms["voc_sg"] = {i and stem .. "ȳs" or stem .. "us"}

	if not args.nopl then
		data.forms["nom_pl"] = {i and stem .. "ī" or stem .. "i"}
		data.forms["acc_pl"] = {stem .. "ī"}
		data.forms["gen_pl"] = {i and stem .. "ȳ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 stem .. "ȳssi" or stem .. "ossi"}
		data.forms["com_pl"] = {i and stem .. "ȳmmi" or stem .. "ommi"}
		data.forms["voc_pl"] = {i and stem .. "īs" or stem .. "is"}
		
		data.forms["nom_pa"] = {i and stem .. "ȳn" or stem .. "un"}
		data.forms["acc_pa"] = {i and stem .. "ȳni" or stem .. "uni"}
		data.forms["gen_pa"] = {i and stem .. "ȳno" or stem .. "uno"}
		data.forms["dat_pa"] = {i and stem .. "ȳnta" or stem .. "unta"}
		data.forms["loc_pa"] = {i and stem .. "ȳnna" or stem .. "unna"}
		data.forms["ins_pa"] = {i and stem .. "ȳssa" or stem .. "ussa"}
		data.forms["com_pa"] = {i and stem .. "ȳ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]
	data.decl_type = "aquatic first-declension"
	table.insert(data.categories, "High Valyrian first-declension nouns")

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

	if not args.nopl then
		data.forms["nom_pl"] = {stem .. "ri"}
		data.forms["acc_pl"] = {stem .. "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"] = {stem .. "rossi"}
		data.forms["com_pl"] = {stem .. "rommi"}
		data.forms["voc_pl"] = {stem .. "is"}
		
		data.forms["nom_pa"] = {stem .. "run"}
		data.forms["acc_pa"] = {stem .. "runi"}
		data.forms["gen_pa"] = {stem .. "runo"}
		data.forms["dat_pa"] = {stem .. "runta"}
		data.forms["loc_pa"] = {stem .. "runna"}
		data.forms["ins_pa"] = {stem .. "russa"}
		data.forms["com_pa"] = {stem .. "rumma"}
		data.forms["voc_pa"] = data.forms["ins_pa"]
		
		data.forms["nom_co"] = {stem .. "rar"}
		data.forms["acc_co"] = {stem .. "rari"}
		data.forms["gen_co"] = {stem .. "raro"}
		data.forms["dat_co"] = {stem .. "rarta"}
		data.forms["loc_co"] = {stem .. "rarra"}
		data.forms["ins_co"] = {stem .. "rarza"}
		data.forms["com_co"] = {stem .. "rarma"}
		data.forms["voc_co"] = data.forms["ins_co"]
	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 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 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]
	if sub(stem, -1) == "i" then local i = true end
	data.decl_type = "lunar third-declension"
	table.insert(data.categories, "High Valyrian third-declension 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 stem .. "ȳ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 stem .. "ȳ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 stem .. "ȳssi" or stem .. "ossi"}
		data.forms["com_pl"] = data.forms["ins_pl"]
		data.forms["voc_pl"] = {i and stem .. "īs" or stem .. "as"}
		
		data.forms["nom_pa"] = {i and stem .. "ȳn" or stem .. "un"}
		data.forms["acc_pa"] = {i and stem .. "ȳni" or stem .. "uni"}
		data.forms["gen_pa"] = {i and stem .. "ȳno" or stem .. "uno"}
		data.forms["dat_pa"] = {i and stem .. "ȳnto" or stem .. "unto"}
		data.forms["loc_pa"] = {i and stem .. "ȳnno" or stem .. "unno"}
		data.forms["ins_pa"] = {i and stem .. "ȳsso" or stem .. "usso"}
		data.forms["com_pa"] = {i and stem .. "ȳmmo" or stem .. "ummo"}
		data.forms["voc_pa"] = data.forms["ins_pa"]
		
		data.forms["nom_co"] = {stem .. "or"}
		data.forms["acc_co"] = {i and stem .. "ȳri" or stem .. "ori"}
		data.forms["gen_co"] = {i and stem .. "ȳro" or stem .. "oro"}
		data.forms["dat_co"] = {i and stem .. "ȳrto" or stem .. "orto"}
		data.forms["loc_co"] = {i and stem .. "ȳrro" or stem .. "orro"}
		data.forms["ins_co"] = {i and stem .. "ȳrzo" or stem .. "orzo"}
		data.forms["com_co"] = {i and stem .. "ȳ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 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 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 = args[1]
	data.decl_type = "v-stem solar third-declension"
	table.insert(data.categories, "High Valyrian third-declension 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-t"] = {
	params = {
		[1] = {},
		["nopl"] = {},
	},
}
setmetatable(alldata["3-t"], {__call = function(self, args, data)
	local stem = args[1]
	if sub(stem, -1) == "i" then local i = true end
	data.decl_type = "terrestrial third-declension"
	table.insert(data.categories, "High Valyrian third-declension 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 stem .. "ȳ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 stem .. "ȳ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 stem .. "ȳssi" or stem .. "ossi"}
		data.forms["com_pl"] = data.forms["ins_pl"]
		data.forms["voc_pl"] = {i and stem .. "īs" or stem .. "as"}
		
		data.forms["nom_pa"] = {i and stem .. "ȳn" or stem .. "un"}
		data.forms["acc_pa"] = {i and stem .. "ȳni" or stem .. "uni"}
		data.forms["gen_pa"] = {i and stem .. "ȳno" or stem .. "uno"}
		data.forms["dat_pa"] = {i and stem .. "ȳnto" or stem .. "unto"}
		data.forms["loc_pa"] = {i and stem .. "ȳnno" or stem .. "unno"}
		data.forms["ins_pa"] = {i and stem .. "ȳsso" or stem .. "usso"}
		data.forms["com_pa"] = {i and stem .. "ȳmmo" or stem .. "ummo"}
		data.forms["voc_pa"] = data.forms["ins_pa"]
		
		data.forms["nom_co"] = {stem .. "or"}
		data.forms["acc_co"] = {i and stem .. "ȳndi" or stem .. "ondi"}
		data.forms["gen_co"] = {i and stem .. "ȳndo" or stem .. "ondo"}
		data.forms["dat_co"] = data.forms["gen_co"]
		data.forms["loc_co"] = {i and stem .. "ȳrro" or stem .. "orro"}
		data.forms["ins_co"] = {i and stem .. "ȳrzo" or stem .. "orzo"}
		data.forms["com_co"] = {i and stem .. "ȳ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]
	data.decl_type = "aquatic third-declension"
	table.insert(data.categories, "High Valyrian third-declension nouns")

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

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

return alldata