Module:IPAc2-mh: Difference between revisions

Content deleted Content added
No edit summary
No edit summary
Line 525:
end
 
local JVJ_VOWELVOWEL_REFLEX
local JVK_VOWEL
local KVJ_VOWEL
local KVK_VOWEL
local QVJ_VOWEL
local QVK_VOWEL
local CVQ_VOWEL
local CVC_VOWEL
local GVC_VOWEL
local PHONETIC_GLIDE
local PHONETIC_IPA
Line 639 ⟶ 631:
else
-- Represent vowels neighboring pseudo-glides areas diphthongs regardless.
text = string_gsub(text,
"(_)([jGw])/([aEei])(@?)(.)([jGw])", substDiphthong)
Line 645 ⟶ 637:
"(.)([jGw])/([aEei])(@?)(_)([jGw])", substDiphthong)
if not CVC_VOWELVOWEL_REFLEX then
-- Vowels between two non-glides have the most predictable reflexes.
-- [f1]
if not CVC_VOWEL then
JVJ_VOWELlocal aEei = { "a", "E", "e", "i" }
JVK_VOWELlocal AEei = { "A", "E", "e", "i" }
KVJ_VOWELlocal AV7i = { "A", "V", "7", "i" }
KVK_VOWELlocal AV7M = { "A", "V", "7", "M" }
QVJ_VOWELlocal AV7u = { "A", "V", "7", "u" }
QVK_VOWELlocal AOou = { "A", "O", "o", "u" }
CVQ_VOWELlocal QOou = { "Q", "O", "o", "u" }
-- [F2[secondaryR]][f1]
CVC_VOWEL = CVC_VOWEL or {
local _jv_X = { JVJ_VOWELaEei, JVK_VOWELAEei, CVQ_VOWELQOou },
local njv_X = { KVJ_VOWELaEei, KVK_VOWELAV7i, CVQ_VOWELQOou },
local _Gv_X = { QVJ_VOWELAV7i, QVK_VOWELAV7M, CVQ_VOWELQOou }
local hGv_X = { AV7M, AV7M, AV7M }
local _wv_X = { AV7u, AOou, QOou }
local hjvtX = { aEei, aEei, QOou }
local hwv_X = { AV7M, AOou, QOou }
local hwvtX = { AV7M, AV7u, QOou }
vowel-- = CVC_VOWEL[F2[secondaryL]][F2[secondaryR]][F1[vowel]f1]
local _Xv__ = { _jv_X, _Gv_X, _wv_X }
local nXv__ = { njv_X, _Gv_X, hwv_X }
local hXv__ = { _jv_X, hGv_X, hwv_X }
local hXvt_ = { hjvtX, hGv_X, hwvtX }
local hXvr_ = { hjvtX, hGv_X, hwv_X }
-- [primaryR][F2[secondaryL]][F2[secondaryR]][f1]
local __vX_ = {
["p"] = _Xv__, ["t"] = _Xv__, ["k"] = _Xv__,
["m"] = _Xv__, ["n"] = _Xv__, ["N"] = _Xv__,
["r"] = _Xv__, ["l"] = _Xv__
}
local n_vX_ = {
["p"] = nXv__, ["t"] = nXv__, ["k"] = nXv__,
["m"] = nXv__, ["n"] = nXv__, ["N"] = nXv__,
["r"] = nXv__, ["l"] = nXv__
)}
local h_vX_ = {
["p"] = hXv__, ["t"] = hXvt_, ["k"] = hXv__,
["m"] = hXv__, ["n"] = hXv__, ["N"] = hXv__,
["r"] = hXvr_, ["l"] = hXv__
end}
-- [primaryL][primaryR][F2[secondaryL]][F2[secondaryR]][f1]
VOWEL_REFLEX = {
["p"] = __vX_, ["t"] = __vX_, ["k"] = __vX_,
["m"] = __vX_, ["n"] = n_vX_, ["N"] = __vX_,
["r"] = __vX_, ["l"] = n_vX_, ["h"] = h_vX_
}
end
-- Vowels between two non-glides have the most predictable reflexes.
text = string_gsub2(text, "([ptkmnNrl])(.)/([aEei])(@?)([ptkmnNrl])(.)",
function(primaryL, secondaryL, vowel, epenth, primaryR, secondaryR)
if return primaryL..secondaryL == "j" and..
VOWEL_REFLEX[primaryL][primaryR]
secondaryR == "G" and (
[F2[secondaryL]][F2[secondaryR]][F1[vowel]]..
primaryL == "n" or
return primaryL..secondaryL..vowel.. epenth..primaryR..secondaryR
primaryL == "l"
)
then
vowel = KVJ_VOWEL[F1[vowel]]
else
vowel = CVC_VOWEL[F2[secondaryL]][F2[secondaryR]][F1[vowel]]
end
return primaryL..secondaryL..vowel..epenth..primaryR..secondaryR
end
)
Line 752 ⟶ 771:
-- Untag certain sequences, exempting them from special reflexes.
text = string_gsub(text, "hj/([aEei][knNrl]w)", "hj%1")
text = string_gsub(text, "hj/a([tr]G)", "hja%1")
-- Special reflexes.
text = string_gsub(text, "w/("..V..")tG", function(vowel)
return "w"..QVJ_VOWEL[F1[vowel]].."tG"
end)
GVC_VOWEL = GVC_VOWEL or {
{ JVJ_VOWEL, JVK_VOWEL, CVQ_VOWEL },
{ KVK_VOWEL, KVK_VOWEL, KVK_VOWEL },
{ KVK_VOWEL, QVK_VOWEL, CVQ_VOWEL }
}
text = string_gsub(text, "([jw])/("..V..")(.)([jGw])",
function(secondaryL, vowel, primaryR, secondaryR)
return secondaryL..GVC_VOWEL
VOWEL_REFLEX["h"][primaryR]
[F2[secondaryL]]
[F2[secondaryL]][F2[secondaryR]][F1[vowel]]..
[F1[vowel]]..primaryR..secondaryR
end
)