return {
template = 'User:Vitalik/uz-decl-noun-table',
affixes = {
gen = 'ning',
acc = 'ni',
loc = 'da',
abl = 'dan',
dat = 'ga',
dat_k = 'ka',
dat_q = 'qa',
pl = 'lar',
possessive_first_sg = 'm',
possessive_second_sg = 'ng',
possessive_first_pl = 'miz',
possessive_second_pl = 'ngiz',
possessive_third = 'i',
interfix = 'i',
},
conditions = {
{
class = 'common',
},
{
_if = {base__endswith = 'k'},
class = 'dat_k',
},
{
_if = {base__endswith = 'q'},
class = 'dat_q',
},
{
long_comment = 'If two last letters are identical to first letter of declension ending — then we need to leave only two letters from three.<br/> For example, metall + lar = metallar',
_if = {base__endswith = 'll'},
pl = 'ar',
},
{SECTION = 'Possessive forms'},
{
base_possessive = '<base>',
class = {'possessive_nom', 'possessive_other'},
},
{SUBSECTION = 'When last letter is vowel'},
{
_if = {base__endswith = 'a'},
interfix = '',
possessive_third = 'si',
},
{
_if = {base__endswith = {'', "o"}},
_then = {
{
_if = {possessive_type = 'std'},
interfix = '',
possessive_third = 'si',
},
{
_if = {possessive_type = 'yisi'},
interfix = 'yi',
possessive_third = 'si',
},
{
_if = {possessive_type = 'yiyi'},
interfix = 'yi',
possessive_third = 'yi',
},
{
_if = {possessive_type__not = {'std', 'yisi', 'yiyi'}},
possessive_type_expected = '1',
},
},
},
{SUBSECTION = 'When last letters are "iy"'},
{
_if = {base__endswith = 'iy'},
possessive_third = 'si',
},
{SUBSECTION = 'When last letter is "k" or "q"'},
{
_if = {possessive_type = 'std'},
_then = {
{
_if = {base__endswith = 'k'},
base_possessive = {'var_replace', 'base', 'k$', 'g'},
},
{
_if = {base__endswith = 'q'},
base_possessive = {'var_replace', 'base', 'q$', 'gʻ'},
},
},
},
{
_if = {
base__endswith = {'k', 'q'},
possessive_type = 'kq',
},
base_possessive = '<base>',
},
{
_if = {
base__endswith = {'k', 'q'},
possessive_type__not = {'std', 'kq'},
},
possessive_type_expected = '1',
},
{SUBSECTION = 'When penultimate letter is vowel and last letter is consonant (except "y")'},
{
_if = {
base__not_endswith = {'', "o", 'y', 'k', 'q'},
base__penultimate = {'', "o"},
},
_then = {
{
_if = {possessive_type = 'reduced'},
base_possessive = {'var_replace', 'base', '.(.)$', '%1'}, -- but we don't process case with apostrophe at the end..
},
{ -- TODO: add "_else" feature here
_if = {possessive_type__not = 'reduced'},
base_possessive = '<base>'
},
},
},
{SUBSECTION = 'Make decision to show/hide block "Possesive"'},
{
_if = {possessive_type_expected = '1'},
show_possessive = '',
},
{ -- TODO: add "_else" feature here
_if = {possessive_type_expected__not = '1'},
show_possessive = '1',
possessive_type_expected = '', -- just to create empty variable to send to template
},
{SECTION = 'If there are no plural forms'},
{
long_comment = 'This rule should be the last one. Otherwise — removing of plural form can be overriden by other classes',
_if = {st = '1'}, -- if we've received argument "st" equals to "1"
class = 'singularia_tantum',
},
},
classes = {
common = {
nom_sg = '<base>',
gen_sg = '<base><gen>',
acc_sg = '<base><acc>',
loc_sg = '<base><loc>',
abl_sg = '<base><abl>',
dat_sg = '<base><dat>',
nom_pl = '<base><pl>',
gen_pl = '<base><pl><gen>',
acc_pl = '<base><pl><acc>',
loc_pl = '<base><pl><loc>',
abl_pl = '<base><pl><abl>',
dat_pl = '<base><pl><dat>',
show_possessive = '<show_possessive>',
type_expected = '<type_expected>',
},
dat_k = {
dat_sg = '<base><dat_k>' -- if -k then -kka
},
dat_q = {
dat_sg = '<base><dat_q>' -- if -q then -qqa
},
possessive_nom = {
nom_sg_possessive_1sg = '<base_possessive><interfix><possessive_first_sg>',
nom_sg_possessive_2sg = '<base_possessive><interfix><possessive_second_sg>',
nom_sg_possessive_3sg = '<base_possessive><possessive_third>',
nom_sg_possessive_1pl = '<base_possessive><interfix><possessive_first_pl>',
nom_sg_possessive_2pl = '<base_possessive><interfix><possessive_second_pl>',
nom_sg_possessive_3pl = '<base_possessive><possessive_third>',
nom_pl_possessive_1sg = '<base><pl>i<possessive_first_sg>',
nom_pl_possessive_2sg = '<base><pl>i<possessive_second_sg>',
nom_pl_possessive_3sg = '<base><pl>i',
nom_pl_possessive_1pl = '<base><pl>i<possessive_first_pl>',
nom_pl_possessive_2pl = '<base><pl>i<possessive_second_pl>',
nom_pl_possessive_3pl = '<base><pl>i',
},
possessive_other = {
gen_sg_possessive_1sg = '<nom_sg_possessive_1sg><gen>',
gen_sg_possessive_2sg = '<nom_sg_possessive_2sg><gen>',
gen_sg_possessive_3sg = '<nom_sg_possessive_3sg><gen>',
gen_sg_possessive_1pl = '<nom_sg_possessive_1pl><gen>',
gen_sg_possessive_2pl = '<nom_sg_possessive_2pl><gen>',
gen_sg_possessive_3pl = '<nom_sg_possessive_3pl><gen>',
acc_sg_possessive_1sg = '<nom_sg_possessive_1sg><acc>',
acc_sg_possessive_2sg = '<nom_sg_possessive_2sg><acc>',
acc_sg_possessive_3sg = '<nom_sg_possessive_3sg><acc>',
acc_sg_possessive_1pl = '<nom_sg_possessive_1pl><acc>',
acc_sg_possessive_2pl = '<nom_sg_possessive_2pl><acc>',
acc_sg_possessive_3pl = '<nom_sg_possessive_3pl><acc>',
loc_sg_possessive_1sg = '<nom_sg_possessive_1sg><loc>',
loc_sg_possessive_2sg = '<nom_sg_possessive_2sg><loc>',
loc_sg_possessive_3sg = '<nom_sg_possessive_3sg><loc>',
loc_sg_possessive_1pl = '<nom_sg_possessive_1pl><loc>',
loc_sg_possessive_2pl = '<nom_sg_possessive_2pl><loc>',
loc_sg_possessive_3pl = '<nom_sg_possessive_3pl><loc>',
abl_sg_possessive_1sg = '<nom_sg_possessive_1sg><abl>',
abl_sg_possessive_2sg = '<nom_sg_possessive_2sg><abl>',
abl_sg_possessive_3sg = '<nom_sg_possessive_3sg><abl>',
abl_sg_possessive_1pl = '<nom_sg_possessive_1pl><abl>',
abl_sg_possessive_2pl = '<nom_sg_possessive_2pl><abl>',
abl_sg_possessive_3pl = '<nom_sg_possessive_3pl><abl>',
dat_sg_possessive_1sg = '<nom_sg_possessive_1sg><dat>',
dat_sg_possessive_2sg = '<nom_sg_possessive_2sg><dat>',
dat_sg_possessive_3sg = '<nom_sg_possessive_3sg><dat>',
dat_sg_possessive_1pl = '<nom_sg_possessive_1pl><dat>',
dat_sg_possessive_2pl = '<nom_sg_possessive_2pl><dat>',
dat_sg_possessive_3pl = '<nom_sg_possessive_3pl><dat>',
gen_pl_possessive_1sg = '<nom_pl_possessive_1sg><gen>',
gen_pl_possessive_2sg = '<nom_pl_possessive_2sg><gen>',
gen_pl_possessive_3sg = '<nom_pl_possessive_3sg><gen>',
gen_pl_possessive_1pl = '<nom_pl_possessive_1pl><gen>',
gen_pl_possessive_2pl = '<nom_pl_possessive_2pl><gen>',
gen_pl_possessive_3pl = '<nom_pl_possessive_3pl><gen>',
acc_pl_possessive_1sg = '<nom_pl_possessive_1sg><acc>',
acc_pl_possessive_2sg = '<nom_pl_possessive_2sg><acc>',
acc_pl_possessive_3sg = '<nom_pl_possessive_3sg><acc>',
acc_pl_possessive_1pl = '<nom_pl_possessive_1pl><acc>',
acc_pl_possessive_2pl = '<nom_pl_possessive_2pl><acc>',
acc_pl_possessive_3pl = '<nom_pl_possessive_3pl><acc>',
loc_pl_possessive_1sg = '<nom_pl_possessive_1sg><loc>',
loc_pl_possessive_2sg = '<nom_pl_possessive_2sg><loc>',
loc_pl_possessive_3sg = '<nom_pl_possessive_3sg><loc>',
loc_pl_possessive_1pl = '<nom_pl_possessive_1pl><loc>',
loc_pl_possessive_2pl = '<nom_pl_possessive_2pl><loc>',
loc_pl_possessive_3pl = '<nom_pl_possessive_3pl><loc>',
abl_pl_possessive_1sg = '<nom_pl_possessive_1sg><abl>',
abl_pl_possessive_2sg = '<nom_pl_possessive_2sg><abl>',
abl_pl_possessive_3sg = '<nom_pl_possessive_3sg><abl>',
abl_pl_possessive_1pl = '<nom_pl_possessive_1pl><abl>',
abl_pl_possessive_2pl = '<nom_pl_possessive_2pl><abl>',
abl_pl_possessive_3pl = '<nom_pl_possessive_3pl><abl>',
dat_pl_possessive_1sg = '<nom_pl_possessive_1sg><dat>',
dat_pl_possessive_2sg = '<nom_pl_possessive_2sg><dat>',
dat_pl_possessive_3sg = '<nom_pl_possessive_3sg><dat>',
dat_pl_possessive_1pl = '<nom_pl_possessive_1pl><dat>',
dat_pl_possessive_2pl = '<nom_pl_possessive_2pl><dat>',
dat_pl_possessive_3pl = '<nom_pl_possessive_3pl><dat>',
},
singularia_tantum = {
nom_pl = '—',
gen_pl = '—',
acc_pl = '—',
loc_pl = '—',
abl_pl = '—',
dat_pl = '—',
nom_pl_possessive_1sg = '—',
nom_pl_possessive_2sg = '—',
nom_pl_possessive_3sg = '—',
nom_pl_possessive_1pl = '—',
nom_pl_possessive_2pl = '—',
nom_pl_possessive_3pl = '—',
gen_pl_possessive_1sg = '—',
gen_pl_possessive_2sg = '—',
gen_pl_possessive_3sg = '—',
gen_pl_possessive_1pl = '—',
gen_pl_possessive_2pl = '—',
gen_pl_possessive_3pl = '—',
acc_pl_possessive_1sg = '—',
acc_pl_possessive_2sg = '—',
acc_pl_possessive_3sg = '—',
acc_pl_possessive_1pl = '—',
acc_pl_possessive_2pl = '—',
acc_pl_possessive_3pl = '—',
loc_pl_possessive_1sg = '—',
loc_pl_possessive_2sg = '—',
loc_pl_possessive_3sg = '—',
loc_pl_possessive_1pl = '—',
loc_pl_possessive_2pl = '—',
loc_pl_possessive_3pl = '—',
abl_pl_possessive_1sg = '—',
abl_pl_possessive_2sg = '—',
abl_pl_possessive_3sg = '—',
abl_pl_possessive_1pl = '—',
abl_pl_possessive_2pl = '—',
abl_pl_possessive_3pl = '—',
dat_pl_possessive_1sg = '—',
dat_pl_possessive_2sg = '—',
dat_pl_possessive_3sg = '—',
dat_pl_possessive_1pl = '—',
dat_pl_possessive_2pl = '—',
dat_pl_possessive_3pl = '—',
},
},
}