Module:siwa-noun: Difference between revisions

From Linguifex
Jump to navigation Jump to search
No edit summary
mNo edit summary
Line 26: Line 26:


local stressedvowels = {
local stressedvowels = {
["ả"] = "a", ["a[ui]"] = "a", ["oa"] = "a", ["[eẻę]"] = "e", ["e[iu]"] = "e", ["ay"] = "e", ["[iỉ]"] = "i", ["i[aeou]"] = "i",
["ả"] = "a", ["a[ui]"] = "a", ["oa"] = "a", ["[eẻę]"] = "e", ["e[iu]"] = "e",
["[oỏõ]"] = "o", ["[oõ]u"] = "o", ["oi"] = "o", ["[uủ]"] = "u", ["u[oi]"] = "u", ["[yỷ]"] = "y", ["ů[ai]?"] = "y", ["ẻu"] = "y", ["ey"] = "y",
["ay"] = "e", ["[iỉ]"] = "i", ["i[aeou]"] = "i", ["[oỏõ]"] = "o", ["[oõ]u"] = "o",
["oi"] = "o", ["[uủ]"] = "u", ["u[oi]"] = "u", ["[yỷ]"] = "y", ["ů[ai]?"] = "y", ["ẻu"] = "y", ["ey"] = "y",
}
}



Revision as of 13:40, 4 February 2021



local export = {}

local m_u = require('Module:utilities')
local m_pron = require('Module:siwa-pron')
local m_data = require('Module:siwa-noun/data')

local sub = mw.ustring.sub
local find = mw.ustring.find
local gmatch = mw.ustring.gmatch
local gsub = mw.ustring.gsub
local u = mw.ustring.char
local split = mw.text.split
local gsplit = mw.text.gsplit

local UNRELEASED = u(0x031A) -- COMBINING LEFT ANGLE ABOVE. ̚
local vowel = "[iɪyeøɛœæauɔ̃ɑʊ]"

function syll_count(term)
	term = m_pron.crux(term, true, false, false)
	local xc = "[mnɲŋpbtdcɟkɡvðsɕzʑxɣhrlɬjw⁽ʰ⁾ʔː̥͡"..UNRELEASED.."]"
	local pattern = "(" .. xc .. "?" .. vowel .. "+ː?" .. xc .. "*)"
	local _, n = gsub(term, pattern, "%1")
	
	return n
end	

local stressedvowels = {
	["ả"] = "a", ["a[ui]"] = "a", ["oa"] = "a", ["[eẻę]"] = "e", ["e[iu]"] = "e",
	["ay"] = "e", ["[iỉ]"] = "i", ["i[aeou]"] = "i", ["[oỏõ]"] = "o", ["[oõ]u"] = "o",
	["oi"] = "o", ["[uủ]"] = "u", ["u[oi]"] = "u", ["[yỷ]"] = "y", ["ů[ai]?"] = "y", ["ẻu"] = "y", ["ey"] = "y",
}

local lenition = {
	["bb"] = "b", ["dd"] = "d", ["gg"] = "g",
}

local function detect_decl(word, sv, quality)
	if sv and quality then
		local decl = sv .. "-" .. quality
	end	
end

-- The main entry point.
-- This is the only function that can be invoked from a template.
function export.show(frame)
	local params = {
		[1] = { required = true },
		[2] = {},
	}
	
	local args = require("Module:parameters").process(frame:getParent().args, params)
	local stems = nil
	local decl_type = {}
	local word = mw.title.getCurrentTitle().title
	
	
	
	
end

return export