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


local lang = require("Module:languages").getByCode("eu")

local export = {}

-- Table-generating functions
local function make_table(data)
	-- copied from ]
	local function repl(param)
		local forms = data.forms
		
		if not forms then
			return "—"
		end
		
		local ret = {}
		
		for key, subform in ipairs(forms) do
			table.insert(ret, require("Module:links").full_link({lang = lang, term = subform}))
		end
		
		return table.concat(ret, ", ")
	end
	
	local wikicode = mw.getCurrentFrame():expandTemplate{ 
		title = 'inflection-table-top', 
		args = {
			title = data.info,
			tall = 'yes',
			palette = 'blue'
		}
	} .. [=[
! absolutive
| style="max-width: 20em" | {{{absv}}}
|-
! ergative
| style="max-width: 20em" | {{{erg}}}
|-
! dative
| style="max-width: 20em" | {{{dat}}}
|-
! genitive
| style="max-width: 20em" | {{{gen}}}
|-
! comitative
| style="max-width: 20em" | {{{com}}}
|-
! causative
| style="max-width: 20em" | {{{caus}}}
|-
! benefactive
| style="max-width: 20em" | {{{ben}}}
|-
! instrumental
| style="max-width: 20em" | {{{ins}}}
|-
! inessive
| style="max-width: 20em" | {{{ine}}}
|-
! locative
| style="max-width: 20em" | {{{loc}}}
|-
! allative
| style="max-width: 20em" | {{{all}}}
|-
! terminative
| style="max-width: 20em" | {{{ter}}}
|-
! directive
| style="max-width: 20em" | {{{directive}}}
|-
! destinative
| style="max-width: 20em" | {{{destinative}}}
|-
! ablative
| style="max-width: 20em" | {{{abl}}}
]=] .. mw.getCurrentFrame():expandTemplate{ title = 'inflection-table-bottom' }

	res, n = mw.ustring.gsub(wikicode, "{{{(+)}}}", repl)
	return res
end

local function generate_forms_a(data, base)
	
	data.forms = {base}
	data.forms = {base .. "k"}
	data.forms = {base .. "ri"}
	data.forms = {base .. "re"}
	data.forms = {base .. "rekin"}
	data.forms = {base .. "gatik", base .. "regatik"}
	data.forms = {base .. "retzat", base .. "retako"}
	data.forms = {base .. "taz"}
	
	-- inessive
	if is_emphatic then
		if base == 'neu' then
			data.forms = {base .. "gan"}
		elseif base == 'heu' then
			data.forms = {base .. "regan", base .. "re baitan"}
		else
			data.forms = {base .. "gan", base .. "regan"}
		end
	else
		data.forms = {base .. "gan", base .. "regan", base .. "re baitan", base .. "tan"}
	end
	
	-- locative
	data.forms = {base .. "re baitako"}
	if base == 'zu' or base == 'gu' then
		table.insert(data.forms, 1, base .. " baitako")
	end
	
	-- allative
	if is_emphatic then
		if base == 'neu' then
			data.forms = {base .. "regana"}
		elseif base == 'heu' then
			data.forms = {base .. "gana", base .. "regana",
				base .. "re baitat", base .. "re baitarat"}
		else
			data.forms = {base .. "gana", base .. "regana"}
		end
	else
		if base == 'zu' or base == 'gu' then
			data.forms = {base .. "gana", base .. "regana",
				base .. "ganat", base .. "reganat",
				base .. " baitara", base .. "re baitara",
				base .. " baitarat", base .. "re baitarat"}
		else
			data.forms = {base .. "regana", base .. "reganat",
				base .. "re baitara", base .. "re baitarat"}
		end
	end
	
	-- terminative
	if is_emphatic then
		if base == 'neu' then
			data.forms = {base .. "regaino"}
		elseif base == 'heu' then
			data.forms = {base .. "ganaino", base .. "reganaino",
				base .. "re baitaraino"}
		else
			data.forms = {base .. "ganaino", base .. "reganaino"}
		end
	else
		if base == 'ni' then
			data.forms = {base .. "reganaino", base .. "re baitaraino"}
		elseif base == 'hi' then
			data.forms = {base .. "ganaino", base .. "reganaino",
				base .. "re baitaraino"}
		else
			data.forms = {base .. "ganaino", base .. "reganaino",
				base .. " baitaraino", base .. "re baitaraino"}
		end
	end

	-- directive and destinative
	if base == 'neu' then
		data.forms = {base .. "ganantz"}
		data.forms = {base .. "reganako"}
	else
		data.forms = {base .. "ganantz", base .. "reganantz"}
		data.forms = {base .. "ganako", base .. "reganako"}
	end
	
	-- ablative
	if is_emphatic then
		if base == 'neu' then
			data.forms = {base .. "ganik", base .. "gandik"}
		elseif base == 'heu' then
			data.forms = {base .. "ganik", base .. "reganik",
				base .. "gandik", base .. "regandik",
				base .. "re baitatik", base .. "re baitarik"}
		else
			data.forms = {base .. "ganik", base .. "reganik",
				base .. "gandik", base .. "regandik"}
		end
	else
		if base == 'ni' then
			data.forms = {base .. "reganik", base .. "regandik",
				base .. "re baitatik", base .. "re baitarik"}
		elseif base == 'hi' then
			data.forms = {base .. "ganik", base .. "reganik",
				base .. "gandik", base .. "regandik",
				base .. "re baitatik", base .. "re baitarik"}
		else
			data.forms = {base .. "ganik", base .. "reganik",
				base .. "gandik", base .. "regandik",
				base .. " baitatik", base .. " baitarik",
				base .. "re baitatik", base .. "re baitarik"}
		end
	end
	
end

local function generate_forms_b(data, base)
	
	data.forms = {base .. "ek"}
	data.forms = {base .. "ek"}
	data.forms = {base .. "ei"}
	data.forms = {base .. "en"}
	data.forms = {base .. "ekin"}
	data.forms = {base .. "engatik"}
	data.forms = {base .. "entzat", base .. "endako"}
	data.forms = {base .. "etaz"}
	data.forms = {base .. "en baitako"}
	
	if is_emphatic then
		data.forms = {base .. "engan"}
	else
		data.forms = {base .. "engan", base .. "en baitan", base .. "etan"}
	end
	
	if is_emphatic then
		data.forms = {base .. "engana"}
	else
		data.forms = {base .. "engana", base .. "enganat",
			base .. "en baitara", base .. "en baitarat"}
	end
	
	if is_emphatic then
		data.forms = {base .. "enganaino"}
	else
		data.forms = {base .. "enganaino", base .. "en baitaraino"}
	end
	
	data.forms = {base .. "enganantz"}
	data.forms = {base .. "enganako"}
	
	if is_emphatic then
		data.forms = {base .. "enganik", base .. "engandik"}
	else
		data.forms = {base .. "enganik", base .. "engandik", 
			base .. "en baitatik", base .. "en baitarik"}
	end
	
end

local function append_ene_forms(data) 
	
	table.insert(data.forms, "ene")
	table.insert(data.forms, "enekin")
	table.insert(data.forms, "enegatik")
	
	table.insert(data.forms, "enetzat")
	table.insert(data.forms, "enetako")
	
	table.insert(data.forms, "enegan")
	table.insert(data.forms, "ene baitan")
	
	table.insert(data.forms, "ene baitako")
	
	table.insert(data.forms, "enegana")
	table.insert(data.forms, "eneganat")
	table.insert(data.forms, "ene baitara")
	table.insert(data.forms, "ene baitarat")
	
	table.insert(data.forms, "eneganaino")
	table.insert(data.forms, "ene baitaraino")
	
	table.insert(data.forms, "eneganantz")
	table.insert(data.forms, "eneganako")
	
	table.insert(data.forms, "eneganik")
	table.insert(data.forms, "enegandik")
	table.insert(data.forms, "ene baitatik")
	table.insert(data.forms, "ene baitarik")
end

function export.decl(frame)
	local args = frame:getParent().args

	local title = mw.title.getCurrentTitle().text
	local base = nil
	if title == "eu-decl-pron" then
		base = "ni"  -- for demonstration purposes on the template page
	else
		base = title
	end
	
	local data = {
		forms = {},
		info = "Declension of " .. require("Module:links").full_link({lang = lang, alt = base}, "term"),
	}

	if base == "ni" or base == "hi" or base == "zu" or base == "gu" then
		generate_forms_a(data, base)
		if base == "ni" then
			append_ene_forms(data)
		end
	elseif base == "zuek" then
		generate_forms_b(data, "zu")
	elseif base == "neu" or base == "heu" or base == "zeu" or base == "geu" then
		generate_forms_a(data, base:sub(1, 1) .. "eu")
	elseif base == "zeuek" then
		generate_forms_b(data, "zeu")
	else
		error("Template is used on invalid page")
	end
	
	
	return make_table(data)
end

return export