Module:User:Dixtosa/ka-conjugation

Hello, you have come here looking for the meaning of the word Module:User:Dixtosa/ka-conjugation. In DICTIOUS you will not only get to know all the dictionary meanings for the word Module:User:Dixtosa/ka-conjugation, but we will also tell you about its etymology, its characteristics and you will know how to say Module:User:Dixtosa/ka-conjugation in singular and plural. Everything you need to know about the word Module:User:Dixtosa/ka-conjugation you have here. The definition of the word Module:User:Dixtosa/ka-conjugation will help you to be more precise and correct when speaking or writing your texts. Knowing the definition ofModule:User:Dixtosa/ka-conjugation, as well as those of other words, enriches your vocabulary and provides you with more and better linguistic resources.

This is a private module sandbox of Dixtosa, for his own experimentation. Items in this module may be added and removed at Dixtosa's discretion; do not rely on this module's stability.


local export = {}

local dbg = require("Module:debug")
local strutils = require("Module:string utilities")
local conjugationTable = require("Module:User:Dixtosa/ka-conjugation/conjugation table") -- ]


-- Within this module, conjugation contain paradigms
-- They are defined further down.
local data = {}

--demistifying index
-- screeve number = index // 6
-- person = (index % 6) % 3
-- singularity = (index % 6) / 3
--demistifying value. it is just a pair of prefix and suffix
data = {
	screeves = {
{p = "ვა", s = "ებ"},
{p = "ა", s = "ებ"},
{p = "ა", s = "ებს"},
{p = "ვა", s = "ებთ"},
{p = "ა", s = "ებთ"},
{p = "ა", s = "ებენ"},
{p = "ვა", s = "ებდი"},
{p = "ა", s = "ებდი"},
{p = "ა", s = "ებდა"},
{p = "ვა", s = "ებდით"},
{p = "ა", s = "ებდით"},
{p = "ა", s = "ებდნენ"},
{p = "ვა", s = "ებდე"},
{p = "ა", s = "ებდე"},
{p = "ა", s = "ებდეს"},
{p = "ვა", s = "ებდეთ"},
{p = "ა", s = "ებდეთ"},
{p = "ა", s = "ებდნენ"},
{p = "(ა)ვა", s = "ებ"},
{p = "(ა)ა", s = "ებ"},
{p = "(ა)ა", s = "ებს"},
{p = "(ა)ვა", s = "ებთ"},
{p = "(ა)ა", s = "ებთ"},
{p = "(ა)ა", s = "ებენ"},
{p = "(ა)ვა", s = "ებდი"},
{p = "(ა)ა", s = "ებდი"},
{p = "(ა)ა", s = "ებდა"},
{p = "(ა)ვა", s = "ებდით"},
{p = "(ა)ა", s = "ებდით"},
{p = "(ა)ა", s = "ებდნენ"},
{p = "(ა)ვა", s = "ებდე"},
{p = "(ა)ა", s = "ებდე"},
{p = "(ა)ა", s = "ებდეს"},
{p = "(ა)ვა", s = "ებდეთ"},
{p = "(ა)ა", s = "ებდეთ"},
{p = "(ა)ა", s = "ებდნენ"},
{p = "(ა)ვა", s = "ე"},
{p = "(ა)ა", s = "ე"},
{p = "(ა)ა", s = "ა"},
{p = "(ა)ვა", s = "ეთ"},
{p = "(ა)ა", s = "ეთ"},
{p = "(ა)ა", s = "ეს"},
{p = "(ა)ვა", s = "ო"},
{p = "(ა)ა", s = "ო"},
{p = "(ა)ა", s = "ოს"},
{p = "(ა)ვა", s = "ოთ"},
{p = "(ა)ა", s = "ოთ"},
{p = "(ა)ა", s = "ონ"},
{p = "(ა)მი", s = "ებია"},
{p = "(ა)გი", s = "ებია"},
{p = "(ა)უ", s = "ებია"},
{p = "(ა)გვი", s = "ებია"},
{p = "(ა)გი", s = "ებიათ"},
{p = "(ა)უ", s = "ებიათ"},
{p = "(ა)მე", s = "ებინა"},
{p = "(ა)გე", s = "ებინა"},
{p = "(ა)ე", s = "ებინა"},
{p = "(ა)გვე", s = "ებინა"},
{p = "(ა)გე", s = "ებინათ"},
{p = "(ა)ე", s = "ებინათ"},
{p = "(ა)მე", s = "ებინოს"},
{p = "(ა)გე", s = "ებინოს"},
{p = "(ა)ე", s = "ებინოს"},
{p = "(ა)გვე", s = "ებინოს"},
{p = "(ა)გე", s = "ებინოთ"},
{p = "(ა)ე", s = "ებინოთ"}
},
	imperative = {{p = "", s = ""}},
	leftStripLemmaSize = 1,
	rightStripLemmaSize = 3
}

data = {
	screeves = {
{p = "ვა", s = "ებ"},
{p = "ა", s = "ებ"},
{p = "ა", s = "ებს"},
{p = "ვა", s = "ებთ"},
{p = "ა", s = "ებთ"},
{p = "ა", s = "ებენ"},
{p = "ვა", s = "ებდი"},
{p = "ა", s = "ებდი"},
{p = "ა", s = "ებდა"},
{p = "ვა", s = "ებდით"},
{p = "ა", s = "ებდით"},
{p = "ა", s = "ებდნენ"},
{p = "ვა", s = "ებდე"},
{p = "ა", s = "ებდე"},
{p = "ა", s = "ებდეს"},
{p = "ვა", s = "ებდეთ"},
{p = "ა", s = "ებდეთ"},
{p = "ა", s = "ებდნენ"},
{p = "ავა", s = "ებ"},
{p = "აა", s = "ებ"},
{p = "აა", s = "ებს"},
{p = "ავა", s = "ებთ"},
{p = "აა", s = "ებთ"},
{p = "აა", s = "ებენ"},
{p = "ავა", s = "ებდი"},
{p = "აა", s = "ებდი"},
{p = "აა", s = "ებდა"},
{p = "ავა", s = "ებდით"},
{p = "აა", s = "ებდით"},
{p = "აა", s = "ებდნენ"},
{p = "ავა", s = "ებდე"},
{p = "აა", s = "ებდე"},
{p = "აა", s = "ებდეს"},
{p = "ავა", s = "ებდეთ"},
{p = "აა", s = "ებდეთ"},
{p = "აა", s = "ებდნენ"},
{p = "ავა", s = "ე"},
{p = "აა", s = "ე"},
{p = "აა", s = "ა"},
{p = "ავა", s = "ეთ"},
{p = "აა", s = "ეთ"},
{p = "აა", s = "ეს"},
{p = "ავა", s = "ო"},
{p = "აა", s = "ო"},
{p = "აა", s = "ოს"},
{p = "ავა", s = "ოთ"},
{p = "აა", s = "ოთ"},
{p = "აა", s = "ონ"},
{p = "ამი", s = "ებია"},
{p = "აგი", s = "ებია"},
{p = "აუ", s = "ებია"},
{p = "აგვი", s = "ებია"},
{p = "აგი", s = "ებიათ"},
{p = "აუ", s = "ებიათ"},
{p = "ამე", s = "ებინა"},
{p = "აგე", s = "ებინა"},
{p = "აე", s = "ებინა"},
{p = "აგვე", s = "ებინა"},
{p = "აგე", s = "ებინათ"},
{p = "აე", s = "ებინათ"},
{p = "ამე", s = "ებინოს"},
{p = "აგე", s = "ებინოს"},
{p = "აე", s = "ებინოს"},
{p = "აგვე", s = "ებინოს"},
{p = "აგე", s = "ებინოთ"},
{p = "აე", s = "ებინოთ"}},
	imperative = {{p = "", s = ""}},
	leftStripLemmaSize = 1,
	rightStripLemmaSize = 3
}


data = {
	screeves = {{p = "ვ", s = "ი"},
{p = "", s = "ი"},
{p = "", s = "ის"},
{p = "ვ", s = "ით"},
{p = "", s = "ით"},
{p = "", s = "იან"},
{p = "ვ", s = "იდი"},
{p = "", s = "იდი"},
{p = "", s = "იდა"},
{p = "ვ", s = "იდით"},
{p = "", s = "იდით"},
{p = "", s = "იდნენ"},
{p = "ვ", s = "იდე"},
{p = "", s = "იდე"},
{p = "", s = "იდეს"},
{p = "ვ", s = "იდეთ"},
{p = "", s = "იდეთ"},
{p = "", s = "იდნენ"},
{p = "გავ", s = "ი"},
{p = "გა", s = "ი"},
{p = "გა", s = "ის"},
{p = "გავ", s = "ით"},
{p = "გა", s = "ით"},
{p = "გა", s = "იან"},
{p = "გავ", s = "იდი"},
{p = "გა", s = "იდი"},
{p = "გა", s = "იდა"},
{p = "გავ", s = "იდით"},
{p = "გა", s = "იდით"},
{p = "გა", s = "იდნენ"},
{p = "გავ", s = "იდე"},
{p = "გა", s = "იდე"},
{p = "გა", s = "იდეს"},
{p = "გავ", s = "იდეთ"},
{p = "გა", s = "იდეთ"},
{p = "გა", s = "იდნენ"},
{p = "გავ", s = "ე"},
{p = "გა", s = "ე"},
{p = "გა", s = "ა"},
{p = "გავ", s = "ეთ"},
{p = "გა", s = "ეთ"},
{p = "გა", s = "ეს"},
{p = "გავ", s = "ო"},
{p = "გა", s = "ო"},
{p = "გა", s = "ოს"},
{p = "გავ", s = "ოთ"},
{p = "გა", s = "ოთ"},
{p = "გა", s = "ონ"},
{p = "გამი", s = "ია"},
{p = "გაგი", s = "ია"},
{p = "გაუ", s = "ია"},
{p = "გაგვი", s = "ია"},
{p = "გაგი", s = "იათ"},
{p = "გაუ", s = "იათ"},
{p = "გამე", s = "ა"},
{p = "გაგე", s = "ა"},
{p = "გაე", s = "ა"},
{p = "გაგვე", s = "ა"},
{p = "გაგე", s = "ათ"},
{p = "გაე", s = "ათ"},
{p = "გამე", s = "ოს"},
{p = "გაგე", s = "ოს"},
{p = "გაე", s = "ოს"},
{p = "გაგვე", s = "ოს"},
{p = "გაგე", s = "ოთ"},
{p = "გაე", s = "ოთ"}},
	imperative = {{p = "", s = ""}},
	leftStripLemmaSize = 0,
	rightStripLemmaSize = 2
}

local screeves = {
	 = 1,  = 2,  = 3,
	 = 4,  = 5,  = 6,
	 = 7,  = 8,
	 = 9,  = 10,  = 11
}

function getAffixes(conj, formName, person, number)
	local index = (screeves - 1) * 6
	if number == "pl" then index = index + 3 end
	index = index + person - 1
	--mw.log(index)
	return conj
end

forms = {}
function applyConjugation(conj, lemma)
	local stem = mw.ustring.sub(lemma, 1 + conj.leftStripLemmaSize, mw.ustring.len(lemma) - conj.rightStripLemmaSize)
	
	forms = lemma
	
	forms = ""
	forms = ""
	
	forms = ""
	forms = ""
	forms = ""
	forms = ""
	
	for screeve, _ in pairs(screeves) do
		for _, person in ipairs({1, 2, 3}) do 
			for _, number in ipairs({"sg", "pl"}) do
				local affixes = getAffixes(conj, screeve, person, number)
				local prefix = affixes.p;
				local suffix = affixes.s;
				local name = screeve .. person .. number
				
				forms = prefix .. stem .. suffix
			end
		end
	end
end


-- The main entry point.
-- This is the only function that can be invoked from a template.
function export.main(frame)
	local args = frame:getParent().args
	local class = args
	lemma = args.term or mw.title.getCurrentTitle().text --PAGENAME
	applyConjugation(data, lemma)
	
	--return dbg.dump(forms)
	return strutils.format(conjugationTable.template, forms)
end


return export