Module:hy-common

-- This module holds some commonly used functions for the Armenian language. It contains invokable functions for use in templates.

local export = {}

--find if the last letter is a vowel, so that the declension template can suppress a certain impossible inflected form

function export.vowend(frame) local vowels = { ["ա"] = true, ["ե"] = true, ["է"] = true, ["ի"] = true, ["ո"] = true, ["օ"] = true, }	local vowels2 = {["ու"] = true} local pagename = frame.args[1] if vowels[mw.ustring.sub(pagename, -1)] then return ""..pagename.."ն" end if vowels2[mw.ustring.sub(pagename, -2)] then return ""..pagename.."ն" end

return ""..pagename.."ը/"..pagename.."ն" end

--check if starts with a vowel except for <ո> [vo]; used for Western verb conjugation

function export.vowstart(frame) local vowels = { ["ա"] = true, ["ե"] = true, ["է"] = true, ["ի"] = true, ["օ"] = true, ["ը"] = true, }	local vowels2 = {["ու"] = true} local pagename = frame.args[1] if vowels[mw.ustring.sub(pagename, 1,1)] then return 1 end if vowels2[mw.ustring.sub(pagename, 1,2)] then return 1 end return 0 end

--remove the ending -ել/ալ

function export.elal(frame) local pagename = frame.args[1] return mw.ustring.sub(pagename,1,-3) end

--remove the ending -նել/նալ/չել/ուլ

function export.soskacanc(frame) local pagename = frame.args[1] return mw.ustring.sub(pagename,1,-4) end

--replace the ending -ի with ել

function export.ilToEl(frame) local pagename = frame.args[1] local endsinIl = {["իլ"] = true} if endsinIl[mw.ustring.sub(pagename, -2)] then return (pagename:gsub("իլ$", "ել")) end return ""..pagename.."" end

--remove the ending -ցնել

function export.cnel(frame) local pagename = frame.args[1] return mw.ustring.sub(pagename,1,-5) end

--remove the ending -ություն

function export.utyun(frame) local pagename = frame.args[1] return mw.ustring.sub(pagename,1,-8) end

--remove the ending -ութիւն

function export.utiwn(frame) local pagename = frame.args[1] return mw.ustring.sub(pagename,1,-7) end

--remove the ending -ի for u-declension nouns

function export.i(frame) local lastvowel = {["ի"] = true} local pagename = frame.args[1] if lastvowel[mw.ustring.sub(pagename, -1)] then return mw.ustring.sub(pagename,1,-2) end

return ""..pagename.."" end

--remove the ending -ա for i/u-declension nouns in the Yerevan dialect

function export.a(frame) local lastvowel = {["ա"] = true} local pagename = frame.args[1] if lastvowel[mw.ustring.sub(pagename, -1)] then return mw.ustring.sub(pagename,1,-2) end

return ""..pagename.."" end

--insert the glide -յ- for nouns ending in -a and -o

function export.glide(frame) local vowels = { ["ա"] = true, ["ո"] = true, ["օ"] = true, }	local pagename = frame.args[1] if vowels[mw.ustring.sub(pagename, -1)] then return "յ" end end

--deletee the glide -յ- for nouns that are polysyllabic and take -ներ (for Western)

function export.glideDelete(frame) local lastglide = {["յ"] = true} local pagename = frame.args[1] if lastglide[mw.ustring.sub(pagename, -1)] then return mw.ustring.sub(pagename,1,-2) end

return ""..pagename.."" end

-- replace final -ում with -մ for n-declension nouns function export.um(frame) local pagename = frame.args[1] return (pagename:gsub("ում$", "մ")) end

-- replace final -իւն with -ե for n-declension nouns in Old Armenian function export.iwn(frame) local pagename = frame.args[1] return (pagename:gsub("իւն$", "ե")) end

return export