Module:qhv-adj/data: Difference between revisions

From Linguifex
Jump to navigation Jump to search
No edit summary
No edit summary
 
(12 intermediate revisions by the same user not shown)
Line 1: Line 1:
local sub = mw.ustring.sub
local sub = mw.ustring.sub
local gsub = mw.ustring.gsub


local d = {}
local d = {}
Line 10: Line 11:
setmetatable(d["I"], {__call = function(self, args, data)
setmetatable(d["I"], {__call = function(self, args, data)
local stem = args[1]
local stem = args[1]
local s = sub(stem, -1) == "s"
local stemr = (sub(stem, -2) == "rz" and sub(stem, 1, -2) .. "j" or sub(stem, -1) == "s" and sub(stem, 1, -2) .. "j"
local j = sub(stem, -1) == "j"
or sub(stem, -1) == "j" and stem or sub(stem, -1) == "h" and sub(stem, 1, -2) .. "rh" or stem .. "r")
local stemr = s and sub(stem, 1, -2) .. "j" or j and stem
data.decl_type = "I"
data.decl_type = "I"
table.insert(data.categories, "High Valyrian class-I adjectives")
if not data.no_cat then table.insert(data.categories, "High Valyrian class-I adjectives") end
data.forms["eq"] = {stem .. "āpa"}
data.forms["eq"] = {stem .. "āpa"}
Line 50: Line 50:
data.forms["nom_a_sg"] = {stem .. "or"}
data.forms["nom_a_sg"] = {stem .. "or"}
data.forms["acc_a_sg"] = data.forms["nom_a_sg"]
data.forms["acc_a_sg"] = data.forms["nom_a_sg"]
data.forms["gen_a_sg"] = {stemr .. "o" or stem .. "ro"}
data.forms["gen_a_sg"] = {stemr .. "o"}
data.forms["dat_a_sg"] = {stemr .. "o" or stem .. "ro", stemr .. "ot" or stem .. "rot"}
data.forms["dat_a_sg"] = {stemr .. "o", stemr .. "ot"}
data.forms["loc_a_sg"] = data.forms["dat_a_sg"]
data.forms["loc_a_sg"] = data.forms["dat_a_sg"]
data.forms["ins_a_sg"] = {stemr .. "os" or stem .. "ros"}
data.forms["ins_a_sg"] = {stemr .. "os"}
data.forms["com_a_sg"] = {stemr .. "on" or stem .. "ron", stemr .. "om" or stem .. "rom"}
data.forms["com_a_sg"] = {stemr .. "on", stemr .. "om"}
data.forms["voc_a_sg"] = {stem .. "os"}
data.forms["voc_a_sg"] = {stem .. "os"}
Line 84: Line 84:
data.forms["voc_t_pl"] = {stem .. "as"}
data.forms["voc_t_pl"] = {stem .. "as"}
data.forms["nom_a_pl"] = {stemr .. "a" or stem .. "ra"}
data.forms["nom_a_pl"] = {stemr .. "a"}
data.forms["acc_a_pl"] = data.forms["nom_a_pl"]
data.forms["acc_a_pl"] = data.forms["nom_a_pl"]
data.forms["gen_a_pl"] = {stemr .. "o" or stem .. "ro", stemr .. "ot" or stem .. "rot"}
data.forms["gen_a_pl"] = {stemr .. "o", stemr .. "ot"}
data.forms["dat_a_pl"] = data.forms["gen_a_pl"]
data.forms["dat_a_pl"] = data.forms["gen_a_pl"]
data.forms["loc_a_pl"] = data.forms["gen_a_pl"]
data.forms["loc_a_pl"] = data.forms["gen_a_pl"]
data.forms["ins_a_pl"] = {stemr .. "os" or stem .. "ros"}
data.forms["ins_a_pl"] = {stemr .. "os"}
data.forms["com_a_pl"] = {stemr .. "on" or stem .. "ron", stemr .. "om" or stem.. "rom"}
data.forms["com_a_pl"] = {stemr .. "on", stemr .. "om"}
data.forms["voc_a_pl"] = {stem .. "as"}
data.forms["voc_a_pl"] = {stem .. "as"}


Line 123: Line 123:
data.forms["post_nom_a_sg"] = {stem .. "or"}
data.forms["post_nom_a_sg"] = {stem .. "or"}
data.forms["post_acc_a_sg"] = data.forms["post_nom_a_sg"]
data.forms["post_acc_a_sg"] = data.forms["post_nom_a_sg"]
data.forms["post_gen_a_sg"] = {stemr .. "o" or stem .. "ro"}
data.forms["post_gen_a_sg"] = {stemr .. "o"}
data.forms["post_dat_a_sg"] = {stemr .. "ot" or stem .. "rot"}
data.forms["post_dat_a_sg"] = {stemr .. "ot"}
data.forms["post_loc_a_sg"] = data.forms["post_dat_a_sg"]
data.forms["post_loc_a_sg"] = data.forms["post_dat_a_sg"]
data.forms["post_ins_a_sg"] = {stemr .. "oso" or stem .. "roso"}
data.forms["post_ins_a_sg"] = {stemr .. "oso"}
data.forms["post_com_a_sg"] = {stemr .. "omo" or stem .. "romo"}
data.forms["post_com_a_sg"] = {stemr .. "omo"}
data.forms["post_voc_a_sg"] = {stem .. "os"}
data.forms["post_voc_a_sg"] = {stem .. "os"}


Line 157: Line 157:
data.forms["post_voc_t_pl"] = {stem .. "as"}
data.forms["post_voc_t_pl"] = {stem .. "as"}
data.forms["post_nom_a_pl"] = {(stemr or stem .. "r") .. "a"}
data.forms["post_nom_a_pl"] = {stemr .. "a"}
data.forms["post_acc_a_pl"] = data.forms["post_nom_a_pl"]
data.forms["post_acc_a_pl"] = data.forms["post_nom_a_pl"]
data.forms["post_gen_a_pl"] = {stemr .. "oti" or stem .. "roti"}
data.forms["post_gen_a_pl"] = {stemr .. "oti"}
data.forms["post_dat_a_pl"] = data.forms["post_gen_a_pl"]
data.forms["post_dat_a_pl"] = data.forms["post_gen_a_pl"]
data.forms["post_loc_a_pl"] = data.forms["post_gen_a_pl"]
data.forms["post_loc_a_pl"] = data.forms["post_gen_a_pl"]
data.forms["post_ins_a_pl"] = {stemr .. "ossi" or stem .. "rossi"}
data.forms["post_ins_a_pl"] = {stemr .. "ossi"}
data.forms["post_com_a_pl"] = {stemr .. "ommi" or stem .. "rommi"}
data.forms["post_com_a_pl"] = {stemr .. "ommi"}
data.forms["post_voc_a_pl"] = {stem .. "as"}
data.forms["post_voc_a_pl"] = {stem .. "as"}
end
end
Line 175: Line 175:
setmetatable(d["II"], {__call = function(self, args, data)
setmetatable(d["II"], {__call = function(self, args, data)
local stem = args[1]
local stem = args[1]
local stemm = sub(stem, -1) == "n" and sub(stem, 1, -2) .. "m" or sub(stem, -1) == "ñ" and sub(stem, 1, -2) .. "m" or stem
local stemj = sub(stem, -2) == "sr" and sub(stem, 1, -3) .. "r" or sub(stem, -2) == "ēj" and sub(stem, 1, -3) .. "ī" or stem
local ny = sub(stem, -1) == "ñ"
local stemm = sub(stem, -1) == "n" and sub(stem, 1, -2) .. "m" or sub(stem, -1) == "ñ" and sub(stem, 1, -2) .. "m" or stemj
local stemny = ny and sub(stem, 1, -2) .. "n" or stem
local ny = sub(stem, -1) == "ñ"; local j = sub(stem, -1) == "j"
local stemny = ny and sub(stem, 1, -2) .. "n" or stemj
data.decl_type = "II"
data.decl_type = "II"
table.insert(data.categories, "High Valyrian class-II adjectives")
if not data.no_cat then table.insert(data.categories, "High Valyrian class-II adjectives") end


data.forms["eq"] = {stemm .. "pa"}
data.forms["eq"] = {stemm .. "pa"}
Line 194: Line 196:
data.forms["voc_l_sg"] = {stem .. "es"}
data.forms["voc_l_sg"] = {stem .. "es"}
data.forms["nom_t_sg"] = {stem .. (ny and "or" or "ior")}
data.forms["nom_t_sg"] = {stem .. ((ny or j) and "or" or "ior")}
data.forms["acc_t_sg"] = data.forms["nom_t_sg"]
data.forms["acc_t_sg"] = data.forms["nom_t_sg"]
data.forms["gen_t_sg"] = {stem .. "ȳr"}
data.forms["gen_t_sg"] = {stem .. "ȳr"}
Line 201: Line 203:
data.forms["ins_t_sg"] = {stem .. "ȳs"}
data.forms["ins_t_sg"] = {stem .. "ȳs"}
data.forms["com_t_sg"] = {stem .. "ȳn", stem .. "ȳm"}
data.forms["com_t_sg"] = {stem .. "ȳn", stem .. "ȳm"}
data.forms["voc_t_sg"] = {stem .. (ny and "os" or "ios")}
data.forms["voc_t_sg"] = {stem .. ((ny or j) and "os" or "ios")}
data.forms["nom_l_pl"] = {stem .. "i"}
data.forms["nom_l_pl"] = {stem .. "i"}
Line 212: Line 214:
data.forms["voc_l_pl"] = {stem .. "is"}
data.forms["voc_l_pl"] = {stem .. "is"}
data.forms["nom_t_pl"] = {stem .. (ny and "ar" or "iar")}
data.forms["nom_t_pl"] = {stem .. ((ny or j) and "ar" or "iar")}
data.forms["acc_t_pl"] = data.forms["nom_t_pl"]
data.forms["acc_t_pl"] = data.forms["nom_t_pl"]
data.forms["gen_t_pl"] = {stem .. "ȳ", stem .. "ȳt"}
data.forms["gen_t_pl"] = {stem .. "ȳ", stem .. "ȳt"}
Line 231: Line 233:
data.forms["post_voc_l_sg"] = {stem .. "es"}
data.forms["post_voc_l_sg"] = {stem .. "es"}
data.forms["post_nom_t_sg"] = {stem .. (ny and "or" or "ior")}
data.forms["post_nom_t_sg"] = {stem .. ((ny or j) and "or" or "ior")}
data.forms["post_acc_t_sg"] = data.forms["post_nom_t_sg"]
data.forms["post_acc_t_sg"] = data.forms["post_nom_t_sg"]
data.forms["post_gen_t_sg"] = {stem .. "ȳro"}
data.forms["post_gen_t_sg"] = {stem .. "ȳro"}
Line 238: Line 240:
data.forms["post_ins_t_sg"] = {stem .. "ȳso"}
data.forms["post_ins_t_sg"] = {stem .. "ȳso"}
data.forms["post_com_t_sg"] = {stem .. "ȳmo"}
data.forms["post_com_t_sg"] = {stem .. "ȳmo"}
data.forms["post_voc_t_sg"] = {stem .. (ny and "os" or "ios")}
data.forms["post_voc_t_sg"] = {stem .. ((ny or j) and "os" or "ios")}
data.forms["post_nom_l_pl"] = {stem .. "i"}
data.forms["post_nom_l_pl"] = {stem .. "i"}
Line 249: Line 251:
data.forms["post_voc_l_pl"] = {stem .. "is"}
data.forms["post_voc_l_pl"] = {stem .. "is"}
data.forms["post_nom_t_pl"] = {stem .. (ny and "ar" or "iar")}
data.forms["post_nom_t_pl"] = {stem .. ((ny or j) and "ar" or "iar")}
data.forms["post_acc_t_pl"] = data.forms["post_nom_t_pl"]
data.forms["post_acc_t_pl"] = data.forms["post_nom_t_pl"]
data.forms["post_gen_t_pl"] = {stem .. "ȳti"}
data.forms["post_gen_t_pl"] = {stem .. "ȳti"}
Line 268: Line 270:
local stem = args[1]
local stem = args[1]
data.decl_type = "IIr"
data.decl_type = "IIr"
table.insert(data.categories, "High Valyrian class-IIr adjectives")
if not data.no_cat then table.insert(data.categories, "High Valyrian class-IIr adjectives") end


data.forms["eq"] = {stem .. "rpa"}
data.forms["eq"] = {stem .. "rpa"}
Line 358: Line 360:
local stemm = sub(stem, -1) == "n" and sub(stem, 1, -2) .. "m" or stem
local stemm = sub(stem, -1) == "n" and sub(stem, 1, -2) .. "m" or stem
data.decl_type = "III"
data.decl_type = "III"
table.insert(data.categories, "High Valyrian class-III adjectives")
if not data.no_cat then table.insert(data.categories, "High Valyrian class-III adjectives") end


data.forms["eq"] = {stemm .. "pa"}
data.forms["eq"] = {stemm .. "ipa"}
data.forms["comp"] = {stem .. "kta"}
data.forms["comp"] = {stem .. "ikta"}
data.forms["sup"] = {stem .. "je"}
data.forms["sup"] = {stem .. "ije"}
data.forms["nom_l_sg"] = {stem .. "ie"}
data.forms["nom_l_sg"] = {stem .. "ie"}

Latest revision as of 16:43, 27 March 2021



local sub = mw.ustring.sub
local gsub = mw.ustring.gsub

local d = {}

d["I"] = {
	params = {
		[1] = {},
	},
}
setmetatable(d["I"], {__call = function(self, args, data)
	local stem = args[1]
	local stemr = (sub(stem, -2) == "rz" and sub(stem, 1, -2) .. "j" or sub(stem, -1) == "s" and sub(stem, 1, -2) .. "j"
					or sub(stem, -1) == "j" and stem or sub(stem, -1) == "h" and sub(stem, 1, -2) .. "rh" or stem .. "r")
	data.decl_type = "I"
	if not data.no_cat then table.insert(data.categories, "High Valyrian class-I adjectives") end
	
	data.forms["eq"] = {stem .. "āpa"}
	data.forms["comp"] = {stem .. "ykta"}
	data.forms["sup"] = {stem .. "āje"}
	
	
	data.forms["nom_l_sg"] = {stem .. "a"}
	data.forms["acc_l_sg"] = {stem .. "e"}
	data.forms["gen_l_sg"] = {stem .. "o"}
	data.forms["dat_l_sg"] = {stem .. "o", stem .. "ot"}
	data.forms["loc_l_sg"] = {stem .. "ā"}
	data.forms["ins_l_sg"] = {stem .. "os"}
	data.forms["com_l_sg"] = {stem .. "on", stem .. "om"}
	data.forms["voc_l_sg"] = {stem .. "us"}
		
	data.forms["nom_s_sg"] = {stem .. "ys"}
	data.forms["acc_s_sg"] = {stem .. "i"}
	data.forms["gen_s_sg"] = {stem .. "o"}
	data.forms["dat_s_sg"] = {stem .. "o", stem .. "ot"}
	data.forms["loc_s_sg"] = {stem .. "ȳ"}
	data.forms["ins_s_sg"] = {stem .. "os"}
	data.forms["com_s_sg"] = {stem .. "on", stem .. "om"}
	data.forms["voc_s_sg"] = {stem .. "ys"}
	
	data.forms["nom_t_sg"] = {stem .. "on"}
	data.forms["acc_t_sg"] = data.forms["nom_t_sg"]
	data.forms["gen_t_sg"] = {stem .. "o"}
	data.forms["dat_t_sg"] = {stem .. "o", stem .. "ot"}
	data.forms["loc_t_sg"] = data.forms["dat_t_sg"]
	data.forms["ins_t_sg"] = {stem .. "os"}
	data.forms["com_t_sg"] = {stem .. "on", stem .. "om"}
	data.forms["voc_t_sg"] = data.forms["ins_t_sg"]
	
	data.forms["nom_a_sg"] = {stem .. "or"}
	data.forms["acc_a_sg"] = data.forms["nom_a_sg"]
	data.forms["gen_a_sg"] = {stemr .. "o"}
	data.forms["dat_a_sg"] = {stemr .. "o", stemr .. "ot"}
	data.forms["loc_a_sg"] = data.forms["dat_a_sg"]
	data.forms["ins_a_sg"] = {stemr .. "os"}
	data.forms["com_a_sg"] = {stemr .. "on", stemr .. "om"}
	data.forms["voc_a_sg"] = {stem .. "os"}
	
	data.forms["nom_l_pl"] = {stem .. "i"}
	data.forms["acc_l_pl"] = {stem .. "ī"}
	data.forms["gen_l_pl"] = {stem .. "o", stem .. "ot"}
	data.forms["dat_l_pl"] = data.forms["gen_l_pl"]
	data.forms["loc_l_pl"] = data.forms["gen_l_pl"]
	data.forms["ins_l_pl"] = {stem .. "os"}
	data.forms["com_l_pl"] = {stem .. "on", stem .. "om"}
	data.forms["voc_l_pl"] = {stem .. "is"}
	
	data.forms["nom_s_pl"] = {stem .. "ys", stem .. "yz"}
	data.forms["acc_s_pl"] = {stem .. "ī"}
	data.forms["gen_s_pl"] = {stem .. "o", stem .. "ot"}
	data.forms["dat_s_pl"] = data.forms["gen_s_pl"]
	data.forms["loc_s_pl"] = data.forms["acc_s_pl"]
	data.forms["ins_s_pl"] = {stem .. "os"}
	data.forms["com_s_pl"] = {stem .. "on", stem .. "om"}
	data.forms["voc_s_pl"] = data.forms["nom_s_pl"]
	
	data.forms["nom_t_pl"] = {stem .. "a"}
	data.forms["acc_t_pl"] = data.forms["nom_t_pl"]
	data.forms["gen_t_pl"] = {stem .. "o", stem .. "ot"}
	data.forms["dat_t_pl"] = data.forms["gen_t_pl"]
	data.forms["loc_t_pl"] = data.forms["gen_t_pl"]
	data.forms["ins_t_pl"] = {stem .. "os"}
	data.forms["com_t_pl"] = {stem .. "on", stem .. "om"}
	data.forms["voc_t_pl"] = {stem .. "as"}
	
	data.forms["nom_a_pl"] = {stemr .. "a"}
	data.forms["acc_a_pl"] = data.forms["nom_a_pl"]
	data.forms["gen_a_pl"] = {stemr .. "o", stemr .. "ot"}
	data.forms["dat_a_pl"] = data.forms["gen_a_pl"]
	data.forms["loc_a_pl"] = data.forms["gen_a_pl"]
	data.forms["ins_a_pl"] = {stemr .. "os"}
	data.forms["com_a_pl"] = {stemr .. "on", stemr .. "om"}
	data.forms["voc_a_pl"] = {stem .. "as"}


	data.forms["post_nom_l_sg"] = {stem .. "a"}
	data.forms["post_acc_l_sg"] = {stem .. "e"}
	data.forms["post_gen_l_sg"] = {stem .. "o"}
	data.forms["post_dat_l_sg"] = {stem .. "ot"}
	data.forms["post_loc_l_sg"] = {stem .. "ā"}
	data.forms["post_ins_l_sg"] = {stem .. "osa"}
	data.forms["post_com_l_sg"] = {stem .. "oma"}
	data.forms["post_voc_l_sg"] = {stem .. "us"}

	data.forms["post_nom_s_sg"] = {stem .. "ys"}
	data.forms["post_acc_s_sg"] = {stem .. "i"}
	data.forms["post_gen_s_sg"] = {stem .. "o"}
	data.forms["post_dat_s_sg"] = {stem .. "ot"}
	data.forms["post_loc_s_sg"] = {stem .. "ȳ"}
	data.forms["post_ins_s_sg"] = {stem .. "osy"}
	data.forms["post_com_s_sg"] = {stem .. "omy"}
	data.forms["post_voc_s_sg"] = {stem .. "ys"}
		
	data.forms["post_nom_t_sg"] = {stem .. "on"}
	data.forms["post_acc_t_sg"] = data.forms["post_nom_t_sg"]
	data.forms["post_gen_t_sg"] = {stem .. "o"}
	data.forms["post_dat_t_sg"] = {stem .. "ot"}
	data.forms["post_loc_t_sg"] = data.forms["post_dat_t_sg"]
	data.forms["post_ins_t_sg"] = {stem .. "oso"}
	data.forms["post_com_t_sg"] = {stem .. "omo"}
	data.forms["post_voc_t_sg"] = {stem .. "os"}
	
	data.forms["post_nom_a_sg"] = {stem .. "or"}
	data.forms["post_acc_a_sg"] = data.forms["post_nom_a_sg"]
	data.forms["post_gen_a_sg"] = {stemr .. "o"}
	data.forms["post_dat_a_sg"] = {stemr .. "ot"}
	data.forms["post_loc_a_sg"] = data.forms["post_dat_a_sg"]
	data.forms["post_ins_a_sg"] = {stemr .. "oso"}
	data.forms["post_com_a_sg"] = {stemr .. "omo"}
	data.forms["post_voc_a_sg"] = {stem .. "os"}

	data.forms["post_nom_l_pl"] = {stem .. "i"}
	data.forms["post_acc_l_pl"] = {stem .. "ī"}
	data.forms["post_gen_l_pl"] = {stem .. "oti"}
	data.forms["post_dat_l_pl"] = data.forms["post_gen_l_pl"]
	data.forms["post_loc_l_pl"] = data.forms["post_gen_l_pl"]
	data.forms["post_ins_l_pl"] = {stem .. "ossi"}
	data.forms["post_com_l_pl"] = {stem .. "ommi"}
	data.forms["post_voc_l_pl"] = {stem .. "is"}

	data.forms["post_nom_s_pl"] = {stem .. "yzy"}
	data.forms["post_acc_s_pl"] = {stem .. "ī"}
	data.forms["post_gen_s_pl"] = {stem .. "oti"}
	data.forms["post_dat_s_pl"] = data.forms["post_gen_s_pl"]
	data.forms["post_loc_s_pl"] = data.forms["post_acc_s_pl"]
	data.forms["post_ins_s_pl"] = {stem .. "ossi"}
	data.forms["post_com_s_pl"] = {stem .. "ommi"}
	data.forms["post_voc_s_pl"] = {stem .. "yzys"}
	
	data.forms["post_nom_t_pl"] = {stem .. "a"}
	data.forms["post_acc_t_pl"] = data.forms["post_nom_t_pl"]
	data.forms["post_gen_t_pl"] = {stem .. "oti"}
	data.forms["post_dat_t_pl"] = data.forms["post_gen_t_pl"]
	data.forms["post_loc_t_pl"] = data.forms["post_gen_t_pl"]
	data.forms["post_ins_t_pl"] = {stem .. "ossi"}
	data.forms["post_com_t_pl"] = {stem .. "ommi"}
	data.forms["post_voc_t_pl"] = {stem .. "as"}
	
	data.forms["post_nom_a_pl"] = {stemr .. "a"}
	data.forms["post_acc_a_pl"] = data.forms["post_nom_a_pl"]
	data.forms["post_gen_a_pl"] = {stemr .. "oti"}
	data.forms["post_dat_a_pl"] = data.forms["post_gen_a_pl"]
	data.forms["post_loc_a_pl"] = data.forms["post_gen_a_pl"]
	data.forms["post_ins_a_pl"] = {stemr .. "ossi"}
	data.forms["post_com_a_pl"] = {stemr .. "ommi"}
	data.forms["post_voc_a_pl"] = {stem .. "as"}
end
})

d["II"] = {
	params = {
		[1] = {},
	},
}
setmetatable(d["II"], {__call = function(self, args, data)
	local stem = args[1]
	local stemj = sub(stem, -2) == "sr" and sub(stem, 1, -3) .. "r" or sub(stem, -2) == "ēj" and sub(stem, 1, -3) .. "ī" or stem
	local stemm = sub(stem, -1) == "n" and sub(stem, 1, -2) .. "m" or sub(stem, -1) == "ñ" and sub(stem, 1, -2) .. "m" or stemj
	local ny = sub(stem, -1) == "ñ"; local j = sub(stem, -1) == "j"
	local stemny = ny and sub(stem, 1, -2) .. "n" or stemj
	
	data.decl_type = "II"
	if not data.no_cat then table.insert(data.categories, "High Valyrian class-II adjectives") end

	data.forms["eq"] = {stemm .. "pa"}
	data.forms["comp"] = {stemny .. "kta"}
	data.forms["sup"] = {stemny .. "je"}
	
	data.forms["nom_l_sg"] = {stem .. "e"}
	data.forms["acc_l_sg"] = data.forms["nom_l_sg"]
	data.forms["gen_l_sg"] = {stem .. "o"}
	data.forms["dat_l_sg"] = {stem .. "o", stem .. "ot"}
	data.forms["loc_l_sg"] = {stem .. "ē"}
	data.forms["ins_l_sg"] = {stem .. "os"}
	data.forms["com_l_sg"] = {stem .. "on", stem .. "om"}
	data.forms["voc_l_sg"] = {stem .. "es"}
	
	data.forms["nom_t_sg"] = {stem .. ((ny or j) and "or" or "ior")}
	data.forms["acc_t_sg"] = data.forms["nom_t_sg"]
	data.forms["gen_t_sg"] = {stem .. "ȳr"}
	data.forms["dat_t_sg"] = data.forms["gen_t_sg"]
	data.forms["loc_t_sg"] = data.forms["gen_t_sg"]
	data.forms["ins_t_sg"] = {stem .. "ȳs"}
	data.forms["com_t_sg"] = {stem .. "ȳn", stem .. "ȳm"}
	data.forms["voc_t_sg"] = {stem .. ((ny or j) and "os" or "ios")}
	
	data.forms["nom_l_pl"] = {stem .. "i"}
	data.forms["acc_l_pl"] = data.forms["nom_l_pl"]
	data.forms["gen_l_pl"] = {stem .. "o", stem .. "ot"}
	data.forms["dat_l_pl"] = data.forms["gen_l_pl"]
	data.forms["loc_l_pl"] = data.forms["gen_l_pl"]
	data.forms["ins_l_pl"] = {stem .. "os"}
	data.forms["com_l_pl"] = {stem .. "on", stem .. "om"}
	data.forms["voc_l_pl"] = {stem .. "is"}
	
	data.forms["nom_t_pl"] = {stem .. ((ny or j) and "ar" or "iar")}
	data.forms["acc_t_pl"] = data.forms["nom_t_pl"]
	data.forms["gen_t_pl"] = {stem .. "ȳ", stem .. "ȳt"}
	data.forms["dat_t_pl"] = data.forms["gen_t_pl"]
	data.forms["loc_t_pl"] = data.forms["gen_t_pl"]
	data.forms["ins_t_pl"] = {stem .. "ȳs"}
	data.forms["com_t_pl"] = {stem .. "ȳn", stem .. "ȳm"}
	data.forms["voc_t_pl"] = {stem .. "īs"}


	data.forms["post_nom_l_sg"] = {stem .. "e"}
	data.forms["post_acc_l_sg"] = data.forms["post_nom_l_sg"]
	data.forms["post_gen_l_sg"] = {stem .. "o"}
	data.forms["post_dat_l_sg"] = {stem .. "ot"}
	data.forms["post_loc_l_sg"] = {stem .. "ē"}
	data.forms["post_ins_l_sg"] = {stem .. "ose"}
	data.forms["post_com_l_sg"] = {stem .. "ome"}
	data.forms["post_voc_l_sg"] = {stem .. "es"}
	
	data.forms["post_nom_t_sg"] = {stem .. ((ny or j) and "or" or "ior")}
	data.forms["post_acc_t_sg"] = data.forms["post_nom_t_sg"]
	data.forms["post_gen_t_sg"] = {stem .. "ȳro"}
	data.forms["post_dat_t_sg"] = data.forms["post_gen_t_sg"]
	data.forms["post_loc_t_sg"] = data.forms["post_gen_t_sg"]
	data.forms["post_ins_t_sg"] = {stem .. "ȳso"}
	data.forms["post_com_t_sg"] = {stem .. "ȳmo"}
	data.forms["post_voc_t_sg"] = {stem .. ((ny or j) and "os" or "ios")}
	
	data.forms["post_nom_l_pl"] = {stem .. "i"}
	data.forms["post_acc_l_pl"] = data.forms["post_nom_l_pl"]
	data.forms["post_gen_l_pl"] = {stem .. "oti"}
	data.forms["post_dat_l_pl"] = data.forms["post_gen_l_pl"]
	data.forms["post_loc_l_pl"] = data.forms["post_gen_l_pl"]
	data.forms["post_ins_l_pl"] = {stem .. "ossi"}
	data.forms["post_com_l_pl"] = {stem .. "ommi"}
	data.forms["post_voc_l_pl"] = {stem .. "is"}
	
	data.forms["post_nom_t_pl"] = {stem .. ((ny or j) and "ar" or "iar")}
	data.forms["post_acc_t_pl"] = data.forms["post_nom_t_pl"]
	data.forms["post_gen_t_pl"] = {stem .. "ȳti"}
	data.forms["post_dat_t_pl"] = data.forms["post_gen_t_pl"]
	data.forms["post_loc_t_pl"] = data.forms["post_gen_t_pl"]
	data.forms["post_ins_t_pl"] = {stem .. "ȳssi"}
	data.forms["post_com_t_pl"] = {stem .. "ȳmmi"}
	data.forms["post_voc_t_pl"] = {stem .. "īs"}	
end
})

d["IIr"] = {
	params = {
		[1] = {},
	},
}
setmetatable(d["IIr"], {__call = function(self, args, data)
	local stem = args[1]
	data.decl_type = "IIr"
	if not data.no_cat then table.insert(data.categories, "High Valyrian class-IIr adjectives") end

	data.forms["eq"] = {stem .. "rpa"}
	data.forms["comp"] = {stem .. "rkta"}
	data.forms["sup"] = {stem .. "rje"}
	
	data.forms["nom_l_sg"] = {stem .. "z"}
	data.forms["acc_l_sg"] = data.forms["nom_l_sg"]
	data.forms["gen_l_sg"] = {stem .. "ro"}
	data.forms["dat_l_sg"] = {stem .. "ro", stem .. "rot"}
	data.forms["loc_l_sg"] = {stem .. "rē"}
	data.forms["ins_l_sg"] = {stem .. "ros"}
	data.forms["com_l_sg"] = {stem .. "ron", stem .. "rom"}
	data.forms["voc_l_sg"] = {stem .. "res"}
	
	data.forms["nom_t_sg"] = {stem .. "rior"}
	data.forms["acc_t_sg"] = data.forms["nom_t_sg"]
	data.forms["gen_t_sg"] = {stem .. "rȳr"}
	data.forms["dat_t_sg"] = data.forms["gen_t_sg"]
	data.forms["loc_t_sg"] = data.forms["gen_t_sg"]
	data.forms["ins_t_sg"] = {stem .. "rȳs"}
	data.forms["com_t_sg"] = {stem .. "rȳn", stem .. "rȳm"}
	data.forms["voc_t_sg"] = {stem .. "rios"}
	
	data.forms["nom_l_pl"] = {stem .. "ri"}
	data.forms["acc_l_pl"] = data.forms["nom_l_pl"]
	data.forms["gen_l_pl"] = {stem .. "ro", stem .. "rot"}
	data.forms["dat_l_pl"] = data.forms["gen_l_pl"]
	data.forms["loc_l_pl"] = data.forms["gen_l_pl"]
	data.forms["ins_l_pl"] = {stem .. "ros"}
	data.forms["com_l_pl"] = {stem .. "ron", stem .. "rom"}
	data.forms["voc_l_pl"] = {stem .. "ris"}
	
	data.forms["nom_t_pl"] = {stem .. "riar"}
	data.forms["acc_t_pl"] = data.forms["nom_t_pl"]
	data.forms["gen_t_pl"] = {stem .. "rȳ", stem .. "rȳt"}
	data.forms["dat_t_pl"] = data.forms["gen_t_pl"]
	data.forms["loc_t_pl"] = data.forms["gen_t_pl"]
	data.forms["ins_t_pl"] = {stem .. "rȳs"}
	data.forms["com_t_pl"] = {stem .. "rȳn", stem .. "rȳm"}
	data.forms["voc_t_pl"] = {stem .. "rīs"}


	data.forms["post_nom_l_sg"] = {stem .. "z"}
	data.forms["post_acc_l_sg"] = data.forms["post_nom_l_sg"]
	data.forms["post_gen_l_sg"] = {stem .. "ro"}
	data.forms["post_dat_l_sg"] = {stem .. "rot"}
	data.forms["post_loc_l_sg"] = {stem .. "rē"}
	data.forms["post_ins_l_sg"] = {stem .. "rose"}
	data.forms["post_com_l_sg"] = {stem .. "rome"}
	data.forms["post_voc_l_sg"] = {stem .. "res"}
	
	data.forms["post_nom_t_sg"] = {stem .. "rior"}
	data.forms["post_acc_t_sg"] = data.forms["post_nom_t_sg"]
	data.forms["post_gen_t_sg"] = {stem .. "rȳro"}
	data.forms["post_dat_t_sg"] = data.forms["post_gen_t_sg"]
	data.forms["post_loc_t_sg"] = data.forms["post_gen_t_sg"]
	data.forms["post_ins_t_sg"] = {stem .. "rȳso"}
	data.forms["post_com_t_sg"] = {stem .. "rȳmo"}
	data.forms["post_voc_t_sg"] = {stem .. "rios"}
	
	data.forms["post_nom_l_pl"] = {stem .. "ri"}
	data.forms["post_acc_l_pl"] = data.forms["post_nom_l_pl"]
	data.forms["post_gen_l_pl"] = {stem .. "roti"}
	data.forms["post_dat_l_pl"] = data.forms["post_gen_l_pl"]
	data.forms["post_loc_l_pl"] = data.forms["post_gen_l_pl"]
	data.forms["post_ins_l_pl"] = {stem .. "rossi"}
	data.forms["post_com_l_pl"] = {stem .. "rommi"}
	data.forms["post_voc_l_pl"] = {stem .. "ris"}
	
	data.forms["post_nom_t_pl"] = {stem .. "riar"}
	data.forms["post_acc_t_pl"] = data.forms["post_nom_t_pl"]
	data.forms["post_gen_t_pl"] = {stem .. "rȳti"}
	data.forms["post_dat_t_pl"] = data.forms["post_gen_t_pl"]
	data.forms["post_loc_t_pl"] = data.forms["post_gen_t_pl"]
	data.forms["post_ins_t_pl"] = {stem .. "rȳssi"}
	data.forms["post_com_t_pl"] = {stem .. "rȳmmi"}
	data.forms["post_voc_t_pl"] = {stem .. "rīs"}
end
})

d["III"] = {
	params = {
		[1] = {},
	},
}
setmetatable(d["III"], {__call = function(self, args, data)
	local stem = args[1]
	local stemm = sub(stem, -1) == "n" and sub(stem, 1, -2) .. "m" or stem
	data.decl_type = "III"
	if not data.no_cat then table.insert(data.categories, "High Valyrian class-III adjectives") end

	data.forms["eq"] = {stemm .. "ipa"}
	data.forms["comp"] = {stem .. "ikta"}
	data.forms["sup"] = {stem .. "ije"}
	
	data.forms["nom_l_sg"] = {stem .. "ie"}
	data.forms["acc_l_sg"] = data.forms["nom_l_sg"]
	data.forms["gen_l_sg"] = {stem .. "io"}
	data.forms["dat_l_sg"] = {stem .. "io", stem .. "iot"}
	data.forms["loc_l_sg"] = {stem .. "iē"}
	data.forms["ins_l_sg"] = {stem .. "ios"}
	data.forms["com_l_sg"] = {stem .. "ion", stem .. "iom"}
	data.forms["voc_l_sg"] = {stem .. "ies"}
	
	data.forms["nom_t_sg"] = {stem .. "ior"}
	data.forms["acc_t_sg"] = data.forms["nom_t_sg"]
	data.forms["gen_t_sg"] = {stem .. "ȳr"}
	data.forms["dat_t_sg"] = {stem .. "ȳro", stem .. "ȳrot"}
	data.forms["loc_t_sg"] = data.forms["gen_t_sg"]
	data.forms["ins_t_sg"] = {stem .. "ȳs"}
	data.forms["com_t_sg"] = {stem .. "ȳn", stem .. "ȳm"}
	data.forms["voc_t_sg"] = {stem .. "ios"}
	
	data.forms["nom_l_pl"] = {stem .. "ī"}
	data.forms["acc_l_pl"] = data.forms["nom_l_pl"]
	data.forms["gen_l_pl"] = {stem .. "io", stem .. "iot"}
	data.forms["dat_l_pl"] = data.forms["gen_l_pl"]
	data.forms["loc_l_pl"] = data.forms["gen_l_pl"]
	data.forms["ins_l_pl"] = {stem .. "iot"}
	data.forms["com_l_pl"] = {stem .. "ion", stem .. "iom"}
	data.forms["voc_l_pl"] = {stem .. "īs"}
	
	data.forms["nom_t_pl"] = {stem .. "iar"}
	data.forms["acc_t_pl"] = data.forms["nom_t_pl"]
	data.forms["gen_t_pl"] = {stem .. "ȳ", stem .. "ȳt"}
	data.forms["dat_t_pl"] = data.forms["gen_t_pl"]
	data.forms["loc_t_pl"] = data.forms["gen_t_pl"]
	data.forms["ins_t_pl"] = {stem .. "ȳs"}
	data.forms["com_t_pl"] = {stem .. "ȳn", stem .. "ȳm"}
	data.forms["voc_t_pl"] = {stem .. "īs"}


	data.forms["post_nom_l_sg"] = {stem .. "ie"}
	data.forms["post_acc_l_sg"] = data.forms["post_nom_l_sg"]
	data.forms["post_gen_l_sg"] = {stem .. "io"}
	data.forms["post_dat_l_sg"] = {stem .. "iot"}
	data.forms["post_loc_l_sg"] = {stem .. "iē"}
	data.forms["post_ins_l_sg"] = {stem .. "ȳse"}
	data.forms["post_com_l_sg"] = {stem .. "ȳme"}
	data.forms["post_voc_l_sg"] = {stem .. "ies"}
	
	data.forms["post_nom_t_sg"] = {stem .. "ior"}
	data.forms["post_acc_t_sg"] = data.forms["post_nom_t_sg"]
	data.forms["post_gen_t_sg"] = {stem .. "ȳro"}
	data.forms["post_dat_t_sg"] = {stem .. "ȳrot"}
	data.forms["post_loc_t_sg"] = data.forms["post_gen_t_sg"]
	data.forms["post_ins_t_sg"] = {stem .. "ȳso"}
	data.forms["post_com_t_sg"] = {stem .. "ȳmo"}
	data.forms["post_voc_t_sg"] = {stem .. "ios"}
	
	data.forms["post_nom_l_pl"] = {stem .. "ī"}
	data.forms["post_acc_l_pl"] = data.forms["post_nom_l_pl"]
	data.forms["post_gen_l_pl"] = {stem .. "ȳti"}
	data.forms["post_dat_l_pl"] = data.forms["post_gen_l_pl"]
	data.forms["post_loc_l_pl"] = data.forms["post_gen_l_pl"]
	data.forms["post_ins_l_pl"] = {stem .. "ȳssi"}
	data.forms["post_com_l_pl"] = {stem .. "ȳmmi"}
	data.forms["post_voc_l_pl"] = {stem .. "īs"}
	
	data.forms["post_nom_t_pl"] = {stem .. "iar"}
	data.forms["post_acc_t_pl"] = data.forms["post_nom_t_pl"]
	data.forms["post_gen_t_pl"] = {stem .. "ȳti"}
	data.forms["post_dat_t_pl"] = data.forms["post_gen_t_pl"]
	data.forms["post_loc_t_pl"] = data.forms["post_gen_t_pl"]
	data.forms["post_ins_t_pl"] = {stem .. "ȳssi"}
	data.forms["post_com_t_pl"] = {stem .. "ȳmmi"}
	data.forms["post_voc_t_pl"] = {stem .. "īs"}	
end
})

d["litse"] = function(args, data)
	data.decl_type = "II"
	table.insert(data.categories, "High Valyrian class-II adjectives")
	local stem = "lits"
	
	data.forms["eq"] = {"līspa"}
	data.forms["comp"] = {"līsta"}
	data.forms["sup"] = {"līje"}
	
	data.forms["nom_l_sg"] = {stem .. "e"}
	data.forms["acc_l_sg"] = data.forms["nom_l_sg"]
	data.forms["gen_l_sg"] = {stem .. "o"}
	data.forms["dat_l_sg"] = {stem .. "o", stem .. "ot"}
	data.forms["loc_l_sg"] = {stem .. "ē"}
	data.forms["ins_l_sg"] = {stem .. "os"}
	data.forms["com_l_sg"] = {stem .. "on", stem .. "om"}
	data.forms["voc_l_sg"] = {stem .. "es"}
	
	data.forms["nom_t_sg"] = {stem .. "ior"}
	data.forms["acc_t_sg"] = data.forms["nom_t_sg"]
	data.forms["gen_t_sg"] = {stem .. "ȳr"}
	data.forms["dat_t_sg"] = data.forms["gen_t_sg"]
	data.forms["loc_t_sg"] = data.forms["gen_t_sg"]
	data.forms["ins_t_sg"] = {stem .. "ȳs"}
	data.forms["com_t_sg"] = {stem .. "ȳn", stem .. "ȳm"}
	data.forms["voc_t_sg"] = {stem .. "ios"}
	
	data.forms["nom_l_pl"] = {stem .. "i"}
	data.forms["acc_l_pl"] = data.forms["nom_l_pl"]
	data.forms["gen_l_pl"] = {stem .. "o", stem .. "ot"}
	data.forms["dat_l_pl"] = data.forms["gen_l_pl"]
	data.forms["loc_l_pl"] = data.forms["gen_l_pl"]
	data.forms["ins_l_pl"] = {stem .. "os"}
	data.forms["com_l_pl"] = {stem .. "on", stem .. "om"}
	data.forms["voc_l_pl"] = {stem .. "is"}
	
	data.forms["nom_t_pl"] = {stem .. "iar"}
	data.forms["acc_t_pl"] = data.forms["nom_t_pl"]
	data.forms["gen_t_pl"] = {stem .. "ȳ", stem .. "ȳt"}
	data.forms["dat_t_pl"] = data.forms["gen_t_pl"]
	data.forms["loc_t_pl"] = data.forms["gen_t_pl"]
	data.forms["ins_t_pl"] = {stem .. "ȳs"}
	data.forms["com_t_pl"] = {stem .. "ȳn", stem .. "ȳm"}
	data.forms["voc_t_pl"] = {stem .. "īs"}


	data.forms["post_nom_l_sg"] = {stem .. "e"}
	data.forms["post_acc_l_sg"] = data.forms["post_nom_l_sg"]
	data.forms["post_gen_l_sg"] = {stem .. "o"}
	data.forms["post_dat_l_sg"] = {stem .. "ot"}
	data.forms["post_loc_l_sg"] = {stem .. "ē"}
	data.forms["post_ins_l_sg"] = {stem .. "ose"}
	data.forms["post_com_l_sg"] = {stem .. "ome"}
	data.forms["post_voc_l_sg"] = {stem .. "es"}
	
	data.forms["post_nom_t_sg"] = {stem .. "ior"}
	data.forms["post_acc_t_sg"] = data.forms["post_nom_t_sg"]
	data.forms["post_gen_t_sg"] = {stem .. "ȳro"}
	data.forms["post_dat_t_sg"] = data.forms["post_gen_t_sg"]
	data.forms["post_loc_t_sg"] = data.forms["post_gen_t_sg"]
	data.forms["post_ins_t_sg"] = {stem .. "ȳso"}
	data.forms["post_com_t_sg"] = {stem .. "ȳmo"}
	data.forms["post_voc_t_sg"] = {stem .. "ios"}
	
	data.forms["post_nom_l_pl"] = {stem .. "i"}
	data.forms["post_acc_l_pl"] = data.forms["post_nom_l_pl"]
	data.forms["post_gen_l_pl"] = {stem .. "oti"}
	data.forms["post_dat_l_pl"] = data.forms["post_gen_l_pl"]
	data.forms["post_loc_l_pl"] = data.forms["post_gen_l_pl"]
	data.forms["post_ins_l_pl"] = {stem .. "ossi"}
	data.forms["post_com_l_pl"] = {stem .. "ommi"}
	data.forms["post_voc_l_pl"] = {stem .. "is"}
	
	data.forms["post_nom_t_pl"] = {stem .. "iar"}
	data.forms["post_acc_t_pl"] = data.forms["post_nom_t_pl"]
	data.forms["post_gen_t_pl"] = {stem .. "ȳti"}
	data.forms["post_dat_t_pl"] = data.forms["post_gen_t_pl"]
	data.forms["post_loc_t_pl"] = data.forms["post_gen_t_pl"]
	data.forms["post_ins_t_pl"] = {stem .. "ȳssi"}
	data.forms["post_com_t_pl"] = {stem .. "ȳmmi"}
	data.forms["post_voc_t_pl"] = {stem .. "īs"}	
end

return d