Module:qhv-verb/data: Difference between revisions
No edit summary |
No edit summary |
||
| Line 11: | Line 11: | ||
end | end | ||
local function llet(s, pattern) | local d = {} | ||
function d.llet(s, pattern) | |||
return match(s, "[" .. pattern .. "]$") | return match(s, "[" .. pattern .. "]$") | ||
end | end | ||
d.astems = m_table.listToSet({ | d.astems = m_table.listToSet({ | ||
| Line 1,067: | Line 1,067: | ||
setmetatable(d["palatal"], {__call = function(self, args, data) | setmetatable(d["palatal"], {__call = function(self, args, data) | ||
local stem = args[1] | local stem = args[1] | ||
stem = llet(stem, "ñ") and sub(stem, 1, -2) .. "n" or sub(stem, 1, -2) | |||
data.decl_type = "palatal stem" | data.decl_type = "palatal stem" | ||
if not data.no_cat then | if not data.no_cat then | ||
| Line 1,079: | Line 1,079: | ||
data.forms["act_ind_prs_2sg"] = {stem .. "ā"} | data.forms["act_ind_prs_2sg"] = {stem .. "ā"} | ||
data.forms["act_ind_prs_3sg"] = {stem .. "as"} | data.forms["act_ind_prs_3sg"] = {stem .. "as"} | ||
data.forms["act_ind_prs_1pl"] = { | data.forms["act_ind_prs_1pl"] = {stem .. "i"} | ||
data.forms["act_ind_prs_2pl"] = {stem .. "āt"} | data.forms["act_ind_prs_2pl"] = {stem .. "āt"} | ||
data.forms["act_ind_prs_3pl"] = { | data.forms["act_ind_prs_3pl"] = {stem .. "is"} | ||
data.forms["act_ind_aor_1sg"] = { | data.forms["act_ind_aor_1sg"] = {stem .. "in"} | ||
data.forms["act_ind_aor_2sg"] = { | data.forms["act_ind_aor_2sg"] = {stem .. "ia"} | ||
data.forms["act_ind_aor_3sg"] = { | data.forms["act_ind_aor_3sg"] = {stem .. "is"} | ||
data.forms["act_ind_aor_1pl"] = { | data.forms["act_ind_aor_1pl"] = {stem .. "iti"} | ||
data.forms["act_ind_aor_2pl"] = { | data.forms["act_ind_aor_2pl"] = {stem .. "iat"} | ||
data.forms["act_ind_aor_3pl"] = { | data.forms["act_ind_aor_3pl"] = {stem .. "isi"} | ||
data.forms["act_ind_fut_1sg"] = { | data.forms["act_ind_fut_1sg"] = {stem .. "inna"} | ||
data.forms["act_ind_fut_2sg"] = { | data.forms["act_ind_fut_2sg"] = {stem .. "ilā"} | ||
data.forms["act_ind_fut_3sg"] = { | data.forms["act_ind_fut_3sg"] = {stem .. "ilza"} | ||
data.forms["act_ind_fut_1pl"] = { | data.forms["act_ind_fut_1pl"] = {stem .. "ili"} | ||
data.forms["act_ind_fut_2pl"] = { | data.forms["act_ind_fut_2pl"] = {stem .. "ilāt"} | ||
data.forms["act_ind_fut_3pl"] = { | data.forms["act_ind_fut_3pl"] = {stem .. "ilzi"} | ||
data.forms["act_ind_imperf_1sg"] = { | data.forms["act_ind_imperf_1sg"] = {stem .. "ilen"} | ||
data.forms["act_ind_imperf_2sg"] = { | data.forms["act_ind_imperf_2sg"] = {stem .. "ilē"} | ||
data.forms["act_ind_imperf_3sg"] = { | data.forms["act_ind_imperf_3sg"] = {stem .. "iles"} | ||
data.forms["act_ind_imperf_1pl"] = { | data.forms["act_ind_imperf_1pl"] = {stem .. "ilin"} | ||
data.forms["act_ind_imperf_2pl"] = { | data.forms["act_ind_imperf_2pl"] = {stem .. "ilēt"} | ||
data.forms["act_ind_imperf_3pl"] = { | data.forms["act_ind_imperf_3pl"] = {stem .. "ilis"} | ||
data.forms["act_ind_prf_1sg"] = { | data.forms["act_ind_prf_1sg"] = {stem .. "tan"} | ||
data.forms["act_ind_prf_2sg"] = { | data.forms["act_ind_prf_2sg"] = {stem .. "tā"} | ||
data.forms["act_ind_prf_3sg"] = { | data.forms["act_ind_prf_3sg"] = {stem .. "tas"} | ||
data.forms["act_ind_prf_1pl"] = { | data.forms["act_ind_prf_1pl"] = {stem .. "ti"} | ||
data.forms["act_ind_prf_2pl"] = { | data.forms["act_ind_prf_2pl"] = {stem .. "tāt"} | ||
data.forms["act_ind_prf_3pl"] = { | data.forms["act_ind_prf_3pl"] = {stem .. "tis"} | ||
data.forms["act_ind_plu_1sg"] = { | data.forms["act_ind_plu_1sg"] = {stem .. "ten"} | ||
data.forms["act_ind_plu_2sg"] = { | data.forms["act_ind_plu_2sg"] = {stem .. "tē"} | ||
data.forms["act_ind_plu_3sg"] = { | data.forms["act_ind_plu_3sg"] = {stem .. "tes"} | ||
data.forms["act_ind_plu_1pl"] = { | data.forms["act_ind_plu_1pl"] = {stem .. "tin"} | ||
data.forms["act_ind_plu_2pl"] = { | data.forms["act_ind_plu_2pl"] = {stem .. "tēt"} | ||
data.forms["act_ind_plu_3pl"] = { | data.forms["act_ind_plu_3pl"] = {stem .. "tis"} | ||
data.forms["act_ind_hab_1sg"] = { | data.forms["act_ind_hab_1sg"] = {stem .. "tin"} | ||
data.forms["act_ind_hab_2sg"] = { | data.forms["act_ind_hab_2sg"] = {stem .. "tia"} | ||
data.forms["act_ind_hab_3sg"] = { | data.forms["act_ind_hab_3sg"] = {stem .. "tis"} | ||
data.forms["act_ind_hab_1pl"] = { | data.forms["act_ind_hab_1pl"] = {stem .. "titi"} | ||
data.forms["act_ind_hab_2pl"] = { | data.forms["act_ind_hab_2pl"] = {stem .. "tiat"} | ||
data.forms["act_ind_hab_3pl"] = { | data.forms["act_ind_hab_3pl"] = {stem .. "tisi"} | ||
--Subjunctive | --Subjunctive | ||
| Line 1,140: | Line 1,140: | ||
data.forms["act_sub_aor_3pl"] = {stem .. "usy"} | data.forms["act_sub_aor_3pl"] = {stem .. "usy"} | ||
data.forms["act_sub_fut_1sg"] = { | data.forms["act_sub_fut_1sg"] = {stem .. "ilun"} | ||
data.forms["act_sub_fut_2sg"] = { | data.forms["act_sub_fut_2sg"] = {stem .. "ilū"} | ||
data.forms["act_sub_fut_3sg"] = { | data.forms["act_sub_fut_3sg"] = {stem .. "ilus"} | ||
data.forms["act_sub_fut_1pl"] = { | data.forms["act_sub_fut_1pl"] = {stem .. "iluty"} | ||
data.forms["act_sub_fut_2pl"] = { | data.forms["act_sub_fut_2pl"] = {stem .. "ilūt"} | ||
data.forms["act_sub_fut_3pl"] = { | data.forms["act_sub_fut_3pl"] = {stem .. "ilusy"} | ||
data.forms["act_sub_imperf_1sg"] = { | data.forms["act_sub_imperf_1sg"] = {stem .. "ilon"} | ||
data.forms["act_sub_imperf_2sg"] = { | data.forms["act_sub_imperf_2sg"] = {stem .. "ilō"} | ||
data.forms["act_sub_imperf_3sg"] = { | data.forms["act_sub_imperf_3sg"] = {stem .. "ilos"} | ||
data.forms["act_sub_imperf_1pl"] = { | data.forms["act_sub_imperf_1pl"] = {stem .. "iloty"} | ||
data.forms["act_sub_imperf_2pl"] = { | data.forms["act_sub_imperf_2pl"] = {stem .. "ilōt"} | ||
data.forms["act_sub_imperf_3pl"] = { | data.forms["act_sub_imperf_3pl"] = {stem .. "ilosy"} | ||
data.forms["act_sub_prf_1sg"] = { | data.forms["act_sub_prf_1sg"] = {stem .. "ton"} | ||
data.forms["act_sub_prf_2sg"] = { | data.forms["act_sub_prf_2sg"] = {stem .. "tō"} | ||
data.forms["act_sub_prf_3sg"] = { | data.forms["act_sub_prf_3sg"] = {stem .. "tos"} | ||
data.forms["act_sub_prf_1pl"] = { | data.forms["act_sub_prf_1pl"] = {stem .. "toty"} | ||
data.forms["act_sub_prf_2pl"] = { | data.forms["act_sub_prf_2pl"] = {stem .. "tōt"} | ||
data.forms["act_sub_prf_3pl"] = { | data.forms["act_sub_prf_3pl"] = {stem .. "tosy"} | ||
data.forms["act_sub_plu_1sg"] = { | data.forms["act_sub_plu_1sg"] = {stem .. "ton"} | ||
data.forms["act_sub_plu_2sg"] = { | data.forms["act_sub_plu_2sg"] = {stem .. "tō"} | ||
data.forms["act_sub_plu_3sg"] = { | data.forms["act_sub_plu_3sg"] = {stem .. "tos"} | ||
data.forms["act_sub_plu_1pl"] = { | data.forms["act_sub_plu_1pl"] = {stem .. "toty"} | ||
data.forms["act_sub_plu_2pl"] = { | data.forms["act_sub_plu_2pl"] = {stem .. "tōt"} | ||
data.forms["act_sub_plu_3pl"] = { | data.forms["act_sub_plu_3pl"] = {stem .. "tosy"} | ||
data.forms["act_sub_hab_1sg"] = { | data.forms["act_sub_hab_1sg"] = {stem .. "tun"} | ||
data.forms["act_sub_hab_2sg"] = { | data.forms["act_sub_hab_2sg"] = {stem .. "tua"} | ||
data.forms["act_sub_hab_3sg"] = { | data.forms["act_sub_hab_3sg"] = {stem .. "tus"} | ||
data.forms["act_sub_hab_1pl"] = { | data.forms["act_sub_hab_1pl"] = {stem .. "tuty"} | ||
data.forms["act_sub_hab_2pl"] = { | data.forms["act_sub_hab_2pl"] = {stem .. "tuat"} | ||
data.forms["act_sub_hab_3pl"] = { | data.forms["act_sub_hab_3pl"] = {stem .. "tusy"} | ||
--Imperative | --Imperative | ||
| Line 1,179: | Line 1,179: | ||
data.forms["act_imp_prs_2pl"] = {stem .. "ātās"} | data.forms["act_imp_prs_2pl"] = {stem .. "ātās"} | ||
data.forms["act_imp_aor_2sg"] = { | data.forms["act_imp_aor_2sg"] = {stem .. "iās"} | ||
data.forms["act_imp_aor_2pl"] = { | data.forms["act_imp_aor_2pl"] = {stem .. "iātas"} | ||
data.forms["act_imp_fut_2sg"] = { | data.forms["act_imp_fut_2sg"] = {stem .. "ilās"} | ||
data.forms["act_imp_fut_2pl"] = { | data.forms["act_imp_fut_2pl"] = {stem .. "ilātās"} | ||
--Nonfinite | --Nonfinite | ||
data.forms["act_inf_prs"] = {stem .. "agon"} | data.forms["act_inf_prs"] = {stem .. "agon"} | ||
data.forms["act_inf_aor"] = { | data.forms["act_inf_aor"] = {stem .. "igon"} | ||
data.forms["act_inf_prf"] = { | data.forms["act_inf_prf"] = {stem .. "tagon"} | ||
data.forms["act_part_prs"] = {stem .. "are"} | data.forms["act_part_prs"] = {stem .. "are"} | ||
data.forms["act_part_aor"] = { | data.forms["act_part_aor"] = {stem .. "ire"} | ||
data.forms["act_part_fut"] = { | data.forms["act_part_fut"] = {stem .. "ilare"} | ||
data.forms["act_part_hab"] = { | data.forms["act_part_hab"] = {stem .. "tre"} | ||
| Line 1,205: | Line 1,205: | ||
data.forms["pas_ind_prs_3pl"] = {stem .. "aksi"} | data.forms["pas_ind_prs_3pl"] = {stem .. "aksi"} | ||
data.forms["pas_ind_aor_1sg"] = { | data.forms["pas_ind_aor_1sg"] = {stem .. "iks"} | ||
data.forms["pas_ind_aor_2sg"] = { | data.forms["pas_ind_aor_2sg"] = {stem .. "iaks"} | ||
data.forms["pas_ind_aor_3sg"] = { | data.forms["pas_ind_aor_3sg"] = {stem .. "iks"} | ||
data.forms["pas_ind_aor_1pl"] = { | data.forms["pas_ind_aor_1pl"] = {stem .. "iksi"} | ||
data.forms["pas_ind_aor_2pl"] = { | data.forms["pas_ind_aor_2pl"] = {stem .. "iaks"} | ||
data.forms["pas_ind_aor_3pl"] = { | data.forms["pas_ind_aor_3pl"] = {stem .. "iksi"} | ||
data.forms["pas_ind_fut_1sg"] = { | data.forms["pas_ind_fut_1sg"] = {stem .. "ilaks"} | ||
data.forms["pas_ind_fut_2sg"] = { | data.forms["pas_ind_fut_2sg"] = {stem .. "ilāks"} | ||
data.forms["pas_ind_fut_3sg"] = { | data.forms["pas_ind_fut_3sg"] = {stem .. "ilaks"} | ||
data.forms["pas_ind_fut_1pl"] = { | data.forms["pas_ind_fut_1pl"] = {stem .. "iliks"} | ||
data.forms["pas_ind_fut_2pl"] = { | data.forms["pas_ind_fut_2pl"] = {stem .. "ilāks"} | ||
data.forms["pas_ind_fut_3pl"] = { | data.forms["pas_ind_fut_3pl"] = {stem .. "iliks"} | ||
data.forms["pas_ind_imperf_1sg"] = { | data.forms["pas_ind_imperf_1sg"] = {stem .. "ileks"} | ||
data.forms["pas_ind_imperf_2sg"] = { | data.forms["pas_ind_imperf_2sg"] = {stem .. "ilēks"} | ||
data.forms["pas_ind_imperf_3sg"] = { | data.forms["pas_ind_imperf_3sg"] = {stem .. "ileks"} | ||
data.forms["pas_ind_imperf_1pl"] = { | data.forms["pas_ind_imperf_1pl"] = {stem .. "iliks"} | ||
data.forms["pas_ind_imperf_2pl"] = { | data.forms["pas_ind_imperf_2pl"] = {stem .. "ilēks"} | ||
data.forms["pas_ind_imperf_3pl"] = { | data.forms["pas_ind_imperf_3pl"] = {stem .. "iliks"} | ||
data.forms["pas_ind_prf_1sg"] = { | data.forms["pas_ind_prf_1sg"] = {stem .. "taks"} | ||
data.forms["pas_ind_prf_2sg"] = { | data.forms["pas_ind_prf_2sg"] = {stem .. "tāks"} | ||
data.forms["pas_ind_prf_3sg"] = { | data.forms["pas_ind_prf_3sg"] = {stem .. "taks"} | ||
data.forms["pas_ind_prf_1pl"] = { | data.forms["pas_ind_prf_1pl"] = {stem .. "taksi"} | ||
data.forms["pas_ind_prf_2pl"] = { | data.forms["pas_ind_prf_2pl"] = {stem .. "tāks"} | ||
data.forms["pas_ind_prf_3pl"] = { | data.forms["pas_ind_prf_3pl"] = {stem .. "taksi"} | ||
data.forms["pas_ind_plu_1sg"] = { | data.forms["pas_ind_plu_1sg"] = {stem .. "teks"} | ||
data.forms["pas_ind_plu_2sg"] = { | data.forms["pas_ind_plu_2sg"] = {stem .. "tēks"} | ||
data.forms["pas_ind_plu_3sg"] = { | data.forms["pas_ind_plu_3sg"] = {stem .. "teks"} | ||
data.forms["pas_ind_plu_1pl"] = { | data.forms["pas_ind_plu_1pl"] = {stem .. "tiks"} | ||
data.forms["pas_ind_plu_2pl"] = { | data.forms["pas_ind_plu_2pl"] = {stem .. "tēks"} | ||
data.forms["pas_ind_plu_3pl"] = { | data.forms["pas_ind_plu_3pl"] = {stem .. "tiks"} | ||
data.forms["pas_ind_hab_1sg"] = { | data.forms["pas_ind_hab_1sg"] = {stem .. "tiks"} | ||
data.forms["pas_ind_hab_2sg"] = { | data.forms["pas_ind_hab_2sg"] = {stem .. "tiaks"} | ||
data.forms["pas_ind_hab_3sg"] = { | data.forms["pas_ind_hab_3sg"] = {stem .. "tiks"} | ||
data.forms["pas_ind_hab_1pl"] = { | data.forms["pas_ind_hab_1pl"] = {stem .. "tiksi"} | ||
data.forms["pas_ind_hab_2pl"] = { | data.forms["pas_ind_hab_2pl"] = {stem .. "tiaks"} | ||
data.forms["pas_ind_hab_3pl"] = { | data.forms["pas_ind_hab_3pl"] = {stem .. "tiksi"} | ||
--Subjunctive | --Subjunctive | ||
| Line 1,262: | Line 1,262: | ||
data.forms["pas_sub_aor_3pl"] = {stem .. "uksy"} | data.forms["pas_sub_aor_3pl"] = {stem .. "uksy"} | ||
data.forms["pas_sub_fut_1sg"] = { | data.forms["pas_sub_fut_1sg"] = {stem .. "iluks"} | ||
data.forms["pas_sub_fut_2sg"] = { | data.forms["pas_sub_fut_2sg"] = {stem .. "ilūks"} | ||
data.forms["pas_sub_fut_3sg"] = { | data.forms["pas_sub_fut_3sg"] = {stem .. "iluks"} | ||
data.forms["pas_sub_fut_1pl"] = { | data.forms["pas_sub_fut_1pl"] = {stem .. "iluksy"} | ||
data.forms["pas_sub_fut_2pl"] = { | data.forms["pas_sub_fut_2pl"] = {stem .. "ilūks"} | ||
data.forms["pas_sub_fut_3pl"] = { | data.forms["pas_sub_fut_3pl"] = {stem .. "iluksy"} | ||
data.forms["pas_sub_imperf_1sg"] = { | data.forms["pas_sub_imperf_1sg"] = {stem .. "iloks"} | ||
data.forms["pas_sub_imperf_2sg"] = { | data.forms["pas_sub_imperf_2sg"] = {stem .. "ilōks"} | ||
data.forms["pas_sub_imperf_3sg"] = { | data.forms["pas_sub_imperf_3sg"] = {stem .. "iloks"} | ||
data.forms["pas_sub_imperf_1pl"] = { | data.forms["pas_sub_imperf_1pl"] = {stem .. "iloksy"} | ||
data.forms["pas_sub_imperf_2pl"] = { | data.forms["pas_sub_imperf_2pl"] = {stem .. "ilōks"} | ||
data.forms["pas_sub_imperf_3pl"] = { | data.forms["pas_sub_imperf_3pl"] = {stem .. "iloksy"} | ||
data.forms["pas_sub_prf_1sg"] = { | data.forms["pas_sub_prf_1sg"] = {stem .. "toks"} | ||
data.forms["pas_sub_prf_2sg"] = { | data.forms["pas_sub_prf_2sg"] = {stem .. "tōks"} | ||
data.forms["pas_sub_prf_3sg"] = { | data.forms["pas_sub_prf_3sg"] = {stem .. "toks"} | ||
data.forms["pas_sub_prf_1pl"] = { | data.forms["pas_sub_prf_1pl"] = {stem .. "toksy"} | ||
data.forms["pas_sub_prf_2pl"] = { | data.forms["pas_sub_prf_2pl"] = {stem .. "tōks"} | ||
data.forms["pas_sub_prf_3pl"] = { | data.forms["pas_sub_prf_3pl"] = {stem .. "toksy"} | ||
data.forms["pas_sub_plu_1sg"] = { | data.forms["pas_sub_plu_1sg"] = {stem .. "toks"} | ||
data.forms["pas_sub_plu_2sg"] = { | data.forms["pas_sub_plu_2sg"] = {stem .. "tōks"} | ||
data.forms["pas_sub_plu_3sg"] = { | data.forms["pas_sub_plu_3sg"] = {stem .. "toks"} | ||
data.forms["pas_sub_plu_1pl"] = { | data.forms["pas_sub_plu_1pl"] = {stem .. "toksy"} | ||
data.forms["pas_sub_plu_2pl"] = { | data.forms["pas_sub_plu_2pl"] = {stem .. "tōks"} | ||
data.forms["pas_sub_plu_3pl"] = { | data.forms["pas_sub_plu_3pl"] = {stem .. "toksy"} | ||
data.forms["pas_sub_hab_1sg"] = { | data.forms["pas_sub_hab_1sg"] = {stem .. "tuks"} | ||
data.forms["pas_sub_hab_2sg"] = { | data.forms["pas_sub_hab_2sg"] = {stem .. "tuaks"} | ||
data.forms["pas_sub_hab_3sg"] = { | data.forms["pas_sub_hab_3sg"] = {stem .. "tuks"} | ||
data.forms["pas_sub_hab_1pl"] = { | data.forms["pas_sub_hab_1pl"] = {stem .. "tuksy"} | ||
data.forms["pas_sub_hab_2pl"] = { | data.forms["pas_sub_hab_2pl"] = {stem .. "tuaks"} | ||
data.forms["pas_sub_hab_3pl"] = { | data.forms["pas_sub_hab_3pl"] = {stem .. "tuksy"} | ||
--Imperative | --Imperative | ||
| Line 1,301: | Line 1,301: | ||
data.forms["pas_imp_prs_2pl"] = {stem .. "āks"} | data.forms["pas_imp_prs_2pl"] = {stem .. "āks"} | ||
data.forms["pas_imp_aor_2sg"] = { | data.forms["pas_imp_aor_2sg"] = {stem .. "iāks"} | ||
data.forms["pas_imp_aor_2pl"] = { | data.forms["pas_imp_aor_2pl"] = {stem .. "iāks"} | ||
data.forms["pas_imp_fut_2sg"] = { | data.forms["pas_imp_fut_2sg"] = {stem .. "ilāks"} | ||
data.forms["pas_imp_fut_2pl"] = { | data.forms["pas_imp_fut_2pl"] = {stem .. "ilāks"} | ||
--Nonfinite | --Nonfinite | ||
data.forms["pas_inf_prs"] = {stem .. "akson"} | data.forms["pas_inf_prs"] = {stem .. "akson"} | ||
data.forms["pas_inf_aor"] = { | data.forms["pas_inf_aor"] = {stem .. "iakson"} | ||
data.forms["pas_inf_prf"] = { | data.forms["pas_inf_prf"] = {stem .. "takson"} | ||
data.forms["pas_part_aor"] = { | data.forms["pas_part_aor"] = {stem .. "iarza"} | ||
data.forms["pas_part_fut"] = { | data.forms["pas_part_fut"] = {stem .. "ilaksa"} | ||
data.forms["pas_part_prf"] = { | data.forms["pas_part_prf"] = {stem .. "ta"} | ||
data.forms["pas_part_hab"] = { | data.forms["pas_part_hab"] = {stem .. "tiarza"} | ||
end | end | ||
}) | }) | ||
| Line 1,326: | Line 1,326: | ||
setmetatable(d["fricative"], {__call = function(self, args, data) | setmetatable(d["fricative"], {__call = function(self, args, data) | ||
local stem = args[1] | local stem = args[1] | ||
local pstem = stem == "rij" and "ridd" | |||
or llet(stem, "sz") and sub(stem, 1, -2) .. "s" | |||
or llet(stem, "jv") and sub(stem, 1, -3) .. long(sub(stem, -2, -2)) .. "d" | |||
or match(stem, "gh$") and sub(stem, 1, -4) .. long(sub(stem, -3, -3)) .. "d" | |||
or stem .. "et" | |||
data.decl_type = "fricative stem" | data.decl_type = "fricative stem" | ||
if not data.no_cat then | if not data.no_cat then | ||