Mô đun:njo-conj
Giao diện
- Trang mô đun này thiếu trang con tài liệu. Xin hãy tạo trang tài liệu này.
- Liên kết hữu ích: danh sách trang con • liên kết • nhúng • trường hợp kiểm thử • chỗ thử
local export = {}
local m_str_utils = require("Module:string utilities")
local m_table = require("Module:table")
local lang = require("Module:languages").getByCode("njo")
local gsub = m_str_utils.gsub
local len = m_str_utils.len
local match = m_str_utils.match
local sub = m_str_utils.sub
local find = m_str_utils.find
local char = m_str_utils.char
local upper = m_str_utils.upper
local lower = m_str_utils.lower
-- Generates the inflected forms of a verb
function conjugate(args)
local forms = {}
local pagename = mw.loadData("Module:headword/data").pagename
local root
if find(pagename, "^a") and not args["a"] then
root = gsub(pagename, "^a", "")
else
root = pagename
end
-- Applies affixes to form conjugated forms
forms.past = pagename
forms.past_neg = "me" .. pagename
forms.perf = root .. "ogo"
forms.perf_neg = "me" .. forms.perf
forms.pres = pagename .. "er"
forms.pres_neg = "me" .. forms.pres
forms.prog = root .. "dar"
forms.prog2 = root .. "dagi"
forms.prog_neg = "me" .. forms.prog
forms.prog_neg2 = "me" .. forms.prog2
forms.fut = pagename .. "tsü"
forms.fut_neg = "me" .. forms.fut
forms.imp = root .. "ang"
forms.imp_neg = "te" .. pagename
forms.cond = root .. "ra"
forms.cond2 = root .. "rabang"
forms.cond_neg = "me" .. forms.cond
forms.cond_neg2 = "me" .. forms.cond2
forms.prespart = root .. "a"
forms.prespart_neg = "me" .. root .. "i"
-- Post-processing of forms
local forms2 = {}
for tam, combo in pairs(forms) do
-- Remove series of vowels created by affixation where a stem boundary has a vowel
form = gsub(combo, "^([mt])e([ao])", "%1%2")
form = gsub(form, "aang$", "ang")
form = gsub(form, "aa$", "a-a")
form = gsub(form, "([aoiuü])er$", "%1r")
-- Irregular contracted forms
form = gsub(form, "^(m?)aruang$", "%1arung")
form = gsub(form, "^(m?)e?oogo$", "%1ogo")
forms2[tam] = form
end
return forms2
end
-- Inserts forms into a chart
function export.cchart(frame)
local parent_args = frame:getParent().args
local params = {
["a"] = {},
}
local args = require("Module:parameters").process(parent_args, params)
local forms = conjugate(args)
local pagename = mw.loadData("Module:headword/data").pagename
local table_top = mw.getCurrentFrame():expandTemplate{
title = 'inflection-table-top',
args = {
title = "Biến tố của ''" .. pagename .. "'' (Chungli)",
palette = 'blue',
tall = "yes"
},
}
local table_bottom = mw.getCurrentFrame():expandTemplate{
title= "inflection-table-bottom",
}
local chart
chart = table_top
chart = chart .. "! colspan=2| \n ! Khẳng định !! Phủ định \n|-\n"
chart = chart .. "! rowspan=2| Quá khứ \n ! Đơn \n| " .. forms.past .. " || " .. forms.past_neg .. "\n|-\n"
chart = chart .. "! Hoàn thành \n|" .. forms.perf .. " || " .. forms.perf_neg .. "\n|-\n"
chart = chart .. "! rowspan=2| Hiện tại \n ! Đơn \n |" .. forms.pres .. " || " .. forms.pres_neg .. "\n|-\n"
chart = chart .. "! Tiếp diễn \n |" .. forms.prog .. " <br/> " .. forms.prog2 .. " || " .. forms.prog_neg .. " <br/> " .. forms.prog_neg2 .. "\n|-\n"
chart = chart .. "! colspan=2| Tương lai/nguyên mẫu \n | " .. forms.fut .. " || " .. forms.fut_neg .. "\n|-\n"
chart = chart .. "! colspan=2| Mệnh lệnh \n|" .. forms.imp .. " || " .. forms.imp_neg .. "\n|-\n"
chart = chart .. "! colspan=2| Phân từ hiện tại \n | " .. forms.prespart .. " || " .. forms.prespart_neg .. "\n|-\n"
chart = chart .. "! colspan=2| Điều kiện \n | " .. forms.cond .. "<br/>" .. forms.cond2 .. " || " .. forms.cond_neg .. "<br/>" .. forms.cond_neg2 .. "\n"
chart = chart .. table_bottom
return chart
end
return export