มอดูล:la-adj/data
หน้าตา
- This module lacks a documentation subpage. Please create it.
- Useful links: root page • root page’s subpages • links • transclusions • testcases • sandbox
local decl = {}
local en_utilities_module = "Module:en-utilities"
local la_utilities_module = "Module:la-utilities"
local table_deep_copy_module = "Module:table/deepCopy"
local table_empty_module = "Module:table/empty"
local table_insert_if_not_module = "Module:table/insertIfNot"
local require = require
local umatch = mw.ustring.match
local usub = mw.ustring.sub
local function add_form(...)
add_form = require(la_utilities_module).add_form
return add_form(...)
end
local function deep_copy(...)
deep_copy = require(table_deep_copy_module)
return deep_copy(...)
end
local function empty_table(...)
empty_table = require(table_empty_module)
return empty_table(...)
end
local function insert_if_not(...)
insert_if_not = require(table_insert_if_not_module)
return insert_if_not(...)
end
local function remove_forms(...)
remove_forms = require(la_utilities_module).remove_forms
return remove_forms(...)
end
local function singularize(...)
singularize = require(en_utilities_module).singularize
return singularize(...)
end
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
decl["0+"] = function(data, args)
local forms, categories = data.forms, data.categories
local stem = args[1]
forms["nom_sg_m"] = stem
forms["nom_pl_m"] = stem
forms["gen_sg_m"] = stem
forms["gen_pl_m"] = stem
forms["dat_sg_m"] = stem
forms["dat_pl_m"] = stem
forms["acc_sg_m"] = stem
forms["acc_pl_m"] = stem
forms["abl_sg_m"] = stem
forms["abl_pl_m"] = stem
forms["voc_sg_m"] = stem
forms["voc_pl_m"] = stem
forms["loc_sg_m"] = stem
forms["loc_pl_m"] = stem
insert_if_not(categories, "Latin indeclinable " .. data.pos)
end
decl["1&2+"] = function(data, args)
local forms, types, pos, subtitles, categories = data.forms, data.types, data.pos, data.subtitles, data.categories
local stem = args[1]
local singpos, gender = singularize(pos), data.gender
if gender == "F" then
data.title = decl_link("first") .. " " .. singpos
elseif gender then
data.title = decl_link("second") .. " " .. singpos
else
data.title = decl_link("first", "first") .. "/" .. decl_link("second") .. " " .. singpos
end
local original
if types.er then
local final2 = stem:sub(-2)
if final2 == "er" then
insert_if_not(subtitles, "nominative masculine singular in ''-er''")
insert_if_not(categories, "Latin first and second declension "
.. pos .. " with nominative masculine singular in -er")
elseif final2 == "ur" then
insert_if_not(subtitles, "nominative masculine singular in ''-ur''")
insert_if_not(categories, "Latin first and second declension "
.. pos .. " with nominative masculine singular in -ur")
else
error("Unrecognized ''-r'' stem (doesn't end in ''-er'' or ''-ur''): " .. stem)
end
stem, original = args[2], stem
end
local us = "us"
local a_sf = "a"
local um = "um"
local ae_gsf = "ae"
local am = "am"
local a_macron = "ā"
local i_pl = stem .. "ī"
if types.greekA or types.greekE then
insert_if_not(subtitles, "Greek-type")
insert_if_not(categories, "Latin first and second declension " .. pos .. " with Greek declension")
if types.greekA then
us = "os"
um = "on"
am = "ān"
else
us = "os"
a_sf = "ē"
um = "on"
ae_gsf = "ēs"
am = "ēn"
a_macron = "ē"
end
i_pl = {i_pl, stem .. "oe"} -- FIXME: add .oe spec.
end
forms["nom_sg_m"] = original or (stem .. us)
forms["nom_sg_f"] = stem .. a_sf
forms["nom_sg_n"] = stem .. um
forms["nom_pl_m"] = i_pl
forms["nom_pl_f"] = stem .. "ae"
forms["nom_pl_n"] = stem .. "a"
forms["gen_sg_m"] = stem .. "ī"
forms["gen_sg_f"] = stem .. ae_gsf
forms["gen_sg_n"] = stem .. "ī"
forms["gen_pl_m"] = stem .. "ōrum"
forms["gen_pl_f"] = stem .. "ārum"
forms["gen_pl_n"] = stem .. "ōrum"
forms["dat_sg_m"] = stem .. "ō"
forms["dat_sg_f"] = stem .. "ae"
forms["dat_sg_n"] = stem .. "ō"
forms["dat_pl_m"] = stem .. "īs"
forms["dat_pl_f"] = stem .. "īs"
forms["dat_pl_n"] = stem .. "īs"
forms["acc_sg_m"] = stem .. um
forms["acc_sg_f"] = stem .. am
forms["acc_sg_n"] = stem .. um
forms["acc_pl_m"] = stem .. "ōs"
forms["acc_pl_f"] = stem .. "ās"
forms["acc_pl_n"] = stem .. "a"
forms["abl_sg_m"] = stem .. "ō"
forms["abl_sg_f"] = stem .. a_macron
forms["abl_sg_n"] = stem .. "ō"
forms["abl_pl_m"] = stem .. "īs"
forms["abl_pl_f"] = stem .. "īs"
forms["abl_pl_n"] = stem .. "īs"
forms["voc_sg_m"] = original or (stem .. "e")
forms["voc_sg_f"] = stem .. a_sf
forms["voc_sg_n"] = stem .. um
forms["voc_pl_m"] = i_pl
forms["voc_pl_f"] = stem .. "ae"
forms["voc_pl_n"] = stem .. "a"
if types.ius then
insert_if_not(subtitles, "pronominal")
--insert_if_not(subtitles, "with genitive singular in ''-ī̆us'' and dative singular in ''-ī''")
insert_if_not(categories, "Latin first and second declension " .. pos .. " with genitive singular in -ī̆us")
forms["gen_sg_m"] = stem .. "ī̆us"
forms["gen_sg_f"] = stem .. "ī̆us"
forms["gen_sg_n"] = stem .. "ī̆us"
forms["dat_sg_m"] = stem .. "ī"
forms["dat_sg_f"] = stem .. "ī"
forms["dat_sg_n"] = stem .. "ī"
elseif types.not_ius then
insert_if_not(subtitles, "non-pronominal")
--insert_if_not(subtitles, "with normal genitive and dative singular")
end
if stem == "me" then
forms["voc_sg_m"] = "mī"
end
if types.ic then
insert_if_not(subtitles, "''hic''-type")
--insert_if_not(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
forms["nom_sg_m"] = stem .. "ic"
forms["nom_sg_f"] = stem .. "aec"
forms["nom_sg_n"] = stem .. oc
forms["nom_pl_n"] = stem .. "aec"
forms["gen_sg_m"] = stem .. "uius"
forms["gen_sg_f"] = stem .. "uius"
forms["gen_sg_n"] = stem .. "uius"
forms["dat_sg_m"] = stem .. "uic"
forms["dat_sg_f"] = stem .. "uic"
forms["dat_sg_n"] = stem .. "uic"
forms["acc_sg_m"] = stem .. "unc"
forms["acc_sg_f"] = stem .. "anc"
forms["acc_sg_n"] = stem .. oc
forms["acc_pl_n"] = stem .. "aec"
forms["abl_sg_m"] = stem .. "ōc"
forms["abl_sg_f"] = stem .. "āc"
forms["abl_sg_n"] = stem .. oc_macron
forms["voc_sg_m"] = "-"
forms["voc_sg_f"] = "-"
forms["voc_sg_n"] = "-"
forms["voc_pl_m"] = "-"
forms["voc_pl_f"] = "-"
forms["voc_pl_n"] = "-"
end
if types.distr then
if stem:sub(-1) == "n" then
insert_if_not(subtitles, "distributive, normally plural-only; short genitive plurals in ''-num'' preferred")
forms["gen_pl_m"] = {stem .. "um", stem .. "ōrum"}
forms["gen_pl_f"] = {stem .. "um", stem .. "ārum"}
forms["gen_pl_n"] = {stem .. "um", stem .. "ōrum"}
else
error("Unrecognized distributive numeral stem (doesn't end in ''n''): " .. stem)
end
original = stem
stem = args[2]
end
forms["loc_sg_m"] = deep_copy(forms["gen_sg_m"])
forms["loc_sg_f"] = deep_copy(forms["gen_sg_f"])
forms["loc_sg_n"] = deep_copy(forms["gen_sg_n"])
forms["loc_pl_m"] = deep_copy(forms["abl_pl_m"])
forms["loc_pl_f"] = deep_copy(forms["abl_pl_f"])
forms["loc_pl_n"] = deep_copy(forms["abl_pl_n"])
insert_if_not(categories, "Latin first and second declension " .. pos)
end
decl["1-1+"] = function(data, args)
local forms, subtitles, categories = data.forms, data.subtitles, data.categories
local stem = args[1]
insert_if_not(subtitles, "masculine and neuter forms identical to feminine forms")
forms["nom_sg_m"] = stem .. "a"
forms["nom_pl_m"] = stem .. "ae"
forms["nom_pl_n"] = stem .. "a"
forms["gen_sg_m"] = stem .. "ae"
forms["gen_pl_m"] = stem .. "ārum"
forms["dat_sg_m"] = stem .. "ae"
forms["dat_pl_m"] = stem .. "īs"
forms["acc_sg_m"] = stem .. "am"
forms["acc_sg_n"] = stem .. "a"
forms["acc_pl_m"] = stem .. "ās"
forms["acc_pl_n"] = stem .. "a"
forms["abl_sg_m"] = stem .. "ā"
forms["abl_pl_m"] = stem .. "īs"
forms["voc_sg_m"] = stem .. "a"
forms["voc_pl_m"] = stem .. "ae"
forms["voc_pl_n"] = stem .. "a"
forms["loc_sg_m"] = deep_copy(forms["gen_sg_m"])
forms["loc_pl_m"] = deep_copy(forms["abl_pl_m"])
insert_if_not(categories, "Latin first declension " .. data.pos)
end
decl["2-2+"] = function(data, args)
local forms, types, pos, subtitles, categories = data.forms, data.types, data.pos, data.subtitles, data.categories
local stem = args[1]
data.title = decl_link("second") .. " " .. singularize(pos)
insert_if_not(subtitles, "feminine forms identical to masculine forms")
local us = "us"
local um = "um"
local i_pl = stem .. "ī"
if types.greek then
insert_if_not(subtitles, "Greek-type")
insert_if_not(categories, "Latin second declension " .. pos .. " with Greek declension")
us = "os"
um = "on"
i_pl = {i_pl, stem .. "oe"} -- FIXME: add .oe spec.
end
forms["nom_sg_m"] = stem .. us
forms["nom_sg_n"] = stem .. um
forms["nom_pl_m"] = i_pl
forms["nom_pl_n"] = stem .. "a"
forms["gen_sg_m"] = stem .. "ī"
forms["gen_sg_n"] = stem .. "ī"
forms["gen_pl_m"] = stem .. "ōrum"
forms["gen_pl_n"] = stem .. "ōrum"
forms["dat_sg_m"] = stem .. "ō"
forms["dat_sg_n"] = stem .. "ō"
forms["dat_pl_m"] = stem .. "īs"
forms["dat_pl_n"] = stem .. "īs"
forms["acc_sg_m"] = stem .. um
forms["acc_sg_n"] = stem .. um
forms["acc_pl_m"] = stem .. "ōs"
forms["acc_pl_n"] = stem .. "a"
forms["abl_sg_m"] = stem .. "ō"
forms["abl_sg_n"] = stem .. "ō"
forms["abl_pl_m"] = stem .. "īs"
forms["abl_pl_n"] = stem .. "īs"
forms["voc_sg_m"] = stem .. "e"
forms["voc_sg_n"] = stem .. um
forms["voc_pl_m"] = i_pl
forms["voc_pl_n"] = stem .. "a"
forms["loc_sg_m"] = deep_copy(forms["gen_sg_m"])
forms["loc_sg_n"] = deep_copy(forms["gen_sg_n"])
forms["loc_pl_m"] = deep_copy(forms["abl_pl_m"])
forms["loc_pl_n"] = deep_copy(forms["abl_pl_n"])
insert_if_not(categories, "Latin second declension " .. pos)
end
local function abl_i_e(...)
local function update_slot(forms, slot, f, do_copy)
if not forms[slot] then
return do_copy
elseif do_copy then
f = deep_copy(f)
end
forms[slot] = f
return true
end
function abl_i_e(stem, forms, types)
local f, do_copy
if types["abl_e_i"] then
f = {stem .. "e", stem .. "ī"}
elseif types["abl_i_e"] then
f = {stem .. "ī", stem .. "e"}
else
return
end
do_copy = update_slot(forms, "abl_sg_m", f, do_copy)
do_copy = update_slot(forms, "abl_sg_f", f, do_copy)
-- Neuter doesn't take -e with i-stems.
if not types.I then
update_slot(forms, "abl_sg_n", f, do_copy)
end
end
return abl_i_e(...)
end
decl["3-1+"] = function(data, args)
local forms, types, pos, subtitles, notes, categories = data.forms, data.types, data.pos, data.subtitles, data.notes, data.categories
local stem1, stem2 = args[1], args[2]
local singpos = singularize(pos)
if data.gender then
data.title = decl_link("third") .. " " .. singpos
else
data.title = decl_link("third") .. " one-termination " .. singpos
end
forms["nom_sg_m"] = stem1
forms["nom_sg_n"] = stem1
forms["nom_pl_m"] = stem2 .. "ēs"
forms["nom_pl_n"] = stem2 .. "ia"
forms["gen_sg_m"] = stem2 .. "is"
forms["gen_sg_n"] = stem2 .. "is"
forms["gen_pl_m"] = stem2 .. "ium"
forms["gen_pl_n"] = stem2 .. "ium"
forms["dat_sg_m"] = stem2 .. "ī"
forms["dat_sg_n"] = stem2 .. "ī"
forms["dat_pl_m"] = stem2 .. "ibus"
forms["dat_pl_n"] = stem2 .. "ibus"
forms["acc_sg_m"] = stem2 .. "em"
forms["acc_sg_n"] = stem1
forms["acc_pl_m"] = {stem2 .. "īs", stem2 .. "ēs"}
forms["acc_pl_n"] = stem2 .. "ia"
forms["abl_sg_m"] = stem2 .. "ī"
forms["abl_sg_n"] = stem2 .. "ī"
forms["abl_pl_m"] = stem2 .. "ibus"
forms["abl_pl_n"] = stem2 .. "ibus"
abl_i_e(stem2, forms, types)
forms["voc_sg_m"] = stem1
forms["voc_sg_n"] = stem1
forms["voc_pl_m"] = stem2 .. "ēs"
forms["voc_pl_n"] = stem2 .. "ia"
forms["loc_sg_m"] = deep_copy(forms["abl_sg_m"])
forms["loc_sg_n"] = deep_copy(forms["abl_sg_n"])
forms["loc_pl_m"] = deep_copy(forms["abl_pl_m"])
forms["loc_pl_n"] = deep_copy(forms["abl_pl_n"])
if types.par then
insert_if_not(subtitles, "non-i-stem")
forms["nom_pl_n"] = stem2 .. "a"
forms["gen_pl_m"] = stem2 .. "um"
forms["gen_pl_n"] = stem2 .. "um"
forms["abl_sg_m"] = stem2 .. "e"
forms["abl_sg_n"] = stem2 .. "e"
forms["loc_sg_m"] = {stem2 .. "ī", stem2 .. "e"} -- Really?
forms["loc_sg_n"] = {stem2 .. "ī", stem2 .. "e"} -- Why does this happen?
forms["acc_pl_n"] = stem2 .. "a"
forms["voc_pl_n"] = stem2 .. "a"
elseif types.not_par then
insert_if_not(subtitles, "i-stem")
end
local es_base = stem1:match("^(.-)ēs$")
if es_base and es_base == stem2 then
if types.greek then
local note1 = "It is unknown whether adjectives of this type would use i-stem or consonant-stem endings in Classical Latin: the relevant forms are not attested. Depending on the word, either ending or both may be attested in New Latin."
forms["nom_sg_n"] = stem2 .. "es"
forms["acc_sg_n"] = stem2 .. "es"
forms["voc_sg_n"] = stem2 .. "es"
forms["nom_pl_n"] = {stem2 .. "a", stem2 .. "ia"}
notes["nom_pl_n2"] = note1
forms["acc_pl_n"] = {stem2 .. "a", stem2 .. "ia"}
notes["acc_pl_n2"] = note1
forms["voc_pl_n"] = {stem2 .. "a", stem2 .. "ia"}
notes["voc_pl_n2"] = note1
forms["abl_sg_m"] = {stem2 .. "e", stem2 .. "ī"}
notes["abl_sg_m2"] = note1
forms["abl_sg_n"] = {stem2 .. "e", stem2 .. "ī"}
notes["abl_sg_n2"] = note1
forms["loc_sg_m"] = deep_copy(forms["abl_sg_m"])
notes["loc_sg_m2"] = note1
forms["loc_sg_n"] = deep_copy(forms["abl_sg_n"])
notes["loc_sg_n2"] = note1
forms["gen_pl_m"] = {stem2 .. "um", stem2 .. "ium"}
notes["gen_pl_m2"] = note1
forms["gen_pl_n"] = {stem2 .. "um", stem2 .. "ium"}
notes["gen_pl_n2"] = note1
insert_if_not(subtitles, "Greek-type")
elseif types.not_greek then
insert_if_not(subtitles, "non-Greek-type")
end
end
insert_if_not(categories, "Latin third declension " .. pos)
insert_if_not(categories, "Latin third declension " .. pos .. " of one termination")
end
decl["3-def+"] = function(data, args)
local forms, types, pos, subtitles, notes, categories = data.forms, data.types, data.pos, data.subtitles, data.notes, data.categories
local stem1, stem2 = args[1], args[2]
local singpos = singularize(pos)
if data.gender then
data.title = decl_link("third") .. " " .. singpos
else
data.title = decl_link("third") .. " defective " .. singpos
end
forms["nom_sg_m"] = stem1
forms["nom_sg_n"] = stem1
forms["nom_pl_m"] = stem2 .. "ēs"
forms["nom_pl_n"] = stem2 .. "ia"
forms["gen_sg_m"] = stem2 .. "is"
forms["gen_sg_n"] = stem2 .. "is"
forms["gen_pl_m"] = stem2 .. "ium"
forms["gen_pl_n"] = stem2 .. "ium"
forms["dat_sg_m"] = stem2 .. "ī"
forms["dat_sg_n"] = stem2 .. "ī"
forms["dat_pl_m"] = stem2 .. "ibus"
forms["dat_pl_n"] = stem2 .. "ibus"
forms["acc_sg_m"] = stem2 .. "em"
forms["acc_sg_n"] = stem1
forms["acc_pl_m"] = stem2 .. "ēs"
forms["acc_pl_n"] = stem2 .. "ia"
forms["abl_sg_m"] = stem2 .. "ī"
forms["abl_sg_n"] = stem2 .. "ī"
forms["abl_pl_m"] = stem2 .. "ibus"
forms["abl_pl_n"] = stem2 .. "ibus"
forms["voc_sg_m"] = stem1
forms["voc_sg_n"] = stem1
forms["voc_pl_m"] = stem2 .. "ēs"
forms["voc_pl_n"] = stem2 .. "ia"
if types.tor then
data.title = decl_link("third") .. " masculine-only " .. singpos
insert_if_not(subtitles, "non-i-stem")
remove_forms(forms, {"_f$", "_n$"})
forms["nom_sg_m"] = stem1
forms["gen_sg_m"] = stem2 .. "is"
forms["dat_sg_m"] = stem2 .. "ī"
forms["acc_sg_m"] = stem2 .. "em"
forms["abl_sg_m"] = stem2 .. "e"
forms["voc_sg_m"] = stem1
forms["nom_pl_m"] = stem2 .. "ēs"
forms["gen_pl_m"] = stem2 .. "um"
forms["dat_pl_m"] = stem2 .. "ibus"
forms["acc_pl_m"] = stem2 .. "ēs"
forms["abl_pl_m"] = stem2 .. "ibus"
forms["voc_pl_m"] = stem2 .. "ēs"
insert_if_not(categories, "Latin third declension masculine-only adjectives")
end
if types.trix then
insert_if_not(subtitles, "feminine-only when singular, feminine or neuter when plural")
remove_forms(forms, {"_m$", "sg_n$"})
forms["nom_sg_f"] = stem1
forms["gen_sg_f"] = stem2 .. "is"
forms["dat_sg_f"] = stem2 .. "ī"
forms["acc_sg_f"] = stem2 .. "em"
forms["abl_sg_f"] = {stem2 .. "e", stem2 .. "ī"}
forms["voc_sg_f"] = stem1
forms["nom_pl_f"] = stem2 .. "ēs"
forms["gen_pl_f"] = stem2 .. "ium"
forms["dat_pl_f"] = stem2 .. "ibus"
forms["acc_pl_f"] = stem2 .. "ēs"
forms["abl_pl_f"] = stem2 .. "ibus"
forms["voc_pl_f"] = stem2 .. "ēs"
insert_if_not(categories, "Latin third declension feminine- and neuter-only adjectives")
end
if types.trixf then
data.title = decl_link("third") .. " feminine-only " .. singpos
remove_forms(forms, {"_m$", "_n$"})
forms["nom_sg_f"] = stem1
forms["gen_sg_f"] = stem2 .. "is"
forms["dat_sg_f"] = stem2 .. "ī"
forms["acc_sg_f"] = stem2 .. "em"
forms["abl_sg_f"] = {stem2 .. "e", stem2 .. "ī"}
forms["voc_sg_f"] = stem1
forms["nom_pl_f"] = stem2 .. "ēs"
forms["gen_pl_f"] = stem2 .. "ium"
forms["dat_pl_f"] = stem2 .. "ibus"
forms["acc_pl_f"] = stem2 .. "ēs"
forms["abl_pl_f"] = stem2 .. "ibus"
forms["voc_pl_f"] = stem2 .. "ēs"
insert_if_not(categories, "Latin third declension feminine-only adjectives")
end
if types.idis then
data.title = decl_link("third") .. " feminine-only " .. singpos
insert_if_not(subtitles, "non-i-stem")
remove_forms(forms, {"_m$", "_n$"})
forms["nom_sg_f"] = stem1
forms["gen_sg_f"] = {stem2 .. "is", stem2 .. "os"}
forms["dat_sg_f"] = stem2 .. "ī"
forms["acc_sg_f"] = {stem2 .. "em", stem2 .. "a"}
forms["abl_sg_f"] = stem2 .. "e"
forms["voc_sg_f"] = stem1
forms["nom_pl_f"] = {stem2 .. "ēs", stem2 .. "es"}
forms["gen_pl_f"] = stem2 .. "um"
forms["dat_pl_f"] = stem2 .. "ibus"
forms["acc_pl_f"] = {stem2 .. "ēs", stem2 .. "as"}
forms["abl_pl_f"] = stem2 .. "ibus"
forms["voc_pl_f"] = {stem2 .. "ēs", stem2 .. "es"}
insert_if_not(categories, "Latin third declension feminine-only adjectives")
end
forms["loc_sg_m"] = deep_copy(forms["abl_sg_m"])
forms["loc_sg_f"] = deep_copy(forms["abl_sg_f"])
forms["loc_sg_n"] = deep_copy(forms["abl_sg_n"])
forms["loc_pl_m"] = deep_copy(forms["abl_pl_m"])
forms["loc_pl_f"] = deep_copy(forms["abl_pl_f"])
forms["loc_pl_n"] = deep_copy(forms["abl_pl_n"])
insert_if_not(categories, "Latin third declension " .. pos)
end
decl["3-C+"] = function(data, args)
local forms, types, pos, categories = data.forms, data.types, data.pos, data.categories
local stem1 = args[1]
local stem2 = stem1 .. "ōr"
data.title = decl_link("third") .. " comparative " .. singularize(pos)
forms["nom_sg_m"] = stem1 .. "or"
forms["nom_sg_n"] = stem1 .. "us"
forms["nom_pl_m"] = stem2 .. "ēs"
forms["nom_pl_n"] = stem2 .. "a"
forms["gen_sg_m"] = stem2 .. "is"
forms["gen_sg_n"] = stem2 .. "is"
forms["gen_pl_m"] = stem2 .. "um"
forms["gen_pl_n"] = stem2 .. "um"
forms["dat_sg_m"] = stem2 .. "ī"
forms["dat_sg_n"] = stem2 .. "ī"
forms["dat_pl_m"] = stem2 .. "ibus"
forms["dat_pl_n"] = stem2 .. "ibus"
forms["acc_sg_m"] = stem2 .. "em"
forms["acc_sg_n"] = stem1 .. "us"
forms["acc_pl_m"] = {stem2 .. "ēs", stem2 .. "īs"}
forms["acc_pl_n"] = stem2 .. "a"
forms["abl_sg_m"] = stem2 .. "ī"
forms["abl_sg_n"] = stem2 .. "ī"
forms["abl_pl_m"] = stem2 .. "ibus"
forms["abl_pl_n"] = stem2 .. "ibus"
abl_i_e(stem2, forms, types)
forms["voc_sg_m"] = stem1 .. "or"
forms["voc_sg_n"] = stem1 .. "us"
forms["voc_pl_m"] = stem2 .. "ēs"
forms["voc_pl_n"] = stem2 .. "a"
forms["loc_sg_m"] = deep_copy(forms["abl_sg_m"])
forms["loc_sg_n"] = deep_copy(forms["abl_sg_n"])
forms["loc_pl_m"] = deep_copy(forms["abl_pl_m"])
forms["loc_pl_n"] = deep_copy(forms["abl_pl_n"])
insert_if_not(categories, "Latin third declension " .. pos)
insert_if_not(categories, "Latin comparative adjectives")
end
decl["3-P+"] = function(data, args)
local forms, notes = data.forms, data.notes
local stem2 = args[2]
decl["3-1+"](data, args)
data.title = decl_link("third") .. " participle"
local note1 = "When used purely as an adjective."
forms["abl_sg_m"] = {stem2 .. "e", stem2 .. "ī"}
notes["abl_sg_m2"] = note1
forms["abl_sg_n"] = {stem2 .. "e", stem2 .. "ī"}
notes["abl_sg_n2"] = note1
forms["loc_sg_m"] = deep_copy(forms["abl_sg_m"])
notes["loc_sg_m2"] = note1
forms["loc_sg_n"] = deep_copy(forms["abl_sg_n"])
notes["loc_sg_n2"] = note1
forms["acc_pl_m"] = {stem2 .. "ēs", stem2 .. "īs"}
end
decl["3-2+"] = function(data, args)
local forms, types, pos, categories = data.forms, data.types, data.pos, data.categories
local stem = args[1]
local singpos = singularize(pos)
if data.gender then
data.title = decl_link("third") .. " " .. singpos
else
data.title = decl_link("third") .. " two-termination " .. singpos
end
forms["nom_sg_m"] = stem .. "is"
forms["nom_sg_n"] = stem .. "e"
forms["nom_pl_m"] = stem .. "ēs"
forms["nom_pl_n"] = stem .. "ia"
forms["gen_sg_m"] = stem .. "is"
forms["gen_sg_n"] = stem .. "is"
forms["gen_pl_m"] = stem .. "ium"
forms["gen_pl_n"] = stem .. "ium"
forms["dat_sg_m"] = stem .. "ī"
forms["dat_sg_n"] = stem .. "ī"
forms["dat_pl_m"] = stem .. "ibus"
forms["dat_pl_n"] = stem .. "ibus"
forms["acc_sg_m"] = stem .. "em"
forms["acc_sg_n"] = stem .. "e"
forms["acc_pl_m"] = {stem .. "īs", stem .. "ēs"}
forms["acc_pl_n"] = stem .. "ia"
forms["abl_sg_m"] = stem .. "ī"
forms["abl_sg_n"] = stem .. "ī"
forms["abl_pl_m"] = stem .. "ibus"
forms["abl_pl_n"] = stem .. "ibus"
-- abl_i_e(stem, forms, types) -- enable once [[Module:la-nominal]] has ben updated
forms["voc_sg_m"] = stem .. "is"
forms["voc_sg_n"] = stem .. "e"
forms["voc_pl_m"] = stem .. "ēs"
forms["voc_pl_n"] = stem .. "ia"
forms["loc_sg_m"] = deep_copy(forms["abl_sg_m"])
forms["loc_sg_n"] = deep_copy(forms["abl_sg_n"])
forms["loc_pl_m"] = deep_copy(forms["abl_pl_m"])
forms["loc_pl_n"] = deep_copy(forms["abl_pl_n"])
insert_if_not(categories, "Latin third declension " .. pos)
insert_if_not(categories, "Latin third declension " .. pos .. " of two terminations")
end
decl["3-3+"] = function(data, args)
local forms, types, pos, categories = data.forms, data.types, data.pos, data.categories
local stem1, stem2 = args[1], args[2]
local singpos = singularize(pos)
if data.gender then
data.title = decl_link("third") .. " " .. singpos
else
data.title = decl_link("third") .. " three-termination " .. singpos
end
forms["nom_sg_m"] = stem1
forms["nom_sg_f"] = stem2 .. "is"
forms["nom_sg_n"] = stem2 .. "e"
forms["nom_pl_m"] = stem2 .. "ēs"
forms["nom_pl_f"] = stem2 .. "ēs"
forms["nom_pl_n"] = stem2 .. "ia"
forms["gen_sg_m"] = stem2 .. "is"
forms["gen_sg_f"] = stem2 .. "is"
forms["gen_sg_n"] = stem2 .. "is"
forms["gen_pl_m"] = stem2 .. "ium"
forms["gen_pl_f"] = stem2 .. "ium"
forms["gen_pl_n"] = stem2 .. "ium"
forms["dat_sg_m"] = stem2 .. "ī"
forms["dat_sg_f"] = stem2 .. "ī"
forms["dat_sg_n"] = stem2 .. "ī"
forms["dat_pl_m"] = stem2 .. "ibus"
forms["dat_pl_f"] = stem2 .. "ibus"
forms["dat_pl_n"] = stem2 .. "ibus"
forms["acc_sg_m"] = stem2 .. "em"
forms["acc_sg_f"] = stem2 .. "em"
forms["acc_sg_n"] = stem2 .. "e"
forms["acc_pl_m"] = {stem2 .. "īs", stem2 .. "ēs"}
forms["acc_pl_f"] = {stem2 .. "īs", stem2 .. "ēs"}
forms["acc_pl_n"] = stem2 .. "ia"
forms["abl_sg_m"] = stem2 .. "ī"
forms["abl_sg_f"] = stem2 .. "ī"
forms["abl_sg_n"] = stem2 .. "ī"
forms["abl_pl_m"] = stem2 .. "ibus"
forms["abl_pl_f"] = stem2 .. "ibus"
forms["abl_pl_n"] = stem2 .. "ibus"
-- abl_i_e(stem2, forms, types) -- enable once [[Module:la-nominal]] has ben updated
forms["voc_sg_m"] = stem1
forms["voc_sg_f"] = stem2 .. "is"
forms["voc_sg_n"] = stem2 .. "e"
forms["voc_pl_m"] = stem2 .. "ēs"
forms["voc_pl_f"] = stem2 .. "ēs"
forms["voc_pl_n"] = stem2 .. "ia"
forms["loc_sg_m"] = deep_copy(forms["abl_sg_m"])
forms["loc_sg_f"] = deep_copy(forms["abl_sg_f"])
forms["loc_sg_n"] = deep_copy(forms["abl_sg_n"])
forms["loc_pl_m"] = deep_copy(forms["abl_pl_m"])
forms["loc_pl_f"] = deep_copy(forms["abl_pl_f"])
forms["loc_pl_n"] = deep_copy(forms["abl_pl_n"])
insert_if_not(categories, "Latin third declension " .. pos)
insert_if_not(categories, "Latin third declension " .. pos .. " of three terminations")
end
decl["indecl+"] = function(data, args)
local forms, subtitles, categories = data.forms, data.subtitles, data.categories
local stem = args[1]
insert_if_not(subtitles, "used only in the nominative and accusative")
forms["nom_sg_m"] = stem
forms["nom_pl_m"] = "-"
forms["gen_sg_m"] = "-"
forms["gen_pl_m"] = "-"
forms["dat_sg_m"] = "-"
forms["dat_pl_m"] = "-"
forms["acc_sg_m"] = stem
forms["acc_pl_m"] = "-"
forms["abl_sg_m"] = "-"
forms["abl_pl_m"] = "-"
forms["voc_sg_m"] = "-"
forms["voc_pl_m"] = "-"
forms["loc_sg_m"] = deep_copy(forms["abl_sg_m"])
forms["loc_pl_m"] = deep_copy(forms["abl_pl_m"])
insert_if_not(categories, "Latin indeclinable " .. data.pos)
end
decl["irreg+"] = function(data,args)
local forms, types, pos, notes, categories = data.forms, data.types, data.pos, data.notes, data.categories
local arg1 = args[1]
if arg1 == "duo" or arg1 == "ambō" then
local stem = usub(arg1, 1, -2)
data.title = stem == "amb" and glossary_link("irregular") .. " adjective" or "numeral"
data.num = "pl"
local stem_with_o = stem .. (stem == "amb" and "ō" or "o")
local note1 = "''[[duom#Latin|duom]]'' in Old Latin."
forms["nom_pl_m"] = stem_with_o
forms["nom_pl_f"] = stem .. "ae"
forms["nom_pl_n"] = stem_with_o
forms["gen_pl_m"] = stem .. "ōrum"
forms["gen_pl_f"] = stem .. "ārum"
forms["gen_pl_n"] = stem .. "ōrum"
forms["dat_pl_m"] = stem .. "ōbus"
forms["dat_pl_f"] = stem .. "ābus"
forms["dat_pl_n"] = stem .. "ōbus"
forms["acc_pl_m"] = {stem .. "ōs", stem_with_o}
forms["acc_pl_f"] = stem .. "ās"
forms["acc_pl_n"] = stem_with_o
forms["abl_pl_m"] = stem .. "ōbus"
forms["abl_pl_f"] = stem .. "ābus"
forms["abl_pl_n"] = stem .. "ōbus"
forms["voc_pl_m"] = stem_with_o
forms["voc_pl_f"] = stem .. "ae"
forms["voc_pl_n"] = stem_with_o
if stem == "du" then
forms["gen_pl_m"] = {forms["gen_pl_m"], "duum"}
notes["gen_pl_m2"] = note1
forms["gen_pl_n"] = {forms["gen_pl_n"], "duum"}
notes["gen_pl_n2"] = note1
end
elseif arg1:sub(-6) == "mīlle" then
data.title = "semi-" .. glossary_link("indeclinable") .. " numeral"
local stem = arg1:sub(1, -3)
forms["nom_sg_m"] = stem .. "le"
forms["nom_pl_m"] = {stem .. "ia", stem .. "lia"}
forms["gen_sg_m"] = stem .. "le"
forms["gen_pl_m"] = {stem .. "ium", stem .. "lium"}
forms["dat_sg_m"] = stem .. "le"
forms["dat_pl_m"] = {stem .. "ibus", stem .. "libus"}
forms["acc_sg_m"] = stem .. "le"
forms["acc_pl_m"] = {stem .. "ia", stem .. "lia"}
forms["abl_sg_m"] = stem .. "le"
forms["abl_pl_m"] = {stem .. "ibus", stem .. "libus"}
forms["voc_sg_m"] = stem .. "le"
forms["voc_pl_m"] = {stem .. "ia", stem .. "lia"}
forms["loc_sg_m"] = deep_copy(forms["abl_sg_m"])
forms["loc_pl_m"] = deep_copy(forms["abl_pl_m"])
elseif arg1 == "ille" or arg1 == "iste" or arg1 == "ipse" or arg1 == "olle" then
local stem = arg1:sub(1, -2)
types.ius = true
decl["1&2+"](data, {stem})
data.title = glossary_link("demonstrative") .. " " .. singularize(data.pos)
forms["nom_sg_m"] = arg1
if arg1 == "ipse" then
local note1 = "Medieval Latin."
add_form(forms, "nom_sg_n", stem, "ud")
notes["nom_sg_n2"] = note1
add_form(forms, "acc_sg_n", stem, "ud")
notes["acc_sg_n2"] = note1
else
forms["nom_sg_n"] = stem .. "ud"
forms["acc_sg_n"] = stem .. "ud"
end
forms["voc_sg_m"] = "-"
forms["voc_sg_f"] = "-"
forms["voc_sg_n"] = "-"
forms["voc_pl_m"] = "-"
forms["voc_pl_f"] = "-"
forms["voc_pl_n"] = "-"
empty_table(categories)
elseif arg1 == "illic" or arg1 == "istic" or arg1 == "isthic" then
data.title = glossary_link("demonstrative") .. " " .. singularize(data.pos)
local stem, unattested = arg1:sub(1, -3), data.unattested
forms["nom_sg_m"] = stem .. "ic"
forms["nom_sg_f"] = stem .. "aec"
forms["nom_sg_n"] = {stem .. "uc", stem .. "ucce", stem .. "oc"}
forms["gen_sg_m"] = stem .. "ī̆usce"
forms["gen_sg_f"] = stem .. "ī̆usce"
forms["gen_sg_n"] = stem .. "ī̆usce"
forms["dat_sg_m"] = stem .. "īc"
forms["dat_sg_f"] = stem .. "īc"
forms["dat_sg_n"] = stem .. "īc"
forms["acc_sg_m"] = stem .. "unc"
forms["acc_sg_f"] = stem .. "anc"
forms["acc_sg_n"] = {stem .. "uc", stem .. "ucce", stem .. "oc"}
forms["abl_sg_m"] = stem .. "ōc"
forms["abl_sg_f"] = stem .. "āc"
forms["abl_sg_n"] = stem .. "ōc"
forms["loc_sg_m"] = deep_copy(forms["gen_sg_m"])
forms["loc_sg_f"] = deep_copy(forms["gen_sg_f"])
forms["loc_sg_n"] = deep_copy(forms["gen_sg_n"])
forms["nom_pl_m"] = stem .. "īsce"
forms["nom_pl_f"] = stem .. "aec"
forms["nom_pl_n"] = stem .. "aec"
forms["gen_pl_m"] = stem .. "ōrunc"
unattested["gen_pl_m"] = true
forms["gen_pl_f"] = stem .. "ārunc"
unattested["gen_pl_f"] = true
forms["gen_ok_n"] = stem .. "ōrunc"
unattested["gen_pl_n"] = true
forms["dat_pl_m"] = stem .. "īsce"
forms["dat_pl_f"] = stem .. "īsce"
forms["dat_pl_n"] = stem .. "īsce"
forms["acc_pl_m"] = stem .. "ōsce"
forms["acc_pl_f"] = stem .. "āsce"
forms["acc_pl_n"] = stem .. "aec"
forms["abl_pl_m"] = stem .. "īsce"
forms["abl_pl_f"] = stem .. "īsce"
forms["abl_pl_n"] = stem .. "īsce"
forms["loc_pl_m"] = deep_copy(forms["abl_pl_m"])
forms["loc_pl_f"] = deep_copy(forms["abl_pl_f"])
forms["loc_pl_n"] = deep_copy(forms["abl_pl_n"])
elseif arg1 == "hice" then
data.title = glossary_link("demonstrative") .. " pronoun"
forms["nom_sg_m"] = "hice"
forms["nom_sg_f"] = "haece"
forms["nom_sg_n"] = "hoce"
forms["nom_pl_m"] = "hīce"
forms["nom_pl_f"] = "haece"
forms["nom_pl_n"] = "haece"
forms["gen_sg_m"] = "huiusce"
forms["gen_sg_f"] = "huiusce"
forms["gen_sg_n"] = "huiusce"
forms["gen_pl_m"] = {"hōrunce", "hōrumce"}
forms["gen_pl_f"] = {"hārunce", "hārumce"}
forms["gen_pl_n"] = {"hōrunce", "hōrumce"}
forms["dat_sg_m"] = "huīce"
forms["dat_sg_f"] = "huīce"
forms["dat_sg_n"] = "huīce"
forms["dat_pl_m"] = "hīsce"
forms["dat_pl_f"] = "hīsce"
forms["dat_pl_n"] = "hīsce"
forms["acc_sg_m"] = "hunce"
forms["acc_sg_f"] = "hance"
forms["acc_sg_n"] = "hoce"
forms["acc_pl_m"] = "hōsce"
forms["acc_pl_f"] = "hāsce"
forms["acc_pl_n"] = "haece"
forms["abl_sg_m"] = "hōce"
forms["abl_sg_f"] = "hāce"
forms["abl_sg_n"] = "hōce"
forms["abl_pl_m"] = "hīsce"
forms["abl_pl_f"] = "hīsce"
forms["abl_pl_n"] = "hīsce"
forms["loc_sg_m"] = deep_copy(forms["gen_sg_m"])
forms["loc_sg_f"] = deep_copy(forms["gen_sg_f"])
forms["loc_sg_n"] = deep_copy(forms["gen_sg_n"])
forms["loc_pl_m"] = deep_copy(forms["abl_pl_m"])
forms["loc_pl_f"] = deep_copy(forms["abl_pl_f"])
forms["loc_pl_n"] = deep_copy(forms["abl_pl_n"])
elseif arg1 == "plūs" then
data.title = glossary_link("irregular") .. " " .. decl_link("third") .. " comparative " .. singularize(pos) .. ", plural-only in Classical Latin"
local note1 = "None of the singular forms are used as adjectives in Classical Latin."
forms["nom_sg_n"] = "plūs"
notes["nom_sg_n1"] = note1
forms["nom_pl_m"] = "plūrēs"
forms["nom_pl_n"] = "plūra"
forms["gen_sg_m"] = "plūris"
notes["gen_sg_m1"] = note1
forms["gen_sg_n"] = "plūris"
notes["gen_sg_n1"] = note1
forms["gen_pl_m"] = "plūrium"
forms["gen_pl_n"] = "plūrium"
forms["dat_sg_m"] = "plūrī"
notes["dat_sg_m1"] = note1
forms["dat_sg_n"] = "plūrī"
notes["dat_sg_n1"] = note1
forms["dat_pl_m"] = "plūribus"
forms["dat_pl_n"] = "plūribus"
forms["acc_sg_m"] = "plūrem"
notes["acc_sg_m1"] = note1
forms["acc_sg_f"] = "plūrem"
notes["acc_sg_f1"] = note1
forms["acc_sg_n"] = "plūs"
notes["acc_sg_n1"] = note1
forms["acc_pl_m"] = {"plūrēs", "plūrīs"}
forms["acc_pl_n"] = "plūra"
forms["abl_sg_m"] = {"plūrī", "plūre"}
notes["abl_sg_m1"] = note1
notes["abl_sg_m2"] = note1
forms["abl_sg_f"] = {"plūrī", "plūre"}
notes["abl_sg_f1"] = note1
notes["abl_sg_f2"] = note1
forms["abl_sg_n"] = {"plūrī", "plūre"}
notes["abl_sg_n1"] = note1
notes["abl_sg_n2"] = note1
forms["abl_pl_m"] = "plūribus"
forms["abl_pl_n"] = "plūribus"
forms["voc_sg_n"] = "plūs"
notes["voc_sg_n1"] = note1
forms["voc_pl_m"] = "plūrēs"
forms["voc_pl_n"] = "plūra"
forms["loc_sg_m"] = deep_copy(forms["abl_sg_m"])
notes["loc_sg_m1"] = note1
notes["loc_sg_m2"] = note1
forms["loc_sg_f"] = deep_copy(forms["abl_sg_f"])
notes["loc_sg_f1"] = note1
notes["loc_sg_f2"] = note1
forms["loc_sg_n"] = deep_copy(forms["abl_sg_n"])
notes["loc_sg_n1"] = note1
notes["loc_sg_n2"] = note1
forms["loc_pl_m"] = deep_copy(forms["abl_pl_m"])
forms["loc_pl_n"] = deep_copy(forms["abl_pl_n"])
insert_if_not(categories, "Latin third declension " .. pos)
insert_if_not(categories, "Latin third declension " .. pos .. " of one termination")
elseif umatch(arg1, "^egō̆?$") or arg1 == "nōs" then
data.title = glossary_link("personal") .. " pronoun"
forms["nom_sg_m"] = arg1
forms["nom_pl_m"] = "nōs"
forms["gen_sg_m"] = "meī"
forms["gen_pl_m"] = {"nostrī", "nostrum"}
forms["dat_sg_m"] = "mihī̆"
forms["dat_pl_m"] = "nōbīs"
forms["acc_sg_m"] = {"mē", "mēmē"}
forms["acc_pl_m"] = "nōs"
forms["abl_sg_m"] = {"mē", "mēmē"}
forms["abl_pl_m"] = "nōbīs"
forms["voc_sg_m"] = arg1
forms["voc_pl_m"] = "nōs"
elseif arg1 == "tū" or arg1 == "vōs" then
data.title = glossary_link("personal") .. " pronoun"
forms["nom_sg_m"] = arg1
forms["nom_pl_m"] = "vōs"
forms["gen_sg_m"] = "tuī"
forms["gen_pl_m"] = {"vestrī", "vestrum"}
forms["dat_sg_m"] = "tibī̆"
forms["dat_pl_m"] = "vōbīs"
forms["acc_sg_m"] = {"tē", "tētē"}
forms["acc_pl_m"] = "vōs"
forms["abl_sg_m"] = {"tē", "tētē"}
forms["abl_pl_m"] = "vōbīs"
forms["voc_sg_m"] = arg1
forms["voc_pl_m"] = "vōs"
elseif arg1 == "suī" then
data.title = glossary_link("reflexive") .. " pronoun"
forms["nom_sg_m"] = "-"
forms["nom_pl_m"] = "-"
forms["gen_sg_m"] = arg1
forms["gen_pl_m"] = forms["gen_sg_m"]
forms["dat_sg_m"] = "sibī̆"
forms["dat_pl_m"] = forms["dat_sg_m"]
forms["acc_sg_m"] = {"sē", "sēsē"}
forms["acc_pl_m"] = {"sē", "sēsē"}
forms["abl_sg_m"] = {"sē", "sēsē"}
forms["abl_pl_m"] = {"sē", "sēsē"}
forms["voc_sg_m"] = "-"
forms["voc_pl_m"] = "-"
elseif arg1 == "is" or arg1 == "ī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>, appears in Silver Age poetry, while disyllabic ''eīs'' is only post-Classical. Other spellings include <small>EEI(S), EIEI(S), IEI(S)</small>."
forms["nom_sg_m"] = "is"
forms["nom_sg_f"] = "ea"
forms["nom_sg_n"] = "id"
forms["nom_pl_m"] = {"iī", "eī", "ī"}
notes["nom_pl_m1"] = note2
forms["nom_pl_f"] = "eae"
forms["nom_pl_n"] = "ea"
forms["gen_sg_m"] = {"eius", "ejus"}
forms["gen_sg_f"] = {"eius", "ejus"}
forms["gen_sg_n"] = {"eius", "ejus"}
forms["gen_pl_m"] = {"eōrum", "eum"}
forms["gen_pl_f"] = "eārum"
forms["gen_pl_n"] = {"eōrum", "eum"}
forms["dat_sg_m"] = {"eī", "e͡i", "ēī"}
notes["dat_sg_m1"] = note1
forms["dat_sg_f"] = {"eī", "e͡i", "ēī", "eae"}
notes["dat_sg_f1"] = note1
forms["dat_sg_n"] = {"eī", "e͡i", "ēī"}
notes["dat_sg_n1"] = note1
forms["dat_pl_m"] = {"iīs", "eīs", "īs"}
notes["dat_pl_m1"] = note2
forms["dat_pl_f"] = {"iīs", "eīs", "īs", "eābus"}
notes["dat_pl_f1"] = note2
forms["dat_pl_n"] = {"iīs", "eīs", "īs"}
notes["dat_pl_n1"] = note2
forms["acc_sg_m"] = "eum"
forms["acc_sg_f"] = "eam"
forms["acc_sg_n"] = "id"
forms["acc_pl_m"] = "eōs"
forms["acc_pl_f"] = "eās"
forms["acc_pl_n"] = "ea"
forms["abl_sg_m"] = "eō"
forms["abl_sg_f"] = "eā"
forms["abl_sg_n"] = "eō"
forms["abl_pl_m"] = {"iīs", "eīs", "īs"}
notes["abl_pl_m1"] = note2
forms["abl_pl_f"] = {"iīs", "eīs", "īs"}
notes["abl_pl_f1"] = note2
forms["abl_pl_n"] = {"iīs", "eīs", "īs"}
notes["abl_pl_n1"] = note2
if arg1 == "īdem" then
forms["nom_sg_m"] = "ī"
forms["nom_sg_n"] = "i"
forms["acc_sg_n"] = "i"
end
elseif arg1 == "quis" or arg1 == "quī" then
local note1 = "When used as an indefinite word (pronoun or determiner), the feminine nominative singular and neuter nominative/accusative plural is usually ''qua'' (with short ''ă'') instead of ''quae''. Indefinite ''quă'' is generally only found directly after ''[[si#Latin|sī]]'', ''[[nisi#Latin|nisi]]'', ''[[num#Latin|num]]'', or ''[[ne#Latin|nē]]'' and may be considered to be either enclitic to the preceding word or (in Priscian's view) forming a compound with it; accordingly, ''[[siqua#Latin|sīqua]]'', ''[[numqua#Latin|numqua]]'', and ''[[nequa#Latin|nēqua]]'' are sometimes written together (as also are the masculines ''[[siquis#Latin|sīquis]]'', ''[[numquis#Latin|numquis]]'', and ''[[nequis#Latin|nēquis]]''). The form ''quă'' is never used for the feminine plural, nor for any form of the relative pronoun or of the interrogative pronoun or determiner."
local note2 = "In Republican Latin or earlier, alternative spellings could be found for the following forms of ''[[qui#Latin|quī]]''/''[[quis#Latin|quis]]'' and its compounds: the masculine nominative singular or plural ''quī'' (old spelling ''[[quei]]''), the genitive singular ''cuius'' (old spelling ''[[quoius]]''), the dative singular ''cui'' (old spelling ''[[quoi]]'' or ''[[quoiei]]''), the dative/ablative plural ''quīs'' (old spelling ''[[queis]]'')."
local note3 = "Feminine ''quis'' and ''quem'' are attested mainly in early Latin authors (Ennius, Pacuvius, and Plautus)."
local id = "id"
if arg1 == "quī" then
id = "od"
forms["nom_sg_m"] = {"quī", "quis"}
notes["nom_sg_m1"] = note2
forms["nom_sg_f"] = {"quae", "qua"}
notes["nom_sg_f2"] = note1
forms["acc_sg_f"] = "quam"
forms["abl_sg_m"] = "quō"
forms["abl_sg_f"] = "quā"
forms["abl_sg_n"] = "quō"
data.title = glossary_link("relative") .. "/" .. glossary_link("interrogative") .. " determiner"
else
forms["nom_sg_m"] = {"quis", "quī"}
notes["nom_sg_m2"] = note2
forms["nom_sg_f"] = {"quae", "qua", "quis"}
notes["nom_sg_f2"] = note1
notes["nom_sg_f3"] = note3
forms["acc_sg_f"] = {"quam", "quem"}
notes["acc_sg_f2"] = note3
forms["abl_sg_m"] = {"quō", "quī"}
forms["abl_sg_f"] = {"quā", "quī"}
forms["abl_sg_n"] = {"quō", "quī"}
data.title = glossary_link("relative") .. "/" .. glossary_link("interrogative") .. " pronoun"
end
forms["nom_sg_n"] = "qu"..id
forms["nom_pl_m"] = "quī"
notes["nom_pl_m1"] = note2
forms["nom_pl_f"] = "quae"
forms["nom_pl_n"] = {"quae", "qua"}
notes["nom_pl_n2"] = note1
forms["gen_sg_m"] = "cuius"
forms["gen_sg_f"] = "cuius"
forms["gen_sg_n"] = "cuius"
notes["gen_sg_m1"] = note2
notes["gen_sg_f1"] = note2
notes["gen_sg_n1"] = note2
forms["gen_pl_m"] = "quōrum"
forms["gen_pl_f"] = "quārum"
forms["gen_pl_n"] = "quōrum"
forms["dat_sg_m"] = "cui"
forms["dat_sg_f"] = "cui"
forms["dat_sg_n"] = "cui"
notes["dat_sg_m1"] = note2
notes["dat_sg_f1"] = note2
notes["dat_sg_n1"] = note2
forms["dat_pl_m"] = {"quibus", "quīs"}
forms["dat_pl_f"] = {"quibus", "quīs"}
forms["dat_pl_n"] = {"quibus", "quīs"}
notes["dat_pl_m2"] = note2
notes["dat_pl_f2"] = note2
notes["dat_pl_n2"] = note2
forms["acc_sg_m"] = "quem"
forms["acc_sg_n"] = "qu"..id
forms["acc_pl_m"] = "quōs"
forms["acc_pl_f"] = "quās"
forms["acc_pl_n"] = {"quae", "qua"}
notes["acc_pl_n2"] = note1
forms["abl_pl_m"] = {"quibus", "quīs"}
forms["abl_pl_f"] = {"quibus", "quīs"}
forms["abl_pl_n"] = {"quibus", "quīs"}
notes["abl_pl_m2"] = note2
notes["abl_pl_f2"] = note2
notes["abl_pl_n2"] = note2
elseif arg1 == "aliquī" then
data.title = glossary_link("indefinite") .. " " .. glossary_link("determiner")
local note1 = "Normatively, [[aliqui#Latin|aliquī]] is a determiner (used adjectivally) and [[aliquis#Latin|aliquis]] is a pronoun (used substantively), but the opposite usages can be found, even among the best Classical writers."
local note2 = "The feminine nominative singular form is usually ''aliqua'', but there are a handful of possible examples of ''aliquae'' as a feminine nominative singular form; see [[Citations:aliquae]]. The feminine nominative plural can only be ''aliquae'', and there are perhaps no solid examples of the neuter nominative/accusative plural taking any form other than ''aliqua''."
local note3 = "Alternative spelling [[aliquoius]] (used in Republican Latin or earlier)."
local note4 = "Alternative spelling [[aliqueis]] (used in Republican Latin or earlier)."
local note5 = "Alternative spelling [[aliquoi]] (used in Republican Latin or earlier)."
forms["nom_sg_m"] = {"aliquī", "aliquis"}
notes["nom_sg_m2"] = note1
forms["nom_sg_f"] = "aliqua"
notes["nom_sg_f1"] = note2
forms["nom_sg_n"] = "aliquod"
forms["nom_pl_m"] = "aliquī"
forms["nom_pl_f"] = "aliquae"
notes["nom_pl_f1"] = note2
forms["nom_pl_n"] = "aliqua"
notes["nom_pl_n1"] = note2
forms["gen_sg_m"] = "alicuius"
notes["gen_sg_m1"] = note3
forms["gen_sg_f"] = "alicuius"
notes["gen_sg_f1"] = note3
forms["gen_sg_n"] = "alicuius"
notes["gen_sg_n1"] = note3
forms["gen_pl_m"] = "aliquōrum"
forms["gen_pl_f"] = "aliquārum"
forms["gen_pl_n"] = "aliquōrum"
forms["dat_sg_m"] = "alicui"
notes["dat_sg_m1"] = note5
forms["dat_sg_f"] = "alicui"
notes["dat_sg_f1"] = note5
forms["dat_sg_n"] = "alicui"
notes["dat_sg_n1"] = note5
forms["dat_pl_m"] = {"aliquīs", "aliquibus"}
notes["dat_pl_m1"] = note4
forms["dat_pl_f"] = {"aliquīs", "aliquibus"}
notes["dat_pl_f1"] = note4
forms["dat_pl_n"] = {"aliquīs", "aliquibus"}
notes["dat_pl_n1"] = note4
forms["acc_sg_m"] = "aliquem"
forms["acc_sg_f"] = "aliquam"
forms["acc_sg_n"] = "aliquod"
forms["acc_pl_m"] = "aliquōs"
forms["acc_pl_f"] = "aliquās"
forms["acc_pl_n"] = "aliqua"
notes["acc_pl_n1"] = note2
forms["abl_sg_m"] = "aliquō"
forms["abl_sg_f"] = "aliquā"
forms["abl_sg_n"] = "aliquō"
forms["abl_pl_m"] = {"aliquīs", "aliquibus"}
notes["abl_pl_m1"] = note4
forms["abl_pl_f"] = {"aliquīs", "aliquibus"}
notes["abl_pl_f1"] = note4
forms["abl_pl_n"] = {"aliquīs", "aliquibus"}
notes["abl_pl_n1"] = note4
elseif arg1 == "quisquam" then
local note1 = "Only attested in postclassical Latin. In Classical Latin, forms of [[ullus#Latin|ūllus]] were used instead."
local note2 = "Only attested as a feminine form in the preclassical Latin of authors like Plautus."
local note3 = "Attested only once in Classical Latin. Usually [[ullus#Latin|ūllam]] was used instead."
local note4 = "Attested, but rare in Classical Latin. Usually [[ullus#Latin|ūllō]] was used instead."
data.title = glossary_link("negative polarity item", "negative polarity") .. " " .. glossary_link("indefinite") .. " " .. glossary_link("determiner")
forms["nom_sg_m"] = "quisquam"
forms["nom_sg_f"] = {"quaequam", "quisquam"}
notes["nom_sg_f1"] = note1
notes["nom_sg_f2"] = note2
forms["nom_sg_n"] = "quodquam"
notes["nom_sg_n1"] = note1
forms["nom_pl_m"] = "quīquam"
notes["nom_pl_m1"] = note1
forms["nom_pl_f"] = "quaequam"
notes["nom_pl_f1"] = note1
forms["nom_pl_n"] = "quaequam"
notes["nom_pl_n1"] = note1
forms["gen_sg_m"] = "cuiusquam"
forms["gen_sg_f"] = "cuiusquam"
forms["gen_sg_n"] = "cuiusquam"
forms["gen_pl_m"] = "quōrumquam"
notes["gen_pl_m1"] = note1
forms["gen_pl_f"] = "quārumquam"
notes["gen_pl_f1"] = note1
forms["gen_pl_n"] = "quōrumquam"
notes["gen_pl_n1"] = note1
forms["dat_sg_m"] = "cuiquam"
forms["dat_sg_f"] = "cuiquam"
forms["dat_sg_n"] = "cuiquam"
forms["dat_pl_m"] = "quibusquam"
notes["dat_pl_m1"] = note1
forms["dat_pl_f"] = "quibusquam"
notes["dat_pl_f1"] = note1
forms["dat_pl_n"] = "quibusquam"
notes["dat_pl_n1"] = note1
forms["acc_sg_m"] = "quemquam"
forms["acc_sg_f"] = {"quamquam", "quemquam"}
notes["acc_sg_f1"] = note3
notes["acc_sg_f2"] = note2
forms["acc_sg_n"] = "quodquam"
notes["acc_sg_n1"] = note1
forms["acc_pl_m"] = "quōsquam"
notes["acc_pl_m1"] = note1
forms["acc_pl_f"] = "quāsquam"
notes["acc_pl_f1"] = note1
forms["acc_pl_n"] = "quaequam"
notes["acc_pl_n1"] = note1
forms["abl_sg_m"] = {"quōquam", "quīquam"}
notes["abl_sg_m1"] = note4
notes["abl_sg_m2"] = note2
forms["abl_sg_f"] = "quāquam"
notes["abl_sg_f1"] = note1
forms["abl_sg_n"] = "quōquam"
notes["abl_sg_n1"] = note4
forms["abl_pl_m"] = "quibusquam"
notes["abl_pl_m1"] = note1
forms["abl_pl_f"] = "quibusquam"
notes["abl_pl_f1"] = note1
forms["abl_pl_n"] = "quibusquam"
notes["abl_pl_n1"] = note1
forms["voc_sg_m"] = "quisquam"
notes["voc_sg_m1"] = note1
forms["voc_sg_f"] = "quaequam"
notes["voc_sg_f1"] = note1
forms["voc_sg_n"] = "quodquam"
notes["voc_sg_n1"] = note1
forms["voc_pl_m"] = "quīquam"
notes["voc_pl_m1"] = note1
forms["voc_pl_f"] = "quaequam"
notes["voc_pl_f1"] = note1
forms["voc_pl_n"] = "quaequam"
notes["voc_pl_n1"] = note1
elseif arg1 == "quisquis" then
data.title = glossary_link("relative") .. "/" .. glossary_link("interrogative") .. " pronoun"
forms["nom_sg_m"] = "quisquis"
forms["nom_sg_f"] = "quisquis"
forms["nom_sg_n"] = {"quidquid", "quicquid"}
forms["nom_pl_m"] = "quīquī"
forms["nom_pl_f"] = "quaequae"
forms["nom_pl_n"] = "quaequae"
forms["gen_sg_m"] = "cuiuscuius"
forms["gen_sg_f"] = "cuiuscuius"
forms["gen_sg_n"] = "cuiuscuius"
forms["gen_pl_m"] = "quōrumquōrum"
forms["gen_pl_f"] = "quārumquārum"
forms["gen_pl_n"] = "quōrumquōrum"
forms["dat_sg_m"] = "cuicui"
forms["dat_sg_f"] = "cuicui"
forms["dat_sg_n"] = "cuicui"
forms["dat_pl_m"] = {"quibusquibus", "quīsquīs"}
forms["dat_pl_f"] = {"quibusquibus", "quīsquīs"}
forms["dat_pl_n"] = {"quibusquibus", "quīsquīs"}
forms["acc_sg_m"] = "quemquem"
forms["acc_sg_f"] = "quamquam"
forms["acc_sg_n"] = {"quidquid", "quicquid"}
forms["acc_pl_m"] = "quōsquōs"
forms["acc_pl_f"] = "quāsquās"
forms["acc_pl_n"] = "quaequae"
forms["abl_sg_m"] = "quōquō"
forms["abl_sg_f"] = "quāquā"
forms["abl_sg_n"] = "quōquō"
forms["abl_pl_m"] = {"quibusquibus", "quīsquīs"}
forms["abl_pl_f"] = {"quibusquibus", "quīsquīs"}
forms["abl_pl_n"] = {"quibusquibus", "quīsquīs"}
forms["voc_sg_m"] = "quisquis"
forms["voc_sg_f"] = "quisquis"
forms["voc_sg_n"] = {"quidquid", "quicquid"}
forms["voc_pl_m"] = "quīquī"
forms["voc_pl_f"] = "quaequae"
forms["voc_pl_n"] = "quaequae"
elseif arg1 == "ecquis" then
local note1 = "Unattested in classical Latin."
local note2 = "Attested only twice in Classical Latin."
data.title = glossary_link("interrogative") .. " pronoun"
forms["nom_sg_m"] = {"ecquis", "ecquī"}
forms["nom_sg_f"] = {"ecqua", "ecquae"}
forms["nom_sg_n"] = "ecquid"
forms["nom_pl_m"] = "ecquī"
forms["nom_pl_f"] = "ecquae"
forms["nom_pl_n"] = {"ecqua", "ecquae"}
forms["gen_sg_m"] = "eccuius"
forms["gen_sg_f"] = "eccuius"
forms["gen_sg_n"] = "eccuius"
notes["gen_sg_m1"] = note1
notes["gen_sg_f1"] = note1
notes["gen_sg_n1"] = note1
forms["dat_sg_m"] = "eccui"
forms["dat_sg_f"] = "eccui"
forms["dat_sg_n"] = "eccui"
notes["dat_sg_m1"] = note2
notes["dat_sg_f1"] = note2
notes["dat_sg_n1"] = note2
forms["acc_sg_m"] = "ecquem"
forms["acc_sg_f"] = "ecquam"
forms["acc_sg_n"] = "ecquod"
forms["acc_pl_m"] = "ecquōs"
forms["acc_pl_f"] = "ecquās"
forms["acc_pl_n"] = {"ecqua", "ecquae"}
forms["abl_sg_m"] = {"ecquō", "ecquī"}
forms["abl_sg_f"] = {"ecquā", "ecquī"}
forms["abl_sg_n"] = {"ecquō", "ecquī"}
elseif arg1 == "quīdam" then
local note1 = "The genitive singular was spelled [[quoiusdam#Latin|''quoiusdam'']] before the Augustan period."
local note2 = "The dative singular was spelled [[quoidam#Latin|''quoidam'']] before the Augustan period."
local note3 = "An alternative masculine nominative/accusative plural form [[quesdam#Latin|''quēsdam'']] occurs in Accius."
local note4 = "The dative/ablative plural has a rare alternative form [[quisdam#Latin|''quīsdam'']]/[[queisdam#Latin|''queisdam'']]."
data.title = glossary_link("indefinite") .. " pronoun"
forms["nom_sg_m"] = "quīdam"
forms["nom_sg_f"] = "quaedam"
forms["nom_sg_n"] = "quiddam"
forms["nom_pl_m"] = "quīdam"
notes["nom_pl_m1"] = note3
forms["nom_pl_f"] = "quaedam"
forms["nom_pl_n"] = "quaedam"
forms["gen_sg_m"] = "cuiusdam"
forms["gen_sg_f"] = "cuiusdam"
forms["gen_sg_n"] = "cuiusdam"
notes["gen_sg_m1"] = note1
notes["gen_sg_f1"] = note1
notes["gen_sg_n1"] = note1
forms["gen_pl_m"] = {"quōrundam", "quōrumdam"}
forms["gen_pl_f"] = {"quārundam", "quārumdam"}
forms["gen_pl_n"] = {"quōrundam", "quōrumdam"}
forms["dat_sg_m"] = "cuidam"
forms["dat_sg_f"] = "cuidam"
forms["dat_sg_n"] = "cuidam"
notes["dat_sg_m1"] = note2
notes["dat_sg_f1"] = note2
notes["dat_sg_n1"] = note2
forms["dat_pl_m"] = "quibusdam"
forms["dat_pl_f"] = "quibusdam"
forms["dat_pl_n"] = "quibusdam"
notes["dat_pl_m1"] = note4
notes["dat_pl_f1"] = note4
notes["dat_pl_n1"] = note4
forms["acc_sg_m"] = {"quendam", "quemdam"}
forms["acc_sg_f"] = {"quandam", "quamdam"}
forms["acc_sg_n"] = "quiddam"
forms["acc_pl_m"] = "quōsdam"
notes["acc_pl_m1"] = note3
forms["acc_pl_f"] = "quāsdam"
forms["acc_pl_n"] = "quaedam"
forms["abl_sg_m"] = "quōdam"
forms["abl_sg_f"] = "quādam"
forms["abl_sg_n"] = "quōdam"
forms["abl_pl_m"] = "quibusdam"
forms["abl_pl_f"] = "quibusdam"
forms["abl_pl_n"] = "quibusdam"
notes["abl_pl_m1"] = note4
notes["abl_pl_f1"] = note4
notes["abl_pl_n1"] = note4
elseif arg1 == "nēmō" then
local note1 = "The genitive [[neminis|''nēminis'']] is not used in Classical Latin, and is generally also avoided by later authors."
local note2 = "The ablative [[nemine|''nēmine'']] is not used in Classical Latin, but can be seen in authors from the Imperial period onwards."
data.title = "Negative pronoun and " .. glossary_link("determiner")
forms["nom_sg_m"] = "nēmō"
forms["nom_sg_f"] = "nēmō"
forms["gen_sg_m"] = {"nūllī̆us", "nēminis"}
forms["gen_sg_f"] = {"nūllī̆us", "nēminis"}
notes["gen_sg_m2"] = note1
notes["gen_sg_f2"] = note1
forms["dat_sg_m"] = "nēminī"
forms["dat_sg_f"] = "nēminī"
forms["acc_sg_m"] = "nēminem"
forms["acc_sg_f"] = "nēminem"
forms["abl_sg_m"] = {"nūllō", "nēmine"}
forms["abl_sg_f"] = {"nūllā", "nēmine"}
notes["abl_sg_m2"] = note2
notes["abl_sg_f2"] = note2
else
error('adjective ' .. arg1 .. ' not recognized')
end
end
return decl
-- For Vim, so we get 4-space tabs
-- vim: set ts=4 sw=4 noet: