Module:Test: Difference between revisions
From Allocosm
|  (Created page with " require('Module:Test/data')  export = {}  function export.get_forms(head,vowel,tail_str)  --	if root_str == nil then --		error("Root is required") --	end 	 	local forms = {} 	local tail = {} 	local patterns = {} 	 --	root_str = string.gsub(root_str,"-","")  --	local root = m_cu.parse_root(root_str,true) 	 	tail =  mw.text.split(tail_str,"-") 	 	if #tail == 1 then 		patterns = NOMOD_PATTERNS 	elseif #tail == 2 then 		patterns = ONEMOD_PATTERNS 	elseif #tail == 3 then 		p...") | No edit summary | ||
| Line 4: | Line 4: | ||
| export = {} | export = {} | ||
| function export.get_forms( | function export.get_forms(root,mod,manual) | ||
| 	mod = mod or '' | |||
| 	local forms = {} | 	local forms = {} | ||
| 	local patterns = {} | 	local patterns = {} | ||
| 	local head = "" | |||
| 	local vowel = "" | |||
| 	local root = m_cu.parse_root(root..mod,true) | |||
| 	local tail =  mw.text.split(root[#root],"-") | |||
| 	if #root == 1 then | |||
| 		--TBD | |||
| 	elseif #root == 2 then | |||
| 		vowel = root[1] | |||
| 	else | |||
| 		table.remove(root,#root) | |||
| 		vowel = root[#root] | |||
| 		table.remove(root,#root) | |||
| 		head = table.concat(root) | |||
| 	end | |||
| 	if #tail == 1 then | 	if #tail == 1 then | ||
| Line 28: | Line 36: | ||
| 	end | 	end | ||
| 	for k,v in pairs( | 	for k,v in pairs(patterns) do | ||
| 		forms[k] = string.gsub(v,"C",head) | 		forms[k] = string.gsub(v,"C",head) | ||
| 		forms[k] = string.gsub(forms[k],"V",vowel) | 		forms[k] = string.gsub(forms[k],"V",vowel) | ||
| 		forms[k] = string.gsub(forms[k],"1",tail[1]) | 		forms[k] = string.gsub(forms[k],"1",tail[1]) | ||
| 		forms[k] = string.gsub(forms[k],"2",tail[2]) | 		forms[k] = string.gsub(forms[k],"2",tail[2] or '') | ||
| 		forms[k] = string.gsub(forms[k],"3",tail[3]) | 		forms[k] = string.gsub(forms[k],"3",tail[3] or '') | ||
| 	end | |||
| 	for k,v in pairs(forms) do | |||
| 		forms[k] = m_cu.assimilate(v) | |||
| 	end | |||
| 	for k,v in pairs(manual) do | |||
| 		forms[k] = v | |||
| 	end | 	end | ||
Revision as of 03:56, 11 February 2024
Documentation for this module may be created at Module:Test/doc
require('Module:Test/data')
export = {}
function export.get_forms(root,mod,manual)
	mod = mod or ''
	
	local forms = {}
	local patterns = {}
	
	local head = ""
	local vowel = ""
	
	local root = m_cu.parse_root(root..mod,true)
	
	local tail =  mw.text.split(root[#root],"-")
	
	if #root == 1 then
		--TBD
	elseif #root == 2 then
		vowel = root[1]
	else
		table.remove(root,#root)
		vowel = root[#root]
		table.remove(root,#root)
		head = table.concat(root)
	end
	
	if #tail == 1 then
		patterns = NOMOD_PATTERNS
	elseif #tail == 2 then
		patterns = ONEMOD_PATTERNS
	elseif #tail == 3 then
		patterns = TWOMOD_PATTERNS
	end
	
	for k,v in pairs(patterns) do
		forms[k] = string.gsub(v,"C",head)
		forms[k] = string.gsub(forms[k],"V",vowel)
		forms[k] = string.gsub(forms[k],"1",tail[1])
		forms[k] = string.gsub(forms[k],"2",tail[2] or '')
		forms[k] = string.gsub(forms[k],"3",tail[3] or '')
	end
	for k,v in pairs(forms) do
		forms[k] = m_cu.assimilate(v)
	end
	
	for k,v in pairs(manual) do
		forms[k] = v
	end
	mw.logObject(forms)
	return forms
end
return export
