local decl_data = {}
decl_data = {
params = {
= {},
= {},
},
}
setmetatable(decl_data, {__call = function(self, args, data)
local stem = args
data.decl_type = "masculine a-stem"
data.forms = {args .. "áh"}
data.forms = {args .. "a"}
data.forms = {args .. "ám"}
data.forms = {args .. "áH"}
data.forms = {args .. "ā́t"}
data.forms = {args .. "ā́y"}
data.forms = {args .. "áhya"}
data.forms = {args .. "áy"}
data.forms = {args .. "ā́(w)"}
data.forms = {args .. "ā(w)"}
data.forms = data.forms
data.forms = {args .. "áybʰyā(m)"}
data.forms = data.forms
data.forms = data.forms
data.forms = {args .. "áyāh"}
data.forms = {args .. "áyaw"}
if not args.nopl then
data.forms = {args .. "ā́h(ah)"}
data.forms = {args .. "āh(ah)"}
data.forms = {args .. "ā́nh"}
data.forms = {args .. "ā́yš"}
data.forms = {args .. "áybʰyah"}
data.forms = data.forms
data.forms = {args .. "ā́naHam"}
data.forms = {args .. "áyšu"}
end
table.insert(data.categories, "Proto-Iranian masculine a-stem nouns")
end
})
decl_data = {
params = {
= {},
= {},
},
}
setmetatable(decl_data, {__call = function(self, args, data)
decl_data(args, data)
data.decl_type = "neuter a-stem"
data.forms = data.forms
data.forms = {args .. "am"}
data.forms = {args .. "áy"}
data.forms = {args .. "ay"}
data.forms = data.forms
if not args.nopl then
data.forms = {args .. "áH"}
data.forms = {args .. "aH"}
data.forms = data.forms
end
table.insert(data.categories, "Proto-Iranian neuter a-stem nouns")
end
})
decl_data = {
params = {
= {},
= {},
= {},
= {},
= {},
= {},
= {},
= {},
= {},
= {},
= {},
},
}
setmetatable(decl_data, {__call = function(self, args, data)
local pagename = mw.title.getCurrentTitle().subpageText
data.decl_type = "consonant stem"
local strong = args or args
debrugmann = mw.ustring.gsub(strong, ".", { = "a", = "á",})
debrugmann2 = mw.ustring.gsub(debrugmann, "á", "a")
-- Implements Brugmann's law in the acc. sg.; trigger this by inputting, into the strong stem, *o for any vowels that you want the law to affect
-- The "de-brugmann" process will turn the o back to *a for use in loc. and voc. sg.
brugmann = mw.ustring.gsub(strong, ".", { = "ā́", = "ā"})
brugmann_voc = mw.ustring.gsub(strong, ".", { = "ā", = "ā", = "a"})
local weak = args
-- For r-stems
if mw.ustring.find(weak, "$") then gen_sg_ending = "š" else gen_sg_ending = "áh" end
-- Forms the nom. sg. of n-stems and r-stems
if args then
if mw.ustring.find(args, "$") then
local rnnom = mw.ustring.gsub(args, "$", "")
args.nomsg = rnnom .. "ā́"
end
end
data.forms = {args.nomsg or brugmann .. "h"}
data.forms = {debrugmann2}
data.forms = {args.accsg or brugmann .. "ám"}
data.forms = {weak .. "áH"}
data.forms = {weak .. gen_sg_ending}
data.forms = {weak .. "áy"}
data.forms = data.forms
data.forms = {args.locsg or debrugmann .. "í"}
data.forms = {brugmann .. "ā́(w)"}
data.forms = {brugmann_voc .. "ā(w)"}
data.forms = data.forms
data.forms = {args.insdu or (args.oblplc or weak) .. "bʰyā́(m)"}
data.forms = data.forms
data.forms = data.forms
data.forms = {weak .. "Hā́h"}
data.forms = {weak .. "Háw"}
if not args.nopl then
data.forms = {brugmann .. "áh"}
data.forms = {brugmann_voc .. "ah"}
data.forms = {weak .. "áh"}
data.forms = {args.inspl or (args.oblplc or weak) .. "bʰíš"}
data.forms = {args.ablpl or (args.oblplc or weak) .. "bʰyáH"}
data.forms = data.forms
data.forms = {weak .. "áHam"}
data.forms = {args.locpl or (args.oblplc or weak) .. "hú"}
end
table.insert(data.categories, "Proto-Iranian consonant stem nouns")
end
})
decl_data = {
params = {
= {},
= {},
= {},
= {},
= {},
= {},
},
}
setmetatable(decl_data, {__call = function(self, args, data)
decl_data(args, data)
data.decl_type = "neuter consonant stem"
if args then gen_sg_ending = "áh" else gen_sg_ending = "h" end
local nom_sg
local nom_pl
local strongdu
local loc_stem
local resyll
local title = mw.title.getCurrentTitle().subpageText
if mw.ustring.find(title, "r̥?$") and mw.ustring.find(args, "n$") then
nom_sg = title
nom_pl = mw.ustring.gsub(title, "a?r̥?$", "ār")
strongdu = mw.ustring.gsub(title, "a?r̥?$", "n")
loc_sg_stem = mw.ustring.gsub(args, "?n$", "án")
if destress(args .. "á") == (args .. "á") then
resyll = mw.ustring.gsub(args, "n$", "á")
elseif mw.ustring.find(args, "án$") then
resyll = mw.ustring.gsub(args, "án$", "á")
else resyll = args
end
elseif mw.ustring.find(args, "man$") then
nom_sg = string.gsub(args, "man$", "ma")
nom_pl = mw.ustring.gsub(args, "man$", "mān")
strongdu = args
loc_sg_stem = args
resyll = nom_sg
else
nom_sg = title
nom_pl = args .. "i" -- HSK 41.3 pp. 1882-1883
strongdu = args
loc_sg_stem = args
resyll = args
end
data.forms = {nom_sg}
data.forms = data.forms
data.forms = data.forms
data.forms = {args .. gen_sg_ending}
data.forms = data.forms
data.forms = {args.locsg or (loc_sg_stem .. "(i)")}
data.forms = {strongdu .. "iH"}
data.forms = data.forms
data.forms = data.forms
data.forms = {resyll .. "bʰyā́(m)"}
data.forms = data.forms
data.forms = data.forms
if not args.nopl then
data.forms = {nom_pl}
data.forms = data.forms
data.forms = data.forms
data.forms = {resyll .. "bʰíš"}
data.forms = {resyll .. "bʰyáH"}
data.forms = data.forms
data.forms = {args .. "áHam"}
data.forms = {resyll .. "hú"}
end
end
})
decl_data = {
params = {
= {},
= {},
},
}
setmetatable(decl_data, {__call = function(self, args, data)
data.decl_type = "neuter as-stem"
data.forms = {args .. "ah"}
data.forms = {args .. "ah"}
data.forms = {args .. "ah"}
data.forms = {args .. "ahaH"}
data.forms = {args .. "ahah"}
data.forms = {args .. "ahay"}
data.forms = {args .. "ahah"}
data.forms = {args .. "ahi"}
data.forms = {args .. "ahiH"}
data.forms = {args .. "ahiH"}
data.forms = data.forms
data.forms = {args .. "ahbʰyā(m)"}
data.forms = data.forms
data.forms = data.forms
data.forms = {args .. "ahHāh"}
data.forms = {args .. "ahHaw"}
if not args.nopl then
data.forms = {args .. "āh"}
data.forms = {args .. "āh"}
data.forms = {args .. "āh"}
data.forms = {args .. "ahbʰiš"}
data.forms = {args .. "ahbʰyas"}
data.forms = data.forms
data.forms = {args .. "ahaHam"}
data.forms = {args .. "ahu"}
end
table.insert(data.categories, "Proto-Iranian as-stem nouns")
end
})
decl_data = {
params = {
= {},
= {},
= {},
},
}
setmetatable(decl_data, {__call = function(self, args, data)
data.decl_type = "masculine/feminine i-stem"
data.forms = {args .. "íš"}
data.forms = {args .. "ay"}
data.forms = {args .. "ím"}
data.forms = {args .. "íH"}
data.forms = {args .. "áyš"}
data.forms = {args .. "áyay"}
data.forms = {args .. "áyš"}
data.forms = {args .. "ā́y"} -- HCHIEL p.1895: loc. *(H)agnā́y
data.forms = {args .. "íH"}
data.forms = {args .. "iH"}
data.forms = data.forms
data.forms = {args .. "íbʰyā(m)"}
data.forms = data.forms
data.forms = data.forms
data.forms = {args .. "iyā́h"}
data.forms = {args .. "iyáw"} -- HCHIEL p.1895: du.loc. *(H)agniy-áw
if not args.nopl then
data.forms = {args .. "áyah"}
data.forms = {args .. "ayah"}
data.forms = {args .. "ínš"}
data.forms = {args .. "íbʰiš"}
data.forms = {args .. "íbʰyah"}
data.forms = data.forms
data.forms = {args .. "iHnáHam"}
data.forms = {args .. "íšu"}
end
table.insert(data.categories, "Proto-Iranian i-stem nouns")
end
})
decl_data = {
params = {
= {},
= {},
= {},
},
}
setmetatable(decl_data, {__call = function(self, args, data)
decl_data(args, data)
data.decl_type = "neuter i-stem"
data.forms = {args .. "í"}
data.forms = {args .. "i"}
data.forms = data.forms
if not args.nopl then
data.forms = {args .. "íH"}
data.forms = {args .. "iH"}
data.forms = data.forms
end
end
})
decl_data = {
params = {
= {},
= {},
},
}
setmetatable(decl_data, {__call = function(self, args, data)
data.decl_type = "feminine iH-stem"
data.forms = {args .. "íHs"}
data.forms = {args .. "i"}
data.forms = {args .. "íHam"}
data.forms = {args .. "íHaH"}
data.forms = {args .. "íHah"}
data.forms = {args .. "íHay"}
data.forms = data.forms
data.forms = {args .. "íH"} -- HCHIEL p.1896 loc. *wr̥kī́
data.forms = {args .. "íHaH"}
data.forms = {args .. "iHaH"}
data.forms = data.forms
data.forms = {args .. "íHbʰyā(m)"}
data.forms = data.forms
data.forms = data.forms
data.forms = {args .. "íHāh"}
data.forms = {args .. "íHaw"}
if not args.nopl then
data.forms = {args .. "íHah"}
data.forms = {args .. "iHah"}
data.forms = data.forms
data.forms = {args .. "íHbʰiš"}
data.forms = {args .. "íHbʰyah"}
data.forms = data.forms
data.forms = {args .. "íHnaHam"}
data.forms = {args .. "íHsu"}
end
table.insert(data.categories, "Proto-Iranian iH-stem nouns")
end
})
decl_data = {
params = {
= {},
= {},
},
}
setmetatable(decl_data, {__call = function(self, args, data)
data.decl_type = "aH-stem"
data.forms = {args .. "áH"}
data.forms = {args .. "ay"}
data.forms = {args .. "ā́m"}
data.forms = {args .. "áH, -áyaH"}
data.forms = {args .. "áyaHh"}
data.forms = {args .. "áyaHy"}
data.forms = data.forms
data.forms = {args .. "áyaH"}
data.forms = {args .. "áy"}
data.forms = {args .. "ay"}
data.forms = data.forms
data.forms = {args .. "áHbʰyā(m)"}
data.forms = data.forms
data.forms = data.forms
data.forms = {args .. "áyHāh"}
data.forms = {args .. "áyHaw"}
if not args.nopl then
data.forms = {args .. "ā́h"}
data.forms = {args .. "āh"}
data.forms = data.forms
data.forms = {args .. "áHbʰiš"}
data.forms = {args .. "áHbʰyah"}
data.forms = data.forms
data.forms = {args .. "áHnaHam"}
data.forms = {args .. "áHhu"}
end
table.insert(data.categories, "Proto-Iranian aH-stem nouns")
end
})
decl_data = {
params = {
= {},
= {},
},
}
setmetatable(decl_data, {__call = function(self, args, data)
data.decl_type = "yaH-stem"
data.forms = {args .. "íH"}
data.forms = {args .. "i"}
data.forms = {args .. "íHm"}
data.forms = {args .. "yáH"}
data.forms = {args .. "yáHh"}
data.forms = {args .. "yáy"}
data.forms = data.forms
data.forms = data.forms
data.forms = {args .. "íH"}
data.forms = {args .. "iH"}
data.forms = data.forms
data.forms = {args .. "íHbʰyā(m)"}
data.forms = data.forms
data.forms = data.forms
data.forms = {args .. "íHāh"}
data.forms = {args .. "íHaw"}
if not args.nopl then
data.forms = {args .. "íHš"}
data.forms = {args .. "iHš"}
data.forms = data.forms
data.forms = {args .. "íHbʰiš"}
data.forms = {args .. "íHbʰyah"}
data.forms = data.forms
data.forms = {args .. "íHnaHam"}
data.forms = {args .. "íHsu"}
end
table.insert(data.categories, "Proto-Iranian yaH-stem nouns")
end
})
decl_data = {
params = {
= {},
= {},
},
}
setmetatable(decl_data, {__call = function(self, args, data)
data.decl_type = "uH-stem"
data.forms = {args .. "úHs"}
data.forms = {args .. "u"}
data.forms = {args .. "úHam"}
data.forms = {args .. "úHaH"}
data.forms = {args .. "úHah"}
data.forms = {args .. "úHay"}
data.forms = data.forms
data.forms = {args .. "úH"} -- HCHIEL p.1896 loc. *tanū́
if not args.nopl then
data.forms = {args .. "úHah"}
data.forms = {args .. "uHah"}
data.forms = data.forms
data.forms = {args .. "úHbʰiš"}
data.forms = {args .. "úHbʰyas"}
data.forms = data.forms
data.forms = {args .. "úHnaHam"}
data.forms = {args .. "úHsu"}
end
table.insert(data.categories, "Proto-Iranian uH-stem nouns")
end
})
decl_data = {
params = {
= {},
= {},
= {},
= {},
= {},
= {},
},
}
setmetatable(decl_data, {__call = function(self, args, data)
data.decl_type = "masculine u-stem"
local title = mw.title.getCurrentTitle().subpageText
local stem = mw.ustring.gsub(title, "š$", "")
if not args then args = stem end
local gen_sg_ending
if args then gen_sg_ending = "wáh" else gen_sg_ending = "áwš" end
data.forms = {stem .. "úš"}
data.forms = {stem .. "aw"}
data.forms = {stem .. "úm"}
data.forms = {args .. "úH"}
data.forms = {args .. gen_sg_ending}
data.forms = {args .. "áway"}
data.forms = data.forms
data.forms = {args .. "ā́w"}
data.forms = {stem .. "úH"}
data.forms = {stem .. "uH"}
data.forms = data.forms
data.forms = {args .. "úbʰyā(m)"}
data.forms = data.forms
data.forms = data.forms
data.forms = {args .. "uwā́h"}
data.forms = {args .. "uwáw"}
if not args.nopl then
data.forms = {stem .. "áwah"}
data.forms = {stem .. "awah"}
data.forms = {stem .. "únš"}
data.forms = {args .. "úbʰiš"}
data.forms = {args .. "úbʰyah"}
data.forms = data.forms
data.forms = {args .. "uHnáHam"}
data.forms = {args .. "úšu"}
end
table.insert(data.categories, "Proto-Iranian u-stem nouns")
end
})
decl_data = {
params = {
= {},
= {},
= {},
= {},
= {},
},
}
setmetatable(decl_data, {__call = function(self, args, data)
decl_data(args, data)
local title = mw.title.getCurrentTitle().subpageText
local stem = mw.ustring.gsub(title, "$", "")
data.decl_type = "neuter u-stem"
data.forms = {stem .. "ú"}
data.forms = {stem .. "u"}
data.forms = data.forms
if mw.ustring.find(stem, "ā́") then
debrugmann = mw.ustring.gsub(stem, "ā́", "á")
end
if debrugmann then strongdu = debrugmann else strongdu = stem end
data.forms = {strongdu .. "wiH"}
data.forms = data.forms
data.forms = data.forms
if not args.nopl then
data.forms = {stem .. "úH"}
data.forms = {stem .. "uH"}
data.forms = data.forms
end
end
})
decl_data = {
params = {
= {},
= {},
},
}
decl_data = {
params = {
= {},
= {},
},
}
setmetatable(decl_data, {__call = function(self, args, data)
data.decl_type = "r-stem"
data.forms = {args .. "ā́"}
data.forms = {args .. "ar"}
data.forms = {args .. "áram, *-ā́ram, *-r̥m"}
data.forms = {args .. "ráH"}
data.forms = {args .. "ŕ̥š, *-rás"}
data.forms = {args .. "ráy"}
data.forms = data.forms
data.forms = {args .. "ári"}
data.forms = {args .. "áraH, -ā́raH"}
data.forms = {args .. "araH, -āraH"}
data.forms = data.forms
data.forms = {args .. "ŕ̥bʰyā(m)"}
data.forms = data.forms
data.forms = data.forms
data.forms = {args .. "rā́s"}
data.forms = {args .. "ráw"}
if not args.nopl then
data.forms = {args .. "áras, -ā́ras"}
data.forms = {args .. "aras, -āras"}
data.forms = {args .. "ŕ̥nš"}
data.forms = {args .. "ŕ̥bʰiš"}
data.forms = {args .. "ŕ̥bʰyas"}
data.forms = data.forms
data.forms = {args .. "r̥náHam"}
data.forms = {args .. "ŕ̥šu"}
end
table.insert(data.categories, "Proto-Iranian r-stem nouns")
end
})
decl_data = {}
setmetatable(decl_data, {__call = function(self, args, data)
local word = mw.title.getCurrentTitle().subpageText
irreg_data = require("Module:ira-decl-noun/data/irreg")
if irreg_data.irreg then
irreg_data.irreg(args, data)
else
error("Irregular inflection not found. Please check Module:ira-decl-noun/data.")
end
table.insert(data.categories, "Proto-Iranian irregular nouns")
end
})
return decl_data