Module:ti-conj

local export = {} function export.default(frame) do local args = frame:getParent.args local tablo = [[		if args[1] ~= nil		then		local t = {}		-- perfect conjugations ገበረ		t[1] = string.format("mə %s %sa %s", args[1], args[2], args[3])		t[2] = string.format("%sä %sä %s ku",args[1], args[2], args[3])		t[3] = string.format("%sä %sä %s na",args[1], args[2], args[3])		t[4] = string.format("%sä %sä %s ka",args[1], args[2], args[3])		t[5] = string.format("%sä %sä %s kum",args[1], args[2], args[3])		t[6] = string.format("%sä %sä %s ki",args[1], args[2], args[3])		t[7] = string.format("%sä %sä %s kən",args[1], args[2], args[3])		t[8] = string.format("%sä %sä %sä",args[1], args[2], args[3])		t[9] = string.format("%sä %sä %su",args[1], args[2], args[3])		t[10] = string.format("%sä %sä %sä t",args[1], args[2], args[3])		t[11] = string.format("%sä %sä %sa",args[1], args[2], args[3])		--gerundive conjugations ገቢሩ		t[12] = string.format("%sä %si %sä",args[1], args[2], args[3])		t[13] = string.format("%sä %si %s na",args[1], args[2], args[3])		t[14] = string.format("%sä %si %s ka",args[1], args[2], args[3])		t[15] = string.format("%sä %si %s kum",args[1], args[2], args[3])		t[16] = string.format("%sä %si %s ki",args[1], args[2], args[3])		t[17] = string.format("%sä %si %s kən",args[1], args[2], args[3])		t[18] = string.format("%sä %si %su",args[1], args[2], args[3])		t[19] = string.format("%sä %si %som",args[1], args[2], args[3])		t[20] = string.format("%sä %si %sa",args[1], args[2], args[3])		t[21] = string.format("%sä %si %sän",args[1], args[2], args[3])		--imperfect conjugations ይገብር		t[22] = string.format("ʾə %sä %s %sə %s",args[1], args[2], args[2], args[3])		t[23] = string.format("nə %sä %s %sə %s",args[1], args[2], args[2], args[3])		t[24] = string.format("tə %sä %s %sə %s",args[1], args[2], args[2], args[3])		t[25] = string.format("tə %sä %s %su",args[1], args[2], args[3])		t[26] = string.format("tə %sä %s %si",args[1], args[2], args[3])		t[27] = string.format("tə %sä %s %sa",args[1], args[2], args[3])		t[28] = string.format("yə %sä %s %sə %s",args[1], args[2], args[2], args[3])		t[29] = string.format("yə %sä %s %su",args[1], args[2], args[3])		t[30] = string.format("tə %sä %s %sə %s",args[1], args[2], args[2], args[3])		t[31] = string.format("yə %sä %s %sa",args[1], args[2], args[3])		--jussive conjugations ይግበር		t[32] = string.format("ʾə %s %sä %s", args[1], args[2], args[3])		t[33] = string.format("nə %s %sä %s", args[1], args[2], args[3])		t[34] = string.format("tə %s %sä %s", args[1], args[2], args[3])		t[35] = string.format("tə %s %sä %su", args[1], args[2], args[3])		t[36] = string.format("tə %s %sä %si", args[1], args[2], args[3])		t[37] = string.format("tə %s %sä %sa", args[1], args[2], args[3])		t[38] = string.format("yə %s %sä %s", args[1], args[2], args[3])		t[39] = string.format("yə %s %sä %su", args[1], args[2], args[3])		t[40] = string.format("tə %s %sä %s", args[1], args[2], args[3])		t[41] = string.format("yə %s %sä %sa", args[1], args[2], args[3])		--affirmative command conjugations ግበር		t[42] = string.format("%sə %sä %s", args[1], args[2], args[3])		t[43] = string.format("%sə %sä %su", args[1], args[2], args[3])		t[44] = string.format("%sə %sä %si", args[1], args[2], args[3])		t[45] = string.format("%sə %sä %sa", args[1], args[2], args[3])		--negative command conjugations ኣይትግበር		t[46] = string.format("ʾa y tə %s %sä %s", args[1], args[2], args[3])		t[47] = string.format("ʾa y tə %s %sä %su", args[1], args[2], args[3])		t[48] = string.format("ʾa y tə %s %sä %si", args[1], args[2], args[3])		t[49] = string.format("ʾa y tə %s %sä %sa", args[1], args[2], args[3])		--t[22] = mw.ustring.gsub(t[22], "(%bbb)", function(a) return mw.ustring.sub(a,1,1) end)		local tm = {}		for var=1,49,1 do			tm[var] = mw.ustring.gsub(t[var], "(%bhh)", function(a) return mw.ustring.sub(a,1,1) end) --not actually used, doesn't double			tm[var] = mw.ustring.gsub(tm[var], "(l%sl)", function(a) return mw.ustring.sub(a,1,1) end)		--	tm[var] = mw.ustring.gsub(tm[var], "(%bḥḥ)", function(a) return mw.ustring.sub(a,1,1) end) --not used, the other letters that don't double won't appear			tm[var] = mw.ustring.gsub(tm[var], "(s%ss)", function(a) return mw.ustring.sub(a,1,1) end)			tm[var] = mw.ustring.gsub(tm[var], "(š%sš)", function(a) return mw.ustring.sub(a,1,1) end)			tm[var] = mw.ustring.gsub(tm[var], "(ḳ%sḳ)", function(a) return mw.ustring.sub(a,1,1) end)			tm[var] = mw.ustring.gsub(tm[var], "(b%sb)", function(a) return mw.ustring.sub(a,1,1) end)			tm[var] = mw.ustring.gsub(tm[var], "(t%st)", function(a) return mw.ustring.sub(a,1,1) end)			tm[var] = mw.ustring.gsub(tm[var], "(n%sn)", function(a) return mw.ustring.sub(a,1,1) end)			tm[var] = mw.ustring.gsub(tm[var], "(k%sk)", function(a) return mw.ustring.sub(a,1,1) end)			tm[var] = mw.ustring.gsub(tm[var], "(x%sx)", function(a) return mw.ustring.sub(a,1,1) end)			tm[var] = mw.ustring.gsub(tm[var], "(w%sw)", function(a) return mw.ustring.sub(a,1,1) end)			tm[var] = mw.ustring.gsub(tm[var], "(z%sz)", function(a) return mw.ustring.sub(a,1,1) end)			tm[var] = mw.ustring.gsub(tm[var], "(y%sy)", function(a) return mw.ustring.sub(a,1,1) end)			tm[var] = mw.ustring.gsub(tm[var], "(d%sd)", function(a) return mw.ustring.sub(a,1,1) end)			tm[var] = mw.ustring.gsub(tm[var], "(ǧ%sǧ)", function(a) return mw.ustring.sub(a,1,1) end)			tm[var] = mw.ustring.gsub(tm[var], "(g%sg)", function(a) return mw.ustring.sub(a,1,1) end)			tm[var] = mw.ustring.gsub(tm[var], "(ṭ%sṭ)", function(a) return mw.ustring.sub(a,1,1) end)			tm[var] = mw.ustring.gsub(tm[var], "(č%sč)", function(a) return mw.ustring.sub(a,1,1) end)			tm[var] = mw.ustring.gsub(tm[var], "(ṣ%sṣ)", function(a) return mw.ustring.sub(a,1,1) end)			tm[var] = mw.ustring.gsub(tm[var], "(f%sf)", function(a) return mw.ustring.sub(a,1,1) end)			tm[var] = mw.ustring.gsub(tm[var], "(ḳʰ%sḳʰ)", function(a) return mw.ustring.sub(a,1,2) end)			end		-- consonant characters that hypothetically double in verbs: hlḥsšḳʰbtnʾkxwʿzydǧgṭčṣf		local rtr = {			 ["hä"]="ሀ", ["hu"]="ሁ", ["hi"]="ሂ", ["ha"]="ሃ", ["he"]="ሄ", ["hə"]="ህ", ["ho"]="ሆ", ["h"]="ህ",	 ["lä"]="ለ", ["lu"]="ሉ", ["li"]="ሊ", ["la"]="ላ", ["le"]="ሌ", ["lə"]="ል", ["lo"]="ሎ", 		 ["lʷa"]="ሏ", ["l"]="ል",	 ["ḥä"]="ሐ", ["ḥu"]="ሑ", ["ḥi"]="ሒ", ["ḥa"]="ሓ", ["ḥe"]="ሔ", ["ḥə"]="ሕ", ["ḥo"]="ሖ", 		 ["ḥʷa"]="ሗ", ["ḥ"]="ሕ", 		 ["mä"]="መ", ["mu"]="ሙ", ["mi"]="ሚ", ["ma"]="ማ", ["me"]="ሜ", ["mə"]="ም", ["mo"]="ሞ", 		 ["mʷa"]="ሟ", ["mʲä"]="ፙ", 	 		 ["rä"]="ረ", ["ru"]="ሩ", ["ri"]="ሪ", ["ra"]="ራ", ["re"]="ሬ", ["rə"]="ር", ["ro"]="ሮ",		 ["rʷa"]="ሯ", ["rʲä"]="ፘ", 	 ["sä"]="ሰ", ["su"]="ሱ", ["si"]="ሲ", ["sa"]="ሳ", ["se"]="ሴ", ["sə"]="ስ", ["so"]="ሶ",		 ["sʷa"]="ሷ", 	 ["šä"]="ሸ", ["šu"]="ሹ", ["ši"]="ሺ", ["ša"]="ሻ", ["še"]="ሼ", ["šə"]="ሽ", ["šo"]="ሾ",		 ["šʷa"]="ሿ", 	 ["ḳä"]="ቀ", ["ḳu"]="ቁ", ["ḳi"]="ቂ", ["ḳa"]="ቃ", ["ḳe"]="ቄ", ["ḳə"]="ቅ", ["ḳo"]="ቆ",		 ["ḳʷä"]="ቈ", ["ḳʷi"]="ቊ", ["ḳʷa"]="ቋ", ["ḳʷe"]="ቌ", ["ḳʷə"]="ቍ", 	 ["ḳʰä"]="ቐ", ["ḳʰu"]="ቑ", ["ḳʰi"]="ቒ", ["ḳʰa"]="ቓ", ["ḳʰe"]="ቔ", ["ḳʰə"]="ቕ", ["ḳʰo"]="ቖ",		 ["ḳʰʷä"]="ቘ", ["ḳʰʷi"]="ቚ", ["ḳʰʷa"]="ቛ", ["ḳʰʷe"]="ቜ", ["ḳʰʷə"]="ቝ",	 ["bä"]="በ", ["bu"]="ቡ", ["bi"]="ቢ", ["ba"]="ባ", ["be"]="ቤ", ["bə"]="ብ", ["bo"]="ቦ", 		 ["bʷa"]="ቧ",  	 ["tä"]="ተ", ["tu"]="ቱ", ["ti"]="ቲ", ["ta"]="ታ", ["te"]="ቴ", ["tə"]="ት", ["to"]="ቶ", 		 ["tʷa"]="ቷ",  	 ["nä"]="ነ", ["nu"]="ኑ", ["ni"]="ኒ", ["na"]="ና", ["ne"]="ኔ", ["nə"]="ን", ["no"]="ኖ",		 ["nʷa"]="ኗ",  	 ["ʾä"]="አ", ["ʾu"]="ኡ", ["ʾi"]="ኢ", ["ʾa"]="ኣ", ["ʾe"]="ኤ", ["ʾə"]="እ", ["ʾo"]="ኦ", 	 ["kä"]="ከ", ["ku"]="ኩ", ["ki"]="ኪ", ["ka"]="ካ", ["ke"]="ኬ", ["kə"]="ክ", ["ko"]="ኮ", 		 ["kʷä"]="ኰ", ["kʷi"]="ኲ", ["kʷa"]="ኳ", ["kʷe"]="ኴ", ["kʷə"]="ኵ", 	 ["xä"]="ኸ", ["xu"]="ኹ", ["xi"]="ኺ", ["xa"]="ኻ", ["xe"]="ኼ", ["xə"]="ኽ", ["xo"]="ኾ",   ["xʷə"]="ዅ",	 ["wä"]="ወ", ["wu"]="ዉ", ["wi"]="ዊ", ["wa"]="ዋ", ["we"]="ዌ", ["wə"]="ው", ["wo"]="ዎ", 	 ["ʿä"]="ዐ", ["ʿu"]="ዑ", ["ʿi"]="ዒ", ["ʿa"]="ዓ", ["ʿe"]="ዔ", ["ʿə"]="ዕ", ["ʿo"]="ዖ", 	 ["zä"]="ዘ", ["zu"]="ዙ", ["zi"]="ዚ", ["za"]="ዛ", ["ze"]="ዜ", ["zə"]="ዝ", ["zo"]="ዞ",		 ["zʷa"]="ዟ", 	 ["yä"]="የ", ["yu"]="ዩ", ["yi"]="ዪ", ["ya"]="ያ", ["ye"]="ዬ", ["yə"]="ይ", ["yo"]="ዮ", 	 ["dä"]="ደ", ["du"]="ዱ", ["di"]="ዲ", ["da"]="ዳ", ["de"]="ዴ", ["də"]="ድ", ["do"]="ዶ",		 ["dʷa"]="ዷ", 	 ["ǧä"]="ጀ", ["ǧu"]="ጁ", ["ǧi"]="ጂ", ["ǧa"]="ጃ", ["ǧe"]="ጄ", ["ǧə"]="ጅ", ["ǧo"]="ጆ", 		 ["ǧʷa"]="ጇ", 	 ["gä"]="ገ", ["gu"]="ጉ", ["gi"]="ጊ", ["ga"]="ጋ", ["ge"]="ጌ", ["gə"]="ግ", ["go"]="ጎ",		 ["gʷä"]="ጐ", ["gʷi"]="ጒ", ["gʷa"]="ጓ", ["gʷe"]="ጔ", ["gʷə"]="ጕ",  	 ["ṭä"]="ጠ", ["ṭu"]="ጡ", ["ṭi"]="ጢ", ["ṭa"]="ጣ", ["ṭe"]="ጤ", ["ṭə"]="ጥ", ["ṭo"]="ጦ", 		 ["ṭʷa"]="ጧ", 	 ["č̣ä"]="ጨ", ["č̣u"]="ጩ", ["č̣i"]="ጪ", ["č̣a"]="ጫ", ["č̣e"]="ጬ", ["č̣ə"]="ጭ", ["č̣o"]="ጮ",		 ["č̣ʷa"]="ጯ", 	 ["ṣä"]="ጸ", ["ṣu"]="ጹ", ["ṣi"]="ጺ", ["ṣa"]="ጻ", ["ṣe"]="ጼ", ["ṣə"]="ጽ", ["ṣo"]="ጾ", 		 ["ṣʷa"]="ጿ", 	 ["fä"]="ፈ", ["fu"]="ፉ", ["fi"]="ፊ", ["fa"]="ፋ", ["fe"]="ፌ", ["fə"]="ፍ", ["fo"]="ፎ",		 ["fʷa"]="ፏ", ["fʲä"]="ፚ",  ["m"]="ም", ["r"]="ር", ["s"]="ስ", ["š"]="ሽ",["ḳ"]="ቅ", ["ḳʰ"]="ቕ", 		 ["b"]="ብ", ["t"]="ት", ["n"]="ን", ["ʾ"]="እ", ["k"]="ክ", ["x"]="ኽ", ["w"]="", ["ʿ"]="ዕ", ["z"]="ዝ",		 ["y"]="ይ", ["d"]="ድ", ["ǧ"]="ጅ", ["g"]="ግ", ["ṭ"]="ጥ", ["č̣"]="ጭ", ["ṣ"]="ጽ", ["f"]="ፍ",		}		local tf = {}		for var=1,49,1 do		tf[var] = mw.ustring.gsub(tm[var], "%a%a", rtr)		tf[var] = mw.ustring.gsub(tf[var],"." , rtr)		tf[var] = mw.ustring.gsub(tf[var], "%s+", "")		t[var] = mw.ustring.gsub(t[var], "%s+","")		end		local conjs = {			[""] = tf[1],			[""] = tf[2],			[""] = tf[3],			[""] = tf[4],			[""] = tf[5],			[""] = tf[6],			[""] = tf[7],			[""] = tf[8],			[""] = tf[9],			[""] = tf[10],			[""] = tf[11],			[""] = tf[12],			[""] = tf[13],			[""] = tf[14],			[""] = tf[15],			[""] = tf[16],			[""] = tf[17],			[""] = tf[18],			[""] = tf[19],			[""] = tf[20],			[""] = tf[21],			[""] = tf[22],			[""] = tf[23],			[""] = tf[24],			[""] = tf[25],			[""] = tf[26],			[""] = tf[27],			[""] = tf[28],			[""] = tf[29],			[""] = tf[30],			[""] = tf[31],			[""] = tf[32],			[""] = tf[33],			[""] = tf[34],			[""] = tf[35],			[""] = tf[36],			[""] = tf[37],			[""] = tf[38],			[""] = tf[39],			[""] = tf[40],			[""] = tf[41],			[""] = tf[42],			[""] = tf[43],			[""] = tf[44],			[""] = tf[45],			[""] = tf[46],			[""] = tf[47],			[""] = tf[48],			[""] = tf[49]		}		tablof = mw.ustring.gsub(tablo, "", conjs)		return tablof		else			local input = {			[""] = args["infinitive"],			[""] = args["perfect_1s"],			[""] = args["perfect_1p"],			[""] = args["perfect_2sm"],			[""] = args["perfect_2pm"],			[""] = args["perfect_2sf"],			[""] = args["perfect_2pf"],			[""] = args["perfect_3sm"],			[""] = args["perfect_3pm"],			[""] = args["perfect_3sf"],			[""] = args["perfect_3pf"],			[""] = args["gerundive_1s"],			[""] = args["gerundive_1p"],			[""] = args["gerundive_2sm"],			[""] = args["gerundive_2pm"],			[""] = args["gerundive_2sf"],			[""] = args["gerundive_2pf"],			[""] = args["gerundive_3sm"],			[""] = args["gerundive_3pm"],			[""] = args["gerundive_3sf"],			[""] = args["gerundive_3pf"],			[""] = args["imperfect_1s"],			[""] = args["imperfect_1p"],			[""] = args["imperfect_2sm"],			[""] =	args["imperfect_2pm"],			[""] = args["imperfect_2sf"],			[""]= args["imperfect_2pf"],			[""] = args["imperfect_3sm"],			[""] = args["imperfect_3pm"],			[""] = args["imperfect_3sf"],			[""] = args["imperfect_3pf"],

[""] = args["jussive_1s"], [""] = args["jussive_1p"], [""] = args["jussive_2sm"], [""] = args["jussive_2pm"], [""] =	args["jussive_2sf"], [""] = args["jussive_2pf"], [""] = args["jussive_3sm"], [""] = args["jussive_3pm"], [""] = args["jussive_3sf"], [""] = args["jussive_3pf"],

[""] = args["imperative_2sm"], [""] = args["imperative_2pm"], [""] = args["imperative_2sf"], [""] = args["imperative_2pf"], [""] = args["imperative_2smN"], [""] = args["imperative_2pmN"], [""] = args["imperative_2sfN"], [""] = args["imperative_2pfN"], }			tabloff = mw.ustring.gsub(tablo, "", input) return tabloff end end end return export