Module:La-adj/data
Revision as of 09:28, 6 November 2021 by wiktionary>Urszag (Based on the examples “terrigena animalia”, “alienigena exempla”, “alienigena studia”, the neuter/accusative plural of first-declension adjectives appears to end in -a, not -ae)
Documentation for this module may be created at Module:La-adj/data/doc
local decl = {}
local lang = require("Module:languages").getByCode("la")
local m_links = require("Module:links")
local m_utilities = require("Module:utilities")
local rmatch = mw.ustring.match
NAMESPACE = NAMESPACE or mw.title.getCurrentTitle().nsText
local function glossary_link(anchor, text)
text = text or anchor
return "[[Appendix:Glossary#" .. anchor .. "|" .. text .. "]]"
end
local function decl_link(english_declension, decl_text)
decl_text = decl_text or english_declension .. "-declension"
return "[[Appendix:Latin " .. english_declension .. " declension|" .. decl_text .. "]]"
end
local function singularize(plural)
-- THIS IS A HACK. We may be passed the word "suffix", where we need to remove
-- the -es. We also include words ending in -ch or -sh for good measure.
-- In most other cases we need to remove only the -s.
if plural:find("xes$") or plural:find("[cs]hes$") then
return plural:gsub("es$", "")
else
return plural:gsub("s$", "")
end
end
decl["0"] = function(data, args)
data.title = glossary_link("indeclinable") .. " " .. singularize(data.pos)
local stem = args[1]
data.forms["nom_sg_m"] = stem
data.forms["nom_pl_m"] = stem
data.forms["gen_sg_m"] = stem
data.forms["gen_pl_m"] = stem
data.forms["dat_sg_m"] = stem
data.forms["dat_pl_m"] = stem
data.forms["acc_sg_m"] = stem
data.forms["acc_pl_m"] = stem
data.forms["abl_sg_m"] = stem
data.forms["abl_pl_m"] = stem
data.forms["loc_sg_m"] = stem
data.forms["loc_pl_m"] = stem
data.forms["voc_sg_m"] = stem
data.forms["voc_pl_m"] = stem
table.insert(data.categories, "Latin indeclinable " .. data.pos)
end
decl["1&2"] = function(data, args)
local singpos = singularize(data.pos)
if data.gender == "F" then
data.title = decl_link("first") .. " " .. singpos
elseif data.gender then
data.title = decl_link("second") .. " " .. singpos
else
data.title = decl_link("first", "first") .. "/" .. decl_link("second") .. " " .. singpos
end
local stem = args[1]
local original = nil
if data.types.er then
if mw.ustring.match(stem, "er$") then
table.insert(data.subtitles, "nominative masculine singular in ''-er''")
table.insert(data.categories, "Latin first and second declension "
.. data.pos .. " with nominative masculine singular in -er")
elseif mw.ustring.match(stem, "ur$") then
table.insert(data.subtitles, "nominative masculine singular in ''-ur''")
table.insert(data.categories, "Latin first and second declension "
.. data.pos .. " with nominative masculine singular in -ur")
else
error("Unrecognized ''-r'' stem (doesn't end in ''-er'' or ''-ur''): " .. stem)
end
original = stem
stem = args[2]
end
local us = "us"
local a_sf = "a"
local um = "um"
local ae_gsf = "ae"
local am = "am"
local a_macron = "ā"
if data.types.greekA or data.types.greekE then
table.insert(data.subtitles, "Greek-type")
table.insert(data.categories, "Latin first and second declension " ..
data.pos .. " with Greek declension")
if data.types.greekA then
us = "os"
um = "on"
am = "ān"
else
us = "os"
a_sf = "ē"
um = "on"
ae_gsf = "ēs"
am = "ēn"
a_macron = "ē"
end
end
data.forms["nom_sg_m"] = original or (stem .. us)
data.forms["nom_sg_f"] = stem .. a_sf
data.forms["nom_sg_n"] = stem .. um
data.forms["nom_pl_m"] = stem .. "ī"
data.forms["nom_pl_f"] = stem .. "ae"
data.forms["nom_pl_n"] = stem .. "a"
data.forms["gen_sg_m"] = stem .. "ī"
data.forms["gen_sg_f"] = stem .. ae_gsf
data.forms["gen_sg_n"] = stem .. "ī"
data.forms["gen_pl_m"] = stem .. "ōrum"
data.forms["gen_pl_f"] = stem .. "ārum"
data.forms["gen_pl_n"] = stem .. "ōrum"
data.forms["dat_sg_m"] = stem .. "ō"
data.forms["dat_sg_f"] = stem .. "ae"
data.forms["dat_sg_n"] = stem .. "ō"
data.forms["dat_pl_m"] = stem .. "īs"
data.forms["dat_pl_f"] = stem .. "īs"
data.forms["dat_pl_n"] = stem .. "īs"
data.forms["acc_sg_m"] = stem .. um
data.forms["acc_sg_f"] = stem .. am
data.forms["acc_sg_n"] = stem .. um
data.forms["acc_pl_m"] = stem .. "ōs"
data.forms["acc_pl_f"] = stem .. "ās"
data.forms["acc_pl_n"] = stem .. "a"
data.forms["abl_sg_m"] = stem .. "ō"
data.forms["abl_sg_f"] = stem .. a_macron
data.forms["abl_sg_n"] = stem .. "ō"
data.forms["abl_pl_m"] = stem .. "īs"
data.forms["abl_pl_f"] = stem .. "īs"
data.forms["abl_pl_n"] = stem .. "īs"
data.forms["voc_sg_m"] = original or (stem .. "e")
data.forms["voc_sg_f"] = stem .. a_sf
data.forms["voc_sg_n"] = stem .. um
data.forms["voc_pl_m"] = stem .. "ī"
data.forms["voc_pl_f"] = stem .. "ae"
data.forms["voc_pl_n"] = stem .. "a"
data.forms["loc_sg_m"] = stem .. "ī"
data.forms["loc_sg_f"] = stem .. "ae"
data.forms["loc_sg_n"] = stem .. "ī"
data.forms["loc_pl_m"] = stem .. "īs"
data.forms["loc_pl_f"] = stem .. "īs"
data.forms["loc_pl_n"] = stem .. "īs"
if data.types.ius then
table.insert(data.subtitles, "pronominal")
--table.insert(data.subtitles, "with genitive singular in ''-ī̆us'' and dative singular in ''-ī''")
table.insert(data.categories, "Latin first and second declension " ..
data.pos .. " with genitive singular in -ī̆us")
data.forms["gen_sg_m"] = stem .. "ī̆us"
data.forms["gen_sg_f"] = stem .. "ī̆us"
data.forms["gen_sg_n"] = stem .. "ī̆us"
data.forms["dat_sg_m"] = stem .. "ī"
data.forms["dat_sg_f"] = stem .. "ī"
data.forms["dat_sg_n"] = stem .. "ī"
elseif data.types.not_ius then
table.insert(data.subtitles, "non-pronominal")
--table.insert(data.subtitles, "with normal genitive and dative singular")
end
if stem == "me" then
data.forms["voc_sg_m"] = "mī"
end
if data.types.ic then
table.insert(data.subtitles, "''hic''-type")
--table.insert(data.subtitles, "with genitive singular ending in ''-ius'' and dative singular ending in ''-ic''")
local oc = "oc"
local oc_macron = "ōc"
if stem == "ill" then
oc = "uc"
oc_macron = "ūc"
end
data.forms["nom_sg_m"] = stem .. "ic"
data.forms["nom_sg_f"] = stem .. "aec"
data.forms["nom_sg_n"] = stem .. oc
data.forms["nom_pl_n"] = stem .. "aec"
data.forms["gen_sg_m"] = stem .. "uius"
data.forms["gen_sg_f"] = stem .. "uius"
data.forms["gen_sg_n"] = stem .. "uius"
data.forms["dat_sg_m"] = stem .. "uic"
data.forms["dat_sg_f"] = stem .. "uic"
data.forms["dat_sg_n"] = stem .. "uic"
data.forms["acc_sg_m"] = stem .. "unc"
data.forms["acc_sg_f"] = stem .. "anc"
data.forms["acc_sg_n"] = stem .. oc
data.forms["acc_pl_n"] = stem .. "aec"
data.forms["abl_sg_m"] = stem .. "ōc"
data.forms["abl_sg_f"] = stem .. "āc"
data.forms["abl_sg_n"] = stem .. oc_macron
data.voc = false
end
table.insert(data.categories, "Latin first and second declension " ..
data.pos)
end
decl["1-1"] = function(data, args)
data.title = decl_link("first") .. " " .. singularize(data.pos)
table.insert(data.subtitles, "masculine and neuter forms identical to feminine forms")
local stem = args[1]
data.forms["nom_sg_m"] = stem .. "a"
data.forms["nom_pl_m"] = stem .. "ae"
data.forms["nom_pl_n"] = stem .. "a"
data.forms["gen_sg_m"] = stem .. "ae"
data.forms["gen_pl_m"] = stem .. "ārum"
data.forms["dat_sg_m"] = stem .. "ae"
data.forms["dat_pl_m"] = stem .. "īs"
data.forms["acc_sg_m"] = stem .. "am"
data.forms["acc_sg_n"] = stem .. "a"
data.forms["acc_pl_m"] = stem .. "ās"
data.forms["acc_pl_n"] = stem .. "a"
data.forms["abl_sg_m"] = stem .. "ā"
data.forms["abl_pl_m"] = stem .. "īs"
data.forms["loc_sg_m"] = stem .. "ae"
data.forms["loc_pl_m"] = stem .. "īs"
data.forms["voc_sg_m"] = stem .. "a"
data.forms["voc_pl_m"] = stem .. "ae"
table.insert(data.categories, "Latin first declension " .. data.pos)
end
decl["2-2"] = function(data, args)
data.title = decl_link("second") .. " " .. singularize(data.pos)
table.insert(data.subtitles, "feminine forms identical to masculine forms")
local stem = args[1]
local us = "us"
local um = "um"
local i_pl = "ī"
if data.types.greek then
table.insert(data.subtitles, "Greek-type")
table.insert(data.categories, "Latin second declension " .. data.pos ..
" with Greek declension")
us = "os"
um = "on"
i_pl = "oe"
end
data.forms["nom_sg_m"] = stem .. us
data.forms["nom_sg_n"] = stem .. um
data.forms["nom_pl_m"] = stem .. i_pl
data.forms["nom_pl_n"] = stem .. "a"
data.forms["gen_sg_m"] = stem .. "ī"
data.forms["gen_sg_n"] = stem .. "ī"
data.forms["gen_pl_m"] = stem .. "ōrum"
data.forms["gen_pl_n"] = stem .. "ōrum"
data.forms["dat_sg_m"] = stem .. "ō"
data.forms["dat_sg_n"] = stem .. "ō"
data.forms["dat_pl_m"] = stem .. "īs"
data.forms["dat_pl_n"] = stem .. "īs"
data.forms["acc_sg_m"] = stem .. um
data.forms["acc_sg_n"] = stem .. um
data.forms["acc_pl_m"] = stem .. "ōs"
data.forms["acc_pl_n"] = stem .. "a"
data.forms["abl_sg_m"] = stem .. "ō"
data.forms["abl_sg_n"] = stem .. "ō"
data.forms["abl_pl_m"] = stem .. "īs"
data.forms["abl_pl_n"] = stem .. "īs"
data.forms["loc_sg_m"] = stem .. "ī"
data.forms["loc_sg_n"] = stem .. "ī"
data.forms["loc_pl_m"] = stem .. "īs"
data.forms["loc_pl_n"] = stem .. "īs"
data.forms["voc_sg_m"] = stem .. "e"
data.forms["voc_sg_n"] = stem .. um
data.forms["voc_pl_m"] = stem .. i_pl
data.forms["voc_pl_n"] = stem .. "a"
table.insert(data.categories, "Latin second declension " .. data.pos)
end
decl["3-1"] = function(data, args)
local singpos = singularize(data.pos)
if data.gender then
data.title = decl_link("third") .. " " .. singpos
else
data.title = decl_link("third") .. " one-termination " .. singpos
end
local stem1 = args[1]
local stem2 = args[2]
data.forms["nom_sg_m"] = stem1
data.forms["nom_sg_n"] = stem1
data.forms["nom_pl_m"] = stem2 .. "ēs"
data.forms["nom_pl_n"] = stem2 .. "ia"
data.forms["gen_sg_m"] = stem2 .. "is"
data.forms["gen_sg_n"] = stem2 .. "is"
data.forms["gen_pl_m"] = stem2 .. "ium"
data.forms["gen_pl_n"] = stem2 .. "ium"
data.forms["dat_sg_m"] = stem2 .. "ī"
data.forms["dat_sg_n"] = stem2 .. "ī"
data.forms["dat_pl_m"] = stem2 .. "ibus"
data.forms["dat_pl_n"] = stem2 .. "ibus"
data.forms["acc_sg_m"] = stem2 .. "em"
data.forms["acc_sg_n"] = stem1
data.forms["acc_pl_m"] = stem2 .. "ēs"
data.forms["acc_pl_n"] = stem2 .. "ia"
data.forms["abl_sg_m"] = stem2 .. "ī"
data.forms["abl_sg_n"] = stem2 .. "ī"
data.forms["abl_pl_m"] = stem2 .. "ibus"
data.forms["abl_pl_n"] = stem2 .. "ibus"
data.forms["loc_sg_m"] = stem2 .. "ī"
data.forms["loc_sg_n"] = stem2 .. "ī"
data.forms["loc_pl_m"] = stem2 .. "ibus"
data.forms["loc_pl_n"] = stem2 .. "ibus"
data.forms["voc_sg_m"] = stem1
data.forms["voc_sg_n"] = stem1
data.forms["voc_pl_m"] = stem2 .. "ēs"
data.forms["voc_pl_n"] = stem2 .. "ia"
if data.types.par then
table.insert(data.subtitles, "non-i-stem")
data.forms["nom_pl_n"] = stem2 .. "a"
data.forms["gen_pl_m"] = stem2 .. "um"
data.forms["gen_pl_n"] = stem2 .. "um"
data.forms["abl_sg_m"] = stem2 .. "e"
data.forms["abl_sg_n"] = stem2 .. "e"
data.forms["loc_sg_m"] = {stem2 .. "ī", stem2 .. "e"}
data.forms["loc_sg_n"] = {stem2 .. "ī", stem2 .. "e"}
data.forms["acc_pl_n"] = stem2 .. "a"
data.forms["voc_pl_n"] = stem2 .. "a"
elseif data.types.not_par then
table.insert(data.subtitles, "i-stem")
end
local es_base = rmatch(stem1, "^(.*)ēs$")
if es_base and es_base == stem2 then
if data.types.greek then
local note = "It is unknown if Classical Latin preserved (or would have preserved) the shortness of the original Greek short ending."
data.forms["nom_sg_n"] = {stem2 .. "es", stem2 .. "ēs"}
data.notes["nom_sg_n1"] = note
data.forms["acc_sg_n"] = {stem2 .. "es", stem2 .. "ēs"}
data.notes["acc_sg_n1"] = note
data.forms["voc_sg_m"] = {stem2 .. "es", stem2 .. "ēs"}
data.notes["voc_sg_m1"] = note
data.forms["voc_sg_n"] = {stem2 .. "es", stem2 .. "ēs"}
data.notes["voc_sg_n1"] = note
table.insert(data.subtitles, "Greek-type")
elseif data.types.not_greek then
table.insert(data.subtitles, "non-Greek-type")
end
end
table.insert(data.categories, "Latin third declension " .. data.pos)
table.insert(data.categories, "Latin third declension " .. data.pos .. " of one termination")
end
decl["3-C"] = function(data, args)
local stem = args[1]
data.types.par = true
decl["3-1"](data, {stem .. "or", stem .. "ōr"})
data.title = decl_link("third") .. " comparative " .. singularize(data.pos)
data.subtitles = {}
data.forms["nom_sg_n"] = stem .. "us"
data.forms["acc_sg_n"] = stem .. "us"
data.forms["voc_sg_n"] = stem .. "us"
end
decl["3-P"] = function(data, args)
local stem1 = args[1]
local stem2 = args[2]
decl["3-1"](data, args)
data.title = decl_link("third") .. " participle"
data.forms["abl_sg_m"] = {stem2 .. "e", stem2 .. "ī"}
data.notes["abl_sg_m2"] = "When used purely as an adjective."
data.forms["abl_sg_n"] = {stem2 .. "e", stem2 .. "ī"}
data.notes["abl_sg_n2"] = "When used purely as an adjective."
data.forms["acc_pl_m"] = {stem2 .. "ēs", stem2 .. "īs"}
end
decl["3-2"] = function(data, args)
local singpos = singularize(data.pos)
if data.gender then
data.title = decl_link("third") .. " " .. singpos
else
data.title = decl_link("third") .. " two-termination " .. singpos
end
local stem = args[1]
local stem2 = args[2]
data.forms["nom_sg_m"] = stem .. "is"
data.forms["nom_sg_n"] = stem .. "e"
data.forms["nom_pl_m"] = stem .. "ēs"
data.forms["nom_pl_n"] = stem .. "ia"
data.forms["gen_sg_m"] = stem .. "is"
data.forms["gen_sg_n"] = stem .. "is"
data.forms["gen_pl_m"] = stem .. "ium"
data.forms["gen_pl_n"] = stem .. "ium"
data.forms["dat_sg_m"] = stem .. "ī"
data.forms["dat_sg_n"] = stem .. "ī"
data.forms["dat_pl_m"] = stem .. "ibus"
data.forms["dat_pl_n"] = stem .. "ibus"
data.forms["acc_sg_m"] = stem .. "em"
data.forms["acc_sg_n"] = stem .. "e"
data.forms["acc_pl_m"] = {stem .. "ēs", stem .. "īs"}
data.forms["acc_pl_n"] = stem .. "ia"
data.forms["abl_sg_m"] = stem .. "ī"
data.forms["abl_sg_n"] = stem .. "ī"
data.forms["abl_pl_m"] = stem .. "ibus"
data.forms["abl_pl_n"] = stem .. "ibus"
data.forms["loc_sg_m"] = stem .. "ī"
data.forms["loc_sg_n"] = stem .. "ī"
data.forms["loc_pl_m"] = stem .. "ibus"
data.forms["loc_pl_n"] = stem .. "ibus"
data.forms["voc_sg_m"] = stem .. "is"
data.forms["voc_sg_n"] = stem .. "e"
data.forms["voc_pl_m"] = stem .. "ēs"
data.forms["voc_pl_n"] = stem .. "ia"
table.insert(data.categories, "Latin third declension " .. data.pos)
table.insert(data.categories, "Latin third declension " .. data.pos .. " of two terminations")
end
decl["3-3"] = function(data, args)
local singpos = singularize(data.pos)
if data.gender then
data.title = decl_link("third") .. " " .. singpos
else
data.title = decl_link("third") .. " three-termination " .. singpos
end
local stem1 = args[1]
local stem2 = args[2]
data.forms["nom_sg_m"] = stem1
data.forms["nom_sg_f"] = stem2 .. "is"
data.forms["nom_sg_n"] = stem2 .. "e"
data.forms["nom_pl_m"] = stem2 .. "ēs"
data.forms["nom_pl_f"] = stem2 .. "ēs"
data.forms["nom_pl_n"] = stem2 .. "ia"
data.forms["gen_sg_m"] = stem2 .. "is"
data.forms["gen_sg_f"] = stem2 .. "is"
data.forms["gen_sg_n"] = stem2 .. "is"
data.forms["gen_pl_m"] = stem2 .. "ium"
data.forms["gen_pl_f"] = stem2 .. "ium"
data.forms["gen_pl_n"] = stem2 .. "ium"
data.forms["dat_sg_m"] = stem2 .. "ī"
data.forms["dat_sg_f"] = stem2 .. "ī"
data.forms["dat_sg_n"] = stem2 .. "ī"
data.forms["dat_pl_m"] = stem2 .. "ibus"
data.forms["dat_pl_f"] = stem2 .. "ibus"
data.forms["dat_pl_n"] = stem2 .. "ibus"
data.forms["acc_sg_m"] = stem2 .. "em"
data.forms["acc_sg_f"] = stem2 .. "em"
data.forms["acc_sg_n"] = stem2 .. "e"
data.forms["acc_pl_m"] = stem2 .. "ēs"
data.forms["acc_pl_f"] = stem2 .. "ēs"
data.forms["acc_pl_n"] = stem2 .. "ia"
data.forms["abl_sg_m"] = stem2 .. "ī"
data.forms["abl_sg_f"] = stem2 .. "ī"
data.forms["abl_sg_n"] = stem2 .. "ī"
data.forms["abl_pl_m"] = stem2 .. "ibus"
data.forms["abl_pl_f"] = stem2 .. "ibus"
data.forms["abl_pl_n"] = stem2 .. "ibus"
data.forms["loc_sg_m"] = stem2 .. "ī"
data.forms["loc_sg_f"] = stem2 .. "ī"
data.forms["loc_sg_n"] = stem2 .. "ī"
data.forms["loc_pl_m"] = stem2 .. "ibus"
data.forms["loc_pl_f"] = stem2 .. "ibus"
data.forms["loc_pl_n"] = stem2 .. "ibus"
data.forms["voc_sg_m"] = stem1
data.forms["voc_sg_f"] = stem2 .. "is"
data.forms["voc_sg_n"] = stem2 .. "e"
data.forms["voc_pl_m"] = stem2 .. "ēs"
data.forms["voc_pl_f"] = stem2 .. "ēs"
data.forms["voc_pl_n"] = stem2 .. "ia"
table.insert(data.categories, "Latin third declension " .. data.pos)
table.insert(data.categories, "Latin third declension " .. data.pos .. " of three terminations")
end
decl["irreg"] = function(data,args)
if args[1] == "duo" or args[1] == "ambō" then
local stem = args[1] == "duo" and "du" or "amb"
data.title = stem == "amb" and glossary_link("irregular") .. " adjective" or "numeral"
data.num = "pl"
local stem_with_o = stem .. (stem == "amb" and "ō" or "o")
data.forms["nom_pl_m"] = stem_with_o
data.forms["nom_pl_f"] = stem .. "ae"
data.forms["nom_pl_n"] = stem_with_o
data.forms["gen_pl_m"] = stem .. "ōrum"
data.forms["gen_pl_f"] = stem .. "ārum"
data.forms["gen_pl_n"] = stem .. "ōrum"
data.forms["dat_pl_m"] = stem .. "ōbus"
data.forms["dat_pl_f"] = stem .. "ābus"
data.forms["dat_pl_n"] = stem .. "ōbus"
data.forms["acc_pl_m"] = {stem .. "ōs", stem_with_o}
data.forms["acc_pl_f"] = stem .. "ās"
data.forms["acc_pl_n"] = stem_with_o
data.forms["abl_pl_m"] = stem .. "ōbus"
data.forms["abl_pl_f"] = stem .. "ābus"
data.forms["abl_pl_n"] = stem .. "ōbus"
data.forms["voc_pl_m"] = stem_with_o
data.forms["voc_pl_f"] = stem .. "ae"
data.forms["voc_pl_n"] = stem_with_o
if stem == "du" then
data.footnote = "Note: The genitive masculine and neuter can also be found in the contracted form ''[[duum]]'' (also spelt ''[[duûm]]'')."
end
elseif args[1] == "mīlle" then
data.title = "semi-" .. glossary_link("indeclinable") .. " numeral"
data.forms["nom_sg_m"] = "mīlle"
data.forms["nom_pl_m"] = {"mīlia", "mīllia"}
data.forms["gen_sg_m"] = "mīlle"
data.forms["gen_pl_m"] = {"mīlium", "mīllium"}
data.forms["dat_sg_m"] = "mīlle"
data.forms["dat_pl_m"] = {"mīlibus", "mīllibus"}
data.forms["acc_sg_m"] = "mīlle"
data.forms["acc_pl_m"] = {"mīlia", "mīllia"}
data.forms["abl_sg_m"] = "mīlle"
data.forms["abl_pl_m"] = {"mīlibus", "mīllibus"}
data.forms["voc_sg_m"] = "mīlle"
data.forms["voc_pl_m"] = {"mīlia", "mīllia"}
elseif args[1] == "illic" then
data.title = glossary_link("demonstrative") .. " pronoun"
data.forms["nom_sg_m"] = "illic"
data.forms["nom_sg_f"] = "illaec"
data.forms["nom_sg_n"] = {"illuc", "illoc"}
data.forms["nom_pl_m"] = ""
data.forms["nom_pl_f"] = ""
data.forms["nom_pl_n"] = "illaec"
data.forms["gen_sg_m"] = ""
data.forms["gen_sg_f"] = ""
data.forms["gen_sg_n"] = ""
data.forms["gen_pl_m"] = ""
data.forms["gen_pl_f"] = ""
data.forms["gen_pl_n"] = ""
data.forms["dat_sg_m"] = ""
data.forms["dat_sg_f"] = ""
data.forms["dat_sg_n"] = ""
data.forms["dat_pl_m"] = ""
data.forms["dat_pl_f"] = ""
data.forms["dat_pl_n"] = ""
data.forms["acc_sg_m"] = "illunc"
data.forms["acc_sg_f"] = "illanc"
data.forms["acc_sg_n"] = {"illuc", "illoc"}
data.forms["acc_pl_m"] = ""
data.forms["acc_pl_f"] = ""
data.forms["acc_pl_n"] = "illaec"
data.forms["abl_sg_m"] = "illōc"
data.forms["abl_sg_n"] = "illāc"
data.forms["abl_sg_n"] = "illōc"
data.forms["abl_pl_m"] = ""
data.forms["abl_pl_f"] = ""
data.forms["abl_pl_n"] = ""
data.voc = false
elseif args[1] == "plūs" then
data.title = glossary_link("irregular") .. " " .. decl_link("third") .. " comparative adjective"
data.forms["nom_sg_m"] = ""
data.forms["nom_sg_n"] = "plūs"
data.forms["nom_pl_m"] = "plūrēs"
data.forms["nom_pl_n"] = "plūra"
data.forms["gen_sg_m"] = ""
data.forms["gen_sg_n"] = "plūris"
data.forms["gen_pl_m"] = "plūrium"
data.forms["gen_pl_n"] = "plūrium"
data.forms["dat_sg_m"] = ""
data.forms["dat_sg_n"] = ""
data.forms["dat_pl_m"] = "plūribus"
data.forms["dat_pl_n"] = "plūribus"
data.forms["acc_sg_m"] = ""
data.forms["acc_sg_n"] = "plūs"
data.forms["acc_pl_m"] = "plūrēs"
data.forms["acc_pl_n"] = "plūra"
data.forms["abl_sg_m"] = ""
data.forms["abl_sg_n"] = "plūre"
data.forms["abl_pl_m"] = "plūribus"
data.forms["abl_pl_n"] = "plūribus"
data.forms["voc_sg_m"] = ""
data.forms["voc_sg_n"] = "plūs"
data.forms["voc_pl_m"] = "plūrēs"
data.forms["voc_pl_n"] = "plūra"
data.footnote = "Note: Singular forms take the genitive of the whole and do not function as adjectives."
table.insert(data.categories, "Latin third declension " .. data.pos)
table.insert(data.categories, "Latin third declension " .. data.pos .. " of one termination")
elseif args[1] == "is" or args[1] == "īdem" then
data.title = glossary_link("demonstrative") .. " pronoun"
local note1 = "The dat. singular is found spelled <small>EIEI</small> (here represented as ''ēī'') and scanned as two longs in Plautus, but also as a monosyllable. The latter is its normal scansion in Classical. Other spellings include <small>EEI, IEI</small>."
local note2 = "The nom./dat./abl. plural forms regularly developed into a monosyllable /iː(s)/, with later remodelling - compare the etymology of [[deus]]. This /iː/ was normally spelled as <small>EI</small> during and as <small>II</small> after the Republic; a disyllabic ''iī'', spelled <small>II, Iꟾ</small>, apears in Silver Age poetry, while disyllabic ''eīs'' is only post-Classical. Other spellings include <small>EEI(S), EIEI(S), IEI(S)</small>."
data.forms["nom_sg_m"] = "is"
data.forms["nom_sg_f"] = "ea"
data.forms["nom_sg_n"] = "id"
data.forms["nom_pl_m"] = {"ī", "iī", "eī"}
data.notes["nom_pl_m1"] = note2
data.forms["nom_pl_f"] = "eae"
data.forms["nom_pl_n"] = "ea"
data.forms["gen_sg_m"] = "eius"
data.forms["gen_sg_f"] = "eius"
data.forms["gen_sg_n"] = "eius"
data.forms["gen_pl_m"] = "eōrum"
data.forms["gen_pl_f"] = "eārum"
data.forms["gen_pl_n"] = "eōrum"
data.forms["dat_sg_m"] = {"ei", "ēī"}
data.notes["dat_sg_m1"] = note1
data.forms["dat_sg_f"] = {"ei", "ēī"}
data.notes["dat_sg_f1"] = note1
data.forms["dat_sg_n"] = {"ei", "ēī"}
data.notes["dat_sg_n1"] = note1
data.forms["dat_pl_m"] = {"īs", "iīs", "eīs"}
data.notes["dat_pl_m1"] = note2
data.forms["dat_pl_f"] = {"īs", "iīs", "eīs"}
data.notes["dat_pl_f1"] = note2
data.forms["dat_pl_n"] = {"īs", "iīs", "eīs"}
data.notes["dat_pl_n1"] = note2
data.forms["acc_sg_m"] = "eum"
data.forms["acc_sg_f"] = "eam"
data.forms["acc_sg_n"] = "id"
data.forms["acc_pl_m"] = "eōs"
data.forms["acc_pl_f"] = "eās"
data.forms["acc_pl_n"] = "ea"
data.forms["abl_sg_m"] = "eō"
data.forms["abl_sg_f"] = "eā"
data.forms["abl_sg_n"] = "eō"
data.forms["abl_pl_m"] = {"īs", "iīs", "eīs"}
data.notes["abl_pl_m1"] = note2
data.forms["abl_pl_f"] = {"īs", "iīs", "eīs"}
data.notes["abl_pl_f1"] = note2
data.forms["abl_pl_n"] = {"īs", "iīs", "eīs"}
data.notes["abl_pl_n1"] = note2
data.voc = false
if args[1] == "īdem" then
data.forms["nom_sg_m"] = "ī"
data.forms["nom_sg_n"] = "i"
data.forms["nom_pl_m"] = "ī"
data.forms["gen_pl_m"] = {"eōrun", "eōrum"}
data.forms["gen_pl_f"] = {"eārun", "eārum"}
data.forms["gen_pl_n"] = {"eōrun", "eōrum"}
data.forms["acc_sg_m"] = {"eun", "eum"}
data.forms["acc_sg_f"] = {"ean", "eam"}
data.forms["acc_sg_n"] = "i"
end
elseif args[1] == "ille" then
data.types.ius = true
decl["1&2"](data, {"ill"})
data.title = glossary_link("demonstrative") .. " pronoun"
data.forms["nom_sg_m"] = "ille"
data.forms["nom_sg_n"] = "illud"
data.forms["acc_sg_n"] = "illud"
data.voc = false
data.categories = {}
elseif args[1] == "iste" then
data.types.ius = true
decl["1&2"](data, {"ist"})
data.title = glossary_link("demonstrative") .. " pronoun"
data.forms["nom_sg_m"] = "iste"
data.forms["nom_sg_n"] = "istud"
data.forms["acc_sg_n"] = "istud"
data.voc = false
data.categories = {}
elseif args[1] == "ipse" then
data.types.ius = true
decl["1&2"](data, {"ips"})
data.title = glossary_link("demonstrative") .. " pronoun"
data.forms["nom_sg_m"] = "ipse"
data.forms["nom_sg_n"] = "ipsum"
data.forms["acc_sg_n"] = "ipsum"
data.voc = false
data.categories = {}
elseif args[1] == "quis" or args[1] == "quī" then
local id = "id"
if args[1] == "quī" then
id = "od"
data.forms["acc_sg_f"] = {"quam"}
data.forms["abl_sg_f"] = {"quā"}
else
data.forms["acc_sg_f"] = {"quem", "quam"}
data.forms["abl_sg_f"] = {"quō", "quā"}
end
data.title = glossary_link("relative") .. "/" .. glossary_link("interrogative") .. " pronoun"
data.forms["nom_sg_m"] = "quis"
data.forms["nom_sg_f"] = {"quis", "quae"}
data.forms["nom_sg_n"] = "qu"..id
data.forms["nom_pl_m"] = "quī"
data.forms["nom_pl_f"] = "quae"
data.forms["nom_pl_n"] = "quae"
data.forms["gen_sg_m"] = "cuius"
data.forms["gen_sg_f"] = "cuius"
data.forms["gen_sg_n"] = "cuius"
data.forms["gen_pl_m"] = "quōrum"
data.forms["gen_pl_f"] = "quārum"
data.forms["gen_pl_n"] = "quōrum"
data.forms["dat_sg_m"] = "cui"
data.forms["dat_sg_f"] = "cui"
data.forms["dat_sg_n"] = "cui"
data.forms["dat_pl_m"] = {"quibus", "quīs"}
data.forms["dat_pl_f"] = {"quibus", "quīs"}
data.forms["dat_pl_n"] = {"quibus", "quīs"}
data.forms["acc_sg_m"] = "quem"
data.forms["acc_sg_n"] = "qu"..id
data.forms["acc_pl_m"] = "quōs"
data.forms["acc_pl_f"] = "quās"
data.forms["acc_pl_n"] = "quae"
data.forms["abl_sg_m"] = "quō"
data.forms["abl_sg_n"] = "quō"
data.forms["abl_pl_m"] = {"quibus", "quīs"}
data.forms["abl_pl_f"] = {"quibus", "quīs"}
data.forms["abl_pl_n"] = {"quibus", "quīs"}
data.voc = false
if args[1] == "quī" then
data.forms["nom_sg_m"] = "quī"
data.forms["nom_sg_f"] = "quae"
end
elseif args[1] == "quisquis" then
data.title = glossary_link("relative") .. "/" .. glossary_link("interrogative") .. " pronoun"
data.forms["nom_sg_m"] = "quisquis"
data.forms["nom_sg_f"] = "quisquis"
data.forms["nom_sg_n"] = {"quidquid", "quicquid"}
data.forms["nom_pl_m"] = "quīquī"
data.forms["nom_pl_f"] = "quaequae"
data.forms["nom_pl_n"] = "quaequae"
data.forms["gen_sg_m"] = "cuiuscuius"
data.forms["gen_sg_f"] = "cuiuscuius"
data.forms["gen_sg_n"] = "cuiuscuius"
data.forms["gen_pl_m"] = "quōrumquōrum"
data.forms["gen_pl_f"] = "quārumquārum"
data.forms["gen_pl_n"] = "quōrumquōrum"
data.forms["dat_sg_m"] = "cuicui"
data.forms["dat_sg_f"] = "cuicui"
data.forms["dat_sg_n"] = "cuicui"
data.forms["dat_pl_m"] = {"quibusquibus", "quīsquīs"}
data.forms["dat_pl_f"] = {"quibusquibus", "quīsquīs"}
data.forms["dat_pl_n"] = {"quibusquibus", "quīsquīs"}
data.forms["acc_sg_m"] = "quemquem"
data.forms["acc_sg_f"] = "quamquam"
data.forms["acc_sg_n"] = {"quidquid", "quicquid"}
data.forms["acc_pl_m"] = "quōsquōs"
data.forms["acc_pl_f"] = "quāsquās"
data.forms["acc_pl_n"] = "quaequae"
data.forms["abl_sg_m"] = "quōquō"
data.forms["abl_sg_f"] = "quāquā"
data.forms["abl_sg_n"] = "quōquō"
data.forms["abl_pl_m"] = {"quibusquibus", "quīsquīs"}
data.forms["abl_pl_f"] = {"quibusquibus", "quīsquīs"}
data.forms["abl_pl_n"] = {"quibusquibus", "quīsquīs"}
data.forms["voc_sg_m"] = "quisquis"
data.forms["voc_sg_f"] = "quisquis"
data.forms["voc_sg_n"] = {"quidquid", "quicquid"}
data.forms["voc_pl_m"] = "quīquī"
data.forms["voc_pl_f"] = "quaequae"
data.forms["voc_pl_n"] = "quaequae"
data.voc = true
else
error('adjective ' .. args[1] .. ' not recognized')
end
end
return decl
-- For Vim, so we get 4-space tabs
-- vim: set ts=4 sw=4 noet: