Module:xchc-noun: Difference between revisions

No edit summary
No edit summary
Line 22: Line 22:
local vowel = "[aeɛioɔuyø]"
local vowel = "[aeɛioɔuyø]"


local function me(foo, pat)
local function matche(foo, pat)
return foo:match(pat .. "ː?$")
local ipa = m_ipa.crux(foo)
return ipa:match(pat .. "ː?$")
end
end


Line 54: Line 55:
data.g = g
data.g = g
data.sg = ""
data.sg = ""
data.pau = me(wordpron(word), "[eiøy]") and "ч"
data.pau = matche(wordpron(word), "[eiøy]") and "ч"
  or me(wordpron(word), "[ɛa]") and "н"
  or matche(wordpron(word), "[ɛa]") and "н"
  or me(wordpron(word), "[uoɔ]") and "ӈ"
  or matche(wordpron(word), "[uoɔ]") and "ӈ"
  or gsubh("Bӈ","о̆","э̆",nil,nil,"о̆")
  or gsubh("Bӈ","о̆","э̆",nil,nil,"о̆")
data.pl = {
data.pl = {
["i"] = me(wordpron(word), voiceless) and gsubh("фBд","ө","э",nil,nil,"э") or gsubh("вBд","ө","э",nil,nil,"э"),
["i"] = matche(wordpron(word), voiceless) and gsubh("фBд","ө","э",nil,nil,"э") or gsubh("вBд","ө","э",nil,nil,"э"),
["a"] = me(wordpron(word), voiceless) and gsubh("шBд","о̆","э̆",nil,nil,"о̆") or gsubh("жBд","о̆","э̆",nil,nil,"о̆"),
["a"] = matche(wordpron(word), voiceless) and gsubh("шBд","о̆","э̆",nil,nil,"о̆") or gsubh("жBд","о̆","э̆",nil,nil,"о̆"),
}
}
Line 115: Line 116:
local decl = {
local decl = {
["nom"] = "",
["nom"] = "",
["acc"] = me(w_number[n_sh], vowel) and "дза" or me(w_number[n_sh], voiced) and "да" or "та",
["acc"] = matche(w_number[n_sh], vowel) and "дза" or matche(w_number[n_sh], voiced) and "да" or "та",
["dat"] = me(w_number[n_sh], vowel) and "ша" or me(w_number[n_sh], voiced) and "за" or "са",
["dat"] = matche(w_number[n_sh], vowel) and "ша" or matche(w_number[n_sh], voiced) and "за" or "са",
["gen"] = "ля",
["gen"] = "ля",
["ins"] = me(w_number[n_sh], vowel) and "лза" or gsubh("Bлз","ө", "э", nil, nil, "ө"),
["ins"] = matche(w_number[n_sh], vowel) and "лза" or gsubh("Bлз","ө", "э", nil, nil, "ө"),
["pro"] = gsubh("сBц","ө", "э", nil, nil, "ө"),
["pro"] = gsubh("сBц","ө", "э", nil, nil, "ө"),
["ade"] = "ляц",
["ade"] = "ляц",