Jump to content

Module:iir-decl-noun/data

From Wiktionary, the free dictionary


local decl_data = {}

decl_data["a-m"] = {
	params = {
		[1] = {},
		["nopl"] = {},
	},
}

setmetatable(decl_data["a-m"], {__call = function(self, args, data)
	local stem = args[1]
	
	data.decl_type = "masculine a-stem"
	
	data.forms["nom_sg"] = {args[1] .. "ás"}
	data.forms["voc_sg"] = {args[1] .. "a"}
	data.forms["acc_sg"] = {args[1] .. "ám"}
	data.forms["ins_sg"] = {args[1] .. "áH"}
	data.forms["abl_sg"] = {args[1] .. "ā́t"}
	data.forms["dat_sg"] = {args[1] .. "ā́y"}
	data.forms["gen_sg"] = {args[1] .. "ásya"}
	data.forms["loc_sg"] = {args[1] .. "áy"}
	
	data.forms["nom_du"] = {args[1] .. "ā́(w)"}
	data.forms["voc_du"] = {args[1] .. "ā(w)"}
	data.forms["acc_du"] = data.forms["nom_du"]
	data.forms["ins_du"] = {args[1] .. "áybʰyā(m)"}
	data.forms["abl_du"] = data.forms["ins_du"]
	data.forms["dat_du"] = data.forms["ins_du"]
	data.forms["gen_du"] = {args[1] .. "áyās"}
	data.forms["loc_du"] = {args[1] .. "áyaw"}

	if not args.nopl then
		data.forms["nom_pl"] = {args[1] .. "ā́s(as)"}
		data.forms["voc_pl"] = {args[1] .. "ās(as)"}
		data.forms["acc_pl"] = {args[1] .. "ā́ns"}
		data.forms["ins_pl"] = {args[1] .. "ā́yš"}
		data.forms["abl_pl"] = {args[1] .. "áybʰyas"}
		data.forms["dat_pl"] = data.forms["abl_pl"]
		data.forms["gen_pl"] = {args[1] .. "ā́naHam"}
		data.forms["loc_pl"] = {args[1] .. "áyšu"}
	end
	
	table.insert(data.categories, "Proto-Indo-Iranian a-stem nouns")
end
})

decl_data["a-n"] = {
	params = {
		[1] = {},
		["nopl"] = {},
	},
}
setmetatable(decl_data["a-n"], {__call = function(self, args, data)
	decl_data["a-m"](args, data)
	
	data.decl_type = "neuter a-stem"

	data.forms["nom_sg"] = data.forms["acc_sg"]
	data.forms["voc_sg"] = {args[1] .. "am"}
	
	data.forms["nom_du"] = {args[1] .. "áy"}
	data.forms["voc_du"] = {args[1] .. "ay"}
	data.forms["acc_du"] = data.forms["nom_du"]

	if not args.nopl then
		data.forms["nom_pl"] = {args[1] .. "áH"}
		data.forms["voc_pl"] = {args[1] .. "aH"}
		data.forms["acc_pl"] = data.forms["nom_pl"]
	end
end
})

decl_data["cons-mf"] = {
	params = {
		[1] = {},
		[2] = {},
		["nopl"] = {},
		["nomsg"] = {},
		["accsg"] = {},
		["locsg"] = {},
		["insdu"] = {},
		["inspl"] = {},
		["ablpl"] = {},
		["locpl"] = {},
		["oblplc"] = {},
	},
}
setmetatable(decl_data["cons-mf"], {__call = function(self, args, data)
	local pagename = mw.title.getCurrentTitle().subpageText
	
	data.decl_type = "consonant stem"
	
	local strong = args[2] or args[1]
	debrugmann = mw.ustring.gsub(strong, ".", {["o"] = "a", ["ó"] = "á",})
	debrugmann2 = mw.ustring.gsub(debrugmann, "á", "a")
	
	-- Implements Brugmann's law in the acc. sg.; trigger this by inputting, into the strong stem, *o for any vowels that you want the law to affect
	-- The "de-brugmann" process will turn the o back to *a for use in loc. and voc. sg.
	brugmann = mw.ustring.gsub(strong, ".", {["ó"] = "ā́", ["o"] = "ā"})
	brugmann_voc = mw.ustring.gsub(strong, ".", {["ó"] = "ā", ["o"] = "ā", ["á"] = "a"})
	
	local weak = args[1]
	
	-- For r-stems
	if mw.ustring.find(weak, "[rŕ]$") then gen_sg_ending = "š" else gen_sg_ending = "ás" end
	
	-- Forms the nom. sg. of n-stems and r-stems	
	if args[2] then
		if mw.ustring.find(args[2], "[rn]$") then 
			local rnnom = mw.ustring.gsub(args[2], "[aáoó][rn]$", "")
			args.nomsg = rnnom .. "ā́"
		end
	end
	
	data.forms["nom_sg"] = {args.nomsg or brugmann .. "s"}
	data.forms["voc_sg"] = {debrugmann2}
	data.forms["acc_sg"] = {args.accsg or brugmann .. "ám"}
	data.forms["ins_sg"] = {weak .. "áH"}
	data.forms["abl_sg"] = {weak .. gen_sg_ending}
	data.forms["dat_sg"] = {weak .. "áy"}
	data.forms["gen_sg"] = data.forms["abl_sg"]
	data.forms["loc_sg"] = {args.locsg or debrugmann .. "í"}
	
	data.forms["nom_du"] = {brugmann .. "ā́(w)"}
	data.forms["voc_du"] = {brugmann_voc .. "ā(w)"}
	data.forms["acc_du"] = data.forms["nom_du"]
	data.forms["ins_du"] = {args.insdu or (args.oblplc or weak) .. "bʰyā́(m)"}
	data.forms["abl_du"] = data.forms["ins_du"]
	data.forms["dat_du"] = data.forms["ins_du"]
	data.forms["gen_du"] = {weak .. "Hā́s"}
	data.forms["loc_du"] = {weak .. "Háw"}

	if not args.nopl then
		data.forms["nom_pl"] = {brugmann .. "ás"}
		data.forms["voc_pl"] = {brugmann_voc .. "as"}
		data.forms["acc_pl"] = {weak .. "ás"}
		data.forms["ins_pl"] = {args.inspl or (args.oblplc or weak) .. "bʰíš"}
		data.forms["abl_pl"] = {args.ablpl or (args.oblplc or weak) .. "bʰyáH"}
		data.forms["dat_pl"] = data.forms["abl_pl"]
		data.forms["gen_pl"] = {weak .. "áHam"}
		data.forms["loc_pl"] = {args.locpl or (args.oblplc or weak) .. "sú"}
	end
	
	table.insert(data.categories, "Proto-Indo-Iranian consonant stem nouns")
end
})

decl_data["cons-n"] = {
	params = {
		[1] = {},
		[2] = {},
		["altgsg"] = {},
		["nomsg"] = {},
		["locsg"] = {},
		["nopl"] = {},
	},
}
setmetatable(decl_data["cons-n"], {__call = function(self, args, data)
	decl_data["cons-mf"](args, data)
	
	data.decl_type = "neuter consonant stem"
	
	if args["altgsg"] then gen_sg_ending = "ás" else gen_sg_ending = "s" end
	
	local nom_sg
	local nom_pl
	local strongdu
	local loc_stem
	local resyll
	local title = mw.title.getCurrentTitle().subpageText
	
	if mw.ustring.find(title, "r̥?$") and mw.ustring.find(args[1], "n$") then 
		nom_sg = title
		nom_pl = mw.ustring.gsub(title, "a?r̥?$", "ār")
		strongdu = mw.ustring.gsub(title, "a?r̥?$", "n")
		loc_sg_stem = mw.ustring.gsub(args[1], "[áa]?n$", "án")
		if destress(args[1] .. "á") == (args[1] .. "á") then
			resyll = mw.ustring.gsub(args[1], "n$", "á")
		elseif mw.ustring.find(args[1], "án$") then 
			resyll = mw.ustring.gsub(args[1], "án$", "á")
		else resyll = args[1]
		end
	elseif mw.ustring.find(args[1], "man$") then 
		nom_sg = string.gsub(args[1], "man$", "ma")
		nom_pl = mw.ustring.gsub(args[1], "man$", "mān")
		strongdu = args[1]
		loc_sg_stem = args[1]
		resyll = nom_sg
	else
		nom_sg = title
		nom_pl = args[2] .. "H"
		strongdu = args[2]
		loc_sg_stem = args[2]
		resyll = args[1]
	end

	data.forms["nom_sg"] = {nom_sg}
	data.forms["voc_sg"] = data.forms["nom_sg"]
	data.forms["acc_sg"] = data.forms["nom_sg"]
	data.forms["abl_sg"] = {args[1] .. gen_sg_ending}
	data.forms["gen_sg"] = data.forms["abl_sg"]
	data.forms["loc_sg"] = {args.locsg or (loc_sg_stem .. "(i)")}
	
	data.forms["nom_du"] = {strongdu .. "iH"}
	data.forms["voc_du"] = data.forms["nom_du"]
	data.forms["acc_du"] = data.forms["nom_du"]
	data.forms["ins_du"] = {resyll .. "bʰyā́(m)"}
	data.forms["abl_du"] = data.forms["ins_du"]
	data.forms["dat_du"] = data.forms["ins_du"]
	
	if not args.nopl then
		data.forms["nom_pl"] = {nom_pl}
		data.forms["voc_pl"] = data.forms["nom_pl"]
		data.forms["acc_pl"] = data.forms["nom_pl"]
		data.forms["ins_pl"] = {resyll .. "bʰíš"}
		data.forms["abl_pl"] = {resyll .. "bʰyáH"}
		data.forms["dat_pl"] = data.forms["abl_pl"]
		data.forms["gen_pl"] = {args[1] .. "áHam"}
		data.forms["loc_pl"] = {resyll .. "sú"}
	end
end
})

decl_data["s-n"] = {
	params = {
		[1] = {},
		["nopl"] = {},
	},
}

setmetatable(decl_data["s-n"], {__call = function(self, args, data)
	
	data.decl_type = "neuter as-stem"
	
	data.forms["nom_sg"] = {args[1] .. "as"}
	data.forms["voc_sg"] = {args[1] .. "as"}
	data.forms["acc_sg"] = {args[1] .. "as"}
	data.forms["ins_sg"] = {args[1] .. "asaH"}
	data.forms["abl_sg"] = {args[1] .. "asas"}
	data.forms["dat_sg"] = {args[1] .. "asay"}
	data.forms["gen_sg"] = {args[1] .. "asas"}
	data.forms["loc_sg"] = {args[1] .. "asi"}
	
	data.forms["nom_du"] = {args[1] .. "asiH"}
	data.forms["voc_du"] = {args[1] .. "asiH"}
	data.forms["acc_du"] = data.forms["nom_du"]
	data.forms["ins_du"] = {args[1] .. "azbʰyā(m)"}
	data.forms["abl_du"] = data.forms["ins_du"]
	data.forms["dat_du"] = data.forms["ins_du"]
	data.forms["gen_du"] = {args[1] .. "asHās"}
	data.forms["loc_du"] = {args[1] .. "asHaw"}

	if not args.nopl then
		data.forms["nom_pl"] = {args[1] .. "ās"}
		data.forms["voc_pl"] = {args[1] .. "ās"}
		data.forms["acc_pl"] = {args[1] .. "ās"}
		data.forms["ins_pl"] = {args[1] .. "azbʰiš"}
		data.forms["abl_pl"] = {args[1] .. "azbʰyas"}
		data.forms["dat_pl"] = data.forms["abl_pl"]
		data.forms["gen_pl"] = {args[1] .. "asaHam"}
		data.forms["loc_pl"] = {args[1] .. "asu"}
	end
	
	table.insert(data.categories, "Proto-Indo-Iranian as-stem nouns")
end
})

decl_data["i-mf"] = {
	params = {
		[1] = {},
		["nopl"] = {},
		["g"] = {},
		},
}
setmetatable(decl_data["i-mf"], {__call = function(self, args, data)
	data.decl_type = "masculine/feminine i-stem"
	
	data.forms["nom_sg"] = {args[1] .. "íš"}
	data.forms["voc_sg"] = {args[1] .. "ay"}
	data.forms["acc_sg"] = {args[1] .. "ím"}
	data.forms["ins_sg"] = {args[1] .. "íH"}
	data.forms["abl_sg"] = {args[1] .. "áyš"}
	data.forms["dat_sg"] = {args[1] .. "áyay"}
	data.forms["gen_sg"] = {args[1] .. "áyš"}
	data.forms["loc_sg"] = {args[1] .. "ā́y"}  -- HCHIEL p.1895: loc. *(H)agnā́y
	
	data.forms["nom_du"] = {args[1] .. "íH"}
	data.forms["voc_du"] = {args[1] .. "iH"}
	data.forms["acc_du"] = data.forms["nom_du"]
	data.forms["ins_du"] = {args[1] .. "íbʰyā(m)"}
	data.forms["abl_du"] = data.forms["ins_du"]
	data.forms["dat_du"] = data.forms["ins_du"]
	data.forms["gen_du"] = {args[1] .. "iyā́s"}
	data.forms["loc_du"] = {args[1] .. "iyáw"}   -- HCHIEL p.1895: du.loc. *(H)agniy-áw

	if not args.nopl then
		data.forms["nom_pl"] = {args[1] .. "áyas"}
		data.forms["voc_pl"] = {args[1] .. "ayas"}
		data.forms["acc_pl"] = {args[1] .. "ínš"}
		data.forms["ins_pl"] = {args[1] .. "íbʰiš"}
		data.forms["abl_pl"] = {args[1] .. "íbʰyas"}
		data.forms["dat_pl"] = data.forms["abl_pl"]
		data.forms["gen_pl"] = {args[1] .. "iHnáHam"}
		data.forms["loc_pl"] = {args[1] .. "íšu"}
	end
	
	table.insert(data.categories, "Proto-Indo-Iranian i-stem nouns")
end
})

decl_data["i-n"] = {
	params = {
		[1] = {},
		["nopl"] = {},
		["j"] = {},
		},
}
setmetatable(decl_data["i-n"], {__call = function(self, args, data)
	decl_data["i-m"](args, data)
	
	data.decl_type = "neuter i-stem"
	
	data.forms["nom_sg"] = {args[1] .. "í"}
	data.forms["voc_sg"] = {args[1] .. "i"}
	data.forms["acc_sg"] = data.forms["nom_sg"]

	if not args.nopl then
		data.forms["nom_pl"] = {args[1] .. "íH"}
		data.forms["voc_pl"] = {args[1] .. "iH"}
		data.forms["acc_pl"] = data.forms["nom_pl"]
	end
end
})

decl_data["iH-f"] = {
	params = {
		[1] = {},
		["nopl"] = {},
		},
}
setmetatable(decl_data["iH-f"], {__call = function(self, args, data)
	data.decl_type = "feminine iH-stem"
	
	data.forms["nom_sg"] = {args[1] .. "íHs"}
	data.forms["voc_sg"] = {args[1] .. "i"}
	data.forms["acc_sg"] = {args[1] .. "íHam"}
	data.forms["ins_sg"] = {args[1] .. "íHaH"}
	data.forms["abl_sg"] = {args[1] .. "íHas"}
	data.forms["dat_sg"] = {args[1] .. "íHay"}
	data.forms["gen_sg"] = data.forms["abl_sg"]
	data.forms["loc_sg"] = {args[1] .. "íH"}  -- HCHIEL p.1896 loc. *wr̥kī́
	
	data.forms["nom_du"] = {args[1] .. "íHaH"}
	data.forms["voc_du"] = {args[1] .. "iHaH"}
	data.forms["acc_du"] = data.forms["nom_du"]
	data.forms["ins_du"] = {args[1] .. "íHbʰyā(m)"}
	data.forms["abl_du"] = data.forms["ins_du"]
	data.forms["dat_du"] = data.forms["ins_du"]
	data.forms["gen_du"] = {args[1] .. "íHās"}
	data.forms["loc_du"] = {args[1] .. "íHaw"}

	if not args.nopl then
		data.forms["nom_pl"] = {args[1] .. "íHas"}
		data.forms["voc_pl"] = {args[1] .. "iHas"}
		data.forms["acc_pl"] = data.forms["nom_pl"]
		data.forms["ins_pl"] = {args[1] .. "íHbʰiš"}
		data.forms["abl_pl"] = {args[1] .. "íHbʰyas"}
		data.forms["dat_pl"] = data.forms["abl_pl"]
		data.forms["gen_pl"] = {args[1] .. "íHnaHam"}
		data.forms["loc_pl"] = {args[1] .. "íHsu"}
	end
	
	table.insert(data.categories, "Proto-Indo-Iranian iH-stem nouns")
end
})

decl_data["aH-f"] = {
	params = {
		[1] = {},
		["nopl"] = {},
		},
}
setmetatable(decl_data["aH-f"], {__call = function(self, args, data)
	data.decl_type = "aH-stem"
	
	data.forms["nom_sg"] = {args[1] .. "áH"}
	data.forms["voc_sg"] = {args[1] .. "ay"}
	data.forms["acc_sg"] = {args[1] .. "ā́m"}
	data.forms["ins_sg"] = {args[1] .. "áH, -áyaH"}
	data.forms["abl_sg"] = {args[1] .. "áyaHs"}
	data.forms["dat_sg"] = {args[1] .. "áyaHy"}
	data.forms["gen_sg"] = data.forms["abl_sg"]
	data.forms["loc_sg"] = {args[1] .. "áyaH"}
	
	data.forms["nom_du"] = {args[1] .. "áy"}
	data.forms["voc_du"] = {args[1] .. "ay"}
	data.forms["acc_du"] = data.forms["nom_du"]
	data.forms["ins_du"] = {args[1] .. "áHbʰyā(m)"}
	data.forms["abl_du"] = data.forms["ins_du"]
	data.forms["dat_du"] = data.forms["ins_du"]
	data.forms["gen_du"] = {args[1] .. "áyHās"}
	data.forms["loc_du"] = {args[1] .. "áyHaw"}

	if not args.nopl then
		data.forms["nom_pl"] = {args[1] .. "ā́s"}
		data.forms["voc_pl"] = {args[1] .. "ās"}
		data.forms["acc_pl"] = data.forms["nom_pl"]
		data.forms["ins_pl"] = {args[1] .. "áHbʰiš"}
		data.forms["abl_pl"] = {args[1] .. "áHbʰyas"}
		data.forms["dat_pl"] = data.forms["abl_pl"]
		data.forms["gen_pl"] = {args[1] .. "áHnaHam"}
		data.forms["loc_pl"] = {args[1] .. "áHsu"}
	end
	
	table.insert(data.categories, "Proto-Indo-Iranian aH-stem nouns")
end
})

decl_data["yaH-f"] = {
	params = {
		[1] = {},
		["nopl"] = {},
		},
}
setmetatable(decl_data["yaH-f"], {__call = function(self, args, data)
	data.decl_type = "yaH-stem"
	
	data.forms["nom_sg"] = {args[1] .. "íH"}
	data.forms["voc_sg"] = {args[1] .. "i"}
	data.forms["acc_sg"] = {args[1] .. "íHm"}
	data.forms["ins_sg"] = {args[1] .. "yáH"}
	data.forms["abl_sg"] = {args[1] .. "yáHs"}
	data.forms["dat_sg"] = {args[1] .. "yáy"}
	data.forms["gen_sg"] = data.forms["abl_sg"]
	data.forms["loc_sg"] = data.forms["ins_sg"]
	
	data.forms["nom_du"] = {args[1] .. "íH"}
	data.forms["voc_du"] = {args[1] .. "iH"}
	data.forms["acc_du"] = data.forms["nom_du"]
	data.forms["ins_du"] = {args[1] .. "íHbʰyā(m)"}
	data.forms["abl_du"] = data.forms["ins_du"]
	data.forms["dat_du"] = data.forms["ins_du"]
	data.forms["gen_du"] = {args[1] .. "íHās"}
	data.forms["loc_du"] = {args[1] .. "íHaw"}
	
	if not args.nopl then
		data.forms["nom_pl"] = {args[1] .. "íHš"}
		data.forms["voc_pl"] = {args[1] .. "iHš"}
		data.forms["acc_pl"] = data.forms["nom_pl"]
		data.forms["ins_pl"] = {args[1] .. "íHbʰiš"}
		data.forms["abl_pl"] = {args[1] .. "íHbʰyas"}
		data.forms["dat_pl"] = data.forms["abl_pl"]
		data.forms["gen_pl"] = {args[1] .. "íHnaHam"}
		data.forms["loc_pl"] = {args[1] .. "íHsu"}
	end
	
	table.insert(data.categories, "Proto-Indo-Iranian yaH-stem nouns")
end
})

decl_data["uH-f"] = {
	params = {
		[1] = {},
		["nopl"] = {},
		},
}
setmetatable(decl_data["uH-f"], {__call = function(self, args, data)
	data.decl_type = "uH-stem"
	
	data.forms["nom_sg"] = {args[1] .. "úHs"}
	data.forms["voc_sg"] = {args[1] .. "u"}
	data.forms["acc_sg"] = {args[1] .. "úHam"}
	data.forms["ins_sg"] = {args[1] .. "úHaH"}
	data.forms["abl_sg"] = {args[1] .. "úHas"}
	data.forms["dat_sg"] = {args[1] .. "úHay"}
	data.forms["gen_sg"] = data.forms["abl_sg"]
	data.forms["loc_sg"] = {args[1] .. "úH"} -- HCHIEL p.1896 loc. *tanū́
	
	if not args.nopl then
		data.forms["nom_pl"] = {args[1] .. "úHas"}
		data.forms["voc_pl"] = {args[1] .. "uHas"}
		data.forms["acc_pl"] = data.forms["nom_pl"]
		data.forms["ins_pl"] = {args[1] .. "úHbʰiš"}
		data.forms["abl_pl"] = {args[1] .. "úHbʰyas"}
		data.forms["dat_pl"] = data.forms["abl_pl"]
		data.forms["gen_pl"] = {args[1] .. "úHnaHam"}
		data.forms["loc_pl"] = {args[1] .. "úHsu"}
	end
	
	table.insert(data.categories, "Proto-Indo-Iranian uH-stem nouns")
end
})

decl_data["u-mf"] = {
	params = {
		[1] = {},
		[2] = {},
		["stem"] = {},
		["altgsg"] = {},
		["nopl"] = {},
		["g"] = {},
		},
}
setmetatable(decl_data["u-mf"], {__call = function(self, args, data)
	data.decl_type = "masculine u-stem"
	
	local title = mw.title.getCurrentTitle().subpageText
	local stem = mw.ustring.gsub(title, "[uú]š$", "")
	if not args[1] then args[1] = stem end
	
	local gen_sg_ending
	if args["altgsg"] then gen_sg_ending = "wás" else gen_sg_ending = "áwš" end

	data.forms["nom_sg"] = {stem .. "úš"}
	data.forms["voc_sg"] = {stem .. "aw"}
	data.forms["acc_sg"] = {stem .. "úm"}
	data.forms["ins_sg"] = {args[1] .. "úH"}
	data.forms["abl_sg"] = {args[1] .. gen_sg_ending}
	data.forms["dat_sg"] = {args[1] .. "áway"}
	data.forms["gen_sg"] = data.forms["abl_sg"]
	data.forms["loc_sg"] = {args[1] .. "ā́w"}
	
	data.forms["nom_du"] = {stem .. "úH"}
	data.forms["voc_du"] = {stem .. "uH"}
	data.forms["acc_du"] = data.forms["nom_du"]
	data.forms["ins_du"] = {args[1] .. "úbʰyā(m)"}
	data.forms["abl_du"] = data.forms["ins_du"]
	data.forms["dat_du"] = data.forms["ins_du"]
	data.forms["gen_du"] = {args[1] .. "uwā́s"}
	data.forms["loc_du"] = {args[1] .. "uwáw"}

	if not args.nopl then
		data.forms["nom_pl"] = {stem .. "áwas"}
		data.forms["voc_pl"] = {stem .. "awas"}
		data.forms["acc_pl"] = {stem .. "únš"}
		data.forms["ins_pl"] = {args[1] .. "úbʰiš"}
		data.forms["abl_pl"] = {args[1] .. "úbʰyas"}
		data.forms["dat_pl"] = data.forms["abl_pl"]
		data.forms["gen_pl"] = {args[1] .. "uHnáHam"}
		data.forms["loc_pl"] = {args[1] .. "úšu"}
	end
	
	table.insert(data.categories, "Proto-Indo-Iranian u-stem nouns")
end
})

decl_data["u-n"] = {
	params = {
		[1] = {},
		[2] = {},
		["stem"] = {},
		["altgsg"] = {},
		["nopl"] = {},
		},
}
setmetatable(decl_data["u-n"], {__call = function(self, args, data)
	decl_data["u-mf"](args, data)
	
	local title = mw.title.getCurrentTitle().subpageText
	local stem = mw.ustring.gsub(title, "[uú]$", "")
	
	data.decl_type = "neuter u-stem"
	
	data.forms["nom_sg"] = {stem .. "ú"}
	data.forms["voc_sg"] = {stem .. "u"}
	data.forms["acc_sg"] = data.forms["nom_sg"]
	
	if mw.ustring.find(stem, "ā́") then
		debrugmann = mw.ustring.gsub(stem, "ā́", "á")
	end
	if debrugmann then strongdu = debrugmann else strongdu = stem end
	data.forms["nom_du"] = {strongdu .. "wiH"}
	data.forms["acc_du"] = data.forms["nom_du"]
	data.forms["voc_du"] = data.forms["nom_du"]
	
	if not args.nopl then
		data.forms["nom_pl"] = {stem .. "úH"}
		data.forms["voc_pl"] = {stem .. "uH"}
		data.forms["acc_pl"] = data.forms["nom_pl"]
	end
end
})

decl_data["n-n"] = {
	params = {
		[1] = {},
		["nopl"] = {},
		},
}

decl_data["r-n"] = {
	params = {
		[1] = {},
		["nopl"] = {},
		},
}
setmetatable(decl_data["r-n"], {__call = function(self, args, data)
	data.decl_type = "r-stem"
	
	data.forms["nom_sg"] = {args[1] .. "ā́"}
	data.forms["voc_sg"] = {args[1] .. "ar"}
	data.forms["acc_sg"] = {args[1] .. "áram, *-ā́ram, *-r̥m"}
	data.forms["ins_sg"] = {args[1] .. "ráH"}
	data.forms["abl_sg"] = {args[1] .. "ŕ̥š, *-rás"}
	data.forms["dat_sg"] = {args[1] .. "ráy"}
	data.forms["gen_sg"] = data.forms["abl_sg"]
	data.forms["loc_sg"] = {args[1] .. "ári"}
	
	data.forms["nom_du"] = {args[1] .. "áraH, -ā́raH"}
	data.forms["voc_du"] = {args[1] .. "araH, -āraH"}
	data.forms["acc_du"] = data.forms["nom_du"]
	data.forms["ins_du"] = {args[1] .. "ŕ̥bʰyā(m)"}
	data.forms["abl_du"] = data.forms["ins_du"]
	data.forms["dat_du"] = data.forms["ins_du"]
	data.forms["gen_du"] = {args[1] .. "rā́s"}
	data.forms["loc_du"] = {args[1] .. "ráw"}

	if not args.nopl then
		data.forms["nom_pl"] = {args[1] .. "áras, -ā́ras"}
		data.forms["voc_pl"] = {args[1] .. "aras, -āras"}
		data.forms["acc_pl"] = {args[1] .. "ŕ̥nš"}
		data.forms["ins_pl"] = {args[1] .. "ŕ̥bʰiš"}
		data.forms["abl_pl"] = {args[1] .. "ŕ̥bʰyas"}
		data.forms["dat_pl"] = data.forms["abl_pl"]
		data.forms["gen_pl"] = {args[1] .. "r̥náHam"}
		data.forms["loc_pl"] = {args[1] .. "ŕ̥šu"}
	end
	
	table.insert(data.categories, "Proto-Indo-Iranian r-stem nouns")
end
})

decl_data["irreg"] = {}
setmetatable(decl_data["irreg"], {__call = function(self, args, data)
	local word = mw.title.getCurrentTitle().subpageText
	
	irreg_data = require("Module:iir-decl-noun/data/irreg")
	if irreg_data.irreg[word] then
		irreg_data.irreg[word](args, data)
	else
		error("Irregular inflection not found. Please check Module:iir-decl-noun/data.")
	end
	
	table.insert(data.categories, "Proto-Indo-Iranian irregular nouns")
end
})

return decl_data