Module:qhv-noun/data

< Module:qhv-noun
Revision as of 19:58, 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 first-declension"
	table.insert(data.categories, "High Valyrian first-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 second-declension"
	table.insert(data.categories, "High Valyrian second-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
})

return alldata