モジュール:la-noun/data

出典: フリー多機能辞典『ウィクショナリー日本語版(Wiktionary)』
ナビゲーションに移動 検索に移動

このモジュールについての説明文ページを モジュール:la-noun/data/doc に作成できます

local decl = {}

local lang = require("モジュール:languages").getByCode("la")
local m_links = require("モジュール:links")
local m_utilities = require("モジュール:utilities")

NAMESPACE = NAMESPACE or mw.title.getCurrentTitle().nsText
PAGENAME = PAGENAME or mw.title.getCurrentTitle().text

decl["1"] = function(data, args)
	local title = {}
	table.insert(title, "第一変化")
	
	local stem = args[1]
	
	if not stem or stem == "" then
		if NAMESPACE ~= "" and NAMESPACE ~= "Appendix" then
			stem = "{{{1}}}"
		else
			error('語幹を入力して下さい')
		end
	end
	
	-- normal 1st
	data.forms["nom_sg"] = stem .. "a"
	data.forms["gen_sg"] = stem .. "ae"
	data.forms["dat_sg"] = stem .. "ae"
	data.forms["acc_sg"] = stem .. "am"
	data.forms["abl_sg"] = stem .. "ā"
	data.forms['voc_sg'] = stem .. "a" 
	
	data.forms["nom_pl"] = stem .. "ae"
	data.forms["gen_pl"] = stem .. "ārum"
	data.forms["dat_pl"] = stem .. "īs"
	data.forms["acc_pl"] = stem .. "ās"
	data.forms["abl_pl"] = stem .. "īs"
	data.forms["voc_pl"] = stem .. "ae"
	
	-- abus
	if data.types.abus then
		table.insert(title, "複数与格/奪格に''-ābus''を含む")
			
		data.forms["dat_pl"] = stem .. "ābus"
		data.forms["abl_pl"] = stem .. "ābus"
		
	-- am
	elseif data.types.am then
		table.insert(title, "単数主格/呼格に''-ām''を含む")
		
		data.forms["nom_sg"] = stem .. "ām"
		data.forms["acc_sg"] = stem .. "ām"
		data.forms["voc_sg"] = stem .. "ām"
		data.forms['abl_sg'] = {stem .. "ām", stem .. "ā"}
		
	-- all Greek
	elseif data.types.Greek then
	
		--Greek Ma
		if data.types.Ma then
			table.insert(title, "単数主格に''-ās''を含むギリシア語式の男性名詞")
			
			data.forms["nom_sg"] = stem .. "ās"
			data.forms["acc_sg"] = stem .. "ān"
			data.forms['voc_sg'] = stem .. "ā"
			
		-- Greek Me
		elseif data.types.Me then
			table.insert(title, "単数主格に''-ēs''を含むギリシア語式の男性名詞")
			
			data.forms["nom_sg"] = stem .. "ēs"
			data.forms["acc_sg"] = stem .. "ēn"
			data.forms["abl_sg"] = stem .. "ē"
			data.forms['voc_sg'] = stem .. "ē"
			
		-- Greek
		else
			table.insert(title, "ギリシア語式")
			
			data.forms["nom_sg"] = stem .. "ē"
			data.forms["gen_sg"] = stem .. "ēs"
			data.forms["acc_sg"] = stem .. "ēn"
			data.forms["abl_sg"] = stem .. "ē"
			data.forms['voc_sg'] = stem .. "ē"
		end
	end
	
	-- with locative
	if data.loc then
		table.insert(title, "地格あり")
		
		data.forms["loc_sg"] = stem .. "ae"
		
		data.forms["loc_pl"] = stem .. "īs"
	end
	
	if data.n then
		table.insert(title, "複合語で ''m'' → ''n'' に変わる")
	end
	
	data.title = table.concat(title, ", ") .. "."
	
	table.insert(data.categories, "ラテン語 第一変化名詞")
end

decl["2"] = function(data, args)
	local title = {}
	table.insert(title, {"第二変化"})
	
	local stem1 = args[1]
	local stem2 = args[2] or stem1; if stem2 == "" then stem2 = stem1 end
	
	if not stem1 or stem1 == "" then
		if NAMESPACE ~= "" and NAMESPACE ~= "Appendix" then
			stem1 = "{{{1}}}"
			stem2 = "{{{2}}}"
		else
			error('語幹を入力して下さい')
		end
	end

	-- normal 2nd
	data.forms["nom_sg"] = stem1 .. "us"
	data.forms["gen_sg"] = stem1 .. "ī"
	data.forms["dat_sg"] = stem1 .. "ō"
	data.forms["acc_sg"] = stem1 .. "um"
	data.forms["abl_sg"] = stem1 .. "ō"
	data.forms['voc_sg'] = stem1 .. "e" 
	
	data.forms["nom_pl"] = stem1 .. "ī"
	data.forms["gen_pl"] = stem1 .. "ōrum"
	data.forms["dat_pl"] = stem1 .. "īs"
	data.forms["acc_pl"] = stem1 .. "ōs"
	data.forms["abl_pl"] = stem1 .. "īs"
	data.forms["voc_pl"] = stem1 .. "ī"
	
	-- all neuter
	if data.types.N then
		
		data.forms["nom_sg"] = stem1 .. "um"
		data.forms["voc_sg"] = stem1 .. "um"
		
		data.forms["nom_pl"] = stem1 .. "a"
		data.forms["acc_pl"] = stem1 .. "a"
		data.forms["voc_pl"] = stem1 .. "a"
		
		-- neuter ium
		if data.types.ium then
			data.forms["nom_sg"] = stem1 .. "ium"
			data.forms["gen_sg"] = {stem1 .. "iī", stem1 .. "ī"}
			data.forms["dat_sg"] = stem1 .. "iō"
			data.forms["acc_sg"] = stem1 .. "ium"
			data.forms["abl_sg"] = stem1 .. "iō"
			data.forms['voc_sg'] = stem1 .. "ium" 
		
			data.forms["nom_pl"] = stem1 .. "ia"
			data.forms["gen_pl"] = stem1 .. "iōrum"
			data.forms["dat_pl"] = stem1 .. "iīs"
			data.forms["acc_pl"] = stem1 .. "ia"
			data.forms["abl_pl"] = stem1 .. "iīs"
			data.forms["voc_pl"] = stem1 .. "ia"
			
			data.notes["gen_sg2"] = "帝国成立以前の古い文献に見られる。"
		
		-- neuter Greek
		elseif data.types.Greek then
			table.insert(title, "Greek type")
			
			data.forms["nom_sg"] = stem1 .. "on"
			data.forms["acc_sg"] = stem1 .. "on"
			data.forms["voc_sg"] = stem1 .. "on"
			
		-- neuter us
		elseif data.types.us then
			table.insert(title, "主格/対格/呼格に''-us''を含む")
			
			data.forms["nom_sg"] = stem1 .. "us"
			data.forms["acc_sg"] = stem1 .. "us"
			data.forms["voc_sg"] = stem1 .. "us"
			
			data.forms["nom_pl"] = stem1 .. "ī"
			data.forms["acc_pl"] = stem1 .. "ōs"
			data.forms["voc_pl"] = stem1 .. "ī"
		end
	
	-- er
	elseif data.types.er then
		if mw.ustring.match(stem1, "[aiouy]r$") then
			table.insert(title, "単数主格に''-r''を含む")
		else	
			table.insert(title, "単数主格に''-er''を含む")
		end	
		
		data.forms["nom_sg"] = stem1
		data.forms["gen_sg"] = stem2 .. "ī"
		data.forms["dat_sg"] = stem2 .. "ō"
		data.forms["acc_sg"] = stem2 .. "um"
		data.forms["abl_sg"] = stem2 .. "ō"
		data.forms['voc_sg'] = stem1
	
		data.forms["nom_pl"] = stem2 .. "ī"
		data.forms["gen_pl"] = stem2 .. "ōrum"
		data.forms["dat_pl"] = stem2 .. "īs"
		data.forms["acc_pl"] = stem2 .. "ōs"
		data.forms["abl_pl"] = stem2 .. "īs"
		data.forms["voc_pl"] = stem2 .. "ī"
		
		data.notes["voc_sg1"] = "May also be ''" .. m_links.full_link({term = stem2 .. "e", lang = lang}, nil, false) .. "''."
	
	-- ius
	elseif data.types.ius then
		data.forms["nom_sg"] = stem1 .. "ius"
		data.forms["gen_sg"] = {stem1 .. "iī", stem1 .. "ī"}
		data.forms["dat_sg"] = stem1 .. "iō"
		data.forms["acc_sg"] = stem1 .. "ium"
		data.forms["abl_sg"] = stem1 .. "iō"
		data.forms['voc_sg'] = stem1 .. "ī" 
	
		data.forms["nom_pl"] = stem1 .. "iī"
		data.forms["gen_pl"] = stem1 .. "iōrum"
		data.forms["dat_pl"] = stem1 .. "iīs"
		data.forms["acc_pl"] = stem1 .. "iōs"
		data.forms["abl_pl"] = stem1 .. "iīs"
		data.forms["voc_pl"] = stem1 .. "iī"
		
		data.notes["gen_sg2"] = "帝国成立以前の古い文献に見られる。"
		
	-- Greek
	elseif data.types.Greek then
		table.insert(title, "ギリシア語式")
		
		data.forms["nom_sg"] = stem1 .. "os"
		data.forms["acc_sg"] = {stem1 .. "on"}
	end
	
	-- with -um genitive plural
	if data.um then
		table.insert(title, "with contracted genitive plural")
		data.notes["gen_pl2"] = "Contraction found in poetry."
		if data.types.ius or  data.types.ium then
			data.forms["gen_pl"] = {stem2 .. "iōrum", stem2 .. "ium"}
		else
			data.forms["gen_pl"] = {stem2 .. "ōrum", stem2 .. "um"}
		end
	end
	
	-- with locative
	if data.loc then
		table.insert(title, "地格あり")
		if data.types.ius or data.types.ium then
			data.forms["loc_sg"] = stem2 .. "iī"
		
			data.forms["loc_pl"] = stem2 .. "iīs"
		else
			data.forms["loc_sg"] = stem2 .. "ī"
		
			data.forms["loc_pl"] = stem2 .. "īs"
		end
	end

	if data.n then
		table.insert(title, "複合語で ''m'' → ''n'' に変わる")
	end
	
	title[1] = table.concat(title[1], " ")
	
	data.title = table.concat(title, ", ") .. "."
	
	table.insert(data.categories, "ラテン語 第二変化名詞")
end

decl["3"] = function(data, args)
	local title = {}
	table.insert(title, {"第三変化"})
	
	local stem1 = args[1]
	local stem2 = args[2] or ""
	
	if stem2 == "" then
		if not data.types.on and not data.types.er and not data.types.polis then
			stem2 = require("モジュール:la-utilities").make_stem2(stem1)
		end
	else
		table.insert(data.categories, "Kenny's testing category")
	end
	
	stem2 = stem2 == "" and stem1 or stem2
	
	if not stem1 or stem1 == "" then
		if NAMESPACE ~= "" and NAMESPACE ~= "Appendix" then
			stem1 = "{{{1}}}"
			stem2 = "{{{2}}}"
		else
			error('語幹を入力して下さい')
		end
	end
	
	--normal 3rd
	data.forms["nom_sg"] = stem1
	data.forms["gen_sg"] = stem2 .. "is"
	data.forms["dat_sg"] = stem2 .. "ī"
	data.forms["acc_sg"] = stem2 .. "em"
	data.forms["abl_sg"] = stem2 .. "e"
	data.forms["voc_sg"] = stem1
	
	data.forms["nom_pl"] = stem2 .. "ēs"
	data.forms["gen_pl"] = stem2 .. "um"
	data.forms["dat_pl"] = stem2 .. "ibus"
	data.forms["acc_pl"] = stem2 .. "ēs"
	data.forms["abl_pl"] = stem2 .. "ibus"
	data.forms["voc_pl"] = stem2 .. "ēs"
	
	--with acc.pl. īs variation
	if data.types.is then
	
		data.forms["acc_pl"] = {stem2 .. "ēs", "[[" .. stem2 .. "īs]]"}
	
	-- all neuter
	elseif data.types.N then
		table.insert(title[1], "neuter")
		
		data.forms["acc_sg"] = stem1
		
		-- neuter I stem
		if data.types.I then
			
			-- pure variety
			if data.types.pure then
				table.insert(title[1], "“pure” i語幹")
				data.forms["abl_sg"] = stem2 .. "ī"
				
				data.forms["nom_pl"] = stem2 .. "ia"
				data.forms["gen_pl"] = stem2 .. "ium"
				data.forms["acc_pl"] = stem2 .. "ia"
				data.forms["voc_pl"] = stem2 .. "ia"
			
			-- normal variety
			else
				table.insert(title[1], "i語幹")
				data.forms["nom_pl"] = stem2 .. "a"
				data.forms["gen_pl"] = {stem2 .. "ium", stem2 .. "um"}
				data.forms["acc_pl"] = stem2 .. "a"
				data.forms["voc_pl"] = stem2 .. "a"
			end
		
		-- normal neuter
		else
			data.forms["nom_pl"] = stem2 .. "a"
			data.forms["acc_pl"] = stem2 .. "a"
			data.forms["voc_pl"] = stem2 .. "a"
		end
		
	-- I stem
	elseif data.types.I then
		table.insert(title[1], "i語幹")
		
		data.forms["gen_pl"] = stem2 .. "ium"
		
	-- navis and ignis
	elseif data.types.navis or data.types.ignis then
	
		-- just navis
		if data.types.navis then
			table.insert(title, "単数対格の異綴に''-im''を含む")
			
			data.forms["acc_sg"] = {stem2 .. "em", stem2 .. "im"}
		end
		if data.num == "sg" then
			table.insert(title, "単数奪格の異綴に''-ī''を含む")
		elseif data.num == "pl" then
			table.insert(title, "複数対格の異綴に''-īs''を含む")
		else
			table.insert(title, "単数属格の異綴に''-ī''、複数対格に''-īs''を含む")
		end
		data.forms["abl_sg"] = {stem2 .. "e", stem2 .. "ī"}
		
		data.forms["gen_pl"] = stem2 .. "ium"
		data.forms["acc_pl"] = {stem2 .. "ēs", stem2 .. "īs"}
		
	-- all Greek
	elseif data.types.Greek then
		table.insert(title, "ギリシア語式")
		
		-- Greek er
		if data.types.er then
			table.insert(title, "単数主格に''-ēr''を含む")
		
			data.forms["nom_sg"] = stem1 .. "ēr"
			data.forms["gen_sg"] = stem1 .. "eris"
			data.forms["dat_sg"] = stem1 .. "erī"
			data.forms["acc_sg"] = {stem1 .. "era", stem1 .. "erem"}
			data.forms["abl_sg"] = stem1 .. "ere"
			data.forms["voc_sg"] = stem1 .. "ēr"
		
			data.forms["nom_pl"] = stem1 .. "erēs"
			data.forms["gen_pl"] = stem1 .. "erum"
			data.forms["dat_pl"] = stem1 .. "eribus"
			data.forms["acc_pl"] = stem1 .. "erēs"
			data.forms["abl_pl"] = stem1 .. "eribus"
			data.forms["voc_pl"] = stem1 .. "erēs"
			
		-- Greek on
		elseif data.types.on then
			table.insert(title, "nominative singular in ''-ōn''. Alternative genitive singular and plural and accusative plural may be attested or may be reconstructed by lexicographers due to ''" .. stem1 .. "ōn'' having been imported from the Ancient Greek masculine present active participle")
			
			data.forms["nom_sg"] = stem1 .. "ōn"
			data.forms["gen_sg"] = {stem1 .. "ontis", stem1 .. "ontos"}
			data.forms["dat_sg"] = stem1 .. "ontī"
			data.forms["acc_sg"] = stem1 .. "onta"
			data.forms["abl_sg"] = stem1 .. "onte"
			data.forms["voc_sg"] = stem1 .. "ōn"
		
			data.forms["nom_pl"] = stem1 .. "ontēs"
			data.forms["gen_pl"] = {stem1 .. "ontum", stem1 .. "ontium"}
			data.forms["dat_pl"] = stem1 .. "ontibus"
			data.forms["acc_pl"] = {stem1 .. "ontēs", stem1 .. "ontās"}
			data.forms["abl_pl"] = stem1 .. "ontibus"
			data.forms["voc_pl"] = stem1 .. "ontēs"
		
		-- Greek s
		elseif data.types.s then
			if stem1 == stem2 then
				stem2 = ""
			end
			data.forms["nom_sg"] = stem1 .. "s"
			data.forms["gen_sg"] = stem1 .. stem2 .. "os"
			data.forms["dat_sg"] = stem1 .. stem2 .. "i"
			if stem2 ~= "" then
				data.forms["acc_sg"] = stem1 .. stem2 .. "a"
			else
				data.forms["acc_sg"] = stem1 .. "n"
			end
			data.forms["abl_sg"] = stem1 .. stem2 .. "e"
			
			data.forms["nom_pl"] = stem1 .. stem2 .. "es"
			data.forms["gen_pl"] = stem1 .. stem2 .. "um"
			data.forms["dat_pl"] = stem1 .. stem2 .. "ibus"
			if stem2 then
				data.forms["acc_pl"] = stem1 .. stem2 .. "as"
			else
				data.forms["acc_pl"] = stem1 .. "es"
			end
			data.forms["abl_pl"] = stem1 .. stem2 .. "ibus"
			data.forms["voc_pl"] = stem1 .. stem2 .. "es"
		
		-- normal Greek
		else
			data.forms["gen_sg"] = stem2 .. "os"
			data.forms["acc_sg"] = stem2 .. "a"
			
			data.forms["nom_pl"] = stem2 .. "es"
			data.forms["acc_pl"] = stem2 .. "as"
			data.forms["voc_pl"] = stem2 .. "es"
		end
	
	-- polis
	elseif data.types.polis then
		table.insert(title, "地格あり")
		
		data.forms["nom_sg"] = stem1 .. "polis"
		data.forms["gen_sg"] = stem1 .. "polis"
		data.forms["dat_sg"] = stem1 .. "polī"
		data.forms["acc_sg"] = {stem1 .. "polim", stem1 .. "polin"}
		data.forms["abl_sg"] = stem1 .. "polī"
		data.forms["voc_sg"] = {stem1 .. "polis", stem1 .. "polī"}
		data.forms["loc_sg"] = stem1 .. "polī"
		
		-- Ignore normal locative logic
		data.loc = false
	end
	
	-- with locative
	if data.loc then
		table.insert(title, "地格あり")
		
		-- neuter or I stem
		if data.types.I or data.types.N then
			data.forms["loc_sg"] = stem2 .. "ī"
			
			data.forms["loc_pl"] = stem2 .. "ibus"
			
		-- Greek
		elseif data.types.Greek then
			-- Greek s
			if data.types.s then
				data.forms["loc_sg"] = stem1 .. stem2 .. "e"
				
				data.forms["loc_pl"] = stem1 .. stem2 .. "ibus"
			-- Greek
			else
				data.forms["loc_sg"] = stem2 .. "e"
				
				data.forms["loc_pl"] = stem2 .. "ēs"
			end
		-- normal
		else
			data.forms["loc_sg"] = stem2 .. "e"
			
			data.forms["loc_pl"] = stem2 .. "ibus"
		end
	end
	
	if data.n then
		table.insert(title, "複合語で''m'' → ''n''に変わる")
	end
	
	title[1] = table.concat(title[1], " ")
	
	data.title = table.concat(title, ", ") .. "."
	
	table.insert(data.categories, "ラテン語 第三変化名詞")
end

decl["4"] = function(data, args)
	local title = {}
	table.insert(title, {"第四変化"})
	
	local stem = args[1]
	
	if not stem or stem == "" then
		if NAMESPACE ~= "" and NAMESPACE ~= "Appendix" then
			stem = "{{{1}}}"
		else
			error('語幹を入力して下さい')
		end
	end

	-- normal 4th
	data.forms["nom_sg"] = stem .. "us"
	data.forms["gen_sg"] = stem .. "ūs"
	data.forms["dat_sg"] = stem .. "uī"
	data.forms["acc_sg"] = stem .. "um"
	data.forms["abl_sg"] = stem .. "ū"
	data.forms['voc_sg'] = stem .. "us" 
	
	data.forms["nom_pl"] = stem .. "ūs"
	data.forms["gen_pl"] = stem .. "uum"
	data.forms["dat_pl"] = stem .. "ibus"
	data.forms["acc_pl"] = stem .. "ūs"
	data.forms["abl_pl"] = stem .. "ibus"
	data.forms["voc_pl"] = stem .. "ūs"
	
	-- neuter
	if data.types.N then
		table.insert(title[1], "中性")
		
		data.forms["nom_sg"] = stem .. "ū"
		data.forms["dat_sg"] = stem .. "ū"
		data.forms["acc_sg"] = stem .. "ū"
		data.forms['voc_sg'] = stem .. "ū" 
	
		data.forms["nom_pl"] = stem .. "ua"
		data.forms["acc_pl"] = stem .. "ua"
		data.forms["voc_pl"] = stem .. "ua"
	end
		
	-- ubus
	if data.types.ubus then
		table.insert(title, "複数与格/奪格に''-ubus''を含む")
		
		data.forms["dat_pl"] = stem .. "ubus"
		data.forms["abl_pl"] = stem .. "ubus"
	end
	
	-- with locative
	if data.loc then
		table.insert(title, "地格あり")
		
		data.forms["loc_sg"] = stem .. "ū"
		
		--ubus
		if data.types.ubus then
			data.forms["loc_pl"] = stem .. "ubus"
		
		-- normal locative
		else
			data.forms["loc_pl"] = stem .. "ibus"
		end
	end
	
	if data.n then
		table.insert(title, "複合語で''m'' → ''n''に変わる")
	end
	
	title[1] = table.concat(title[1], " ")
	
	data.title = table.concat(title, ", ") .. "."
	
	table.insert(data.categories, "ラテン語 第四変化名詞")
end

decl["5"] = function(data, args)
	local title = {}
	table.insert(title, "第五変化")
	
	local stem = args[1]
	
	if not stem or stem == "" then
		if NAMESPACE ~= "" and NAMESPACE ~= "Appendix" then
			stem = "{{{1}}}"
		else
			error('語幹を入力して下さい')
		end
	end

	-- ies
	if data.types.i then
		stem = stem .. "i"
	end
	
	data.forms["nom_sg"] = stem .. "ēs"
	data.forms["gen_sg"] = stem .. "eī"
	data.forms["dat_sg"] = stem .. "eī"
	data.forms["acc_sg"] = stem .. "em"
	data.forms["abl_sg"] = stem .. "ē"
	data.forms['voc_sg'] = stem .. "ēs" 
	
	data.forms["nom_pl"] = stem .. "ēs"
	data.forms["gen_pl"] = stem .. "ērum"
	data.forms["dat_pl"] = stem .. "ēbus"
	data.forms["acc_pl"] = stem .. "ēs"
	data.forms["abl_pl"] = stem .. "ēbus"
	data.forms["voc_pl"] = stem .. "ēs"
	
	-- ies
	if data.types.i then
		data.forms["gen_sg"] = stem .. "ēī"
		data.forms["dat_sg"] = stem .. "ēī"
	end
	
	--with locative
	if data.loc then
		table.insert(title, "地格あり")
		
		data.forms["loc_sg"] = stem .. "ē"
		
		data.forms["loc_pl"] = stem .. "ēbus"
	end
	
	if data.n then
		table.insert(title, "複合語で''m'' → ''n''に変わる")
	end
	
	data.title = table.concat(title, ", ") .. "."
	
	table.insert(data.categories, "ラテン語 第五変化名詞")
end

decl["indecl"] = function(data, args)
	local title = {}
	data.title = "語形変化なし; 単数主格及び対格でのみ用いられる."
	
	local stem = args[1]
	
	if not stem or stem == "" then
		if NAMESPACE ~= "" and NAMESPACE ~= "Appendix" then
			stem = "{{{1}}}"
		else
			error('語幹を入力して下さい')
		end
	end

	data.forms["nom_sg"] = "-"
	data.forms["gen_sg"] = "-"
	data.forms["dat_sg"] = "-"
	data.forms["acc_sg"] = "-"
	data.forms["abl_sg"] = "-"
	data.forms['voc_sg'] = "-"
	
	data.forms["nom_pl"] = "-"
	data.forms["gen_pl"] = "-"
	data.forms["dat_pl"] = "-"
	data.forms["acc_pl"] = "-"
	data.forms["abl_pl"] = "-"
	data.forms["voc_pl"] = "-"
	
	data.forms["nom_sg"] = stem
	data.forms["acc_sg"] = stem
	data.num = "sg"
	
	table.insert(data.categories, "ラテン語 名詞 語形変化なし")
end

decl["irreg"] = function(data, args)
	local title = {}
	
	local stem = args[1]
	
	if not stem or stem == "" then
		if NAMESPACE ~= "" and NAMESPACE ~= "Appendix" then
			stem = "{{{1}}}"
		else
			error('語幹を入力して下さい')
		end
	end

	data.forms["nom_sg"] = "-"
	data.forms["gen_sg"] = "-"
	data.forms["dat_sg"] = "-"
	data.forms["acc_sg"] = "-"
	data.forms["abl_sg"] = "-"
	data.forms['voc_sg'] = "-"
	
	data.forms["nom_pl"] = "-"
	data.forms["gen_pl"] = "-"
	data.forms["dat_pl"] = "-"
	data.forms["acc_pl"] = "-"
	data.forms["abl_pl"] = "-"
	data.forms["voc_pl"] = "-"
	
	if stem == "bōs" then
		table.insert(title, "第三変化, 不規則")
		
		data.forms["nom_sg"] = "bōs"
		data.forms["gen_sg"] = "bovis"
		data.forms["dat_sg"] = "bovī"
		data.forms["acc_sg"] = "bovem"
		data.forms["abl_sg"] = "bove"
		data.forms['voc_sg'] = "bōs"
		
		data.forms["nom_pl"] = "bovēs"
		data.forms["gen_pl"] = "boum"
		data.forms["dat_pl"] = {"bōbus", "būbus"}
		data.forms["acc_pl"] = "bovēs"
		data.forms["abl_pl"] = {"bōbus", "būbus"}
		data.forms["voc_pl"] = "bovēs"
		
		table.insert(data.categories, "ラテン語 第三変化名詞")
	elseif stem == "cherub" then
		table.insert(title, "Borrowed from Hebrew with its plural, otherwise indeclinable")
		
		data.forms["nom_sg"] = "cherub"
		data.forms["gen_sg"] = "cherub"
		data.forms["dat_sg"] = "cherub"
		data.forms["acc_sg"] = "cherub"
		data.forms["abl_sg"] = "cherub"
		data.forms['voc_sg'] = "cherub"
		
		data.forms["nom_pl"] = {"cherubim", "cherubin"}
		data.forms["gen_pl"] = {"cherubim", "cherubin"}
		data.forms["dat_pl"] = {"cherubim", "cherubin"}
		data.forms["acc_pl"] = {"cherubim", "cherubin"}
		data.forms["abl_pl"] = {"cherubim", "cherubin"}
		data.forms["voc_pl"] = {"cherubim", "cherubin"}
		
		table.insert(data.categories, "ラテン語 名詞 語形変化なし")
		
	elseif stem == "deus" then
		table.insert(title, "不規則な複数形を持つ第二変化")
		
		data.forms["nom_sg"] = "deus"
		data.forms["gen_sg"] = "deī"
		data.forms["dat_sg"] = "deō"
		data.forms["acc_sg"] = "deum"
		data.forms["abl_sg"] = "deō"
		data.forms['voc_sg'] = {"deus", "dee"}
		
		data.forms["nom_pl"] = {"dī", "diī", "deī"}
		data.forms["gen_pl"] = {"deōrum", "deûm"}
		data.forms["dat_pl"] = {"dīs", "diīs", "deīs"}
		data.forms["acc_pl"] = "deōs"
		data.forms["abl_pl"] = {"dīs", "diīs", "deīs"}
		data.forms["voc_pl"] = {"dī", "diī", "deī"}
		
		table.insert(data.categories, "ラテン語 第二変化名詞")
	elseif stem == "Deus" then
		table.insert(title, "不規則な呼格を持つ第二変化")
		
		data.forms["nom_sg"] = "Deus"
		data.forms["gen_sg"] = "Deī"
		data.forms["dat_sg"] = "Deō"
		data.forms["acc_sg"] = "Deum"
		data.forms["abl_sg"] = "Deō"
		data.forms['voc_sg'] = {"Deus", "Dee"}
		data.num = "sg"
		
		table.insert(data.categories, "ラテン語 第二変化名詞")
	elseif stem == "domus" then
		table.insert(title, "地格を含む第四変化、幾つかの異形は第二変化より")
		
		data.forms["nom_sg"] = "domus"
		data.forms["gen_sg"] = {"domūs", "domī"}
		data.forms["dat_sg"] = {"domuī", "domō", "domū"}
		data.forms["acc_sg"] = "domum"
		data.forms["abl_sg"] = {"domū", "domō"}
		data.forms['voc_sg'] = "domus"
		data.forms['loc_sg'] = "domī"
		
		data.forms["nom_pl"] = "domūs"
		data.forms["gen_pl"] = {"domuum", "domōrum"}
		data.forms["dat_pl"] = "domibus"
		data.forms["acc_pl"] = {"domūs", "domōs"}
		data.forms["abl_pl"] = "domibus"
		data.forms["voc_pl"] = "domūs"
		data.forms['loc_pl'] = "-"
		
		data.loc = true
		
		table.insert(data.categories, "ラテン語 第二変化名詞")
		table.insert(data.categories, "ラテン語 第四変化名詞")
	elseif stem == "Iēsus" then
		table.insert(title, "非常に不規則であるが第四変化に属すると思われる")
		
		data.forms["nom_sg"] = "Iēsus"
		data.forms["gen_sg"] = "Iēsū"
		data.forms["dat_sg"] = "Iēsū"
		data.forms["acc_sg"] = "Iēsum"
		data.forms["abl_sg"] = "Iēsū"
		data.forms['voc_sg'] = "Iēsū"
		data.num = "sg"
		
		table.insert(data.categories, "ラテン語 第四変化名詞")
	elseif stem == "iūgerum" or stem == "jūgerum" then
		ij = stem == "iūgerum" and "i" or "j"
		table.insert(title, "第二/三変化混合, 中性")
		
		data.forms["nom_sg"] = ij .. "ūgerum"
		data.forms["gen_sg"] = ij .. "ūgerī"
		data.forms["dat_sg"] = ij .. "ūgerō"
		data.forms["acc_sg"] = ij .. "ūgerum"
		data.forms["abl_sg"] = ij .. "ūgerō"
		data.forms['voc_sg'] = ij .. "ūgerum"
		data.forms["nom_pl"] = ij .. "ūgera"
		data.forms["gen_pl"] = ij .. "ūgerum"
		data.forms["dat_pl"] = ij .. "ūgeribus"
		data.forms["acc_pl"] = ij .. "ūgera"
		data.forms["abl_pl"] = {ij .. "ūgeribus", ij .. "ūgerīs"}
		data.forms['voc_pl'] = ij .. "ūgera"
		
		data.notes["abl_pl2"] = "Once only, in:<br/>M. Terentius Varro, ''Res Rusticae'', bk I, ch. x"
		
		table.insert(data.categories, "ラテン語 第二変化名詞")
		table.insert(data.categories, "ラテン語 第三変化名詞")
	elseif stem == "sūs" then
		
		table.insert(title, "第三変化, 不規則")
		
		data.forms["nom_sg"] = "sūs"
		data.forms["gen_sg"] = "suis"
		data.forms["dat_sg"] = "suī"
		data.forms["acc_sg"] = "suem"
		data.forms["abl_sg"] = "sue"
		data.forms['voc_sg'] = "sūs"
		
		data.forms["nom_pl"] = "suēs"
		data.forms["gen_pl"] = "suum"
		data.forms["dat_pl"] = {"suibus", "sūbus", "subus"}
		data.forms["acc_pl"] = "suēs"
		data.forms["abl_pl"] = {"suibus", "sūbus", "subus"}
		data.forms["voc_pl"] = "suēs"
		
		table.insert(data.categories, "ラテン語 第三変化名詞")
	elseif stem == "vēnum" then
		table.insert(title, "第四変化又は第二変化(与格及び対格の単数形のみ)")
		
		data.forms["dat_sg"] = {"vēnuī", "vēnō"}
		data.forms["acc_sg"] = "vēnum"
		data.num = "sg"
		
		table.insert(data.categories, "ラテン語 第二変化名詞")
		table.insert(data.categories, "ラテン語 第四変化名詞")
	elseif stem == "vīs" then
		table.insert(title, "第三変化(単数形に短縮した語幹を含む。属格及び与格の単数形はまれに使用)")
		
		data.forms["nom_sg"] = "vīs"
		data.forms["gen_sg"] = "*vīs"
		data.forms["dat_sg"] = "*vī"
		data.forms["acc_sg"] = "vim"
		data.forms["abl_sg"] = "vī"
		data.forms['voc_sg'] = "vīs"
		
		data.forms["nom_pl"] = "vīrēs"
		data.forms["gen_pl"] = "vīrium"
		data.forms["dat_pl"] = "vīribus"
		data.forms["acc_pl"] = {"vīrēs", "vīrīs"}
		data.forms["abl_pl"] = "vīribus"
		data.forms["voc_pl"] = "vīrēs"
		
		table.insert(data.categories, "ラテン語 第三変化名詞")
	else
		error("Stem " .. stem .. " not recognized.")
	end
	
	data.title = table.concat(title, ", ") .. "."
	
	table.insert(data.categories, "ラテン語 名詞 不規則変化")
end

return decl