Module:qlu-pron: Difference between revisions

No edit summary
No edit summary
Line 76: Line 76:


local function syllabify(word)
local function syllabify(word)
word = gsub(word, "(" .. consonants .. "*[rljw]?" .. vowels .. "+" .. consonants .. "-)", "·%1·")
local clusters = require("Module:table").listToSet({
"s[ptʈkfɸ]", "z[bdgβʤmnlr]",
"[fɸvβpbtʈdkg]r", "[fɸvβpbkg]l",
"[fɸvβszpbtʈdkgmnŋɲ][jw]",
"s[ptʈkfɸ]r", "z[bdg]r",
"s[pk]l", "zbl",
"[fɸvβpbtʈdkg]r[jw]"
})
for _, cluster in ipairs(clusters) do
word = gsub(word, "(" .. cluster .. vowels .. "+" .. consonants .. "-", "·%1·")
end
word = gsub(word, "(" .. consonants .. "-" .. vowels .. "+" .. consonants .. "-)", "·%1·")
word = gsub(word, "··", "·"); word = gsub(word, "·$", ""); word = gsub(word, "^·", "")
word = gsub(word, "··", "·"); word = gsub(word, "·$", ""); word = gsub(word, "^·", "")
word = gsub(word, "(" .. consonants .. ")·(" .. vowels .. ")", "·%1%2")
word = gsub(word, "(" .. consonants .. ")·(" .. vowels .. ")", "·%1%2")