text:
Module:grc-decl/decl/staticdata

--	Abbreviations and codes used in declension names:	- accent		- nothing: oxytone		- pax: paroxytone		- prx: proparoxytone		- con: perispomenon	- contraction		- con: contracted (perispomenon)		- open: uncontracted	- the characteristics of the ending (historically the stem)		- 1st declension			- alp: long alpha			- eta: eta			- als: long alpha, but short alpha in nominative and accusative singular			- als: eta, but short alpha in nominative and accusative singular		- 3rd declension			- pure: begins with ι or υ throughout			- weak: begins with ι or υ alternating with ε or η

local export = { adjinflections = {}, adjinflections_con = {}, }

local module_path = 'Module:grc-decl/sandbox/decl/staticdata' local m_paradigms = mw.loadData(module_path .. "/paradigms")

local ustring = mw.ustring local U = ustring.char local sub = ustring.sub local gsub = ustring.gsub local toNFC = ustring.toNFC local toNFD = ustring.toNFD

--	Creates a version of an ending with macrons removed, and with macrons or breves switched.	The switching is pointless for endings containing more than one macron or breve:	for instance, ᾱσᾰ becomes ᾰσᾱ. local function mess_with_length(text) -- local text = toNFD(text) local macron = U(0x304) local breve = U(0x306) local unmarked_length = gsub(text, "[" .. macron .. breve .. "]", "") local opposite_length = gsub(		text,		"[" .. macron .. breve .. "]",		{ [macron] = breve, [breve] = macron }	) return unmarked_length, opposite_length end

-- Adds a key with macrons or breves removed to the table. local function add_unmarked_form(list, key, value) if type(list) ~= "table" then return list end -- key = toNFD(key) local unmarked_length, opposite_length = mess_with_length(key) if unmarked_length ~= key and not list[opposite_length] then list[unmarked_length] = list[unmarked_length] or value end list[key] = list[key] or value return list end

--[=[	Noun declension categories that Module:grc-decl/sandbox/decl uses to determine the declension category of the nominative and genitive forms that are supplied to the template. ]=] local infl_categories = { ['1st-alp'] = m_paradigms.alp_pax, ['1st-eta'] = m_paradigms.eta_pax, ['1st-als'] = m_paradigms.als_prx, ['1st-ets'] = m_paradigms.ets_prx, ['1st-M-alp'] = m_paradigms.M_alp_pax, ['1st-M-alp2'] = m_paradigms.M_alp_con, -- add 2 for unique key ['1st-M-eta'] = m_paradigms.M_eta_pax, ['2nd'] = m_paradigms.second, ['2nd-con'] = m_paradigms.second_con, ['2nd-N'] = m_paradigms.second_N, ['2nd-N-con'] = m_paradigms.second_N_con, ['2nd-att'] = m_paradigms.second_att, ['2nd-N-att'] = m_paradigms.second_N_att_prx, ['3rd-εσ'] = m_paradigms.es_adj, ['3rd-εσ-open'] = m_paradigms.es_adj_prx_open, ['3rd-N-εσ'] = m_paradigms.N_es_adj, ['3rd-N-ος'] = m_paradigms.N_es_prx, ['3rd-N-ος-open'] = m_paradigms.N_es_prx_open, ['3rd-N-ᾰσ'] = m_paradigms.N_as_prx, ['3rd-N-ᾰσ-open'] = m_paradigms.N_as_prx_open, ['3rd-κλῆς'] = m_paradigms.kles, ['3rd-κλῆς-open'] = m_paradigms.kles_open, -- add 2 for unique key ['3rd-weak-ι'] = m_paradigms.weak_i_prx, ['3rd-weak-υ'] = m_paradigms.weak_u, ['3rd-N-weak-ι'] = m_paradigms.N_weak_i_prx, ['3rd-N-weak-υ'] = m_paradigms.N_weak_u, ['3rd-pure-ι'] = m_paradigms.pure_i_prx, ['3rd-N-pure-ι'] = m_paradigms.N_pure_i_prx, ['3rd-pure-υ-long'] = m_paradigms.pure_u_long_prx, ['3rd-pure-υ'] = m_paradigms.pure_u, ['3rd-N-pure-υ'] = m_paradigms.N_pure_u_prx, ['3rd-ευς'] = m_paradigms.eus, ['3rd-ευς-con'] = m_paradigms.eus_con, ['3rd-οι'] = m_paradigms.oi, }

-- Used by the function that generates the list of declension categories on the documentation page. export.conversion = { ['1st-alp'] = 'alp_pax', ['1st-eta'] = 'eta_pax', ['1st-als'] = 'als_prx', ['1st-ets'] = 'ets_prx', ['1st-M-alp'] = 'M_alp_pax', ['1st-M-alp2'] = 'M_alp_con', ['1st-M-eta'] = 'M_eta_pax', ['2nd'] = 'second', ['2nd-con'] = 'second_con', ['2nd-N'] = 'second_N', ['2nd-N-con'] = 'second_N_con', ['2nd-att'] = 'second_att', ['2nd-N-att'] = 'second_N_att_prx', ['3rd-εσ'] = 'es_adj', ['3rd-εσ-open'] = 'es_adj_prx_open', ['3rd-N-εσ'] = 'N_es_adj', ['3rd-N-ος'] = 'N_es_prx', ['3rd-N-ος-open'] = 'N_es_prx_open', ['3rd-N-ᾰσ'] = 'N_as_prx', ['3rd-κλῆς'] = 'kles', ['3rd-κλῆς-open'] = 'kles_open', ['3rd-weak-ι'] = 'weak_i_prx', ['3rd-weak-υ'] = 'weak_u', ['3rd-N-weak-ι'] = 'N_weak_i_prx', ['3rd-N-weak-υ'] = 'N_weak_u', ['3rd-pure-ι'] = 'pure_i_prx', ['3rd-N-pure-ι'] = 'N_pure_i_prx', ['3rd-pure-υ-long'] = 'pure_u_long_prx', ['3rd-pure-υ'] = 'pure_u', ['3rd-N-pure-υ'] = 'N_pure_u_prx', ['3rd-ευς'] = 'eus', ['3rd-ευς-con'] = 'eus_con', ['3rd-οι'] = 'oi', }

infl_info = {} export.ambig_forms = {}

-- Constructs a table for nouns with the same structure as the one for adjectives. local strip_tone = require("Module:grc-accent").strip_tone local longest_nominative_ending = 0 for name, decl in pairs(infl_categories) do	local nom = strip_tone(sub(decl.NS, 2)) local gen = strip_tone(sub(strip_tone(decl.GS), 2)) longest_nominative_ending = math.max(longest_nominative_ending, mw.ustring.len(mw.ustring.toNFC(nom))) if not infl_info[nom] then infl_info[nom] = {} end if type(infl_info[nom]) == "table" then if infl_info[nom][gen] then error('Conflict in noun declensions; two declensions with nominative ' .. nom ..					' and genitive ' .. gen .. '.') end name = gsub(name, "%d$", "") infl_info[nom][gen] = name end end infl_info.longest_nominative_ending = longest_nominative_ending

for nominative, list in pairs(infl_info) do	local unmarked_length, opposite_length = mess_with_length(nominative) local data_for_opposite if unmarked_length ~= opposite_length then data_for_opposite = infl_info[opposite_length] or infl_info[toNFC(opposite_length)] if not data_for_opposite then infl_info[unmarked_length] = nominative end end if type(list) == "table" then local new_list = {} for gen, name in pairs(list) do			local unmarked_length, opposite_length = mess_with_length(gen) if unmarked_length ~= gen and not list[opposite_length] then new_list[unmarked_length] = name end new_list[gen] = name end list = new_list local combined_gens = {} if data_for_opposite and not infl_info[unmarked_length] then local is_ambig = false for gen, name in pairs(list) do				combined_gens[gen] = name end for gen, name in pairs(data_for_opposite or {}) do				local gen_unmarked_length, gen_opposite_length = mess_with_length(gen) if list[gen] or list[gen_opposite_length] then --						If there are two declension types with the same nominative						and genitive endings aside from the length of the nominative,						then strip the macron or breve from both forms and record them. is_ambig = true end combined_gens = add_unmarked_form(combined_gens, gen, name) end if is_ambig then --					Remove length marks and record all the nominative–genitive pairs					that were found. local nom = mess_with_length(nominative) for gen, name in pairs(combined_gens) do					gen = mess_with_length(gen) export.ambig_forms[nom] = export.ambig_forms[nom] or {} export.ambig_forms[nom][gen] = true end else infl_info[unmarked_length] = combined_gens end end infl_info[nominative] = list end end

local infl_info_adj = { ['ος'] = { ['ᾱ'] = '1&2-alp', ['η'] = '1&2-eta', ['ον'] = '2nd', },	['ους'] = { ['ᾱ'] = '1&2-alp-con', ['η'] = '1&2-eta-con', ['ουσᾰ'] = '1&3-ουντ', },	['ῠς'] = { ['ειᾰ'] = '1&3-ups' }, --	['υς'] = 'ῠς', ['ως'] = { ['υιᾰ'] = '1&3-οτ', ['ων'] = '2nd-att', },	['ᾱς'] = { ['αινᾰ'] = '1&3-ᾰν', ['ᾱσᾰ'] = '1&3-ᾰντ', },	['ην'] = { ['εινᾰ'] = '1&3-εν' }, ['εις'] = { ['εισᾰ'] = '1&3-εντ', ['εσσᾰ'] = '1&3-εσσ', },	['ων'] = { ['ουσᾰ'] = '1&3-οντ', ['ωσᾰ'] = '1&3-ωντ', },	['ῡς'] = { ['ῡσᾰ'] = '1&3-ῠντ' }, ['ης'] = { ['ες'] = '3rd-εσ' }, }

export.ambig_forms_adj = {} --	[] = ,

for masculine, list in pairs(infl_info_adj) do	if type(list) == "table" then -- Decompose masculine and feminine (or neuter) endings. local new_fems = {} local fems_changed = false for feminine, name in pairs(list) do			new_feminine = toNFD(feminine) if new_feminine ~= feminine then fems_changed = true end new_fems[new_feminine] = name end list = new_fems new_masculine = toNFD(masculine) if fems_changed or new_masculine ~= masculine then -- Delete existing entry infl_info_adj[masculine] = nil -- Create decomposed one. infl_info_adj[new_masculine] = list end elseif type(list) == "string" then if not infl_info_adj[list] then error(masculine .. ' has been redirected to the form ' .. list .. ', which does not exist.') end end end

local longest_masculine_ending = 0 for masculine, list in pairs(infl_info_adj) do	local unmarked_length, opposite_length = mess_with_length(masculine) local data_for_opposite longest_masculine_ending = math.max(longest_masculine_ending, mw.ustring.len(mw.ustring.toNFC(masculine))) if unmarked_length ~= opposite_length then data_for_opposite = infl_info_adj[opposite_length] or infl_info_adj[toNFC(opposite_length)] if not data_for_opposite then infl_info_adj[unmarked_length] = masculine end end local new_list = {} for fem, name in pairs(list) do		local unmarked_length, opposite_length = mess_with_length(fem) if unmarked_length ~= fem and not list[opposite_length] then new_list[unmarked_length] = name end new_list[fem] = name end list = new_list local combined_fems = {} if data_for_opposite and not infl_info_adj[unmarked_length] then for fem, name in pairs(list) do			combined_fems[fem] = name end for fem, name in pairs(data_for_opposite or {}) do			if list[fem] then --					If there are declension types with the same masculine and					feminine endings, aside from the length (not currently true),					then strip the macron or breve and log them. local key = mess_with_length(masculine) local value = mess_with_length(fem) export.ambig_forms_adj[key] = value combined_fems = nil break end combined_fems = add_unmarked_form(combined_fems, fem, name) end if combined_fems then infl_info_adj[unmarked_length] = combined_fems end end infl_info_adj[masculine] = list end infl_info_adj.longest_masculine_ending = longest_masculine_ending

--	Mapping from adjectival declension codes to the declension type used for the masculine (1),	feminine (2), and neuter (3), along with any suffixes added to the stem in the masculine	and neuter (a1) or feminine (a2).

export.headers = { ['1&2'] = 'First and second declension', ['1&3'] = 'First and third declension', ['2nd'] = 'Second declension', ['3rd'] = 'Third declension', ['Attic'] = 'Attic second declension', ['irreg'] = 'Irregular declension', }

for k, header in pairs(m_paradigms.headers) do	if export.headers[k] then if export.headers[k] ~= header then error('Two headers with same name: ' .. export.header[k] .. ', ' .. header .. '.') end else export.headers[k] = header end end

--First-and-second-declension adjectives export.adjinflections['1&2-alp'] = { '2nd', '1st-alp', '2nd-N', adeclheader = '1&2' } export.adjinflections['1&2-alp-con'] = { '2nd', '1st-alp', '2nd-N', a1 = 'ε', a2 = 'ε', adeclheader = '1&2' } -- avoid collisions export.adjinflections['1&2-eta'] = { '2nd', '1st-eta', '2nd-N', adeclheader = '1&2' } export.adjinflections['1&2-eta-con'] = { '2nd', '1st-alp', '2nd-N', a1 = 'ε', a2 = 'ε', adeclheader = '1&2' }

-- First-and-third-declension adjectives export.adjinflections['1&3-ups'] = { '3rd-weak-υ', '1st-als', '3rd-N-weak-υ', a2 = 'ει', adeclheader = '1&3' } export.adjinflections['1&3-ᾰν'] = { '3rd-cons', '1st-ets', '3rd-N-cons', a1 = 'ᾰν', a2 = 'αιν', adeclheader = '1&3' } export.adjinflections['1&3-εν'] = { '3rd-cons', '1st-ets', '3rd-N-cons', a1 = 'εν', a2 = 'ειν', adeclheader = '1&3' } export.adjinflections['1&3-εσσ'] = { '3rd-cons', '1st-ets', '3rd-N-cons', a1 = 'εντ', a2 = 'εσσ', adeclheader = '1&3' }

--	Participles (subtype of first-and-third) export.adjinflections['1&3-ουντ'] = { '3rd-cons', '1st-ets', '3rd-N-cons', a1 = 'οντ', a2 = 'ουσ', adeclheader = '1&3' } -- perfect active: export.adjinflections['1&3-οτ'] = { '3rd-cons', '1st-als', '3rd-N-cons', a1 = 'οτ', a2 = 'υι', adeclheader = '1&3' } -- From roots with reflex of *h₁, and in the aorist passive: export.adjinflections['1&3-εντ'] = { '3rd-cons', '1st-ets', '3rd-N-cons', a1 = 'εντ', a2 = 'εισ', adeclheader = '1&3' } -- From roots with reflex of *h₂, and 1st aorist active: export.adjinflections['1&3-ᾰντ'] = { '3rd-cons', '1st-ets', '3rd-N-cons', a1 = 'ᾰντ', a2 = 'ᾱσ', adeclheader = '1&3' } -- From roots with reflex of *h₃, and thematic active: export.adjinflections['1&3-οντ'] = { '3rd-cons', '1st-ets', '3rd-N-cons', a1 = 'οντ', a2 = 'ουσ', adeclheader = '1&3' } -- έω/όω contract; this category does not appear in infl_info_adj, because it -- has to be assigned specifically in Module:grc-decl/sandbox/decl, if -- masculine singular has acute on ultima (is perispomenon): export.adjinflections['1&3-οντ-con'] = { '3rd-cons', '1st-ets', '3rd-N-cons', a1 = 'ουντ', a2 = 'ουσ', adeclheader = '1&3' } -- νῡμι active: export.adjinflections['1&3-ῠντ'] = { '3rd-cons', '1st-ets', '3rd-N-cons', a1 = 'ῠντ', a2 = 'ῡσ', adeclheader = '1&3' } -- άω contract: export.adjinflections['1&3-ωντ'] = { '3rd-cons', '1st-ets', '3rd-N-cons', a1 = 'ωντ', a2 = 'ωσ', adeclheader = '1&3' }

-- Masculine and feminine identical export.adjinflections['2nd'] = { '2nd', nil, '2nd-N', adeclheader = '2nd' } export.adjinflections['2nd-att'] = { '2nd-att', nil, '2nd-N-att', adeclheader = 'Attic' } export.adjinflections['3rd-cons'] = { '3rd-cons', nil, '3rd-N-cons', adeclheader = '3rd' } export.adjinflections['3rd-εσ-open'] = { '3rd-εσ-open', nil, '3rd-N-εσ-open', adeclheader = '3rd' }

export.adjinflections['1&2-alp-con'] = { '2nd-con', '1st-alp', '2nd-N-con', adeclheader = '1&2' } export.adjinflections['1&2-eta-con'] = { '2nd-con', '1st-eta', '2nd-N-con', adeclheader = '1&2' } export.adjinflections['3rd-εσ'] = { '3rd-εσ', nil, '3rd-N-εσ', adeclheader = '3rd' }

export.adjinflections_con['1&2-alp-con'] = export.adjinflections['1&2-alp-con'] export.adjinflections_con['1&2-eta-con'] = export.adjinflections['1&2-eta-con'] export.adjinflections_con['3rd-εσ'] = export.adjinflections['3rd-εσ']

export.infl_info = {} export.infl_info.noun = infl_info export.infl_info.adj = infl_info_adj

export.irregular = {} export.irregular.noun = {}

export.irregular.noun.masculine_feminine = { full = { false, 'NS', 'GS', 'DS', 'AS', 'VS', 'ND', 'GD', 'NP', 'GP', 'DP', 'AP' },	S = { false, 'NS', 'GS', 'DS', 'AS', 'VS' }, D = { false, 'ND', 'GD' }, P = { false, 'NP', 'GP', 'DP', 'AP' }, SP = { false, 'NS', 'GS', 'DS', 'AS', 'VS', 'NP', 'GP', 'DP', 'AP' },	DP = { false, 'ND', 'GD', 'NP', 'GP', 'DP', 'AP' }, }

export.irregular.noun.neuter = { full = { false, 'NS', 'GS', 'DS', 'ND', 'GD', 'NP', 'GP', 'DP', redirects = { AS = 'NS', VS = 'NS', AP = 'NP' },	},	DP = { false, 'ND', 'GD', 'NP', 'GP', 'DP', redirects = { AP = 'NP', },	},	SP = { false, 'NS', 'GS', 'DS', 'NP', 'GP', 'DP', redirects = { AS = 'NS', VS = 'NS', AP = 'NP' }	},	S = { false, 'NS', 'GS', 'DS', redirects = { AS = 'NS', VS = 'NS', },	},	D = { false, 'DS', 'DG' }, P = { false, 'NP', 'GP', 'DP', redirects = { AP = 'NP' },	}, }

export.irregular.adjective = { full = { false, 'MNS', 'MGS', 'MDS', 'MAS', 'MVS', 'MND', 'MGD', 'MNP', 'MGP', 'MDP', 'MAP', 'FNS', 'FGS', 'FDS', 'FAS', 'FVS', 'FND', 'FGD', 'FNP', 'FGP', 'FDP', 'FAP', 'NNS', 'NNP', redirects = { NGS = 'MGS', NDS = 'MDS', NAS = 'NNS', NVS = 'NNS', NND = 'MND', NGD = 'MGD', NGP = 'MGP', NDP = 'MDP', NAP = 'NNP' },	},	SP = { false, 'MNS', 'MGS', 'MDS', 'MAS', 'MVS', 'MNP', 'MGP', 'MDP', 'MAP', 'FNS', 'FGS', 'FDS', 'FAS', 'FVS', 'FNP', 'FGP', 'FDP', 'FAP', 'NNS', 'NNP', redirects = { NGS = 'MGS', NDS = 'MDS', NAS = 'NNS', NVS = 'NNS', NGP = 'MGP', NDP = 'MDP', NAP = 'NNP' },	},	S = { false, 'MNS', 'MGS', 'MDS', 'MAS', 'MVS', 'FNS', 'FGS', 'FDS', 'FAS', 'FVS', 'NNS', redirects = { NGS = 'MGS', NDS = 'MDS', NAS = 'NNS', NVS = 'NNS', }, },	-- Unlikely ever to be used. D = { false, 'MND', 'MGD', 'FND', 'FGD', redirects = { NND = 'MGD', NGD = 'MGD', } },	P = { false, 'MNP', 'MGP', 'MDP', 'MAP', 'FNP', 'FGP', 'FDP', 'FAP', 'NNP', redirects = { NGP = 'MGP', NDP = 'MDP', NAP = 'NNP' }, }, }

return export

title: Module:grc-decl/decl/staticdata


text:
αμυγδαλεκτομή

Noun

 * 1)  tonsillectomy

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/

title: αμυγδαλεκτομή


text:
Module:grc-decl/decl/staticdata/dialects

return { ['ark'] = { ara = true, kyp = true, ark = true, },	['severe'] = { ara = true, kyp = true, ark = true, ele = true, lak = true, her = true, kre = true, les = true, }, -- lesbian was omitted from §25 — by mistake? ['buck9'] = { boi = true, kyp = true, lak = true, her = true, kre = true, },	['buck78'] = { the = true, ark = true, ara = true, kyp = true, thr = true, koa = true, },	['northwest'] = { pho = true, del = true, lok = true, ele = true, },	['doric'] = { lak = true, her = true, meg = true, krn = true, kor = true, arg = true, rho = true, pam = true, koa = true, thr = true, kre = true },	['west'] = { pho = true, del = true, lok = true, ele = true, lak = true, her = true, meg = true, krn = true, kor = true, arg = true, rho = true, pam = true, koa = true, thr = true, kre = true, dor = true, },	['nonIA'] = { ara = true, kyp = true, ark = true, les = true, the = true, boi = true, pho = true, del = true, lok = true, ele = true, lak = true, her = true, meg = true, krn = true, kor = true, arg = true, rho = true, pam = true, koa = true, thr = true, kre = true, dor = true, }, }


text:
Module:grc-decl/decl/staticdata/documentation

This module contains the data that is used to determine the declension category from the forms that are supplied to the declension template, and the declension and accent type for each gender of an adjective.


text: αμυγδαλεκτομής

title: αμυγδαλεκτομής


text: αμυγδαλεκτομών

title: αμυγδαλεκτομών


text: αμυγδαλεκτομές

title: αμυγδαλεκτομές


text:
Module:grc-decl/decl/staticdata/paradigms

local export = {}

export.headers = { ['1st'] = 'First declension', ['2nd'] = 'Second declension', ['3rd'] = 'Third declension', ['Attic'] = 'Attic second declension', ['irreg'] = 'Irregular declension', ['decl'] = 'Declension', }

export.art_att = {}

export.art_att.M = { decl = 'irreg', NS = 'ὁ', GS = 'τοῦ', DS = 'τῷ', AS = 'τὸν', VS = 'ὦ', ND = 'τὼ', GD = 'τοῖν', NP = 'οἱ', GP = 'τῶν', DP = 'τοῖς', AP = 'τοὺς', }

export.art_att.F = { decl = 'irreg', NS = 'ἡ', GS = 'τῆς', DS = 'τῇ', AS = 'τὴν', VS = 'ὦ', ND = 'τὼ', GD = 'τοῖν', NP = 'αἱ', GP = 'τῶν', DP = 'ταῖς', AP = 'τᾱ̀ς', }

export.art_att.N = { decl = 'irreg', NS = 'τὸ', GS = 'τοῦ', DS = 'τῷ', AS = 'τὸ', VS = 'ὦ', ND = 'τὼ', GD = 'τοῖν', NP = 'τᾰ̀', GP = 'τῶν', DP = 'τοῖς', AP = 'τᾰ̀', }

for gender, articles in pairs(export.art_att) do	articles.AD = articles.ND	articles.DD = articles.GD end

export.alp_pax = { decl = '1st', g = 'F', NS = '$ᾱ', GS = '$ᾱς', DS = '$ᾳ', AS = '$ᾱν', ND = '$ᾱ', GD = '$αιν', NP = '$αι', GP = '$ῶν', DP = '$αις', AP = '$ᾱς', } export.eta_pax = { decl = '1st', g = 'F', NS = '$η', GS = '$ης', DS = '$ῃ', AS = '$ην', ND = '$ᾱ', GD = '$αιν', NP = '$αι', GP = '$ῶν', DP = '$αις', AP = '$ᾱς', } export.alp = { decl = '1st', g = 'F', NS = '$ᾱ́', GS = '$ᾶς', DS = '$ᾷ', AS = '$ᾱ́ν', ND = '$ᾱ́', GD = '$αῖν', NP = '$αί', GP = '$ῶν', DP = '$αῖς', AP = '$ᾱ́ς', } export.eta = { decl = '1st', g = 'F', NS = '$ή', GS = '$ῆς', DS = '$ῇ', AS = '$ήν', ND = '$ᾱ́', GD = '$αῖν', NP = '$αί', GP = '$ῶν', DP = '$αῖς', AP = '$ᾱ́ς', } export.als_prx = { decl = '1st', g = 'F', NS = '$ᾰ', GS = '$ᾱς', DS = '$ᾳ', AS = '$ᾰν', ND = '$ᾱ', GD = '$αιν', NP = '$αι', GP = '$ῶν', DP = '$αις', AP = '$ᾱς', } export.ets_prx = { decl = '1st', g = 'F', NS = '$ᾰ', GS = '$ης', DS = '$ῃ', AS = '$ᾰν', ND = '$ᾱ', GD = '$αιν', NP = '$αι', GP = '$ῶν', DP = '$αις', AP = '$ᾱς', } export.alp_con = { decl = '1st', g = 'F', NS = '$ᾶ', GS = '$ᾶς', DS = '$ᾷ', AS = '$ᾶν', ND = '$ᾶ', GD = '$αῖν', NP = '$αῖ', GP = '$ῶν', DP = '$αῖς', AP = '$ᾶς', } export.eta_con = { decl = '1st', g = 'F', NS = '$ῆ', GS = '$ῆς', DS = '$ῇ', AS = '$ῆν', ND = '$ᾶ', GD = '$αῖν', NP = '$αῖ/$έαι', GP = '$ῶν/$εῶν', DP = '$αῖς', AP = '$ᾶς/$έᾱς', } export.M_alp_pax = { decl = '1st', g = 'M', NS = '$ᾱς', GS = '$ου', DS = '$ᾳ', AS = '$ᾱν', VS = '$ᾱ', ND = '$ᾱ', GD = '$αιν', NP = '$αι', GP = '$ῶν', DP = '$αις', AP = '$ᾱς', } export.M_eta_pax = { decl = '1st', g = 'M', NS = '$ης', GS = '$ου', DS = '$ῃ', AS = '$ην', VS = '$η', ND = '$ᾱ', GD = '$αιν', NP = '$αι', GP = '$ῶν', DP = '$αις', AP = '$ᾱς', } export.M_eta = { decl = '1st', g = 'M', NS = '$ής', GS = '$οῦ', DS = '$ῇ', AS = '$ήν', VS = '$ή', ND = '$ᾱ́', GD = '$αῖν', NP = '$αί', GP = '$ῶν', DP = '$αῖς', AP = '$ᾱ́ς', } export.M_alp_con = { decl = '1st', g = 'M', NS = '$ᾶς', GS = '$ᾶ', DS = '$ᾷ', AS = '$ᾶν', VS = '$ᾶ', ND = '$ᾶ', GD = '$αῖν', NP = '$αῖ', GP = '$ῶν', DP = '$αῖς', AP = '$ᾶς', } export.M_eta_con = { decl = '1st', g = 'M', NS = '$ῆς', GS = '$οῦ', DS = '$ῇ', AS = '$ῆν', VS = '$ῆ', ND = '$ᾶ', GD = '$αῖν', NP = '$αῖ', GP = '$ῶν', DP = '$αῖς', AP = '$ᾶς', } export.second_prx = { decl = '2nd', g = 'M', NS = '$ος', GS = '$ου', DS = '$ῳ', AS = '$ον', VS = '$ε', ND = '$ω', GD = '$οιν', NP = '$οι', GP = '$ων', DP = '$οις', AP = '$ους', } export.second = { decl = '2nd', g = 'M', NS = '$ός', GS = '$οῦ', DS = '$ῷ', AS = '$όν', VS = '$έ', ND = '$ώ', GD = '$οῖν', NP = '$οί', GP = '$ῶν', DP = '$οῖς', AP = '$ούς', } export.second_N_prx = { decl = '2nd', g = 'N', NS = '$ον', GS = '$ου', DS = '$ῳ', ND = '$ω', GD = '$οιν', NP = '$ᾰ', GP = '$ων', DP = '$οις', } export.second_N = { decl = '2nd', g = 'N', NS = '$όν', GS = '$οῦ', DS = '$ῷ', ND = '$ώ', GD = '$οῖν', NP = '$ᾰ́', GP = '$ῶν', DP = '$οῖς', } export.second_con = { decl = '2nd', g = 'M', NS = '$οῦς', GS = '$οῦ', DS = '$ῷ', AS = '$οῦν', VS = '$οῦ', ND = '$ώ', GD = '$οῖν', NP = '$οῖ', GP = '$ῶν', DP = '$οῖς', AP = '$οῦς', } export.second_con_pax = { decl = '2nd', g = 'M', NS = '$ους', GS = '$ου', DS = '$ῳ', AS = '$ουν', VS = '$ου', ND = '$ω', GD = '$οιν', NP = '$οι', GP = '$ων', DP = '$οις', AP = '$ους', } export.second_N_con = { decl = '2nd', g = 'N', NS = '$οῦν', GS = '$οῦ', DS = '$ῷ', ND = '$ώ', GD = '$οῖν', NP = '$ᾶ', GP = '$ῶν', DP = '$οῖς', } export.second_att = { decl = 'Attic', g = 'M', NS = '$ώς', GS = '$ώ', DS = '$ῴ', AS = '$ώ(ν)', ND = '$ώ', GD = '$ῴν', NP = '$ῴ', GP = '$ών', DP = '$ῴς', AP = '$ώς', } export.second_att_prx = { decl = 'Attic', g = 'M', NS = '$ως', GS = '$ω', DS = '$ῳ', AS = '$ω(ν)', ND = '$ω', GD = '$ῳν', NP = '$ῳ', GP = '$ων', DP = '$ῳς', AP = '$ως', } export.second_N_att_prx = { decl = 'Attic', g = 'M', NS = '$ων', GS = '$ω', DS = '$ῳ', ND = '$ω', GD = '$ῳν', NP = '$ᾰ', GP = '$ων', DP = '$ῳς', } export.second_att_con = { decl = 'Attic', g = 'M', NS = '$ῶς', GS = '$ῶ', DS = '$ῷ', AS = '$ῶ(ν)', ND = '$ῶ', GD = '$ῷν', NP = '$ῷ', GP = '$ῶν', DP = '$ῷς', AP = '$ῶς', } export.lp = { decl = '3rd', GS = '$ός', DS = '$ῐ́', AS = '$ᾰ', ND = '$ε', GD = '$οῖν', NP = '$ες', GP = '$ῶν', AP = '$ᾰς', } export.lp_prx = { decl = '3rd', GS = '$ος', DS = '$ῐ', AS = '$ᾰ', ND = '$ε', GD = '$οιν', NP = '$ες', GP = '$ων', AP = '$ᾰς', } export.es_adj = { decl = '3rd', NS = '$ής', GS = '$οῦς', DS = '$εῖ', AS = '$ῆ', VS = '$ές', ND = '$εῖ', GD = '$οῖν', NP = '$εῖς', GP = '$ῶν', DP = '$έσῐ(ν)', AP = '$εῖς', adjective = true, } export.es_adj_prx = { decl = '3rd', NS = '$ης', GS = '$ους', DS = '$ει', AS = '$η', VS = '$ες', ND = '$ει', GD = '$οιν', NP = '$εις', GP = '$ων', DP = '$εσῐ(ν)', AP = '$εις', adjective = true, } export.es_adj_open = { decl = '3rd', NS = '$ής', GS = '$έος', DS = '$έῐ̈', AS = '$έᾰ', VS = '$ές', ND = '$έε', GD = '$έοιν', NP = '$έες', GP = '$έων', DP = '$έσῐ(ν)', AP = '$έᾰς', adjective = true, } export.es_adj_prx_open = { decl = '3rd', NS = '$ης', GS = '$εος', DS = '$εῐ̈', AS = '$εᾰ', VS = '$ες', ND = '$εε', GD = '$εοιν', NP = '$εες', GP = '$εων', DP = '$εσῐ(ν)', AP = '$εᾰς', adjective = true, } export.N_lp = { decl = '3rd', g = 'N', GS = '$ός', DS = '$ῐ́', ND = '$ε', GD = '$οῖν', NP = '$ᾰ', GP = '$ῶν', } export.N_lp_prx = { decl = '3rd', g = 'N', GS = '$ος', DS = '$ῐ', ND = '$ε', GD = '$οιν', NP = '$ᾰ', GP = '$ων', } export.N_es_adj = { decl = '3rd', g = 'N', NS = '$ές', GS = '$οῦς', DS = '$εῖ', ND = '$εῖ', GD = '$οῖν', NP = '$ῆ', GP = '$ῶν', DP = '$έσῐ(ν)', adjective = true, } export.N_es_adj_prx = { decl = '3rd', g = 'N', NS = '$ες', GS = '$ους', DS = '$ει', ND = '$ει', GD = '$οιν', NP = '$η', GP = '$ων', DP = '$εσῐ(ν)', adjective = true, } export.N_es_prx = { decl = '3rd', g = 'N', NS = '$ος', GS = '$ους', DS = '$ει', ND = '$ει', GD = '$οῖν', NP = '$η', GP = '$ῶν', DP = '$εσῐ(ν)', } export.N_as_prx = { decl = '3rd', g = 'N', NS = '$ᾰς', GS = '$ως', DS = '$αι/$ᾳ', ND = '$ᾱ', GD = '$ῷν', NP = '$ᾱ', GP = '$ῶν', DP = '$ᾰσῐ(ν)', } export.N_es_adj_open = { decl = '3rd', g = 'N', NS = '$ές', GS = '$έος', DS = '$έῐ̈', ND = '$έε', GD = '$έοιν', NP = '$έᾰ', GP = '$έων', DP = '$έσῐ(ν)', adjective = true, } export.N_es_adj_prx_open = { decl = '3rd', g = 'N', NS = '$ες', GS = '$εος', DS = '$εῐ̈', ND = '$εε', GD = '$εοιν', NP = '$εᾰ', GP = '$εων', DP = '$εσῐ(ν)', adjective = true, } export.N_es_prx_open = { decl = '3rd', g = 'N', NS = '$ος', GS = '$εος', DS = '$εῐ̈', ND = '$εε', GD = '$έοιν', NP = '$εᾰ', GP = '$έων', DP = '$εσῐ(ν)', } export.N_as_prx_open = { decl = '3rd', g = 'N', NS = '$ᾰς', GS = '$ᾰος', DS = '$ᾰῐ̈', ND = '$ᾰε', GD = '$ᾰ́οιν', NP = '$ᾰᾰ', GP = '$ᾰ́ων', DP = '$ᾰσῐ(ν)', } export.kles = { decl = '3rd', g = 'M', NS = '$κλῆς', GS = '$κλέους', DS = '$κλεῖ', AS = '$κλέᾱ', VS = '$κλεις', } export.kles_open = { decl = '3rd', g = 'M', NS = '$κλέης', GS = '$κλέους', DS = '$κλέει', AS = '$κλέᾱ', VS = '$κλεες', } export.weak_i_prx = { decl = '3rd', NS = '$ῐς', GS = '$εως', DS = '$ει', AS = '$ῐν', VS = '$ῐ', ND = '$ει', GD = '$έοιν', NP = '$εις', GP = '$εων', DP = '$εσῐ(ν)', AP = '$εις', } export.weak_u = { decl = '3rd', NS = '$ῠ́ς', GS = '$έως', DS = '$εῖ', AS = '$ῠ́ν', VS = '$ῠ́', ND = '$έε', GD = '$έοιν', NP = '$εῖς', GP = '$έων', DP = '$έσῐ(ν)', AP = '$εῖς', } export.weak_u_prx = { decl = '3rd', NS = '$ῠς', GS = '$εως', DS = '$ει', AS = '$ῠν', VS = '$ῠ', ND = '$ει', GD = '$έοιν', NP = '$εις', GP = '$εων', DP = '$εσῐ(ν)', AP = '$εις', } export.N_weak_i_prx = { decl = '3rd', g = 'N', NS = '$ῐ', GS = '$εως', DS = '$ει', ND = '$ει', GD = '$έοιν', NP = '$η/$εᾰ', GP = '$εων', DP = '$εσῐ(ν)', } export.N_weak_u = { decl = '3rd', g = 'N', NS = '$ῠ́', GS = '$έως', DS = '$εῖ', ND = '$εῖ', GD = '$έοιν', NP = '$έᾰ', GP = '$έων', DP = '$έσῐ(ν)', } export.N_weak_u_prx = { decl = '3rd', g = 'N', NS = '$ῠ', GS = '$εως', DS = '$ει', ND = '$ει', GD = '$έοιν', NP = '$η/$εᾰ', GP = '$εων', DP = '$εσῐ(ν)', } export.pure_i_prx = { decl = '3rd', NS = '$ῐς', GS = '$ῐος', DS = '$ῑ', AS = '$ῐν', VS = '$ῐ', ND = '$ῐε', GD = '$ῐ́οιν', NP = '$ῐες', GP = '$ῐ́ων', DP = '$ῐσῐ(ν)', AP = '$ῑς/$ῐᾰς', } export.N_pure_i_prx = { decl = '3rd', g = 'N', NS = '$ῐ', GS = '$ῐος', DS = '$ῑ', ND = '$ῐε', GD = '$ῐ́οιν', NP = '$ῐες', GP = '$ῐ́ων', DP = '$ῐσῐ(ν)', } export.pure_u_prx = { decl = '3rd', NS = '$ῠς', GS = '$ῠος', DS = '$ῠῐ̈/$υι', AS = '$ῠν', VS = '$ῠ', ND = '$ῠε', GD = '$ῠ́οιν', NP = '$ῠες', GP = '$ῠ́ων', DP = '$ῠσῐ(ν)', AP = '$ῡς/$ῠᾰς', } export.pure_u_long_prx = { decl = '3rd', NS = '$ῡς', GS = '$ῠος', DS = '$ῠῐ̈/$υι', AS = '$ῡν', VS = '$ῡ', ND = '$ῠε', GD = '$ῠ́οιν', NP = '$ῠες', GP = '$ῠ́ων', DP = '$ῠσῐ(ν)', AP = '$ῡς/$ῠᾰς', } export.pure_u_long = { decl = '3rd', NS = '$ῡ́ς', GS = '$ῠ́ος', DS = '$ῠ́ῐ̈', AS = '$ῡ́ν', VS = '$ῡ́', ND = '$ῠ́ε', GD = '$ῠ́οιν', NP = '$ῠ́ες', GP = '$ῠ́ων', DP = '$ῠ́σῐ(ν)', AP = '$ῦς/$ῠ́ᾰς', } export.pure_u_long_con = { decl = '3rd', NS = '$ῦς', GS = '$ῠός', DS = '$ῠῐ̈́', AS = '$ῦν', VS = '$ῦ', ND = '$ῠ́ε', GD = '$ῠοῖν', NP = '$ῠ́ες', GP = '$ῠῶν', DP = '$ῡσῐ́(ν)/$ῠσῐ́(ν)', AP = '$ῦς/$ῠ́ᾰς', } export.pure_u = { decl = '3rd', NS = '$ῠ́ς', GS = '$ῠός', DS = '$ῠῐ̈́', AS = '$ῠ́ν', VS = '$ῠ́', ND = '$ῠ́ε', GD = '$ῠοῖν', NP = '$ῠ́ες', GP = '$ῠῶν', DP = '$ῠσῐ́(ν)', AP = '$ῦς/$ῠ́ᾰς', } export.N_pure_u_prx = { decl = '3rd', g = 'N', NS = '$ῠ', GS = '$ῠος', DS = '$ῠῐ̈', ND = '$ῠε', GD = '$ῠ́οιν', NP = '$ῠᾰ', GP = '$ῠ́ων', DP = '$ῠσῐ(ν)', } export.eus = { decl = '3rd', g = 'M', NS = '$εύς', GS = '$έως', DS = '$έῐ̈/$εῖ', AS = '$έᾱ', VS = '$εῦ', ND = '$ῆ', GD = '$έοιν', NP = '$ῆς/$εῖς', GP = '$έων', DP = '$εῦσῐ(ν)', AP = '$έᾱς', } export.eus_con = { decl = '3rd', g = 'M', NS = '$εύς', GS = '$ῶς', DS = '$εῖ', AS = '$ᾶ', VS = '$εῦ', ND = '$ῆ', GD = '$οῖν', NP = '$ῆς/$εῖς', GP = '$ῶν', DP = '$εῦσῐ(ν)', AP = '$ᾶς', } export.eus_hwos = { decl = '3rd', g = 'M', NS = '$εύς', GS = '$ῆϝος', DS = '$ῆϝῐ', AS = '$ῆϝᾰ', VS = '$εῦ', ND = '$ῆϝε', GD = '$ήϝοιν', NP = '$ῆϝες', GP = '$ήϝων', DP = '$εῦσῐ(ν)', AP = '$ῆϝᾰς', } export.eus_hos = { decl = '3rd', g = 'M', NS = '$εύς', GS = '$ῆος', DS = '$ῆῐ̈', AS = '$ῆᾰ', VS = '$εῦ', ND = '$ῆε', GD = '$ήοιν', NP = '$ῆες', GP = '$ήων', DP = '$εῦσῐ(ν)', AP = '$ῆᾰς', } export.eus_eios = { decl = '3rd', g = 'M', NS = '$εύς', GS = '$εῖος', DS = '$εῖῐ̈', AS = '$εῖᾰ', VS = '$εῦ', ND = '$εῖε', GD = '$είοιν', NP = '$εῖες', GP = '$είων', DP = '$εῦσῐ(ν)', AP = '$εῖᾰς', } export.oi = { decl = '3rd', g = 'F', NS = '$ώ', GS = '$οῦς', DS = '$οῖ', AS = '$ώ', VS = '$οῖ', } export.irreg = { decl = 'irreg', NS = 1, GS = 2, DS = 3, AS = 4, VS = 5, ND = 6, GD = 7, NP = 8, GP = 9, DP = 10, AP = 11, } export.indecl = { decl = 'decl', NS = 1, GS = 1, DS = 1, ND = 1, GD = 1, NP = 1, GP = 1, DP = 1, }

return export


text:
Module:grc-decl/decl/staticdata/paradigms/documentation

This module contains the raw paradigms that are used by Module:grc-decl/decl/data. The forms in each paradigm are organized by two-letter abbreviations. The first letter is the case (N, G, D, A representing nominative, genitive, dative, accusative) and the second is the number (S, D, P representing singular, dative, plural). Each ending consists of a number and an ending. The number represents the particular stem to which the ending is added. The stems differ by accentual position, if at all.


text:
Module:grc-decl/params

local genders = { 'M', 'F', 'N' } local cases = { 'N', 'G', 'D', 'A', 'V' } local numbers = { 'S', 'D', 'P' } local m_table = require("Module:table")

local noun_params = { [1] = {},	[2] = {},	dial = { default = 'att' }, form = { default = 'full' }, voc = {}, -- if "α", means that first-declension masculine has vocative in -ᾰ notes = {}, note = { alias_of = "notes" }, ['notes1'] = {}, ['notes2'] = {}, titleapp = {}, ['titleapp1'] = {}, ['titleapp2'] = {}, }

for _, c in ipairs(cases) do	for _, n in ipairs(numbers) do noun_params[c .. n] = {} noun_params[c .. n .. 1] = {}		noun_params[c .. n .. 2] = {}	end end

local irreg_noun_params, irreg_N_noun_params = m_table.deepcopy(noun_params, true), m_table.deepcopy(noun_params, true) for i = 3, 9 do	irreg_N_noun_params[i] = {} end for i = 3, 12 do	irreg_noun_params[i] = {} end

local adj_params = { [1] = {},	[2] = {},	dial = { default = 'att' }, form = { default = '' }, notes = {}, ['notes1'] = {}, ['notes2'] = {}, titleapp = {}, ['titleapp1'] = {}, ['titleapp2'] = {}, title = {}, adv = {}, ['adv1'] = {}, ['adv2'] = {}, deg = {}, comp = {}, ['comp1'] = {}, ['comp2'] = {}, super = {}, ['super1'] = {}, ['super2'] = {}, hp = { type = "boolean" }, }

for _, g in ipairs(genders) do	for _, c in ipairs(cases) do		for _, n in ipairs(numbers) do adj_params[g .. c .. n] = {} adj_params[g .. c .. n .. 1] = {}			adj_params[g .. c .. n .. 2] = {}		end end end

local irreg_adj_params = m_table.deepcopy(adj_params, true) for i = 3, 25 do	irreg_adj_params[i] = {} end

return { noun_params = noun_params, irreg_noun_params = irreg_noun_params, irreg_N_noun_params = irreg_N_noun_params, adj_params = adj_params, irreg_adj_params = irreg_adj_params, }

title: Module:grc-decl/params


text:
Module:grc-decl/table

local path = 'Module:grc-decl' local headers = mw.loadData(path .. '/decl/classes').headers

local str_find = string.find local str_match = string.match local str_gsub = string.gsub local ustring_gsub = mw.ustring.gsub local Array = require 'Module:array'

-- Commas or slashes in the cell for a particular form are converted to this. local form_separator = ' / '

local export = {}

--	Basic letters with and without diacritics, plus digamma and combining	diacritics. local word_characters = mw.loadData('Module:grc-utilities/data').word_characters

-- displayed in cell that has no form in it local empty_cell = '—'

local nonAttic_note = 'Dialects other than Attic are not well attested. ' ..	'Some forms may be based on conjecture. Use with caution.' local Attic_note = 'This table gives Attic inflectional endings. ' ..	'For declension in other dialects, see Appendix:Ancient Greek dialectal declension.'

local case_names = { 'Nominative', 'Genitive', 'Dative', 'Accusative', 'Vocative' }

local function form_is_empty(form) return not form or form == '' or form == '-' or form == '—' end

-- Use the fields in a table to fill out template parameter syntax in a string. local function fill_params(str, mapping) str = str:gsub('}',		function(key)			return mapping[key] or error("Parameter " .. key .. " not found.")		end) return str end

local lang = require('Module:languages').getByCode('grc')

local full_link = require('Module:links').full_link local function entry_link(term, accel) return full_link({ lang = lang, term = term, tr = '-', accel = accel }, nil, false) end

-- Creates a callable table that saves previous transliterations. -- Helpful because most paradigms have some syncretic forms; particularly useful for neuter forms. local transliterate = require('Module:fun').memoize(require('Module:grc-translit').tr)

local tag_translit = require('Module:script utilities').tag_translit local function format_translit(Greek_text) return tag_translit(transliterate(Greek_text), lang, 'default') end

local function get_label_display(dialect) return require("Module:labels").get_label_info { label = dialect, lang = lang, nocat = true}.label end

local function get_stylesheet return require("Module:TemplateStyles")("Module:grc-decl/style.css") end

local function make_number_table(number_arg) local numbers = {} for _, number in ipairs{ { 'S', 'Singular' }, { 'D', 'Dual' }, { 'P', 'Plural' } } do		if number_arg[number[1]] then table.insert(numbers, number[2]) end end return numbers end

local function link(alt, accel) if alt == '-' then return '-' end alt = str_gsub(alt, 'σ$', 'ς') --just in case if str_find(alt, '%b') then local no_paren_content, with_paren_content = str_gsub(alt, '%b', ), str_gsub(alt, '[]', ) -- This expands πᾶσῐ(ν) to πᾶσῐ / πᾶσῐν so that both terms can be found -- in searches. return entry_link(no_paren_content, accel) .. form_separator .. entry_link(with_paren_content, accel) else return entry_link(alt, accel) end end

local function get_header(code, irregular, indeclinable) if not code then if irregular then return 'Irregular declension' elseif indeclinable then return 'Declension' else return "??" end elseif #code > 5 then mw.log('grc-decl/header not code') return code else return headers[code] or error('No header for the code ' .. code .. '.') end end

-- Case abbreviations used by. local inflection_of_case_abbreviations = { N = 'nom', G = 'gen', D = 'dat', A = 'acc', V = 'voc' }

local function link_form(args, form_code, istitle) local form_table = args.adjective and args.atable or args.ctable local form = form_table[form_code] if form_is_empty(form) then return empty_cell end -- if it is a title form, strip all but the first variation if istitle then form = str_match(form, '[^,/]+') --capture up to comma or slash (needs standardization) form = ustring_gsub(form, '%s+$', '') --strip final whitespace else -- convert commas to slashes and space the slashes for legibility form = ustring_gsub(form, '%s*[/,]%s*', form_separator) form_table[form_code] = form end -- concat article if (not args.adjective) and args.article[form_code] and form_code:sub(1, 1) ~= 'V' then form = args.article[form_code] .. ' ' .. form end local accel_prefix if args.adjective then -- Generate acceleration information (WT:ACCEL) for declined forms -- and for the comparative and superlative forms. if form_code:find('^%u+$') then local gender, case, number = form_code:match('^(.)(.)(.)$') gender, number = gender:lower, number:lower case = inflection_of_case_abbreviations[case] or error("Case " .. case .. " not recognized.") -- If feminine nominative singular is absent, masculine and feminine -- are probably the same? local gender_codes = gender == 'm' and not args.atable.FNS and gender .. '//f' or gender accel_prefix = gender_codes .. '|' .. case .. '|' .. number if args.comparative then accel_prefix = accel_prefix .. '|comparative' elseif args.superlative then accel_prefix = accel_prefix .. '|superlative' end elseif form_code == "comp" then accel_prefix = 'comparative' elseif form_code == "super" then accel_prefix = 'superlative' end else local case, number = form_code:match('^(.)(.)$') number = number:lower case = inflection_of_case_abbreviations[case] or error("Case '" .. tostring(case) .. "' not found.") accel_prefix = case .. '|' .. number end -- Add suffix, and make sure any macrons and breves are included in the -- non-lemma entry. local accel if accel_prefix then local origin if args.decl_type == "irreg" or args.decl_type == "indecl" then origin = args[2] else for _, number in ipairs { 'S', 'D', 'P' } do				if args.number[number] then local code = 'N' .. number if args.adjective then code = 'M' .. code end origin = args[code] or form_table[code] or args[1] break end end end origin = origin or args[1] -- just in case accel = {form = accel_prefix, lemma = origin} end --		An Ancient Greek word character optionally preceded by a hyphen or		followed by a sequence of word characters or parentheses.		Matches -ᾰ́ς, σοῖσι(ν), as well as cases with parentheses in the middle		of the word. local linked_form = ustring_gsub(form,		'%-?[' .. word_characters .. '][' .. word_characters .. ']*',		function (form)			return link(form, accel)		end) if istitle then return linked_form else return linked_form .. ' ' .. format_translit(form) end end

local function make_title(args) local title = Array title:insert(get_header(args.declheader, args.irregular, args.indeclinable) .. ' of ') -- Display the nominative and genitive form for the first number that has -- forms. for _, number_code in ipairs{ 'S', 'D', 'P' } do		if args.number[number_code] then title:insert(link_form(args, 'N' .. number_code, true) .. '; '				.. link_form(args, 'G' .. number_code, true)) break end end if args.dial then table.insert(args.titleapp, get_label_display(args.dial)) end if args.titleapp[1] then title:insert(' (' .. table.concat(args.titleapp, ', ') .. ')')	end return title:concat end

local case_header =  local form_cell = local function make_rows(args, nums) local rows = Array if not args.adjective then case_header = case_header form_cell = form_cell end for _, case_name in ipairs(case_names) do		rows:insert((case_header:gsub("", case_name))) local case_abbr = case_name:sub(1, 1) for i, number in ipairs(nums) do			rows:insert(fill_params(form_cell, { form = link_form(args, case_abbr .. number:sub(1, 1)), col = i,			})) end end return rows:concat end
 * class="form" data-accel-col="" |

local notes_template = Notes:
 * class="notes" colspan="13" |

local function make_notes(args) args.notes = Array(args.notes) if args.dial ~= 'koi' and args.dial ~= 'gkm' then args.notes:insert(1,			args.dial ~= 'att' and nonAttic_note			or Attic_note) end if args.user_notes then -- add user notes args.notes:insert(args.user_notes) end if args.debug then args.notes:insert(args.debug) end if next(args.notes) == nil then return "" end return fill_params(notes_template, {		extra_cell = args.adjective and '\n| ' or '',		notes = args.notes			:map(function (note) return "\n* " .. note end):concat,	}) end

local number_header =

local noun_table_top = [=[ {| class="inflection-table inflection-table-grc" ! class="case-number-header" | Case / # ]=]

function export.make_table(args) local nums = make_number_table(args.number) if not args.adjective then noun_table_top = noun_table_top number_header = number_header end -- This can be simplified. -- Percents have to be escaped (otherwise, strangely, a null character is	-- inserted). local output = Array(		(noun_table_top :gsub('', make_title(args)))) for _, number in ipairs(nums) do		output:insert((number_header:gsub('', number))) end output:insert(make_rows(args, nums)) output:insert(make_notes(args)) output:insert('|} ') if args.categories[1] and mw.title.getCurrentTitle.nsText == '' then output:insert(require('Module:utilities').format_categories(args.categories, lang)) end return output:concat .. get_stylesheet end

local function make_title_adj(args, genders) if args.title then return args.title else local title = Array title:insert(get_header(args.adeclheader, args.irregular, args.indeclinable) .. ' of ') for _, number in ipairs{ 'S', 'D', 'P' } do			if args.number[number] then local gender_forms = {} for _, gender in ipairs(genders) do table.insert(gender_forms, link_form(args, gender .. 'N' .. number, true)) end title:insert(table.concat(gender_forms, '; ')) break end end if args.dial then table.insert(args.titleapp, get_label_display(args.dial)) end if args.titleapp[1] then title:insert(' (' .. table.concat(args.titleapp, ', ') .. ')')		end return title:concat end end

local function make_rows_adj(args, nums, genders) local rows = Array for _, case_name in ipairs(case_names) do		rows:insert((case_header:gsub('', case_name))) for i, number in ipairs(nums) do			rows:insert('|\n') local case_number = case_name:sub(1, 1) .. number:sub(1, 1) for _, gender in ipairs(genders) do				rows:insert(fill_params(form_cell, { form = link_form(args, gender .. case_number), col = i				})) end end end return rows:concat end

-- Add the part of the table containing the adverb and the comparative and -- superlative forms, if applicable. local function make_acs_adj(args, nums) -- This should only apply to pronouns. I think. -- If all of adverb, comparative, and superlative are absent, don't display -- the "derived forms" part of the table at all. if #nums < 3 or require 'Module:fun'.all(			function (form_code)				return form_is_empty(args.atable[form_code])			end,			{ 'adv', 'comp', 'super' }) then return '' end args.atable.adv = args.atable.adv args.atable.comp = args.atable.comp args.atable.super = args.atable.super local fill = { colspan = (args.act and args.act[2] or args.irregular) and '3' or '2', adv = link_form(args, 'adv'), comp = link_form(args, 'comp'), super = link_form(args, 'super'), }	local acs_section = [=[ ! class="derived-forms-header" rowspan="2" | Derived forms ! class="derived-form-name-header" colspan= | Adverb ! class="derived-form-name-header" colspan= | Comparative ! class="derived-form-name-header" colspan= | Superlative ]=]	return fill_params(acs_section, fill) end
 * class="form" colspan= |
 * class="form" colspan= |
 * class="form" colspan= |
 * class="form" colspan= |
 * class="form" colspan= |
 * class="form" colspan= |
 * class="form" colspan= |

local adj_table_top = [=[ {| class="inflection-table inflection-table-grc" ! class="number-header" | Number ]=]

function export.make_table_adj(args) local nums = make_number_table(args.number) local threept = not(args.act and args.act[2] == nil) local genders = threept and { 'M', 'F', 'N' } or { 'M', 'N' } local number_header = [=[ ! class="divider" | ! class="number-header" colspan=]=] .. (threept and '3' or '2') .. "| \n"

local gender_headers = [=[ ! class="gender-header" | Masculine]=] .. (threept and [=[ !! class="gender-header" | ]=] or [=[ / ]=]) .. [=[Feminine !! class="gender-header" | Neuter ]=]

local output = Array(		(adj_table_top:gsub('', make_title_adj(args, genders)))	) for _, number in ipairs(nums) do		output:insert((number_header:gsub('', number))) end output:insert([=[|- ! class="case-gender-header" | Case/Gender ]=]) for _, _ in ipairs(nums) do		output:insert(gender_headers) end output:insert(make_rows_adj(args, nums, genders)) output:insert(make_acs_adj(args, nums)) output:insert(make_notes(args)) output:insert('|} ') if args.categories[1] and mw.title.getCurrentTitle.nsText == '' then output:insert(require('Module:utilities').format_categories(args.categories, lang)) end return output:concat .. get_stylesheet end

return export

title: Module:grc-decl/table


text:
αμυγδαλίτιδα

Noun

 * 1)  tonsillitis

title: αμυγδαλίτιδα


text:
Module:grc-decl/testcases

local tests = require('Module:UnitTests') local grc_decl = require('Module:grc-decl') local m_links = require('Module:links') local m_script_utils = require('Module:script utilities') local lang = require('Module:languages').getByCode('grc')

local normalize = mw.ustring.toNFD

local function link(term) return m_links.full_link { lang = lang, term = term, tr = '-' } end

local function tag(term) return m_script_utils.tag_text(term, lang) end

local function _cell(t) return function(key1, key2) return t[key1] or t[key2] or '—' end end

local function format_ctable(ctable) local cell = _cell(ctable) return normalize(table.concat({ table.concat({ cell('NS'), cell('GS'), cell('DS'), cell('AS', 'NS'), cell('VS', 'NS') }, ', '), table.concat({ cell('ND'), cell('GD') }, ', '), table.concat({ cell('NP'), cell('GP'), cell('DP'), cell('AP', 'NP') }, ', '), }, ' ')) end

local function format_atable(atable, fem) local cell = _cell(atable) local out = { table.concat({			table.concat({ cell('MNS'), cell('MGS'), cell('MDS'), cell('MAS', 'MNS'), cell('MVS', 'MNS') }, ', '),			table.concat({ cell('MND'), cell('MGD') }, ', '),			table.concat({ cell('MNP'), cell('MGP'), cell('MDP'), cell('MAP', 'MNP') }, ', '),			'',		}, ' ') }	if fem then table.insert(out, table.concat({ table.concat({ cell('FNS'), cell('FGS'), cell('FDS'), cell('FAS', 'FNS') }, ', '), table.concat({ cell('FND'), cell('FGD') }, ', '), table.concat({ cell('FNP'), cell('FGP'), cell('FDP'), cell('FAP', 'FNP') }, ', '), '',		}, ' '))	end table.insert(out, table.concat({ table.concat({ cell('NNS'), cell('NGS'), cell('NDS') }, ', '), table.concat({ cell('NND'), cell('NGD') }, ', '), table.concat({ cell('NNP'), cell('NGP'), cell('NDP') }, ', '), '',		table.concat({ cell('adv'), cell('comp'), cell('super') }, ', '), }, ' '))	return normalize(table.concat(out, ' ')) end

local function print_named_params(input_frame) local output = {} for k, v in pairs(input_frame) do		if type(k) == 'string' then table.insert(output, v)		end end if #output > 0 then return table.concat{ ' (', table.concat(output, ', '), ')' } else return '' end end

local function show(input_frame) return link(input_frame[1]) .. (input_frame[2] and ', ' .. tag(input_frame[2]) or '') .. print_named_params(input_frame) end

function tests:check_output_noun(input_frame, output_ctable) local args = grc_decl.test_decl(input_frame) self:equals(show(input_frame),		format_ctable(args.ctable),		format_ctable(output_ctable),		{ display = tag, show_difference = true }) end

function tests:check_output_adj(input_frame, output_atable) local args = grc_decl.test_adecl(input_frame) local fem = args.act[2] self:equals(show(input_frame),		format_atable(args.atable, fem),		format_atable(output_atable, fem),		{ display = tag, show_difference = true }) end

local function iterate(examples) for _, example in ipairs(examples) do		if type(example) == "table" then tests:check_output_noun(example[1], example[2]) else tests:heading(example) end end end

local function iterate_adj(examples) for _, example in ipairs(examples) do		if type(example) == "table" then tests:check_output_adj(example[1], example[2]) else tests:heading(example) end end end

function tests:test_grc_decl_first local examples = { 'Feminine long alpha', { { 'θήρᾱ', 'ᾱς' }, { NS = 'θήρᾱ', GS = 'θήρᾱς', DS = 'θήρᾳ', AS = 'θήρᾱν', ND = 'θήρᾱ', GD = 'θήραιν', NP = 'θῆραι', GP = 'θηρῶν', DP = 'θήραις', AP = 'θήρᾱς' } }, { { 'βῐ́ᾱ', 'ᾱς' }, { NS = 'βῐ́ᾱ', GS = 'βῐ́ᾱς', DS = 'βῐ́ᾳ', AS = 'βῐ́ᾱν', ND = 'βῐ́ᾱ', GD = 'βῐ́αιν', NP = 'βῐ́αι', GP = 'βῐῶν', DP = 'βῐ́αις', AP = 'βῐ́ᾱς' } }, { { 'φῐλῐ́ᾱ', 'ᾱς' }, { NS = 'φῐλῐ́ᾱ', GS = 'φῐλῐ́ᾱς', DS = 'φῐλῐ́ᾳ', AS = 'φῐλῐ́ᾱν', ND = 'φῐλῐ́ᾱ', GD = 'φῐλῐ́αιν', NP = 'φῐλῐ́αι', GP = 'φῐλῐῶν', DP = 'φῐλῐ́αις', AP = 'φῐλῐ́ᾱς' } }, { { 'ᾰ̓γορᾱ́', 'ᾶς' }, { NS = 'ᾰ̓γορᾱ́', GS = 'ᾰ̓γορᾶς', DS = 'ᾰ̓γορᾷ', AS = 'ᾰ̓γορᾱ́ν', ND = 'ᾰ̓γορᾱ́', GD = 'ᾰ̓γοραῖν', NP = 'ᾰ̓γοραί', GP = 'ᾰ̓γορῶν', DP = 'ᾰ̓γοραῖς', AP = 'ᾰ̓γορᾱ́ς' } }, 'Feminine eta', { { 'νῑ́κη', 'ης' }, { NS = 'νῑ́κη', GS = 'νῑ́κης', DS = 'νῑ́κῃ', AS = 'νῑ́κην', ND = 'νῑ́κᾱ', GD = 'νῑ́καιν', NP = 'νῖκαι', GP = 'νῑκῶν', DP = 'νῑ́καις', AP = 'νῑ́κᾱς' } }, { { 'δῐ́κη', 'ης' }, { NS = 'δῐ́κη', GS = 'δῐ́κης', DS = 'δῐ́κῃ', AS = 'δῐ́κην', ND = 'δῐ́κᾱ', GD = 'δῐ́καιν', NP = 'δῐ́και', GP = 'δῐκῶν', DP = 'δῐ́καις', AP = 'δῐ́κᾱς' } }, { { 'ἐπῐστήμη', 'ης' }, { NS = 'ἐπῐστήμη', GS = 'ἐπῐστήμης', DS = 'ἐπῐστήμῃ', AS = 'ἐπῐστήμην', ND = 'ἐπῐστήμᾱ', GD = 'ἐπῐστήμαιν', NP = 'ἐπῐστῆμαι', GP = 'ἐπῐστημῶν', DP = 'ἐπῐστήμαις', AP = 'ἐπῐστήμᾱς' } }, { { 'βουλή', 'ῆς' }, { NS = 'βουλή', GS = 'βουλῆς', DS = 'βουλῇ', AS = 'βουλήν', ND = 'βουλᾱ́', GD = 'βουλαῖν', NP = 'βουλαί', GP = 'βουλῶν', DP = 'βουλαῖς', AP = 'βουλᾱ́ς' } }, 'Feminine short alpha', { { 'ᾰ̓λήθειᾰ', 'ᾱς' }, { NS = 'ᾰ̓λήθειᾰ', GS = 'ᾰ̓ληθείᾱς', DS = 'ᾰ̓ληθείᾳ', AS = 'ᾰ̓λήθειᾰν', ND = 'ᾰ̓ληθείᾱ', GD = 'ᾰ̓ληθείαιν', NP = 'ᾰ̓λήθειαι', GP = 'ᾰ̓ληθειῶν', DP = 'ᾰ̓ληθείαις', AP = 'ᾰ̓ληθείᾱς' } }, { { 'θάλασσᾰ', 'ης' }, { NS = 'θάλασσᾰ', GS = 'θαλάσσης', DS = 'θαλάσσῃ', AS = 'θάλασσᾰν', ND = 'θαλάσσᾱ', GD = 'θαλάσσαιν', NP = 'θάλασσαι', GP = 'θαλασσῶν', DP = 'θαλάσσαις', AP = 'θαλάσσᾱς' } }, { { 'γλῶσσᾰ', 'ης' }, { NS = 'γλῶσσᾰ', GS = 'γλώσσης', DS = 'γλώσσῃ', AS = 'γλῶσσᾰν', ND = 'γλώσσᾱ', GD = 'γλώσσαιν', NP = 'γλῶσσαι', GP = 'γλωσσῶν', DP = 'γλώσσαις', AP = 'γλώσσᾱς' } }, 'Feminine short alpha (contracted)', { { 'μνᾶ', 'ᾶς' }, { NS = 'μνᾶ', GS = 'μνᾶς', DS = 'μνᾷ', AS = 'μνᾶν', ND = 'μνᾶ', GD = 'μναῖν', NP = 'μναῖ', GP = 'μνῶν', DP = 'μναῖς', AP = 'μνᾶς' } }, { { 'γῆ', 'ῆς' }, { NS = 'γῆ', GS = 'γῆς', DS = 'γῇ', AS = 'γῆν', ND = 'γᾶ', GD = 'γαῖν', NP = 'γαῖ/γέαι', GP = 'γῶν/γεῶν', DP = 'γαῖς', AP = 'γᾶς/γέᾱς' } }, 'Masculine alpha', { { 'νεᾱνῐ́ᾱς', 'ου' }, { NS = 'νεᾱνῐ́ᾱς', GS = 'νεᾱνῐ́ου', DS = 'νεᾱνῐ́ᾳ', AS = 'νεᾱνῐ́ᾱν', VS = 'νεᾱνῐ́ᾱ', ND = 'νεᾱνῐ́ᾱ', GD = 'νεᾱνῐ́αιν', NP = 'νεᾱνῐ́αι', GP = 'νεᾱνῐῶν', DP = 'νεᾱνῐ́αις', AP = 'νεᾱνῐ́ᾱς' } }, { { 'Βορρᾶς', 'ᾶ' }, { NS = 'Βορρᾶς', GS = 'Βορρᾶ', DS = 'Βορρᾷ', AS = 'Βορρᾶν', VS = 'Βορρᾶ', ND = 'Βορρᾶ', GD = 'Βορραῖν', NP = 'Βορραῖ', GP = 'Βορρῶν', DP = 'Βορραῖς', AP = 'Βορρᾶς' } }, { { 'Νασικᾶς', 'ᾶ' }, { NS = 'Νασικᾶς', GS = 'Νασικᾶ', DS = 'Νασικᾷ', AS = 'Νασικᾶν', VS = 'Νασικᾶ', ND = 'Νασικᾶ', GD = 'Νασικαῖν', NP = 'Νασικαῖ', GP = 'Νασικῶν', DP = 'Νασικαῖς', AP = 'Νασικᾶς' } }, 'Masculine eta', { { 'πώλης', 'πώλου' }, { NS = 'πώλης', GS = 'πώλου', DS = 'πώλῃ', AS = 'πώλην', VS = 'πώλη', ND = 'πώλᾱ', GD = 'πώλαιν', NP = 'πῶλαι', GP = 'πωλῶν', DP = 'πώλαις', AP = 'πώλᾱς' } }, { { 'πολῑ́της', 'ου' }, { NS = 'πολῑ́της', GS = 'πολῑ́του', DS = 'πολῑ́τῃ', AS = 'πολῑ́την', VS = 'πολῖτᾰ', ND = 'πολῑ́τᾱ', GD = 'πολῑ́ταιν', NP = 'πολῖται', GP = 'πολῑτῶν', DP = 'πολῑ́ταις', AP = 'πολῑ́τᾱς' } }, { { 'κρῐτής', 'οῦ' }, { NS = 'κρῐτής', GS = 'κρῐτοῦ', DS = 'κρῐτῇ', AS = 'κρῐτήν', VS = 'κρῐτᾰ́', ND = 'κρῐτᾱ́', GD = 'κρῐταῖν', NP = 'κρῐταί', GP = 'κρῐτῶν', DP = 'κρῐταῖς', AP = 'κρῐτᾱ́ς' } }, { { 'Ἑρμῆς', 'οῦ' }, { NS = 'Ἑρμῆς', GS = 'Ἑρμοῦ', DS = 'Ἑρμῇ', AS = 'Ἑρμῆν', VS = 'Ἑρμῆ', ND = 'Ἑρμᾶ', GD = 'Ἑρμαῖν', NP = 'Ἑρμαῖ', GP = 'Ἑρμῶν', DP = 'Ἑρμαῖς', AP = 'Ἑρμᾶς' } }, }	iterate(examples) end

function tests:test_grc_decl_second local examples = { 'Masculine', { { 'θεός', 'οῦ' }, { NS = 'θεός', GS = 'θεοῦ', DS = 'θεῷ', AS = 'θεόν', VS = 'θεέ', ND = 'θεώ', GD = 'θεοῖν', NP = 'θεοί', GP = 'θεῶν', DP = 'θεοῖς', AP = 'θεούς' } }, { { 'λόγος', 'ου' }, { NS = 'λόγος', GS = 'λόγου', DS = 'λόγῳ', AS = 'λόγον', VS = 'λόγε', ND = 'λόγω', GD = 'λόγοιν', NP = 'λόγοι', GP = 'λόγων', DP = 'λόγοις', AP = 'λόγους' } }, { { 'δοῦλος', 'ου' }, { NS = 'δοῦλος', GS = 'δούλου', DS = 'δούλῳ', AS = 'δοῦλον', VS = 'δοῦλε', ND = 'δούλω', GD = 'δούλοιν', NP = 'δοῦλοι', GP = 'δούλων', DP = 'δούλοις', AP = 'δούλους' } }, { { 'ᾰ̓́νθρωπος', 'ου' }, { NS = 'ᾰ̓́νθρωπος', GS = 'ᾰ̓νθρώπου', DS = 'ᾰ̓νθρώπῳ', AS = 'ᾰ̓́νθρωπον', VS = 'ᾰ̓́νθρωπε', ND = 'ᾰ̓νθρώπω', GD = 'ᾰ̓νθρώποιν', NP = 'ᾰ̓́νθρωποι', GP = 'ᾰ̓νθρώπων', DP = 'ᾰ̓νθρώποις', AP = 'ᾰ̓νθρώπους' } }, { { 'Ᾰ̓θηναῖος', 'ου' }, { NS = 'Ᾰ̓θηναῖος', GS = 'Ᾰ̓θηναίου', DS = 'Ᾰ̓θηναίῳ', AS = 'Ᾰ̓θηναῖον', VS = 'Ᾰ̓θηναῖε', ND = 'Ᾰ̓θηναίω', GD = 'Ᾰ̓θηναίοιν', NP = 'Ᾰ̓θηναῖοι', GP = 'Ᾰ̓θηναίων', DP = 'Ᾰ̓θηναίοις', AP = 'Ᾰ̓θηναίους' } }, 'Masculine (contracted)', { { 'πλοῦς', 'οῦ' }, { NS = 'πλοῦς', GS = 'πλοῦ', DS = 'πλῷ', AS = 'πλοῦν', VS = 'πλοῦ', ND = 'πλώ', GD = 'πλοῖν', NP = 'πλοῖ', GP = 'πλῶν', DP = 'πλοῖς', AP = 'πλοῦς' } }, { { 'Πειρίθους', 'ου' }, { NS = 'Πειρίθους', GS = 'Πειρίθου', DS = 'Πειρίθῳ', AS = 'Πειρίθουν', VS = 'Πειρίθου', ND = 'Πειρίθω', GD = 'Πειρίθοιν', NP = 'Πειρίθοι', GP = 'Πειρίθων', DP = 'Πειρίθοις', AP = 'Πειρίθους' } }, 'Attic', { { 'νεώς', 'ώ' }, { NS = 'νεώς', GS = 'νεώ', DS = 'νεῴ', AS = 'νεώ(ν)', ND = 'νεώ', GD = 'νεῴν', NP = 'νεῴ', GP = 'νεών', DP = 'νεῴς', AP = 'νεώς' } }, 'Neuter', { { 'ἄροτρον', 'ου' }, { NS = 'ἄροτρον', GS = 'ἀρότρου', DS = 'ἀρότρῳ', ND = 'ἀρότρω', GD = 'ἀρότροιν', NP = 'ἄροτρᾰ', GP = 'ἀρότρων', DP = 'ἀρότροις' } }, { { 'ᾰ̓́ντρον', 'ου' }, { NS = 'ᾰ̓́ντρον', GS = 'ᾰ̓́ντρου', DS = 'ᾰ̓́ντρῳ', ND = 'ᾰ̓́ντρω', GD = 'ᾰ̓́ντροιν', NP = 'ᾰ̓́ντρᾰ', GP = 'ᾰ̓́ντρων', DP = 'ᾰ̓́ντροις' } }, { { 'δῶρον', 'ου' }, { NS = 'δῶρον', GS = 'δώρου', DS = 'δώρῳ', ND = 'δώρω', GD = 'δώροιν', NP = 'δῶρᾰ', GP = 'δώρων', DP = 'δώροις' } }, { { 'ᾠόν', 'οῦ' }, { NS = 'ᾠόν', GS = 'ᾠοῦ', DS = 'ᾠῷ', ND = 'ᾠώ', GD = 'ᾠοῖν', NP = 'ᾠᾰ́', GP = 'ᾠῶν', DP = 'ᾠοῖς' } }, { { 'πεδῐ́ον', 'ου' }, { NS = 'πεδῐ́ον', GS = 'πεδῐ́ου', DS = 'πεδῐ́ῳ', ND = 'πεδῐ́ω', GD = 'πεδῐ́οιν', NP = 'πεδῐ́ᾰ', GP = 'πεδῐ́ων', DP = 'πεδῐ́οις' } }, 'Neuter (contracted)', { { 'ὀστοῦν', 'οῦ' }, { NS = 'ὀστοῦν', GS = 'ὀστοῦ', DS = 'ὀστῷ', ND = 'ὀστώ', GD = 'ὀστοῖν', NP = 'ὀστᾶ', GP = 'ὀστῶν', DP = 'ὀστοῖς' } }, }	iterate(examples) end

function tests:test_grc_decl_third_cons local examples = { 'Velar (-αξ)', { { 'κλῖμᾰξ', 'κλῑ́μᾰκος' }, { NS = 'κλῖμᾰξ', GS = 'κλῑ́μᾰκος', DS = 'κλῑ́μᾰκῐ', AS = 'κλῑ́μᾰκᾰ', ND = 'κλῑ́μᾰκε', GD = 'κλῑμᾰ́κοιν', NP = 'κλῑ́μᾰκες', GP = 'κλῑμᾰ́κων', DP = 'κλῑ́μᾰξῐ(ν)', AP = 'κλῑ́μᾰκᾰς' } }, { { 'φῠ́λᾰξ', 'φῠ́λᾰκος' }, { NS = 'φῠ́λᾰξ', GS = 'φῠ́λᾰκος', DS = 'φῠ́λᾰκῐ', AS = 'φῠ́λᾰκᾰ', ND = 'φῠ́λᾰκε', GD = 'φῠλᾰ́κοιν', NP = 'φῠ́λᾰκες', GP = 'φῠλᾰ́κων', DP = 'φῠ́λᾰξῐ(ν)', AP = 'φῠ́λᾰκᾰς' } }, { { 'δρᾰ́ξ', 'δρᾰκός' }, { NS = 'δρᾰ́ξ', GS = 'δρᾰκός', DS = 'δρᾰκῐ́', AS = 'δρᾰ́κᾰ', ND = 'δρᾰ́κε', GD = 'δρᾰκοῖν', NP = 'δρᾰ́κες', GP = 'δρᾰκῶν', DP = 'δρᾰξῐ́(ν)', AP = 'δρᾰ́κᾰς' } }, 'Velar (-ιξ)', { { 'φοῖνῐξ', 'φοίνῑκος' }, { NS = 'φοῖνῐξ', GS = 'φοίνῑκος', DS = 'φοίνῑκῐ', AS = 'φοίνῑκᾰ', ND = 'φοίνῑκε', GD = 'φοινῑ́κοιν', NP = 'φοίνῑκες', GP = 'φοινῑ́κων', DP = 'φοίνῑξῐ(ν)', AP = 'φοίνῑκᾰς' } }, { { 'μάστῑξ', 'μάστῑγος' }, { NS = 'μάστῑξ', GS = 'μάστῑγος', DS = 'μάστῑγῐ', AS = 'μάστῑγᾰ', ND = 'μάστῑγε', GD = 'μαστῑ́γοιν', NP = 'μάστῑγες', GP = 'μαστῑ́γων', DP = 'μάστῑξῐ(ν)', AP = 'μάστῑγᾰς' } }, { { 'θρῐ́ξ', 'τρῐ́χος' }, { NS = 'θρῐ́ξ', GS = 'τρῐχός', DS = 'τρῐχῐ́', AS = 'τρῐ́χᾰ', ND = 'τρῐ́χε', GD = 'τρῐχοῖν', NP = 'τρῐ́χες', GP = 'τρῐχῶν', DP = 'τρῐξῐ́(ν)', AP = 'τρῐ́χᾰς' } }, 'Velar (-υξ)', { { 'κῆρῠξ', 'κήρῡκος' }, { NS = 'κῆρῠξ', GS = 'κήρῡκος', DS = 'κήρῡκῐ', AS = 'κήρῡκᾰ', ND = 'κήρῡκε', GD = 'κηρῡ́κοιν', NP = 'κήρῡκες', GP = 'κηρῡ́κων', DP = 'κήρῡξῐ(ν)', AP = 'κήρῡκᾰς' } }, { { 'πτέρῠξ', 'πτέρῠγος' }, { NS = 'πτέρῠξ', GS = 'πτέρῠγος', DS = 'πτέρῠγῐ', AS = 'πτέρῠγᾰ', ND = 'πτέρῠγε', GD = 'πτερῠ́γοιν', NP = 'πτέρῠγες', GP = 'πτερῠ́γων', DP = 'πτέρῠξῐ(ν)', AP = 'πτέρῠγᾰς' } }, { { 'ὄνῠξ', 'ὄνῠχος' }, { NS = 'ὄνῠξ', GS = 'ὄνῠχος', DS = 'ὄνῠχῐ', AS = 'ὄνῠχᾰ', ND = 'ὄνῠχε', GD = 'ὀνῠ́χοιν', NP = 'ὄνῠχες', GP = 'ὀνῠ́χων', DP = 'ὄνῠξῐ(ν)', AP = 'ὄνῠχᾰς' } }, { { 'νῠ́ξ', 'νῠκτός' }, { NS = 'νῠ́ξ', GS = 'νῠκτός', DS = 'νῠκτῐ́', AS = 'νῠ́κτᾰ', ND = 'νῠ́κτε', GD = 'νῠκτοῖν', NP = 'νῠ́κτες', GP = 'νῠκτῶν', DP = 'νῠξῐ́(ν)', AP = 'νῠ́κτᾰς' } }, { { 'Πνύξ', 'Πῠκνός' }, { NS = 'Πνύξ', GS = 'Πῠκνός', DS = 'Πῠκνῐ́', AS = 'Πῠ́κνᾰ', ND = 'Πῠ́κνε', GD = 'Πῠκνοῖν', NP = 'Πῠ́κνες', GP = 'Πῠκνῶν', DP = 'Πῠκσῐ́(ν)', AP = 'Πῠ́κνᾰς' } }, { { 'πῡ́ξ', 'πῡγός' }, { NS = 'πῡ́ξ', GS = 'πῡγός', DS = 'πῡγῐ́', AS = 'πῦγᾰ', ND = 'πῦγε', GD = 'πῡγοῖν', NP = 'πῦγες', GP = 'πῡγῶν', DP = 'πῡξῐ́(ν)', AP = 'πῦγᾰς' } }, 'Velar (-αγξ)', { { 'σῆρᾰγξ', 'σήρᾰγγος' }, { NS = 'σῆρᾰγξ', GS = 'σήρᾰγγος', DS = 'σήρᾰγγῐ', AS = 'σήρᾰγγᾰ', ND = 'σήρᾰγγε', GD = 'σηρᾰ́γγοιν', NP = 'σήρᾰγγες', GP = 'σηρᾰ́γγων', DP = 'σήρᾰγξῐ(ν)', AP = 'σήρᾰγγᾰς' } }, { { 'φᾰ́λᾰγξ', 'φᾰ́λᾰγγος' }, { NS = 'φᾰ́λᾰγξ', GS = 'φᾰ́λᾰγγος', DS = 'φᾰ́λᾰγγῐ', AS = 'φᾰ́λᾰγγᾰ', ND = 'φᾰ́λᾰγγε', GD = 'φᾰλᾰ́γγοιν', NP = 'φᾰ́λᾰγγες', GP = 'φᾰλᾰ́γγων', DP = 'φᾰ́λᾰγξῐ(ν)', AP = 'φᾰ́λᾰγγᾰς' } }, { { 'στρᾰ́γξ', 'στρᾰγγός' }, { NS = 'στρᾰ́γξ', GS = 'στρᾰγγός', DS = 'στρᾰγγῐ́', AS = 'στρᾰ́γγᾰ', ND = 'στρᾰ́γγε', GD = 'στρᾰγγοῖν', NP = 'στρᾰ́γγες', GP = 'στρᾰγγῶν', DP = 'στρᾰγξῐ́(ν)', AP = 'στρᾰ́γγᾰς' } }, 'Velar (-ιγξ)', { { 'στῆρῐγξ', 'στήρῐγγος' }, { NS = 'στῆρῐγξ', GS = 'στήρῐγγος', DS = 'στήρῐγγῐ', AS = 'στήρῐγγᾰ', ND = 'στήρῐγγε', GD = 'στηρῐ́γγοιν', NP = 'στήρῐγγες', GP = 'στηρῐ́γγων', DP = 'στήρῐγξῐ(ν)', AP = 'στήρῐγγᾰς' } }, { { 'σᾰ́λπῐγξ', 'σᾰ́λπῐγγος' }, { NS = 'σᾰ́λπῐγξ', GS = 'σᾰ́λπῐγγος', DS = 'σᾰ́λπῐγγῐ', AS = 'σᾰ́λπῐγγᾰ', ND = 'σᾰ́λπῐγγε', GD = 'σᾰλπῐ́γγοιν', NP = 'σᾰ́λπῐγγες', GP = 'σᾰλπῐ́γγων', DP = 'σᾰ́λπῐγξῐ(ν)', AP = 'σᾰ́λπῐγγᾰς' } }, { { 'Σφῐ́γξ', 'Σφῐγγός' }, { NS = 'Σφῐ́γξ', GS = 'Σφῐγγός', DS = 'Σφῐγγῐ́', AS = 'Σφῐ́γγᾰ', ND = 'Σφῐ́γγε', GD = 'Σφῐγγοῖν', NP = 'Σφῐ́γγες', GP = 'Σφῐγγῶν', DP = 'Σφῐγξῐ́(ν)', AP = 'Σφῐ́γγᾰς' } }, 'Velar (-υγξ)', { { 'σπῆλῠγξ', 'σπήλῠγγος' }, { NS = 'σπῆλῠγξ', GS = 'σπήλῠγγος', DS = 'σπήλῠγγῐ', AS = 'σπήλῠγγᾰ', ND = 'σπήλῠγγε', GD = 'σπηλῠ́γγοιν', NP = 'σπήλῠγγες', GP = 'σπηλῠ́γγων', DP = 'σπήλῠγξῐ(ν)', AP = 'σπήλῠγγᾰς' } }, { { 'φᾰ́ρῠγξ', 'φᾰ́ρῠγος' }, { NS = 'φᾰ́ρῠγξ', GS = 'φᾰ́ρῠγος', DS = 'φᾰ́ρῠγῐ', AS = 'φᾰ́ρῠγᾰ', ND = 'φᾰ́ρῠγε', GD = 'φᾰρῠ́γοιν', NP = 'φᾰ́ρῠγες', GP = 'φᾰρῠ́γων', DP = 'φᾰ́ρῠξῐ(ν)', AP = 'φᾰ́ρῠγᾰς' } }, { { 'λύγξ', 'λῠγκός' }, { NS = 'λῠ́γξ', GS = 'λῠγκός', DS = 'λῠγκῐ́', AS = 'λῠ́γκᾰ', ND = 'λῠ́γκε', GD = 'λῠγκοῖν', NP = 'λῠ́γκες', GP = 'λῠγκῶν', DP = 'λῠγξῐ́(ν)', AP = 'λῠ́γκᾰς' } }, 'Velar (-ηξ)', { { 'ἀλώπηξ', 'ἀλώπεκος' }, { NS = 'ἀλώπηξ', GS = 'ἀλώπεκος', DS = 'ἀλώπεκῐ', AS = 'ἀλώπεκᾰ', ND = 'ἀλώπεκε', GD = 'ἀλωπέκοιν', NP = 'ἀλώπεκες', GP = 'ἀλωπέκων', DP = 'ἀλώπεξῐ(ν)', AP = 'ἀλώπεκᾰς' } }, { { 'πλήξ', 'πληγός' }, { NS = 'πλήξ', GS = 'πληγός', DS = 'πληγῐ́', AS = 'πλῆγᾰ', ND = 'πλῆγε', GD = 'πληγοῖν', NP = 'πλῆγες', GP = 'πληγῶν', DP = 'πληξῐ́(ν)', AP = 'πλῆγᾰς' } }, 'Velar (-οξ)', { { 'ᾰ̓́λοξ', 'ᾰ̓́λοκος' }, { NS = 'ᾰ̓́λοξ', GS = 'ᾰ̓́λοκος', DS = 'ᾰ̓́λοκῐ', AS = 'ᾰ̓́λοκᾰ', ND = 'ᾰ̓́λοκε', GD = 'ᾰ̓λόκοιν', NP = 'ᾰ̓́λοκες', GP = 'ᾰ̓λόκων', DP = 'ᾰ̓́λοξῐ(ν)', AP = 'ᾰ̓́λοκᾰς' } }, { { 'φλόξ', 'φλογός' }, { NS = 'φλόξ', GS = 'φλογός', DS = 'φλογῐ́', AS = 'φλόγᾰ', ND = 'φλόγε', GD = 'φλογοῖν', NP = 'φλόγες', GP = 'φλογῶν', DP = 'φλοξῐ́(ν)', AP = 'φλόγᾰς' } }, 'Velar (-ωξ)', { { 'θηροδῐ́ωξ', 'θηροδῐ́ωκος' }, { NS = 'θηροδῐ́ωξ', GS = 'θηροδῐ́ωκος', DS = 'θηροδῐ́ωκῐ', AS = 'θηροδῐ́ωκᾰ', ND = 'θηροδῐ́ωκε', GD = 'θηροδῐώκοιν', NP = 'θηροδῐ́ωκες', GP = 'θηροδῐώκων', DP = 'θηροδῐ́ωξῐ(ν)', AP = 'θηροδῐ́ωκᾰς' } }, { { 'βῶξ', 'βωκός' }, { NS = 'βῶξ', GS = 'βωκός', DS = 'βωκῐ́', AS = 'βῶκᾰ', ND = 'βῶκε', GD = 'βωκοῖν', NP = 'βῶκες', GP = 'βωκῶν', DP = 'βωξῐ́(ν)', AP = 'βῶκᾰς' } }, { { 'πτώξ', 'πτωκός' }, { NS = 'πτώξ', GS = 'πτωκός', DS = 'πτωκῐ́', AS = 'πτῶκᾰ', ND = 'πτῶκε', GD = 'πτωκοῖν', NP = 'πτῶκες', GP = 'πτωκῶν', DP = 'πτωξῐ́(ν)', AP = 'πτῶκᾰς' } }, 'Dental (-ας)', { { 'ἐρῠσῐ́πελᾰς', 'ἐρῠσῐπέλᾰτος' }, { NS = 'ἐρῠσῐ́πελᾰς', GS = 'ἐρῠσῐπέλᾰτος', DS = 'ἐρῠσῐπέλᾰτῐ', AS = 'ἐρῠσῐ́πελᾰς', ND = 'ἐρῠσῐπέλᾰτε', GD = 'ἐρῠσῐπελᾰ́τοιν', NP = 'ἐρῠσῐπέλᾰτᾰ', GP = 'ἐρῠσῐπελᾰ́των', DP = 'ἐρῠσῐπέλᾰσῐ(ν)', AP = 'ἐρῠσῐπέλᾰτᾰ' } }, { { 'ἅλᾱς', 'ἅλᾰτος' }, { NS = 'ἅλᾱς', GS = 'ἅλᾰτος', DS = 'ἅλᾰτῐ', AS = 'ἅλᾱς', ND = 'ἅλᾰτε', GD = 'ἁλᾰ́τοιν', NP = 'ἅλᾰτᾰ', GP = 'ἁλᾰ́των', DP = 'ἅλᾰσῐ(ν)', AP = 'ἅλᾰτᾰ' } }, { { 'δεκᾰ́ς', 'δεκᾰ́δος' }, { NS = 'δεκᾰ́ς', GS = 'δεκᾰ́δος', DS = 'δεκᾰ́δῐ', AS = 'δεκᾰ́δᾰ', ND = 'δεκᾰ́δε', GD = 'δεκᾰ́δοιν', NP = 'δεκᾰ́δες', GP = 'δεκᾰ́δων', DP = 'δεκᾰ́σῐ(ν)', AP = 'δεκᾰ́δᾰς' } }, 'Dental (-ας, -αντ-)', { { 'ἐλέφᾱς', 'ἐλέφᾰντος' }, { NS = 'ἐλέφᾱς', GS = 'ἐλέφᾰντος', DS = 'ἐλέφᾰντῐ', AS = 'ἐλέφᾰντᾰ', VS = 'ἐλέφᾰν', ND = 'ἐλέφᾰντε', GD = 'ἐλεφᾰ́ντοιν', NP = 'ἐλέφᾰντες', GP = 'ἐλεφᾰ́ντων', DP = 'ἐλέφᾱσῐ(ν)', AP = 'ἐλέφᾰντᾰς' } }, { { 'ᾰ̓νδρῐᾱ́ς', 'ᾰ̓νδρῐᾰ́ντος' }, { NS = 'ᾰ̓νδρῐᾱ́ς', GS = 'ᾰ̓νδρῐᾰ́ντος', DS = 'ᾰ̓νδρῐᾰ́ντῐ', AS = 'ᾰ̓νδρῐᾰ́ντᾰ', VS = 'ᾰ̓νδρῐᾰ́ν', ND = 'ᾰ̓νδρῐᾰ́ντε', GD = 'ᾰ̓νδρῐᾰ́ντοιν', NP = 'ᾰ̓νδρῐᾰ́ντες', GP = 'ᾰ̓νδρῐᾰ́ντων', DP = 'ᾰ̓νδρῐᾶσῐ(ν)', AP = 'ᾰ̓νδρῐᾰ́ντᾰς' } }, -- Need to verify accentuation of VS: acute or circumflex? Or the form may simply not exist. { { 'ᾰ̓νδρῐᾱ́ς', 'ᾰ̓νδρῐᾶντος' }, { NS = 'ᾰ̓νδρῐᾱ́ς', GS = 'ᾰ̓νδρῐᾶντος', DS = 'ᾰ̓νδρῐᾶντῐ', AS = 'ᾰ̓νδρῐᾶντᾰ', VS = 'ᾰ̓νδρῐᾱ́ν', ND = 'ᾰ̓νδρῐᾶντε', GD = 'ᾰ̓νδρῐᾱ́ντοιν', NP = 'ᾰ̓νδρῐᾶντες', GP = 'ᾰ̓νδρῐᾱ́ντων', DP = 'ᾰ̓νδρῐᾶσῐ(ν)', AP = 'ᾰ̓νδρῐᾶντᾰς' } }, 'Dental (-ις)', { { 'ᾰ̓́γρωστῐς', 'ᾰ̓γρώστῐδος' }, { NS = 'ᾰ̓́γρωστῐς', GS = 'ᾰ̓γρώστῐδος', DS = 'ᾰ̓γρώστῐδῐ', AS = 'ᾰ̓γρώστῐδᾰ', ND = 'ᾰ̓γρώστῐδε', GD = 'ᾰ̓γρωστῐ́δοιν', NP = 'ᾰ̓γρώστῐδες', GP = 'ᾰ̓γρωστῐ́δων', DP = 'ᾰ̓γρώστῐσῐ(ν)', AP = 'ᾰ̓γρώστῐδᾰς' } }, { { 'ὄρνῑς', 'ὄρνῑθος' }, { NS = 'ὄρνῑς', GS = 'ὄρνῑθος', DS = 'ὄρνῑθῐ', AS = 'ὄρνῑθᾰ', ND = 'ὄρνῑθε', GD = 'ὀρνῑ́θοιν', NP = 'ὄρνῑθες', GP = 'ὀρνῑ́θων', DP = 'ὄρνῑσῐ(ν)', AP = 'ὄρνῑθᾰς' } }, { { 'ᾰ̓σπίς', 'ᾰ̓σπῐ́δος' }, { NS = 'ᾰ̓σπῐ́ς', GS = 'ᾰ̓σπῐ́δος', DS = 'ᾰ̓σπῐ́δῐ', AS = 'ᾰ̓σπῐ́δᾰ', ND = 'ᾰ̓σπῐ́δε', GD = 'ᾰ̓σπῐ́δοιν', NP = 'ᾰ̓σπῐ́δες', GP = 'ᾰ̓σπῐ́δων', DP = 'ᾰ̓σπῐ́σῐ(ν)', AP = 'ᾰ̓σπῐ́δᾰς' } }, 'Dental (-υς)', { { 'κώμῡς', 'κώμῡθος' }, { NS = 'κώμῡς', GS = 'κώμῡθος', DS = 'κώμῡθῐ', AS = 'κώμῡθᾰ', ND = 'κώμῡθε', GD = 'κωμῡ́θοιν', NP = 'κώμῡθες', GP = 'κωμῡ́θων', DP = 'κώμῡσῐ(ν)', AP = 'κώμῡθᾰς' } }, { { 'ἐμῠ́ς', 'ἐμῠ́δος' }, { NS = 'ἐμῠ́ς', GS = 'ἐμῠ́δος', DS = 'ἐμῠ́δῐ', AS = 'ἐμῠ́δᾰ', ND = 'ἐμῠ́δε', GD = 'ἐμῠ́δοιν', NP = 'ἐμῠ́δες', GP = 'ἐμῠ́δων', DP = 'ἐμῠ́σῐ(ν)', AP = 'ἐμῠ́δᾰς' } }, 'Dental (-ης)', { { 'ἀθεότης', 'ἀθεότητος' }, { NS = 'ἀθεότης', GS = 'ἀθεότητος', DS = 'ἀθεότητῐ', AS = 'ἀθεότητᾰ', ND = 'ἀθεότητε', GD = 'ἀθεοτήτοιν', NP = 'ἀθεότητες', GP = 'ἀθεοτήτων', DP = 'ἀθεότησῐ(ν)', AP = 'ἀθεότητᾰς' } }, { { 'θής', 'θητός' }, { NS = 'θής', GS = 'θητός', DS = 'θητῐ́', AS = 'θῆτᾰ', ND = 'θῆτε', GD = 'θητοῖν', NP = 'θῆτες', GP = 'θητῶν', DP = 'θησῐ́(ν)', AP = 'θῆτᾰς' } }, 'Dental (-ως)', { { 'ῥῑνόκερως', 'ῥῑνοκέρωτος' }, { NS = 'ῥῑνόκερως', GS = 'ῥῑνοκέρωτος', DS = 'ῥῑνοκέρωτῐ', AS = 'ῥῑνοκέρωτᾰ', ND = 'ῥῑνοκέρωτε', GD = 'ῥῑνοκερώτοιν', NP = 'ῥῑνοκέρωτες', GP = 'ῥῑνοκερώτων', DP = 'ῥῑνοκέρωσῐ(ν)', AP = 'ῥῑνοκέρωτᾰς' } }, { { 'ἔρως', 'ἔρωτος' }, { NS = 'ἔρως', GS = 'ἔρωτος', DS = 'ἔρωτῐ', AS = 'ἔρωτᾰ', ND = 'ἔρωτε', GD = 'ἐρώτοιν', NP = 'ἔρωτες', GP = 'ἐρώτων', DP = 'ἔρωσῐ(ν)', AP = 'ἔρωτᾰς' } }, { { 'φώς', 'φωτός' }, { NS = 'φώς', GS = 'φωτός', DS = 'φωτῐ́', AS = 'φῶτᾰ', ND = 'φῶτε', GD = 'φωτοῖν', NP = 'φῶτες', GP = 'φωτῶν', DP = 'φωσῐ́(ν)', AP = 'φῶτᾰς' } }, 'Dental (irregular)', { { 'κλείς', 'κλειδός' }, { NS = 'κλείς', GS = 'κλειδός', DS = 'κλειδῐ́', AS = 'κλεῖδᾰ', ND = 'κλεῖδε', GD = 'κλειδοῖν', NP = 'κλεῖδες', GP = 'κλειδῶν', DP = 'κλεισῐ́(ν)', AP = 'κλεῖδᾰς' } }, { { 'πούς', 'ποδός' }, { NS = 'πούς', GS = 'ποδός', DS = 'ποδῐ́', AS = 'πόδᾰ', ND = 'πόδε', GD = 'ποδοῖν', NP = 'πόδες', GP = 'ποδῶν', DP = 'ποσῐ́(ν)', AP = 'πόδᾰς' } }, { { 'ὀδούς', 'ὀδόντος' }, { NS = 'ὀδούς', GS = 'ὀδόντος', DS = 'ὀδόντῐ', AS = 'ὀδόντᾰ', VS = 'ὀδόν', ND = 'ὀδόντε', GD = 'ὀδόντοιν', NP = 'ὀδόντες', GP = 'ὀδόντων', DP = 'ὀδοῦσῐ(ν)', AP = 'ὀδόντᾰς' } }, 'Labial (-αψ)', { { 'λαῖλᾰψ', 'λαίλᾰπος' }, { NS = 'λαῖλᾰψ', GS = 'λαίλᾰπος', DS = 'λαίλᾰπῐ', AS = 'λαίλᾰπᾰ', ND = 'λαίλᾰπε', GD = 'λαιλᾰ́ποιν', NP = 'λαίλᾰπες', GP = 'λαιλᾰ́πων', DP = 'λαίλᾰψῐ(ν)', AP = 'λαίλᾰπᾰς' } }, { { 'θέρᾰψ', 'θέρᾰπος' }, { NS = 'θέρᾰψ', GS = 'θέρᾰπος', DS = 'θέρᾰπῐ', AS = 'θέρᾰπᾰ', ND = 'θέρᾰπε', GD = 'θερᾰ́ποιν', NP = 'θέρᾰπες', GP = 'θερᾰ́πων', DP = 'θέρᾰψῐ(ν)', AP = 'θέρᾰπᾰς' } }, { { 'φάψ', 'φᾰβός' }, { NS = 'φᾰ́ψ', GS = 'φᾰβός', DS = 'φᾰβῐ́', AS = 'φᾰ́βᾰ', ND = 'φᾰ́βε', GD = 'φᾰβοῖν', NP = 'φᾰ́βες', GP = 'φᾰβῶν', DP = 'φᾰψῐ́(ν)', AP = 'φᾰ́βᾰς' } }, 'Labial (-ιψ)', { { 'κᾰτῆλῐψ', 'κᾰτήλῐφος' }, { NS = 'κᾰτῆλῐψ', GS = 'κᾰτήλῐφος', DS = 'κᾰτήλῐφῐ', AS = 'κᾰτήλῐφᾰ', ND = 'κᾰτήλῐφε', GD = 'κᾰτηλῐ́φοιν', NP = 'κᾰτήλῐφες', GP = 'κᾰτηλῐ́φων', DP = 'κᾰτήλῐψῐ(ν)', AP = 'κᾰτήλῐφᾰς' } }, { { 'χέρνιψ', 'χέρνιβος' }, { NS = 'χέρνιψ', GS = 'χέρνιβος', DS = 'χέρνιβῐ', AS = 'χέρνιβᾰ', ND = 'χέρνιβε', GD = 'χερνίβοιν', NP = 'χέρνιβες', GP = 'χερνίβων', DP = 'χέρνιψῐ(ν)', AP = 'χέρνιβᾰς' } }, { { 'λίψ', 'λῐβός' }, { NS = 'λῐ́ψ', GS = 'λῐβός', DS = 'λῐβῐ́', AS = 'λῐ́βᾰ', ND = 'λῐ́βε', GD = 'λῐβοῖν', NP = 'λῐ́βες', GP = 'λῐβῶν', DP = 'λῐψῐ́(ν)', AP = 'λῐ́βᾰς' } }, { { 'σκνῑ́ψ', 'σκνῑπός' }, { NS = 'σκνῑ́ψ', GS = 'σκνῑπός', DS = 'σκνῑπῐ́', AS = 'σκνῖπᾰ', ND = 'σκνῖπε', GD = 'σκνῑποῖν', NP = 'σκνῖπες', GP = 'σκνῑπῶν', DP = 'σκνῑψῐ́(ν)', AP = 'σκνῖπᾰς' } }, 'Labial (-υψ)', { { 'χᾰ́λῠψ', 'χᾰ́λῠβος' }, { NS = 'χᾰ́λῠψ', GS = 'χᾰ́λῠβος', DS = 'χᾰ́λῠβῐ', AS = 'χᾰ́λῠβᾰ', ND = 'χᾰ́λῠβε', GD = 'χᾰλῠ́βοιν', NP = 'χᾰ́λῠβες', GP = 'χᾰλῠ́βων', DP = 'χᾰ́λῠψῐ(ν)', AP = 'χᾰ́λῠβᾰς' } }, { { 'γῡ́ψ', 'γῡπός' }, { NS = 'γῡ́ψ', GS = 'γῡπός', DS = 'γῡπῐ́', AS = 'γῦπᾰ', ND = 'γῦπε', GD = 'γῡποῖν', NP = 'γῦπες', GP = 'γῡπῶν', DP = 'γῡψῐ́(ν)', AP = 'γῦπᾰς' } }, 'Labial (-εψ)', { { 'κᾰτῶβλεψ', 'κᾰτώβλεπος' }, { NS = 'κᾰτῶβλεψ', GS = 'κᾰτώβλεπος', DS = 'κᾰτώβλεπῐ', AS = 'κᾰτώβλεπᾰ', ND = 'κᾰτώβλεπε', GD = 'κᾰτωβλέποιν', NP = 'κᾰτώβλεπες', GP = 'κᾰτωβλέπων', DP = 'κᾰτώβλεψῐ(ν)', AP = 'κᾰτώβλεπᾰς' } }, { { 'μελᾰνόφλεψ', 'μελᾰνόφλεβος' }, { NS = 'μελᾰνόφλεψ', GS = 'μελᾰνόφλεβος', DS = 'μελᾰνόφλεβῐ', AS = 'μελᾰνόφλεβᾰ', ND = 'μελᾰνόφλεβε', GD = 'μελᾰνοφλέβοιν', NP = 'μελᾰνόφλεβες', GP = 'μελᾰνοφλέβων', DP = 'μελᾰνόφλεψῐ(ν)', AP = 'μελᾰνόφλεβᾰς' } }, { { 'φλέψ', 'φλεβός' }, { NS = 'φλέψ', GS = 'φλεβός', DS = 'φλεβῐ́', AS = 'φλέβᾰ', ND = 'φλέβε', GD = 'φλεβοῖν', NP = 'φλέβες', GP = 'φλεβῶν', DP = 'φλεψῐ́(ν)', AP = 'φλέβᾰς' } }, 'Labial (-ηψ)', { { 'κώληψ', 'κώληπος' }, { NS = 'κώληψ', GS = 'κώληπος', DS = 'κώληπῐ', AS = 'κώληπᾰ', ND = 'κώληπε', GD = 'κωλήποιν', NP = 'κώληπες', GP = 'κωλήπων', DP = 'κώληψῐ(ν)', AP = 'κώληπᾰς' } }, { { 'σήψ', 'σηπός' }, { NS = 'σήψ', GS = 'σηπός', DS = 'σηπῐ́', AS = 'σῆπᾰ', ND = 'σῆπε', GD = 'σηποῖν', NP = 'σῆπες', GP = 'σηπῶν', DP = 'σηψῐ́(ν)', AP = 'σῆπᾰς' } }, 'Labial (-οψ)', { { 'κᾰλαῦροψ', 'κᾰλαύροπος' }, { NS = 'κᾰλαῦροψ', GS = 'κᾰλαύροπος', DS = 'κᾰλαύροπῐ', AS = 'κᾰλαύροπᾰ', ND = 'κᾰλαύροπε', GD = 'κᾰλαυρόποιν', NP = 'κᾰλαύροπες', GP = 'κᾰλαυρόπων', DP = 'κᾰλαύροψῐ(ν)', AP = 'κᾰλαύροπᾰς' } }, { { 'Αἰθῐ́οψ', 'Αἰθῐ́οπος' }, { NS = 'Αἰθῐ́οψ', GS = 'Αἰθῐ́οπος', DS = 'Αἰθῐ́οπῐ', AS = 'Αἰθῐ́οπᾰ', ND = 'Αἰθῐ́οπε', GD = 'Αἰθῐόποιν', NP = 'Αἰθῐ́οπες', GP = 'Αἰθῐόπων', DP = 'Αἰθῐ́οψῐ(ν)', AP = 'Αἰθῐ́οπᾰς' } }, { { 'ὄψ', 'ὀπός' }, { NS = 'ὄψ', GS = 'ὀπός', DS = 'ὀπῐ́', AS = 'ὄπᾰ', ND = 'ὄπε', GD = 'ὀποῖν', NP = 'ὄπες', GP = 'ὀπῶν', DP = 'ὀψῐ́(ν)', AP = 'ὄπᾰς' } }, 'Labial (-ωψ)', { { 'ὕδρωψ', 'ὕδρωπος' }, { NS = 'ὕδρωψ', GS = 'ὕδρωπος', DS = 'ὕδρωπῐ', AS = 'ὕδρωπᾰ', ND = 'ὕδρωπε', GD = 'ὑδρώποιν', NP = 'ὕδρωπες', GP = 'ὑδρώπων', DP = 'ὕδρωψῐ(ν)', AP = 'ὕδρωπᾰς' } }, { { 'ὤψ', 'ὠπός' }, { NS = 'ὤψ', GS = 'ὠπός', DS = 'ὠπῐ́', AS = 'ὦπᾰ', ND = 'ὦπε', GD = 'ὠποῖν', NP = 'ὦπες', GP = 'ὠπῶν', DP = 'ὠψῐ́(ν)', AP = 'ὦπᾰς' } }, 'Rhotic (-αρ)', { { 'μᾰ́κᾱρ', 'μᾰ́κᾰρος' }, { NS = 'μᾰ́κᾱρ', GS = 'μᾰ́κᾰρος', DS = 'μᾰ́κᾰρῐ', AS = 'μᾰ́κᾰρᾰ', VS = 'μᾰ́κᾰρ', ND = 'μᾰ́κᾰρε', GD = 'μᾰκᾰ́ροιν', NP = 'μᾰ́κᾰρες', GP = 'μᾰκᾰ́ρων', DP = 'μᾰ́κᾰρσῐ(ν)', AP = 'μᾰ́κᾰρᾰς' } }, { { 'ψᾱ́ρ', 'ψᾱρός' }, { NS = 'ψᾱ́ρ', GS = 'ψᾱρός', DS = 'ψᾱρῐ́', AS = 'ψᾶρᾰ', ND = 'ψᾶρε', GD = 'ψᾱροῖν', NP = 'ψᾶρες', GP = 'ψᾱρῶν', DP = 'ψᾱρσῐ́(ν)', AP = 'ψᾶρᾰς' } }, 'Rhotic (-ηρ)', { { 'πάνθηρ', 'πάνθηρος' }, { NS = 'πάνθηρ', GS = 'πάνθηρος', DS = 'πάνθηρῐ', AS = 'πάνθηρᾰ', ND = 'πάνθηρε', GD = 'πανθήροιν', NP = 'πάνθηρες', GP = 'πανθήρων', DP = 'πάνθηρσῐ(ν)', AP = 'πάνθηρᾰς' } }, { { 'Δημήτηρ', 'Δημήτερος' }, { NS = 'Δημήτηρ', GS = 'Δημήτερος', DS = 'Δημήτερῐ', AS = 'Δημήτερᾰ', VS = 'Δημῆτερ', ND = 'Δημήτερε', GD = 'Δημητέροιν', NP = 'Δημήτερες', GP = 'Δημητέρων', DP = 'Δημήτερσῐ(ν)', AP = 'Δημήτερᾰς' } }, { { 'δρηστήρ', 'δρηστῆρος' }, { NS = 'δρηστήρ', GS = 'δρηστῆρος', DS = 'δρηστῆρῐ', AS = 'δρηστῆρᾰ', ND = 'δρηστῆρε', GD = 'δρηστήροιν', NP = 'δρηστῆρες', GP = 'δρηστήρων', DP = 'δρηστῆρσῐ(ν)', AP = 'δρηστῆρᾰς' } }, { { 'Κῆρ', 'Κηρός' }, { NS = 'Κῆρ', GS = 'Κηρός', DS = 'Κηρῐ́', AS = 'Κῆρᾰ', ND = 'Κῆρε', GD = 'Κηροῖν', NP = 'Κῆρες', GP = 'Κηρῶν', DP = 'Κηρσῐ́(ν)', AP = 'Κῆρᾰς' } }, { { 'ἀστήρ', 'ἀστέρος' }, { NS = 'ἀστήρ', GS = 'ἀστέρος', DS = 'ἀστέρῐ', AS = 'ἀστέρᾰ', ND = 'ἀστέρε', GD = 'ἀστέροιν', NP = 'ἀστέρες', GP = 'ἀστέρων', DP = 'ἀστέρσῐ(ν)', AP = 'ἀστέρᾰς' } }, { { 'φήρ', 'φηρός' }, { NS = 'φήρ', GS = 'φηρός', DS = 'φηρῐ́', AS = 'φῆρᾰ', ND = 'φῆρε', GD = 'φηροῖν', NP = 'φῆρες', GP = 'φηρῶν', DP = 'φηρσῐ́(ν)', AP = 'φῆρᾰς' } }, 'Rhotic (-ωρ)', { { 'ῥήτωρ', 'ῥήτορος' }, { NS = 'ῥήτωρ', GS = 'ῥήτορος', DS = 'ῥήτορῐ', AS = 'ῥήτορᾰ', VS = 'ῥῆτορ', ND = 'ῥήτορε', GD = 'ῥητόροιν', NP = 'ῥήτορες', GP = 'ῥητόρων', DP = 'ῥήτορσῐ(ν)', AP = 'ῥήτορᾰς' } }, { { 'ῑ̓χώρ', 'ῑ̓χῶρος' }, { NS = 'ῑ̓χώρ', GS = 'ῑ̓χῶρος', DS = 'ῑ̓χῶρῐ', AS = 'ῑ̓χῶρᾰ', ND = 'ῑ̓χῶρε', GD = 'ῑ̓χώροιν', NP = 'ῑ̓χῶρες', GP = 'ῑ̓χώρων', DP = 'ῑ̓χῶρσῐ(ν)', AP = 'ῑ̓χῶρᾰς' } }, { { 'φώρ', 'φωρός' }, { NS = 'φώρ', GS = 'φωρός', DS = 'φωρῐ́', AS = 'φῶρᾰ', ND = 'φῶρε', GD = 'φωροῖν', NP = 'φῶρες', GP = 'φωρῶν', DP = 'φωρσῐ́(ν)', AP = 'φῶρᾰς' } }, 'Rhotic (irregular)', { { 'μᾰ́ρτῠς', 'μᾰ́ρτῠρος' }, { NS = 'μᾰ́ρτῠς', GS = 'μᾰ́ρτῠρος', DS = 'μᾰ́ρτῠρῐ', AS = 'μᾰ́ρτῠρᾰ', VS = 'μᾰ́ρτῠρ', ND = 'μᾰ́ρτῠρε', GD = 'μᾰρτῠ́ροιν', NP = 'μᾰ́ρτῠρες', GP = 'μᾰρτῠ́ρων', DP = 'μᾰ́ρτῠρσῐ(ν)', AP = 'μᾰ́ρτῠρᾰς' } }, 'Nasal (-ις)', { { 'ἀκτῑ́ς', 'ἀκτῖνος' }, { NS = 'ἀκτῑ́ς', GS = 'ἀκτῖνος', DS = 'ἀκτῖνῐ', AS = 'ἀκτῖνᾰ', ND = 'ἀκτῖνε', GD = 'ἀκτῑ́νοιν', NP = 'ἀκτῖνες', GP = 'ἀκτῑ́νων', DP = 'ἀκτῖσῐ(ν)', AP = 'ἀκτῖνᾰς' } }, { { 'ῥῑ́ς', 'ῥῑνός' }, { NS = 'ῥῑ́ς', GS = 'ῥῑνός', DS = 'ῥῑνῐ́', AS = 'ῥῖνᾰ', ND = 'ῥῖνε', GD = 'ῥῑνοῖν', NP = 'ῥῖνες', GP = 'ῥῑνῶν', DP = 'ῥῑσῐ́(ν)', AP = 'ῥῖνᾰς' } }, 'Nasal (-ις)', { { 'ἀρχιποίμην', 'ἀρχιποίμενος' }, { NS = 'ἀρχιποίμην', GS = 'ἀρχιποίμενος', DS = 'ἀρχιποίμενῐ', AS = 'ἀρχιποίμενᾰ', VS = 'ἀρχιποῖμεν', ND = 'ἀρχιποίμενε', GD = 'ἀρχιποιμένοιν', NP = 'ἀρχιποίμενες', GP = 'ἀρχιποιμένων', DP = 'ἀρχιποίμεσῐ(ν)', AP = 'ἀρχιποίμενᾰς' } }, { { 'Ἕλλην', 'Ἕλληνος' }, { NS = 'Ἕλλην', GS = 'Ἕλληνος', DS = 'Ἕλληνῐ', AS = 'Ἕλληνᾰ', ND = 'Ἕλληνε', GD = 'Ἑλλήνοιν', NP = 'Ἕλληνες', GP = 'Ἑλλήνων', DP = 'Ἕλλησῐ(ν)', AP = 'Ἕλληνᾰς' } }, { { 'αὐχήν', 'αὐχένος' }, { NS = 'αὐχήν', GS = 'αὐχένος', DS = 'αὐχένῐ', AS = 'αὐχένᾰ', ND = 'αὐχένε', GD = 'αὐχένοιν', NP = 'αὐχένες', GP = 'αὐχένων', DP = 'αὐχέσῐ(ν)', AP = 'αὐχένᾰς' } }, { { 'Τροιζήν', 'Τροιζῆνος' }, { NS = 'Τροιζήν', GS = 'Τροιζῆνος', DS = 'Τροιζῆνῐ', AS = 'Τροιζῆνᾰ', ND = 'Τροιζῆνε', GD = 'Τροιζήνοιν', NP = 'Τροιζῆνες', GP = 'Τροιζήνων', DP = 'Τροιζῆσῐ(ν)', AP = 'Τροιζῆνᾰς' } }, { { 'φρήν', 'φρενός' }, { NS = 'φρήν', GS = 'φρενός', DS = 'φρενῐ́', AS = 'φρένᾰ', ND = 'φρένε', GD = 'φρενοῖν', NP = 'φρένες', GP = 'φρενῶν', DP = 'φρεσῐ́(ν)', AP = 'φρένᾰς' } }, 'Nasal (-ων)', { { 'δαίμων', 'δαίμονος' }, { NS = 'δαίμων', GS = 'δαίμονος', DS = 'δαίμονῐ', AS = 'δαίμονᾰ', VS = 'δαῖμον', ND = 'δαίμονε', GD = 'δαιμόνοιν', NP = 'δαίμονες', GP = 'δαιμόνων', DP = 'δαίμοσῐ(ν)', AP = 'δαίμονᾰς' } }, { { 'κώδων', 'κώδωνος' }, { NS = 'κώδων', GS = 'κώδωνος', DS = 'κώδωνῐ', AS = 'κώδωνᾰ', ND = 'κώδωνε', GD = 'κωδώνοιν', NP = 'κώδωνες', GP = 'κωδώνων', DP = 'κώδωσῐ(ν)', AP = 'κώδωνᾰς' } }, { { 'ᾰ̓γών', 'ᾰ̓γῶνος' }, { NS = 'ᾰ̓γών', GS = 'ᾰ̓γῶνος', DS = 'ᾰ̓γῶνῐ', AS = 'ᾰ̓γῶνᾰ', ND = 'ᾰ̓γῶνε', GD = 'ᾰ̓γώνοιν', NP = 'ᾰ̓γῶνες', GP = 'ᾰ̓γώνων', DP = 'ᾰ̓γῶσῐ(ν)', AP = 'ᾰ̓γῶνᾰς' } }, { { 'κλών', 'κλωνός' }, { NS = 'κλών', GS = 'κλωνός', DS = 'κλωνῐ́', AS = 'κλῶνᾰ', ND = 'κλῶνε', GD = 'κλωνοῖν', NP = 'κλῶνες', GP = 'κλωνῶν', DP = 'κλωσῐ́(ν)', AP = 'κλῶνᾰς' } }, { { 'χθών', 'χθονός' }, { NS = 'χθών', GS = 'χθονός', DS = 'χθονῐ́', AS = 'χθόνᾰ', ND = 'χθόνε', GD = 'χθονοῖν', NP = 'χθόνες', GP = 'χθονῶν', DP = 'χθοσῐ́(ν)', AP = 'χθόνᾰς' } }, 'Nasal (irregular)', { { 'μείς', 'μηνός' }, { NS = 'μείς', GS = 'μηνός', DS = 'μηνῐ́', AS = 'μῆνᾰ', ND = 'μῆνε', GD = 'μηνοῖν', NP = 'μῆνες', GP = 'μηνῶν', DP = 'μησῐ́(ν)', AP = 'μῆνᾰς' } }, { { 'κτείς', 'κτενός' }, { NS = 'κτείς', GS = 'κτενός', DS = 'κτενῐ́', AS = 'κτένᾰ', ND = 'κτένε', GD = 'κτενοῖν', NP = 'κτένες', GP = 'κτενῶν', DP = 'κτεσῐ́(ν)', AP = 'κτένᾰς' } }, 'Neuter (rhotic)', { { 'ἦμᾰρ', 'ἤμᾰτος' }, { NS = 'ἦμᾰρ', GS = 'ἤμᾰτος', DS = 'ἤμᾰτῐ', AS = 'ἦμᾰρ', ND = 'ἤμᾰτε', GD = 'ἠμᾰ́τοιν', NP = 'ἤμᾰτᾰ', GP = 'ἠμᾰ́των', DP = 'ἤμᾰσῐ(ν)', AP = 'ἤμᾰτᾰ' } }, { { 'ἔᾰρ', 'ἔᾰρος', form = 'N' }, { NS = 'ἔᾰρ', GS = 'ἔᾰρος', DS = 'ἔᾰρῐ', AS = 'ἔᾰρ', ND = 'ἔᾰρε', GD = 'ἐᾰ́ροιν', NP = 'ἔᾰρᾰ', GP = 'ἐᾰ́ρων', DP = 'ἔᾰρσῐ(ν)', AP = 'ἔᾰρᾰ' } }, { { 'στέᾱρ', 'στέᾱτος' }, { NS = 'στέᾱρ', GS = 'στέᾱτος', DS = 'στέᾱτῐ', AS = 'στέᾱρ', ND = 'στέᾱτε', GD = 'στεᾱ́τοιν', NP = 'στέᾱτᾰ', GP = 'στεᾱ́των', DP = 'στέᾱσῐ(ν)', AP = 'στέᾱτᾰ' } }, { { 'στῆρ', 'στητός', form = 'N' }, { NS = 'στῆρ', GS = 'στητός', DS = 'στητῐ́', AS = 'στῆρ', ND = 'στῆτε', GD = 'στητοῖν', NP = 'στῆτᾰ', GP = 'στητῶν', DP = 'στησῐ́(ν)', AP = 'στῆτᾰ' } }, { { 'ἦρ', 'ἠρός', form = 'N' }, { NS = 'ἦρ', GS = 'ἠρός', DS = 'ἠρῐ́', AS = 'ἦρ', ND = 'ἦρε', GD = 'ἠροῖν', NP = 'ἦρᾰ', GP = 'ἠρῶν', DP = 'ἠρσῐ́(ν)', AP = 'ἦρᾰ' } }, { { 'ῠ̔́δωρ', 'ῠ̔́δᾰτος' }, { NS = 'ῠ̔́δωρ', GS = 'ῠ̔́δᾰτος', DS = 'ῠ̔́δᾰτῐ', AS = 'ῠ̔́δωρ', ND = 'ῠ̔́δᾰτε', GD = 'ῠ̔δᾰ́τοιν', NP = 'ῠ̔́δᾰτᾰ', GP = 'ῠ̔δᾰ́των', DP = 'ῠ̔́δᾰσῐ(ν)', AP = 'ῠ̔́δᾰτᾰ' } }, { { 'σκῶρ', 'σκᾰτός' }, { NS = 'σκῶρ', GS = 'σκᾰτός', DS = 'σκᾰτῐ́', AS = 'σκῶρ', ND = 'σκᾰ́τε', GD = 'σκᾰτοῖν', NP = 'σκᾰ́τᾰ', GP = 'σκᾰτῶν', DP = 'σκᾰσῐ́(ν)', AP = 'σκᾰ́τᾰ' } }, 'Neuter (nasal)', { { 'σύστημᾰ', 'συστήμᾰτος' }, { NS = 'σύστημᾰ', GS = 'συστήμᾰτος', DS = 'συστήμᾰτῐ', AS = 'σύστημᾰ', ND = 'συστήμᾰτε', GD = 'συστημᾰ́τοιν', NP = 'συστήμᾰτᾰ', GP = 'συστημᾰ́των', DP = 'συστήμᾰσῐ(ν)', AP = 'συστήμᾰτᾰ' } }, { { 'σῶμᾰ', 'σώμᾰτος' }, { NS = 'σῶμᾰ', GS = 'σώμᾰτος', DS = 'σώμᾰτῐ', AS = 'σῶμᾰ', ND = 'σώμᾰτε', GD = 'σωμᾰ́τοιν', NP = 'σώμᾰτᾰ', GP = 'σωμᾰ́των', DP = 'σώμᾰσῐ(ν)', AP = 'σώμᾰτᾰ' } }, { { 'θέμᾰ', 'θέμᾰτος' }, { NS = 'θέμᾰ', GS = 'θέμᾰτος', DS = 'θέμᾰτῐ', AS = 'θέμᾰ', ND = 'θέμᾰτε', GD = 'θεμᾰ́τοιν', NP = 'θέμᾰτᾰ', GP = 'θεμᾰ́των', DP = 'θέμᾰσῐ(ν)', AP = 'θέμᾰτᾰ' } }, 'Neuter (sigmatic)', { { 'αἶσχος', 'αἴσχους' }, { NS = 'αἶσχος', GS = 'αἴσχους', DS = 'αἴσχει', AS = 'αἶσχος', ND = 'αἴσχει', GD = 'αἰσχοῖν', NP = 'αἴσχη', GP = 'αἰσχῶν', DP = 'αἴσχεσῐ(ν)' } }, { { 'ᾰ̓́νθος', 'ᾰ̓́νθους' }, { NS = 'ᾰ̓́νθος', GS = 'ᾰ̓́νθους', DS = 'ᾰ̓́νθει', AS = 'ᾰ̓́νθος', ND = 'ᾰ̓́νθει', GD = 'ᾰ̓νθοῖν', NP = 'ᾰ̓́νθη', GP = 'ᾰ̓νθῶν', DP = 'ᾰ̓́νθεσῐ(ν)', AP = 'ᾰ̓́νθη' } }, }	iterate(examples) end

function tests:test_grc_decl_third_vowel local examples = { 'Feminine contracted', { { 'ἠχώ', 'ἠχοῦς' }, { NS = 'ἠχώ', GS = 'ἠχοῦς', DS = 'ἠχοῖ', AS = 'ἠχώ', VS = 'ἠχοῖ' } }, 'Iota', { { 'σῠ́νθεσῐς', 'σῠνθέσεως' }, { NS = 'σῠ́νθεσῐς', GS = 'σῠνθέσεως', DS = 'σῠνθέσει', AS = 'σῠ́νθεσῐν', VS = 'σῠ́νθεσῐ', ND = 'σῠνθέσει', GD = 'σῠνθεσέοιν', NP = 'σῠνθέσεις', GP = 'σῠνθέσεων', DP = 'σῠνθέσεσῐ(ν)', AP = 'σῠνθέσεις' } }, { { 'θλῖψῐς', 'θλῑ́ψεως' }, { NS = 'θλῖψῐς', GS = 'θλῑ́ψεως', DS = 'θλῑ́ψει', AS = 'θλῖψῐν', VS = 'θλῖψῐ', ND = 'θλῑ́ψει', GD = 'θλῑψέοιν', NP = 'θλῑ́ψεις', GP = 'θλῑ́ψεων', DP = 'θλῑ́ψεσῐ(ν)', AP = 'θλῑ́ψεις' } }, { { 'πόλῐς', 'πόλεως' }, { NS = 'πόλῐς', GS = 'πόλεως', DS = 'πόλει', AS = 'πόλῐν', VS = 'πόλῐ', ND = 'πόλει', GD = 'πολέοιν', NP = 'πόλεις', GP = 'πόλεων', DP = 'πόλεσῐ(ν)', AP = 'πόλεις' } }, 'Upsilon', { { 'ἱππεύς', 'ἱππέως' }, { NS = 'ἱππεύς', GS = 'ἱππέως', DS = 'ἱππεῖ', AS = 'ἱππέᾱ', VS = 'ἱππεῦ', ND = 'ἱππῆ', GD = 'ἱππέοιν', NP = 'ἱππῆς/ἱππεῖς', GP = 'ἱππέων', DP = 'ἱππεῦσῐ(ν)', AP = 'ἱππέᾱς' } }, { { 'ἁλιεύς', 'ἁλιέως' }, { NS = 'ἁλιεύς', GS = 'ἁλιέως/ἁλιῶς', DS = 'ἁλιεῖ', AS = 'ἁλιέᾱ/ἁλιᾶ', VS = 'ἁλιεῦ', ND = 'ἁλιῆ', GD = 'ἁλιέοιν', NP = 'ἁλιῆς/ἁλιεῖς', GP = 'ἁλιέων/ἁλιῶν', DP = 'ἁλιεῦσῐ(ν)', AP = 'ἁλιέᾱς/ἁλιᾶς' } }, { { 'ᾰ̓́στῠ', 'ᾰ̓́στεως' }, { NS = 'ᾰ̓́στῠ', GS = 'ᾰ̓́στεως', DS = 'ᾰ̓́στει', ND = 'ᾰ̓́στει', GD = 'ᾰ̓στέοιν', NP = 'ᾰ̓́στη/ᾰ̓́στεᾰ', GP = 'ᾰ̓́στεων', DP = 'ᾰ̓́στεσῐ(ν)' } }, { { 'μῦς', 'μῠός' }, { NS = 'μῦς', GS = 'μῠός', DS = 'μῠῐ̈́', AS = 'μῦν', VS = 'μῦ', ND = 'μῠ́ε', GD = 'μῠοῖν', NP = 'μῠ́ες', GP = 'μῠῶν', DP = 'μῡσῐ́(ν)/μῠσῐ́(ν)', AP = 'μῦς/μῠ́ᾰς' } }, { { 'βότρῠς', 'βότρῠος' }, { NS = 'βότρῠς', GS = 'βότρῠος', DS = 'βότρῠῐ̈/βότρυι', AS = 'βότρῠν', VS = 'βότρῠ', ND = 'βότρῠε', GD = 'βοτρῠ́οιν', NP = 'βότρῠες', GP = 'βοτρῠ́ων', DP = 'βότρῠσῐ(ν)', AP = 'βότρῡς/βότρῠᾰς' } }, { { 'ἔγχελῠς', 'ἐγχέλῠος' }, { NS = 'ἔγχελῠς', GS = 'ἐγχέλῠος', DS = 'ἐγχέλῠῐ̈/ἐγχέλυι', AS = 'ἔγχελῠν', VS = 'ἔγχελῠ', ND = 'ἐγχέλῠε', GD = 'ἐγχελῠ́οιν', NP = 'ἐγχέλῠες', GP = 'ἐγχελῠ́ων', DP = 'ἐγχέλῠσῐ(ν)', AP = 'ἐγχέλῡς/ἐγχέλῠᾰς' } }, { { 'ἥρως', 'ἥρωος' }, { NS = 'ἥρως', GS = 'ἥρωος', DS = 'ἥρῳ/ἥρωῐ̈', AS = 'ἥρω/ἥρωᾰ', ND = 'ἥρωε', GD = 'ἡρώοιν', NP = 'ἥρωες', GP = 'ἡρώων', DP = 'ἥρωσῐ(ν)', AP = 'ἥρωᾰς' } }, { { 'Τρώς', 'Τρωός' }, { NS = 'Τρώς', GS = 'Τρωός', DS = 'Τρῷ/Τρῶῐ̈', AS = 'Τρῶ/Τρῶᾰ', ND = 'Τρῶε', GD = 'Τρώοιν', NP = 'Τρῶες', GP = 'Τρώων', DP = 'Τρωσῐ́(ν)', AP = 'Τρῶᾰς' } }, { { 'γόνῠ', 'γόνᾰτος' }, { NS = 'γόνῠ', GS = 'γόνᾰτος', DS = 'γόνᾰτῐ', ND = 'γόνᾰτε', GD = 'γονᾰ́τοιν', NP = 'γόνᾰτᾰ', GP = 'γονᾰ́των', DP = 'γόνᾰσῐ(ν)' } }, { { 'πῆχῠς', 'πήχεως' }, { NS = 'πῆχῠς', GS = 'πήχεως', DS = 'πήχει', AS = 'πῆχῠν', VS = 'πῆχῠ', ND = 'πήχει', GD = 'πηχέοιν', NP = 'πήχεις', GP = 'πήχεων', DP = 'πήχεσῐ(ν)', AP = 'πήχεις' } }, 'Sigmatic', { { 'Περικλῆς', 'Περικλέους' }, { NS = 'Περικλῆς', GS = 'Περικλέους', DS = 'Περικλεῖ', AS = 'Περικλέᾱ', VS = 'Περίκλεις' } }, { { 'φᾰ́ος', 'φᾰ́εος', dial = 'ion' }, { NS = 'φᾰ́ος', GS = 'φᾰ́εος/φᾰ́ευς', DS = 'φᾰ́ει/φᾰ́εῐ̈', ND = 'φᾰ́ει/φᾰ́εε', GD = 'φᾰέοιν', NP = 'φᾰ́εᾰ', GP = 'φᾰέων', DP = 'φᾰ́εσῐ(ν)' } }, { { 'φᾰ́ος', 'φᾰ́ους' }, { NS = 'φᾰ́ος', GS = 'φᾰ́ους', DS = 'φᾰ́ει', ND = 'φᾰ́ει', GD = 'φᾰοῖν', NP = 'φᾰ́η', GP = 'φᾰῶν', DP = 'φᾰ́εσῐ(ν)' } }, 'Laryngeal', { { 'κέρᾰς', 'κέρως' }, { NS = 'κέρᾰς', GS = 'κέρως', DS = 'κέραι/κέρᾳ', ND = 'κέρᾱ', GD = 'κερῷν', NP = 'κέρᾱ', GP = 'κερῶν', DP = 'κέρᾰσῐ(ν)' } }, { { 'κέρᾰς', 'κέρᾱτος' }, { NS = 'κέρᾰς', GS = 'κέρᾱτος', DS = 'κέρᾱτῐ', ND = 'κέρᾱτε', GD = 'κερᾱ́τοιν', NP = 'κέρᾱτᾰ', GP = 'κερᾱ́των', DP = 'κέρᾱσῐ(ν)' } }, { { 'κρέᾰς', 'κρέως' }, { NS = 'κρέᾰς', GS = 'κρέως', DS = 'κρέαι/κρέᾳ', ND = 'κρέᾱ', GD = 'κρεῷν', NP = 'κρέᾱ', GP = 'κρεῶν', DP = 'κρέᾰσῐ(ν)' } }, { { 'κρέᾰς', 'κρέᾰτος' }, { NS = 'κρέᾰς', GS = 'κρέᾰτος', DS = 'κρέᾰτῐ', ND = 'κρέᾰτε', GD = 'κρεᾰ́τοιν', NP = 'κρέᾰτᾰ', GP = 'κρεᾰ́των', DP = 'κρέᾰσῐ(ν)' } }, }	iterate(examples) end

function tests:test_grc_adecl_first_and_second local examples = { 'Long alpha feminine', {			{ 'ᾰ̓́ξῐος', 'ᾱ' }, {				MNS = 'ᾰ̓́ξῐος', MAS = 'ᾰ̓́ξῐον', MVS = 'ᾰ̓́ξῐε', MGS = 'ᾰ̓ξῐ́ου', MDS = 'ᾰ̓ξῐ́ῳ', MND = 'ᾰ̓ξῐ́ω', MGD = 'ᾰ̓ξῐ́οιν', MNP = 'ᾰ̓́ξῐοι', MAP = 'ᾰ̓ξῐ́ους', MGP = 'ᾰ̓ξῐ́ων', MDP = 'ᾰ̓ξῐ́οις', FNS = 'ᾰ̓ξῐ́ᾱ', FAS = 'ᾰ̓ξῐ́ᾱν', FGS = 'ᾰ̓ξῐ́ᾱς', FDS = 'ᾰ̓ξῐ́ᾳ', FND = 'ᾰ̓ξῐ́ᾱ', FGD = 'ᾰ̓ξῐ́αιν', FNP = 'ᾰ̓́ξῐαι', FAP = 'ᾰ̓ξῐ́ᾱς', FGP = 'ᾰ̓ξῐ́ων', FDP = 'ᾰ̓ξῐ́αις', NNS = 'ᾰ̓́ξῐον', NGS = 'ᾰ̓ξῐ́ου', NDS = 'ᾰ̓ξῐ́ῳ', NND = 'ᾰ̓ξῐ́ω', NGD = 'ᾰ̓ξῐ́οιν', NNP = 'ᾰ̓́ξῐᾰ', NGP = 'ᾰ̓ξῐ́ων', NDP = 'ᾰ̓ξῐ́οις', adv = 'ᾰ̓ξῐ́ως', comp = 'ᾰ̓ξῐώτερος', super = 'ᾰ̓ξῐώτᾰτος', },		},		'Eta feminine', {			{ 'ᾰ̓γᾰθός', 'ή' }, {				MNS = 'ᾰ̓γᾰθός', MAS = 'ᾰ̓γᾰθόν', MVS = 'ᾰ̓γᾰθέ', MGS = 'ᾰ̓γᾰθοῦ', MDS = 'ᾰ̓γᾰθῷ', MND = 'ᾰ̓γᾰθώ', MGD = 'ᾰ̓γᾰθοῖν', MNP = 'ᾰ̓γᾰθοί', MAP = 'ᾰ̓γᾰθούς', MGP = 'ᾰ̓γᾰθῶν', MDP = 'ᾰ̓γᾰθοῖς', FNS = 'ᾰ̓γᾰθή', FAS = 'ᾰ̓γᾰθήν', FGS = 'ᾰ̓γᾰθῆς', FDS = 'ᾰ̓γᾰθῇ', FND = 'ᾰ̓γᾰθᾱ́', FGD = 'ᾰ̓γᾰθαῖν', FNP = 'ᾰ̓γᾰθαί', FAP = 'ᾰ̓γᾰθᾱ́ς', FGP = 'ᾰ̓γᾰθῶν', FDP = 'ᾰ̓γᾰθαῖς', NNS = 'ᾰ̓γᾰθόν', NGS = 'ᾰ̓γᾰθοῦ', NDS = 'ᾰ̓γᾰθῷ', NND = 'ᾰ̓γᾰθώ', NGD = 'ᾰ̓γᾰθοῖν', NNP = 'ᾰ̓γᾰθᾰ́', NGP = 'ᾰ̓γᾰθῶν', NDP = 'ᾰ̓γᾰθοῖς', adv = 'ᾰ̓γᾰθῶς', comp = 'ᾰ̓γᾰθώτερος', super = 'ᾰ̓γᾰθώτᾰτος', },		},		{			{ 'ὀλῐ́γος', 'η' }, {				MNS = 'ὀλῐ́γος', MAS = 'ὀλῐ́γον', MVS = 'ὀλῐ́γε', MGS = 'ὀλῐ́γου', MDS = 'ὀλῐ́γῳ', MND = 'ὀλῐ́γω', MGD = 'ὀλῐ́γοιν', MNP = 'ὀλῐ́γοι', MAP = 'ὀλῐ́γους', MGP = 'ὀλῐ́γων', MDP = 'ὀλῐ́γοις', FNS = 'ὀλῐ́γη', FAS = 'ὀλῐ́γην', FGS = 'ὀλῐ́γης', FDS = 'ὀλῐ́γῃ', FND = 'ὀλῐ́γᾱ', FGD = 'ὀλῐ́γαιν', FNP = 'ὀλῐ́γαι', FAP = 'ὀλῐ́γᾱς', FGP = 'ὀλῐ́γων', FDP = 'ὀλῐ́γαις', NNS = 'ὀλῐ́γον', NGS = 'ὀλῐ́γου', NDS = 'ὀλῐ́γῳ', NND = 'ὀλῐ́γω', NGD = 'ὀλῐ́γοιν', NNP = 'ὀλῐ́γᾰ', NGP = 'ὀλῐ́γων', NDP = 'ὀλῐ́γοις', adv = 'ὀλῐ́γως', comp = 'ὀλῐγώτερος', super = 'ὀλῐγώτᾰτος', },		},		{			{ 'ὀρθός', 'η' }, {				MNS = 'ὀρθός', MAS = 'ὀρθόν', MVS = 'ὀρθέ', MGS = 'ὀρθοῦ', MDS = 'ὀρθῷ', MND = 'ὀρθώ', MGD = 'ὀρθοῖν', MNP = 'ὀρθοί', MAP = 'ὀρθούς', MGP = 'ὀρθῶν', MDP = 'ὀρθοῖς', FNS = 'ὀρθή', FAS = 'ὀρθήν', FGS = 'ὀρθῆς', FDS = 'ὀρθῇ', FND = 'ὀρθᾱ́', FGD = 'ὀρθαῖν', FNP = 'ὀρθαί', FAP = 'ὀρθᾱ́ς', FGP = 'ὀρθῶν', FDP = 'ὀρθαῖς', NNS = 'ὀρθόν', NGS = 'ὀρθοῦ', NDS = 'ὀρθῷ', NND = 'ὀρθώ', NGD = 'ὀρθοῖν', NNP = 'ὀρθᾰ́', NGP = 'ὀρθῶν', NDP = 'ὀρθοῖς', adv = 'ὀρθῶς', comp = 'ὀρθότερος', super = 'ὀρθότᾰτος', },		},	}	iterate_adj(examples) end

function tests:test_grc_adecl_second local examples = { {			{ 'ᾰ̓́δῐκος', 'ον' }, {				MNS = 'ᾰ̓́δῐκος', MAS = 'ᾰ̓́δῐκον', MVS = 'ᾰ̓́δῐκε', MGS = 'ᾰ̓δῐ́κου', MDS = 'ᾰ̓δῐ́κῳ', MND = 'ᾰ̓δῐ́κω', MGD = 'ᾰ̓δῐ́κοιν', MNP = 'ᾰ̓́δῐκοι', MAP = 'ᾰ̓δῐ́κους', MGP = 'ᾰ̓δῐ́κων', MDP = 'ᾰ̓δῐ́κοις', NNS = 'ᾰ̓́δῐκον', NGS = 'ᾰ̓δῐ́κου', NDS = 'ᾰ̓δῐ́κῳ', NND = 'ᾰ̓δῐ́κω', NGD = 'ᾰ̓δῐ́κοιν', NNP = 'ᾰ̓́δῐκᾰ', NGP = 'ᾰ̓δῐ́κων', NDP = 'ᾰ̓δῐ́κοις', adv = 'ᾰ̓δῐ́κως', comp = 'ᾰ̓δῐκώτερος', super = 'ᾰ̓δῐκώτᾰτος', },		},		{			{ 'δῠνᾰτός', 'όν' }, {				MNS = 'δῠνᾰτός', MAS = 'δῠνᾰτόν', MVS = 'δῠνᾰτέ', MGS = 'δῠνᾰτοῦ', MDS = 'δῠνᾰτῷ', MND = 'δῠνᾰτώ', MGD = 'δῠνᾰτοῖν', MNP = 'δῠνᾰτοί', MAP = 'δῠνᾰτούς', MGP = 'δῠνᾰτῶν', MDP = 'δῠνᾰτοῖς', NNS = 'δῠνᾰτόν', NGS = 'δῠνᾰτοῦ', NDS = 'δῠνᾰτῷ', NND = 'δῠνᾰτώ', NGD = 'δῠνᾰτοῖν', NNP = 'δῠνᾰτᾰ́', NGP = 'δῠνᾰτῶν', NDP = 'δῠνᾰτοῖς', adv = 'δῠνᾰτῶς', comp = 'δῠνᾰτώτερος', super = 'δῠνᾰτώτᾰτος', },		},		{			{ 'χερσαῖος', 'ον' }, {				MNS = 'χερσαῖος', MAS = 'χερσαῖον', MVS = 'χερσαῖε', MGS = 'χερσαίου', MDS = 'χερσαίῳ', MND = 'χερσαίω', MGD = 'χερσαίοιν', MNP = 'χερσαῖοι', MAP = 'χερσαίους', MGP = 'χερσαίων', MDP = 'χερσαίοις', NNS = 'χερσαῖον', NGS = 'χερσαίου', NDS = 'χερσαίῳ', NND = 'χερσαίω', NGD = 'χερσαίοιν', NNP = 'χερσαῖᾰ', NGP = 'χερσαίων', NDP = 'χερσαίοις', adv = 'χερσαίως', comp = 'χερσαιότερος', super = 'χερσαιότᾰτος', },		},		{			{ 'ῑ̔́λεως', 'ῑ̔́λεων' }, {				MNS = 'ῑ̔́λεως', MAS = 'ῑ̔́λεω(ν)', MVS = 'ῑ̔́λεως', MGS = 'ῑ̔́λεω', MDS = 'ῑ̔́λεῳ', MND = 'ῑ̔́λεω', MAD = 'ῑ̔́λεω', MVD = 'ῑ̔́λεω', MGD = 'ῑ̔́λεῳν', MDD = 'ῑ̔́λεῳν', MNP = 'ῑ̔́λεῳ', MAP = 'ῑ̔́λεως', MVP = 'ῑ̔́λεῳ', MGP = 'ῑ̔́λεων', MDP = 'ῑ̔́λεῳς', NNS = 'ῑ̔́λεων', NAS = 'ῑ̔́λεων', NVS = 'ῑ̔́λεων', NGS = 'ῑ̔́λεω', NDS = 'ῑ̔́λεῳ', NND = 'ῑ̔́λεω', NAD = 'ῑ̔́λεω', NVD = 'ῑ̔́λεω', NGD = 'ῑ̔́λεῳν', NDD = 'ῑ̔́λεῳν', NNP = 'ῑ̔́λεᾰ', NAP = 'ῑ̔́λεᾰ', NVP = 'ῑ̔́λεᾰ', NGP = 'ῑ̔́λεων', NDP = 'ῑ̔́λεῳς', adv = 'ῑ̔́λεως', comp = 'ῑ̔λεώτερος', super = 'ῑ̔λεώτᾰτος', },		}	}	iterate_adj(examples) end

function tests:test_grc_adecl_third local examples = { {			{ 'ψευδής', 'ές', dial = 'ion' }, {				MNS = 'ψευδής', MAS = 'ψευδέᾰ', MVS = 'ψευδές', MGS = 'ψευδέος/ψευδεῦς', MDS = 'ψευδεῖ/ψευδέῐ̈', MND = 'ψευδεῖ/ψευδέε', MGD = 'ψευδέοιν', MNP = 'ψευδεῖς/ψευδέες', MAP = 'ψευδέᾰς', MGP = 'ψευδέων', MDP = 'ψευδέσῐ(ν)', NNS = 'ψευδές', NGS = 'ψευδέος/ψευδεῦς', NDS = 'ψευδεῖ/ψευδέῐ̈', NND = 'ψευδεῖ/ψευδέε', NGD = 'ψευδέοιν', NNP = 'ψευδέᾰ', NGP = 'ψευδέων', NDP = 'ψευδέσῐ(ν)', adv = 'ψευδέως', comp = 'ψευδέστερος', super = 'ψευδέστᾰτος', },		},		{			{ 'κᾰκοήθης', 'ες', dial = 'ion' }, {				MNS = 'κᾰκοήθης', MAS = 'κᾰκοήθεᾰ', MVS = 'κᾰκόηθες', MGS = 'κᾰκοήθεος/κᾰκοήθευς', MDS = 'κᾰκοήθει/κᾰκοήθεῐ̈', MND = 'κᾰκοήθει/κᾰκοήθεε', MGD = 'κᾰκοηθέοιν', MNP = 'κᾰκοήθεις/κᾰκοήθεες', MAP = 'κᾰκοήθεᾰς', MGP = 'κᾰκοηθέων', MDP = 'κᾰκοήθεσῐ(ν)', -- Hard to find Ionic examples of adverb of recessively accented -- adjective to verify κᾰκοηθέως. NNS = 'κᾰκόηθες', NGS = 'κᾰκοήθεος/κᾰκοήθευς', NDS = 'κᾰκοήθει/κᾰκοήθεῐ̈', NND = 'κᾰκοήθει/κᾰκοήθεε', NGD = 'κᾰκοηθέοιν', NNP = 'κᾰκοήθεᾰ', NGP = 'κᾰκοηθέων', NDP = 'κᾰκοήθεσῐ(ν)', adv = 'κᾰκοηθέως', comp = 'κᾰκοηθέστερος', super = 'κᾰκοηθέστᾰτος', },		},		{			{ 'εὐδαῖμον' }, {				MNS = 'εὐδαίμων', MAS = 'εὐδαίμονᾰ', MVS = 'εὐδαῖμον', MGS = 'εὐδαίμονος', MDS = 'εὐδαίμονῐ', MND = 'εὐδαίμονε', MGD = 'εὐδαιμόνοιν', MNP = 'εὐδαίμονες', MAP = 'εὐδαίμονᾰς', MGP = 'εὐδαιμόνων', MDP = 'εὐδαίμοσῐ(ν)', NNS = 'εὐδαῖμον', NGS = 'εὐδαίμονος', NDS = 'εὐδαίμονῐ', NND = 'εὐδαίμονε', NGD = 'εὐδαιμόνοιν', NNP = 'εὐδαίμονᾰ', NGP = 'εὐδαιμόνων', NDP = 'εὐδαίμοσῐ(ν)', adv = 'εὐδαιμόνως', comp = 'εὐδαιμονέστερος', super = 'εὐδαιμονέστᾰτος', },		},		{			{ 'σκῐόεις', 'εσσᾰ' }, {				MNS = 'σκῐόεις', MAS = 'σκῐόεντᾰ', MVS = 'σκῐόεν', MGS = 'σκῐόεντος', MDS = 'σκῐόεντῐ', MND = 'σκῐόεντε', MAD = 'σκῐόεντε', MVD = 'σκῐόεντε', MGD = 'σκῐοέντοιν', MDD = 'σκῐοέντοιν', MNP = 'σκῐόεντες', MAP = 'σκῐόεντᾰς', MVP = 'σκῐόεντες', MGP = 'σκῐοέντων', MDP = 'σκῐόεισῐ(ν)', FNS = 'σκῐόεσσᾰ', FAS = 'σκῐόεσσᾰν', FVS = 'σκῐόεσσᾰ', FGS = 'σκῐοέσσης', FDS = 'σκῐοέσσῃ', FND = 'σκῐοέσσᾱ', FAD = 'σκῐοέσσᾱ', FVD = 'σκῐοέσσᾱ', FGD = 'σκῐοέσσαιν', FDD = 'σκῐοέσσαιν', FNP = 'σκῐόεσσαι', FAP = 'σκῐοέσσᾱς', FVP = 'σκῐόεσσαι', FGP = 'σκῐοεσσῶν', FDP = 'σκῐοέσσαις', NNS = 'σκῐόεν', NAS = 'σκῐόε̆ν', NVS = 'σκῐόε̆ν', NGS = 'σκῐόεντος', NDS = 'σκῐόεντῐ', NND = 'σκῐόεντε', NAD = 'σκῐόεντε', NVD = 'σκῐόεντε', NGD = 'σκῐοέντοιν', NDD = 'σκῐοέντοιν', NNP = 'σκῐόεντᾰ', NAP = 'σκῐόεντᾰ', NVP = 'σκῐόεντᾰ', NGP = 'σκῐοέντων', NDP = 'σκῐόεισῐ(ν)', adv = 'σκῐοέντως', comp = 'σκῐοέστερος', super = 'σκῐοέστᾰτος', },		}	}	iterate_adj(examples) end

function tests:test_grc_adecl_first_and_third local examples = { 'Upsilon', {			{'βᾰρῠ́ς', 'βᾰρεῖᾰ'}, {				MNS = 'βᾰρῠ́ς', MGS = 'βᾰρέως', MDS = 'βᾰρεῖ', MAS = 'βᾰρῠ́ν', MVS = 'βᾰρῠ́', MND = 'βᾰρέε', MGD = 'βᾰρέοιν', MNP = 'βᾰρεῖς', MGP = 'βᾰρέων', MDP = 'βᾰρέσῐ(ν)', MAP = 'βᾰρεῖς', FNS = 'βᾰρεῖᾰ', FGS = 'βᾰρείᾱς', FDS = 'βᾰρείᾳ', FAS = 'βᾰρεῖᾰν', FND = 'βᾰρείᾱ', FGD = 'βᾰρείαιν', FNP = 'βᾰρεῖαι', FGP = 'βᾰρειῶν', FDP = 'βᾰρείαις', FAP = 'βᾰρείᾱς', NNS = 'βᾰρῠ́', NGS = 'βᾰρέως', NDS = 'βᾰρεῖ', NND = 'βᾰρέε', NGD = 'βᾰρέοιν', NNP = 'βᾰρέᾰ', NGP = 'βᾰρέων', NDP = 'βᾰρέσῐ(ν)', adv = 'βᾰρέως', comp = 'βᾰρῠ́τερος', super = 'βᾰρῠ́τᾰτος', } 		},		'Participles', {			{ 'δούς', 'δοῦσᾰ' }, {				MNS = 'δούς', MAS = 'δόντᾰ', MGS = 'δόντος', MDS = 'δόντῐ', MND = 'δόντε', MGD = 'δόντοιν', MNP = 'δόντες', MAP = 'δόντᾰς', MGP = 'δόντων', MDP = 'δοῦσῐ(ν)', FNS = 'δοῦσᾰ', FAS = 'δοῦσᾰν', FGS = 'δούσης', FDS = 'δούσῃ', FND = 'δούσᾱ', FGD = 'δούσαιν', FNP = 'δοῦσαι', FAP = 'δούσᾱς', FGP = 'δουσῶν', FDP = 'δούσαις', NNS = 'δόν', NGS = 'δόντος', NDS = 'δόντῐ', NND = 'δόντε', NGD = 'δόντοιν', NNP = 'δόντᾰ', NGP = 'δόντων', NDP = 'δοῦσῐ(ν)', adv = 'δόντως', },		},		{			{ 'θείς', 'θεῖσᾰ' }, {				MNS = 'θείς', MAS = 'θέντᾰ', MGS = 'θέντος', MDS = 'θέντῐ', MND = 'θέντε', MGD = 'θέντοιν', MNP = 'θέντες', MAP = 'θέντᾰς', MGP = 'θέντων', MDP = 'θεῖσῐ(ν)', FNS = 'θεῖσᾰ', FAS = 'θεῖσᾰν', FGS = 'θείσης', FDS = 'θείσῃ', FND = 'θείσᾱ', FGD = 'θείσαιν', FNP = 'θεῖσαι', FAP = 'θείσᾱς', FGP = 'θεισῶν', FDP = 'θείσαις', NNS = 'θέν', NGS = 'θέντος', NDS = 'θέντῐ', NND = 'θέντε', NGD = 'θέντοιν', NNP = 'θέντᾰ', NGP = 'θέντων', NDP = 'θεῖσῐ(ν)', adv = 'θέντως', },		},		{			{ 'στᾱ́ς', 'στᾶσᾰ' }, {				MNS = 'στᾱ́ς', MAS = 'στᾰ́ντᾰ', MGS = 'στᾰ́ντος', MDS = 'στᾰ́ντῐ', MND = 'στᾰ́ντε', MGD = 'στᾰ́ντοιν', MNP = 'στᾰ́ντες', MAP = 'στᾰ́ντᾰς', MGP = 'στᾰ́ντων', MDP = 'στᾶσῐ(ν)', FNS = 'στᾶσᾰ', FAS = 'στᾶσᾰν', FGS = 'στᾱ́σης', FDS = 'στᾱ́σῃ', FND = 'στᾱ́σᾱ', FGD = 'στᾱ́σαιν', FNP = 'στᾶσαι', FAP = 'στᾱ́σᾱς', FGP = 'στᾱσῶν', FDP = 'στᾱ́σαις', NNS = 'στᾰ́ν', NGS = 'στᾰ́ντος', NDS = 'στᾰ́ντῐ', NND = 'στᾰ́ντε', NGD = 'στᾰ́ντοιν', NNP = 'στᾰ́ντᾰ', NGP = 'στᾰ́ντων', NDP = 'στᾶσῐ(ν)', adv = 'στᾰ́ντως', },		},		{			{ 'δεικνῡ́ς', 'δεικνῦσᾰ' }, {				MNS = 'δεικνῡ́ς', MAS = 'δεικνῠ́ντᾰ', MGS = 'δεικνῠ́ντος', MDS = 'δεικνῠ́ντῐ', MND = 'δεικνῠ́ντε', MGD = 'δεικνῠ́ντοιν', MNP = 'δεικνῠ́ντες', MAP = 'δεικνῠ́ντᾰς', MGP = 'δεικνῠ́ντων', MDP = 'δεικνῦσῐ(ν)', FNS = 'δεικνῦσᾰ', FAS = 'δεικνῦσᾰν', FGS = 'δεικνῡ́σης', FDS = 'δεικνῡ́σῃ', FND = 'δεικνῡ́σᾱ', FGD = 'δεικνῡ́σαιν', FNP = 'δεικνῦσαι', FAP = 'δεικνῡ́σᾱς', FGP = 'δεικνῡσῶν', FDP = 'δεικνῡ́σαις', NNS = 'δεικνῠ́ν', NGS = 'δεικνῠ́ντος', NDS = 'δεικνῠ́ντῐ', NND = 'δεικνῠ́ντε', NGD = 'δεικνῠ́ντοιν', NNP = 'δεικνῠ́ντᾰ', NGP = 'δεικνῠ́ντων', NDP = 'δεικνῦσῐ(ν)', adv = 'δεικνῠ́ντως', },		},		{			{ 'λᾰμβᾰ́νων', 'λᾰμβᾰ́νουσᾰ' }, {				MNS = 'λᾰμβᾰ́νων', MAS = 'λᾰμβᾰ́νοντᾰ', MGS = 'λᾰμβᾰ́νοντος', MDS = 'λᾰμβᾰ́νοντῐ', MND = 'λᾰμβᾰ́νοντε', MGD = 'λᾰμβᾰνόντοιν', MNP = 'λᾰμβᾰ́νοντες', MAP = 'λᾰμβᾰ́νοντᾰς', MGP = 'λᾰμβᾰνόντων', MDP = 'λᾰμβᾰ́νουσῐ(ν)', FNS = 'λᾰμβᾰ́νουσᾰ', FAS = 'λᾰμβᾰ́νουσᾰν', FGS = 'λᾰμβᾰνούσης', FDS = 'λᾰμβᾰνούσῃ', FND = 'λᾰμβᾰνούσᾱ', FGD = 'λᾰμβᾰνούσαιν', FNP = 'λᾰμβᾰ́νουσαι', FAP = 'λᾰμβᾰνούσᾱς', FGP = 'λᾰμβᾰνουσῶν', FDP = 'λᾰμβᾰνούσαις', NNS = 'λᾰμβᾰ́νον', NGS = 'λᾰμβᾰ́νοντος', NDS = 'λᾰμβᾰ́νοντῐ', NND = 'λᾰμβᾰ́νοντε', NGD = 'λᾰμβᾰνόντοιν', NNP = 'λᾰμβᾰ́νοντᾰ', NGP = 'λᾰμβᾰνόντων', NDP = 'λᾰμβᾰ́νουσῐ(ν)', adv = 'λᾰμβᾰνόντως', },		},		{			{ 'λᾰβών', 'ουσᾰ' }, {				MNS = 'λᾰβών', MAS = 'λᾰβόντᾰ', MGS = 'λᾰβόντος', MDS = 'λᾰβόντῐ', MND = 'λᾰβόντε', MGD = 'λᾰβόντοιν', MNP = 'λᾰβόντες', MAP = 'λᾰβόντᾰς', MGP = 'λᾰβόντων', MDP = 'λᾰβοῦσῐ(ν)', FNS = 'λᾰβοῦσᾰ', FAS = 'λᾰβοῦσᾰν', FGS = 'λᾰβούσης', FDS = 'λᾰβούσῃ', FND = 'λᾰβούσᾱ', FGD = 'λᾰβούσαιν', FNP = 'λᾰβοῦσαι', FAP = 'λᾰβούσᾱς', FGP = 'λᾰβουσῶν', FDP = 'λᾰβούσαις', NNS = 'λᾰβόν', NGS = 'λᾰβόντος', NDS = 'λᾰβόντῐ', NND = 'λᾰβόντε', NGD = 'λᾰβόντοιν', NNP = 'λᾰβόντᾰ', NGP = 'λᾰβόντων', NDP = 'λᾰβοῦσῐ(ν)', adv = 'λᾰβόντως', },		},		{			{ 'ποιήσᾱς', 'ᾱσᾰ' }, {				MNS = 'ποιήσᾱς', MAS = 'ποιήσᾰντᾰ', MGS = 'ποιήσᾰντος', MDS = 'ποιήσᾰντῐ', MND = 'ποιήσᾰντε', MGD = 'ποιησᾰ́ντοιν', MNP = 'ποιήσᾰντες', MAP = 'ποιήσᾰντᾰς', MGP = 'ποιησᾰ́ντων', MDP = 'ποιήσᾱσῐ(ν)', FNS = 'ποιήσᾱσᾰ', FAS = 'ποιήσᾱσᾰν', FGS = 'ποιησᾱ́σης', FDS = 'ποιησᾱ́σῃ', FND = 'ποιησᾱ́σᾱ', FGD = 'ποιησᾱ́σαιν', FNP = 'ποιήσᾱσαι', FAP = 'ποιησᾱ́σᾱς', FGP = 'ποιησᾱσῶν', FDP = 'ποιησᾱ́σαις', NNS = 'ποιῆσᾰν', NGS = 'ποιήσᾰντος', NDS = 'ποιήσᾰντῐ', NND = 'ποιήσᾰντε', NGD = 'ποιησᾰ́ντοιν', NNP = 'ποιήσᾰντᾰ', NGP = 'ποιησᾰ́ντων', NDP = 'ποιήσᾱσῐ(ν)', adv = 'ποιησᾰ́ντως' },		},		{			{ 'δηλῶν', 'δηλοῦσᾰ' }, {				MNS = 'δηλῶν', MAS = 'δηλοῦντᾰ', MGS = 'δηλοῦντος', MDS = 'δηλοῦντῐ', MND = 'δηλοῦντε', MGD = 'δηλούντοιν', MNP = 'δηλοῦντες', MAP = 'δηλοῦντᾰς', MGP = 'δηλούντων', MDP = 'δηλοῦσῐ(ν)', FNS = 'δηλοῦσᾰ', FAS = 'δηλοῦσᾰν', FGS = 'δηλούσης', FDS = 'δηλούσῃ', FND = 'δηλούσᾱ', FGD = 'δηλούσαιν', FNP = 'δηλοῦσαι', FAP = 'δηλούσᾱς', FGP = 'δηλουσῶν', FDP = 'δηλούσαις', NNS = 'δηλοῦν', NGS = 'δηλοῦντος', NDS = 'δηλοῦντῐ', NND = 'δηλοῦντε', NGD = 'δηλούντοιν', NNP = 'δηλοῦντᾰ', NGP = 'δηλούντων', NDP = 'δηλοῦσῐ(ν)', adv = 'δηλούντως', },		},		{			{ 'τιμῶν', 'τιμῶσᾰ' }, {				MNS = 'τιμῶν', MAS = 'τιμῶντᾰ', MGS = 'τιμῶντος', MDS = 'τιμῶντῐ', MND = 'τιμῶντε', MGD = 'τιμώντοιν', MNP = 'τιμῶντες', MAP = 'τιμῶντᾰς', MGP = 'τιμώντων', MDP = 'τιμῶσῐ(ν)', FNS = 'τιμῶσᾰ', FAS = 'τιμῶσᾰν', FGS = 'τιμώσης', FDS = 'τιμώσῃ', FND = 'τιμώσᾱ', FGD = 'τιμώσαιν', FNP = 'τιμῶσαι', FAP = 'τιμώσᾱς', FGP = 'τιμωσῶν', FDP = 'τιμώσαις', NNS = 'τιμῶν', NGS = 'τιμῶντος', NDS = 'τιμῶντῐ', NND = 'τιμῶντε', NGD = 'τιμώντοιν', NNP = 'τιμῶντᾰ', NGP = 'τιμώντων', NDP = 'τιμῶσῐ(ν)', adv = 'τιμώντως', },		},		{			{ 'ποιῶν', 'ποιοῦσᾰ' }, {				MNS = 'ποιῶν', MAS = 'ποιοῦντᾰ', MGS = 'ποιοῦντος', MDS = 'ποιοῦντῐ', MND = 'ποιοῦντε', MGD = 'ποιούντοιν', MNP = 'ποιοῦντες', MAP = 'ποιοῦντᾰς', MGP = 'ποιούντων', MDP = 'ποιοῦσῐ(ν)', FNS = 'ποιοῦσᾰ', FAS = 'ποιοῦσᾰν', FGS = 'ποιούσης', FDS = 'ποιούσῃ', FND = 'ποιούσᾱ', FGD = 'ποιούσαιν', FNP = 'ποιοῦσαι', FAP = 'ποιούσᾱς', FGP = 'ποιουσῶν', FDP = 'ποιούσαις', NNS = 'ποιοῦν', NGS = 'ποιοῦντος', NDS = 'ποιοῦντῐ', NND = 'ποιοῦντε', NGD = 'ποιούντοιν', NNP = 'ποιοῦντᾰ', NGP = 'ποιούντων', NDP = 'ποιοῦσῐ(ν)', adv = 'ποιούντως', },		},	}	iterate_adj(examples) end

return tests

title: Module:grc-decl/testcases


text: Module:grc-decl/testcases/documentation

title: Module:grc-decl/testcases/documentation


text:
galfriend

Noun

 * 1)  girlfriend

title: galfriend


text:
αμυγδαλιώνας

Noun

 * 1) almond grove

title: αμυγδαλιώνας


text: αμυγδαλιώνα

title: αμυγδαλιώνα


text: αμυγδαλιώνων

title: αμυγδαλιώνων


text: αμυγδαλιώνες

title: αμυγδαλιώνες


text:
entepicondyle

Noun

 * 1) The region above the medial epicondyle of the humerus

Derived terms

 * entepicondylar

title: entepicondyle


text: αμυγδαλίτιδας

title: αμυγδαλίτιδας


text:
epandrium

Noun

 * 1)  The dorsal saddle-shaped part of male terminalia in

Derived terms

 * epandrial

title: epandrium


text:
epandrial

Adjective

 * 1) Relating to an epandrium

title: epandrial


text:
Thesaurus:verbosity

Synonyms
,

title: Thesaurus:verbosity


text:
epikarst

Noun

 * 1) The upper part of a karst system, in which water is stored before it percolates to underlying aquifers

title: epikarst


text:
Thread:User talk:CodeCat/need for help on Module:it-head

Hi, CodeCat. I tried to add a function on the module so to have proper nouns, too, but I must have done something wrong. May you check my mistakes? Thanks and sorry in advance ;)


text:
exodaenodont

Noun

 * 1) The enamel that overlies and extends ventrally down the anterior root of a tooth of some mammals

title: exodaenodont


text: Category:Ancient Greek paroxytone terms

title: Category:Ancient Greek paroxytone terms


text:
Category:Ancient Greek terms by accent type

This category contains categories of words by accent type and position. The possible accent types are acute and circumflex, and the accent may be placed on the first, second, or third syllable from the end of the word (the ultima, penult, or antepenult). The terms for accent are shown below. A dash indicates that the type of accent cannot occur on that syllable. For instance, no word has a circumflex accent on the antepenult, like. For more on the rules of accent, see on Wikipedia.


text:
lally-drags

Etymology
From +.

Noun

 * 1)  Trousers

title: lally-drags


text:
pseudoextinct

Adjective

 * 1) extinct, but with members of a daughter species remaining alive

title: pseudoextinct


text: avaruutta

title: avaruutta


text: avaruudesta

title: avaruudesta


text: avaruudella

title: avaruudella


text: avaruudelta

title: avaruudelta


text: avaruudelle

title: avaruudelle


text: avaruutena

title: avaruutena


text: avaruudeksi

title: avaruudeksi


text: avaruudetta

title: avaruudetta


text: avaruuksien

title: avaruuksien


text: avaruuksia

title: avaruuksia


text: avaruuksissa

title: avaruuksissa


text: avaruuksista

title: avaruuksista


text: avaruuksiin

title: avaruuksiin


text:
Pineapple Island

Etymology
So called because it was previously used for growing pineapples.

Proper noun

 * 1) Lanai, one of the islands of Hawaii.

title: Pineapple Island


text: Category:Old English terms suffixed with -ian


text:
clitorectomized

Adjective

 * 1) Having undergone a clitorectomy.

title: clitorectomized


text:
धारा

Etymology
.

Noun

 * 1) stream, current, flow
 * 2) waterfall
 * 3)  section
 * 1) waterfall
 * 2)  section
 * 1)  section

Etymology 1
From, from , from , from. Cognate with 🇨🇬, 🇨🇬 (whence 🇨🇬). Compare also 🇨🇬, ultimately from 🇨🇬.

An alternative theory espoused by Lubotsky and Mayrhofer derives the word from, from and thus cognate to.

Possibly related to 🇨🇬.

Noun

 * 1) stream or current of water
 * 2) flood, gush, jet, drop (of any liquid), shower, rain (also figuratively of arrows, flowers, etc.)
 * 3) current, torrent
 * 4) a leak or hole in a pitcher etc.
 * 5) the pace of horse
 * 6) uniformity, sameness (as of flowing water)
 * 7) custom, usage
 * 8) continuous line or series
 * 9)  family line

Descendants

 * Dardic:
 * Hindustani:
 * Hindustani:
 * Hindustani:
 * Hindustani:
 * Hindustani:
 * Hindustani:
 * Hindustani:
 * Hindustani:
 * Hindustani:
 * Hindustani:
 * Hindustani:
 * Hindustani:
 * Hindustani:
 * Hindustani:
 * Hindustani:
 * Hindustani:
 * Hindustani:
 * Hindustani:
 * Hindustani:
 * Hindustani:
 * Hindustani:
 * Hindustani:
 * Hindustani:
 * Hindustani:
 * Hindustani:
 * Hindustani:
 * Hindustani:
 * Hindustani:
 * Hindustani:

Etymology 2
Probably the same as Etymology 1, as blades were perhaps traditionally hardened and sharpened by streaming water.

Noun

 * 1) margin, sharp edge, rim, blade (esp. of a sword, knife, etc.)
 * 2)  the flame (blade) of fire
 * 3) the edge of a mountain
 * 4) the rim of a wheel
 * 5) the fence of hedge of a garden
 * 6) the van of an army
 * 7) the tip of the ear
 * 8) highest point, summit, glory, excellence
 * 9) night
 * 10) turmeric

title: धारा


text: Category:Ancient Greek oxytone terms

title: Category:Ancient Greek oxytone terms


text: Category:Ancient Greek properispomenon terms


text: Category:Old English verb-forming suffixes


text: Category:Ancient Greek proparoxytone terms


text:
snowfight

Noun

 * 1) A fight involving snow; a snowball fight.

title: snowfight


text: snowfights

title: snowfights


text: yahari

title: yahari


text:
line hypnosis

Noun

 * 1) A condition similar to highway hypnosis, but induced by repetitive work on an assembly line.

title: line hypnosis


text:
rehypnosis

Noun

 * 1) hypnosis again

title: rehypnosis


text:
prehypnosis

Adjective

 * 1) Before hypnosis.

title: prehypnosis


text:
prehypnotic

Adjective

 * 1) Before hypnosis.

title: prehypnotic


text:
Talk:paray

Should be Cuyunon? DTLHS (talk) 21:10, 5 September 2017 (UTC)
 * Thanks for noticing! Blame my muscle memory lol. Sometimes, my hands do slip. I've corrected it all. Thanks! --Mar vin kaiser (talk) 03:12, 6 September 2017 (UTC)

title: Talk:paray


text:
Template:Zoanthidae Hypernyms

 * Anthozoa - class; Hexacorallia - subclass; Zoantharia - order; - suborder; Zoanthidae - family

title: Template:Zoanthidae Hypernyms


text:
Template:Zoanthidae Hypernyms/documentation

This is a typing shortcut intended for use under the Hypernyms header of taxa under family Zoanthidae. It can also be used with subst:.


text: sublaplacians

title: sublaplacians


text:
Talk:isara

Should be Cuyunon? DTLHS (talk) 21:31, 5 September 2017 (UTC)

title: Talk:isara


text:
Talk:maramig

DTLHS (talk) 21:36, 5 September 2017 (UTC)

title: Talk:maramig


text: inkes

title: inkes


text:
Talk:matimus

DTLHS (talk) 21:37, 5 September 2017 (UTC)

title: Talk:matimus