Module:Sandbox/Xoristzatziki/klisi
Μετάβαση στην πλοήγηση
Πήδηση στην αναζήτηση
Documentation for this module may be created at Module:Sandbox/Xoristzatziki/klisi/τεκμηρίωση
p = {}
--σταθερές
bgcolor = 'd9ebff'
titlebgcolor = '#A1BDEA'
bordercolor = '#AAAACC'
kataliksicolor = 'DeepPink'
-- συναρτήσσεις και μεταβλητές που δεν μπορουν να κληθούν απέξω
-- χρωματισμός κατάληξης
function _xk(kataliksi)
return '<font style="color:' .. kataliksicolor ..';">' .. kataliksi .. '</font>'
end
errorhere = function(errstring)
return '<div class="error">' .. errstring .. '</div>[[Κατηγορία:Σελίδες με σφάλματα στο πρότυπο κλίσης]]'
end
exeikati = function(onearg)
if onearg == nil then
return false
end
return (mw.ustring.len(onearg) > 0)
end
getargs = function (frame)
local args = frame:getParent().args
local title = mw.title.getCurrentTitle()
local einaistons0 = title:inNamespace(0)
args['string_errorinlemma'] = ''
local haserror = false
if einaistons0 then
PAGENAME = title.text
--αφαίρεση κενών στην αρχή και στο τέλος
args['λήμμα'] = PAGENAME:match( "^%s*(.-)%s*$" )
else --αλλιώς
--αν έχει δόσει παράμετρο λήμμα
if args['λήμμα'] ~= nil and args['λήμμα'] ~= "" then
--do nothing. lemma = args['λήμμα']
else--αλλιώς εμφάνισε λάθος. Είναι σε άλλο χώρο και πρέπει να έχει παράμετρο.
--προφανώς θα θέλει λίγο προσοχή στα Πρότυπα όπου θα βγάζει λάθος αν δεν είναι includeonly
args['string_errorinlemma'] = 'Σφάλμα! Δεν δόθηκε η παράμετρος λήμμα.'
end
end
--πλέον θα υπάρχουν:
----args['string_errorinlemma'] :κενό αν δεν έχει βρει σφάλμα ή το μήνυμα του σφάλματος
----args['λήμμα'] :το λήμμα που θα "επεξεργαστούμε"
return args
end
atona = { ['Α'] = 'Ά', ['α'] = 'ά', ['ε'] = 'έ', ['Ε'] = 'Έ',
['Η'] = 'Ή', ['η'] = 'ή', ['ι'] = 'Ί', ['ι'] = 'ί', ['ϊ'] = 'ΐ',
['Ο'] = 'Ό', ['ο'] = 'ό', ['Υ'] = 'Ύ', ['υ'] = 'ύ', ['ϋ'] = 'ΰ',
['Ω'] = 'Ώ', ['ω'] = 'ώ' }
tonismena = {
['Ά'] = 'Α',
['ά'] = 'α',
['Έ'] = 'Ε',
['έ'] = 'ε',
['Ή'] = 'Η',
['ή'] = 'η',
['Ί'] = 'Ι',
['ί'] = 'ι',
['ΐ'] = 'ϊ',
['Ό'] = 'Ο',
['ό'] = 'ο',
['Ύ'] = 'Υ',
['ύ'] = 'υ',
['ΰ'] = 'ϋ',
['Ώ'] = 'Ω',
['ώ'] = 'ω',
}
tonismena2 ={
['άι'] = 'αϊ',
['έι'] = 'εϊ',
['όι'] = 'οϊ',
['άυ'] = 'αϋ',
['έυ'] = 'εϋ',
['όυ'] = 'οϋ'
}
-- ['ύι'] = 'υϊ', δεν υπάρχει σε ουσιαστικά, μόνο στο επίθετο δρύινος. Αντίθετα, θα βάλει διαλυτικά
-- στο βούισμα, βουίσματα
function p.exeitono(anygreekstring)
--για κάθε χαρακτήρα
for codepoint in mw.ustring.gcodepoint( anygreekstring ) do
--αντικατάστησέ τον με βάση τον πίνακα
mychar = mw.ustring.char(codepoint)
convertedchar = tonismena[mychar]
--αν βρήκε κάτι για αντικατάσταση
--είναι δηλαδή τονισμένο γράμμα
if convertedchar ~= nil then
--βρήκα τονισμένο
return true
end
end
return false
end
function p.removeaccent(stem)
--για κάθε χαρακτήρα
wordproduced = ''
--για κάθε συνδυασμό γραμμάτων που μπορεί να χρειαστούν διαλυτικά
for diplotonismeno, neatimh in pairs(tonismena2) do
arxi, telos = mw.ustring.find(stem, diplotonismeno)
if arxi ~= nil then
wordproduced = mw.ustring.gsub(stem, diplotonismeno, neatimh, 1) --μια φορά αντικατάσταση
--βρέθηκε ο τόνος και αφαιρέθηκε
return wordproduced
end
end
for codepoint in mw.ustring.gcodepoint( stem ) do
--αντικατάστησέ τον με βάση τον πίνακα
mychar = mw.ustring.char(codepoint)
convertedchar = tonismena[mychar]
--αν βρήκε κάτι για αντικατάσταση
--είναι δηλαδή τονισμένο γράμμα
if convertedchar ~= nil then
--πρόσθεσέ το στη δημιουργούμενη κλείδα
wordproduced = wordproduced .. convertedchar
else
--αλλιώς άσε το ίδιο
wordproduced = wordproduced .. mychar
end
end
return wordproduced
end
-- Η συνάρτηση αρχίζει από το τελευταίο γράμμα του θέματος και πηγαίνει προς το πρώτο.
-- Όταν συναντήσει το πρώτο (άτονο) φωνήεν, το τονίζει και τέλος
-- Εννοείται ότι η μεταβλητή stem δεν πρέπει να περιέχει τονισμένα φωνήεντα.
function p.neostonos(stem)
stempoint = mw.ustring.len(stem)
wordproduced = ""
while stempoint > 0 do
mychar = mw.ustring.sub(stem, stempoint, stempoint)
newchar = atona[mychar]
if newchar ~= nil then
if stempoint > 1 then
return mw.ustring.sub(stem, 1, stempoint-1 ) .. newchar .. wordproduced
else
return newchar .. wordproduced
end
else
wordproduced = mychar .. wordproduced
stempoint = stempoint -1
end
end
return wordproduced
end
--δεν μπορεί να κληθεί απέξω
maintable = function (args)
local stitlestr = ''
local ptitlestr = ''
local onomenstr = ''
local onomplstr = ''
local genenstr = ''
local genplstr = ''
local aitenstr = ''
local aitplstr = ''
local klenstr = ''
local klplstr = ''
local paratirisi = ''
local hassingular = true --(args['εν'] ~= nil)
if args['α'] == "πλ" then hassingular = false end
local hasplural = true -- (args['πλ'] ~= nil)
if args['α'] == "εν" then hasplural = false end
if exeikati(args['παρατήρηση']) then
--mw.log('para')
paratirisi = [=[</tr colspan="4" align="left" style="background:#d9ebff; font-size: 90%; font-style: italic;">]=]
paratirisi = paratirisi .. '<td>'.. args['παρατήρηση'] .. '</td>'
end
paratirisi = paratirisi .. '</tr>'
-- if paratirisi == nil then paratirisi =
if hassingular then
stitlestr = [=[<td bgcolor="#A1BDEA" colspan="1" align="center">'''''[[ενικός]]'''''</td>]=]
onomenstr = [=[<td align="left">]=] .. args['οε'] .. '</td>'
genenstr = [=[<td align="left">]=] .. args['γε'] .. '</td>'
aitenstr = [=[<td align="left">]=] .. args['αε'] .. '</td>'
klenstr = [=[<td align="left">]=] .. args['κε'] .. '</td>'
end
if hasplural then
ptitlestr = [=[<td bgcolor="#A1BDEA" colspan="1" align="center">'''''[[πληθυντικός]]'''''</td>]=]
onomplstr = [=[<td align="left">]=] .. args['οπ'] .. '</td>'
genplstr = [=[<td align="left">]=] .. args['γπ'] .. '</td>'
aitplstr = [=[<td align="left">]=] .. args['απ'] .. '</td>'
klplstr = [=[<td align="left">]=] .. args['κπ'] .. '</td>'
end
return [=[<table style="float:right;border:1px solid #AAAACC;margin-left:0.5em;margin-bottom:0.5em;text-align:right;" rules="all" cellpadding="3" cellspacing="0"><tr><td bgcolor="#A1BDEA">'''πτώση'''</td>]=] .. stitlestr .. ptitlestr .. [=[
<tr><td bgcolor="#BED9ED">'''''[[ονομαστική]]'''''</td>]=] .. onomenstr .. onomplstr .. [=[</tr>
<tr><td bgcolor="#BED9ED">'''''[[γενική]]'''''</td>]=] .. genenstr .. genplstr .. [=[</tr>
<tr><td bgcolor="#BED9ED">'''''[[αιτιατική]]'''''</td>]=] .. aitenstr .. aitplstr .. [=[</tr>
<tr><td bgcolor="#BED9ED">'''''[[κλητική]]'''''</td>]=] .. klenstr .. klplstr .. paratirisi .. [=[</table>]=]
end
------------------
klisi1 = function(args)
local lemma = ""
--αν χρησιμοποιηθεί η getargs μπορεί να παρακαμφθεί το if
--και το local lemma να γίνει args['λήμμα'] κατευθείαν
if args['λήμμα'] ~= nil and args['λήμμα'] ~= "" then
lemma = args['λήμμα']
else
PAGENAME = mw.title.getCurrentTitle().text
--αφαίρεση κενών στην αρχή και στο τέλος
lemma = PAGENAME:match( "^%s*(.-)%s*$" )
end
local stemnumber = 0
if args['α'] ~= "πλ" then
stemnumber = tonumber(mw.ustring.len(args['οε']))
else
stemnumber = tonumber(mw.ustring.len(args['οπ']))
end
local stem = {}
stem["1"] = mw.ustring.sub(lemma,1,-stemnumber-1)
stem["2"] = p.removeaccent(stem["1"])
stem["3"] = p.neostonos(stem["2"])
for i, ptwsi in ipairs({'οε', 'γε', 'γε2', 'αε', 'κε', 'κε2', 'κε0', 'οπ', 'οπ2', 'γπ', 'γπ0', 'γπ2', 'απ', 'απ2'}) do
if args[ptwsi .. 'θ'] == nil then args[ptwsi .. 'θ'] = "1" end
end
for i, ptwsi in ipairs({'γε', 'γε2', 'γπ', 'γπ0', 'γπ2'}) do
if args[ptwsi] ~= nil then
if p.exeitono(args[ptwsi]) then args[ptwsi .. 'θ'] = "2" end
end
end
if args['οπ'] == "άδες" then
args['οπθ'] = "2"
args['απθ'] = "2"
end
if args['οπ2'] == "άδες" or args['οπ2'] == "αίοι" then
args['οπ2θ'] = "2"
args['απ2θ'] = "2"
end
if args['απ'] == nil then
args['απ'] = args['οπ']
args['απθ'] = args['οπθ']
end
if args['απ2'] == nil then
args['απ2'] = args['οπ2']
args['απθ2'] = args['οπθ2']
end
if args['κε'] == nil then args['κε'] = args['αε'] end
args['οε'] = stem[args['οεθ']] .. _xk( args['οε'])
-- Γενική ενικού
if (args['γε'] == "-" or args['γε'] == "" or args['γε'] == nil) then
args['γε'] = ""
else
args['γε'] = stem[args['γεθ']] .. _xk( args['γε'])
end
if args['γε2'] ~=nil and args['γε2'] ~= "" and args['γε2'] ~= "-" then
args['γε2'] = "<br />& " .. stem[args['γε2θ']] .. _xk( args['γε2'])
else
args['γε2'] = ''
end
args['γε'] = args['γε'] .. args['γε2']
args['αε'] = stem[args['αεθ']] .. _xk( args['αε'])
----ΚΛΗΤΙΚΗ ΕΝΙΚΟΥ
if args['κε0'] ~= nil then
args['κε'] = '(' .. stem[args['κε0θ']] .. _xk( args['κε0']) .. ')'
else
args['κε'] = stem[args['κεθ']] .. _xk( args['κε'])
end
if args['κε2'] ~=nil and args['κε2'] ~= "" and args['κε2'] ~= "-" then
args['κε2'] = "<br />" .. stem[args['κε2θ']] .. _xk( args['κε2']) .. '*'
else
args['κε2'] = ""
end
args['κε'] = args['κε'] .. args['κε2']
--Ονομ. πληθ
args['οπ'] = stem[args['οπθ']] .. _xk( args['οπ'])
if args['οπ2'] ~=nil and args['οπ2'] ~= "" and args['οπ2'] ~= "-" then
args['οπ2'] = "<br />& " .. stem[args['οπ2θ']] .. _xk( args['οπ2'])
else
args['οπ2'] = ''
end
args['οπ'] = args['οπ'] .. args['οπ2']
args['κπ'] = args['οπ']
--γενική πληθυντικού
if (args['γπ'] == "-" or args['γπ'] == "" or args['γπ'] == nil) then
args['γπ'] = ""
else
args['γπ'] = stem[args['γπθ']] .. _xk( args['γπ'])
end
if args['γπ0'] ~= nil then
args['γπ'] = '(' .. stem[args['γπ0θ']] .. _xk( args['γπ0']) .. ')'
end
if args['γπ2'] ~=nil and args['γπ2'] ~= "" and args['γπ2'] ~= "-" then
args['γπ2'] = stem[args['γπ2θ']] .. _xk( args['γπ2'])
if args['γπ'] ~= "" then
args['γπ2'] = "<br />& " .. args['γπ2']
end
else
args['γπ2'] = ""
end
args['γπ'] = args['γπ'] .. args['γπ2']
--Αιτιατική πληθ.
args['απ'] = stem[args['απθ']] .. _xk( args['απ'])
if args['απ2'] ~=nil and args['απ2'] ~= "" and args['απ2'] ~= "-" then
args['απ2'] = "<br />& " .. stem[args['απ2θ']] .. _xk( args['απ2'])
else
args['απ2'] = ''
end
args['απ'] = args['απ'] .. args['απ2']
return maintable(args)
end
--κλίση ουδετέρων ουσιαστικών που παίρνουν επιπλέον σύμφωνο στο «θέμα», τσάι, προϊόν, μέλλον
klisi2 = function(args)
local lemma = ""
if args['λήμμα'] ~= nil and args['λήμμα'] ~= "" then
lemma = args['λήμμα']
else
PAGENAME = mw.title.getCurrentTitle().text
--αφαίρεση κενών στην αρχή και στο τέλος
lemma = PAGENAME:match( "^%s*(.-)%s*$" )
end
local stemnumber = 0
if args['α'] ~= "πλ" then
stemnumber = tonumber(mw.ustring.len(args['οε']))
else
stemnumber = tonumber(mw.ustring.len(args['οπ'])) +1
end
local stem = {}
stem["1"] = mw.ustring.sub(lemma,1,-stemnumber-1)
stem["2"] = p.removeaccent(stem["1"])
stem["3"] = p.neostonos(stem["2"])
args['οε'] = stem[args['οεθ']] .. _xk( args['οε'])
args['γε'] = stem[args['γεθ']] .. args['πρόσφ'] .. _xk( args['γε'])
args['αε'] = args['οε']
args['κε'] = args['οε']
args['οπ'] = stem[args['οπθ']] .. args['πρόσφ'] .. _xk( args['οπ'])
args['γπ'] = stem[args['γπθ']] .. args['πρόσφ'] .. _xk( args['γπ'])
args['απ'] = args['οπ']
args['κπ'] = args['οπ']
return maintable(args)
end
--Συναρτήσεις που παίρνουν παράμετρο το frame
--διάμετρος : μια ιδιαίτερη περίπτωση
p['διάμετρος'] = function(frame)
local args = frame:getParent().args
local lemma = ""
if args['λήμμα'] ~= nil and args['λήμμα'] ~= "" then
lemma = args['λήμμα']
else
PAGENAME = mw.title.getCurrentTitle().text
--αφαίρεση κενών στην αρχή και στο τέλος
lemma = PAGENAME:match( "^%s*(.-)%s*$" )
end
local stem1 = mw.ustring.sub(lemma,1,-3)
local stem2 = p.removeaccent(stem1)
local stem3 = p.neostonos(stem2)
args['οε'] = stem1 .. _xk("ος")
args['γε'] = stem3 .. _xk("ου")
args['αε'] = stem1 .. _xk("ο")
args['κε'] = "(" .. stem1 .. _xk("ο") .. ")"
args['οπ'] = stem1 .. _xk("οι") .. " (" .. stem1 .. _xk("ες") .. ")"
args['γπ'] = stem3 .. _xk("ων")
args['απ'] = stem3 .. _xk("ους") .. " (" .. stem1 .. _xk("ες") .. ")"
args['κπ'] = stem1 .. _xk("οι")
return frame:preprocess(maintable(args))
end
p.export = function (frame)
local parent = frame:getParent()
--local parentname = parent:GetName()
--local templatename = frame:GetName()
--local parentname = parent:getTitle()
--local templatename = frame:getTitle()
local templatename = frame:getParent():getTitle()
--return '#' .. parentname.. '#' .. templatename .. '#'
return mw.ustring.sub(templatename, mw.ustring.len('Πρότυπο:el-κλίσ-')+2,-2)
end
-- Εδώ αρχίζουν οι καταλήξεις των επιμέρους προτύπων
p['αφέντης'] = function(frame)
local args = frame:getParent().args
args['οε'] = "ης"
args['γε'] = "η"
args['αε'] = "η"
args['οπ'] = "ες"
args['γπ'] = "ών"
args['οπ2'] = "άδες"
args['γπ2'] = "άδων"
args['απ2'] = "άδες"
return frame:preprocess(klisi1(args))
end
p['αγώνας'] = function(frame)
local args = frame:getParent().args
args['οε'] = "ας"
args['γε'] = "α"
args['αε'] = "α"
args['κε'] = "α"
args['οπ'] = "ες"
if args['γπ'] == nil then args['γπ'] = "ων" end
args['απ'] = "ες"
return frame:preprocess(klisi1(args))
end
p['αγυιά'] = function(frame)
local args = frame:getParent().args
args['οε'] = "ά"
args['γε'] = "ᾶς"
args['αε'] = "άν"
args['κε'] = "ά"
args['οπ'] = "αί"
args['γπ'] = "ῶν"
args['απ'] = "άς"
return frame:preprocess(klisi1(args))
end
p['αιλουροειδές'] = function(frame)
local args = frame:getParent().args
args['οε'] = "ές"
args['γε'] = "ούς"
args['αε'] = "ές"
args['οπ'] = "ή"
args['γπ'] = "ών"
return frame:preprocess(klisi1(args))
end
p['αλεπού'] = function(frame)
local args = frame:getParent().args
args['οε'] = "ού"
args['γε'] = "ούς"
args['αε'] = "ού"
args['οπ'] = "ούδες"
args['γπ'] = "ούδων"
return frame:preprocess(klisi1(args))
end
p['άγγελος'] = function(frame)
local args = frame:getParent().args
args['οε'] = "ος"
args['γε'] = "ου"
args['αε'] = "ο"
args['κε'] = "ε"
args['οπ'] = "οι"
args['γπ'] = "ων"
args['απ'] = "ους"
args['γεθ'] = "3"
args['γπθ'] = "3"
args['απθ'] = "3"
return frame:preprocess(klisi1(args))
end
p['μπαλωματής'] = function(frame)
local args = frame:getParent().args
args['οε'] = "ής"
args['γε'] = "ή"
args['αε'] = "ή"
args['οπ'] = "ήδες"
args['γπ'] = "ήδων"
return frame:preprocess(klisi1(args))
end
p['δέσιμο'] = function(frame)
local args = frame:getParent().args
args['οε'] = "ο"
args['γε'] = "ατος"
args['αε'] = "ο"
args['οπ'] = "ατα"
args['γπ'] = "άτων"
args['γεθ'] = "3"
args['οπθ'] = "3"
args['απθ'] = "3"
return frame:preprocess(klisi1(args))
end
p['δρόμος'] = function(frame)
local args = frame:getParent().args
args['οε'] = "ος"
args['γε'] = "ου"
args['αε'] = "ο"
args['κε'] = "ε"
args['οπ'] = "οι"
args['γπ'] = "ων"
args['απ'] = "ους"
return frame:preprocess(klisi1(args))
end
p['ηχώ'] = function(frame)
local args = frame:getParent().args
args['οε'] = "ώ"
args['γε'] = "ώς"
args['γε2'] = "ούς"
args['αε'] = "ώ"
args['οπ'] = "οί"
args['απ'] = "ούς"
args['α'] = "εν"
return frame:preprocess(klisi1(args))
end
p['έδαφος'] = function(frame)
local args = frame:getParent().args
args['οε'] = "ος"
args['γε'] = "ους"
args['αε'] = "ος"
args['οπ'] = "η"
if args['γπ'] == nil then args['γπ'] = "ών" end
args['γεθ'] = "3"
args['οπθ'] = "3"
args['απθ'] = "3"
return frame:preprocess(klisi1(args))
end
p['ελπίδα'] = function(frame)
local args = frame:getParent().args
local arg2 = frame.args
args['οε'] = "α"
args['γε'] = "ας"
args['αε'] = "α"
args['οπ'] = "ες"
if arg2['πείνα'] == nil and args['γπ'] == nil then args['γπ'] = "ων" end
return frame:preprocess(klisi1(args))
end
p['έρημος'] = function(frame)
local args = frame:getParent().args
args['οε'] = "ος"
args['γε'] = "ου"
args['αε'] = "ο"
args['κε0'] = "o"
args['οπ'] = "οι"
args['γπ'] = "ων"
args['απ'] = "ους"
args['γεθ'] = "3"
args['γπθ'] = "3"
args['απθ'] = "3"
return frame:preprocess(klisi1(args))
end
p['Φρόσω'] = function(frame)
local args = frame:getParent().args
args['οε'] = "ω"
args['γε'] = "ως"
args['αε'] = "ω"
args['οπ'] = "ΧΧ"
args['α'] = "εν"
return frame:preprocess(klisi1(args))
end
p['φύλακας'] = function(frame)
local args = frame:getParent().args
args['οε'] = "ας"
args['γε'] = "α"
args['αε'] = "α"
args['οπ'] = "ες"
args['γπ'] = "ων"
args['γπθ'] = "3"
return frame:preprocess(klisi1(args))
end
p['γέρος'] = function(frame)
local args = frame:getParent().args
args['οε'] = "ος"
args['γε'] = "ου"
args['αε'] = "ο"
args['οπ'] = "οι"
args['γπ'] = "ων"
args['απ'] = "ους"
return frame:preprocess(klisi1(args))
end
p['γιαγιά'] = function(frame)
local args = frame:getParent().args
args['οε'] = "ά"
args['γε'] = "άς"
args['αε'] = "ά"
args['οπ'] = "άδες"
args['γπ'] = "άδων"
return frame:preprocess(klisi1(args))
end
p['γυαλάκιας'] = function(frame)
local args = frame:getParent().args
args['οε'] = "ιας"
args['γε'] = "ια"
args['αε'] = "ια"
args['οπ'] = "ηδες"
if args['γπ'] == nil then args['γπ'] = "ηδων" end
return frame:preprocess(klisi1(args))
end
p['ιππέας'] = function(frame)
local args = frame:getParent().args
args['οε'] = "έας"
args['γε'] = "έα"
args['αε'] = "έα"
args['οπ'] = "είς"
args['γπ'] = "έων"
if args['2gen'] == "1" then args['γε2'] = "έως" end
return frame:preprocess(klisi1(args))
end
p['ισχύς'] = function(frame)
local args = frame:getParent().args
args['οε'] = "ς"
args['γε'] = "ος"
args['αε'] = ""
args['κε'] = ""
args['οπ'] = "ες"
args['γπ'] = "ων"
args['απ'] = "ς"
return frame:preprocess(klisi1(args))
end
p['καφές'] = function(frame)
local args = frame:getParent().args
args['οε'] = "ές"
args['γε'] = "έ"
args['αε'] = "έ"
args['οπ'] = "έδες"
args['γπ'] = "έδων"
return frame:preprocess(klisi1(args))
end
p['καρδιά'] = function(frame)
local args = frame:getParent().args
args['οε'] = "ά"
args['γε'] = "άς"
args['αε'] = "ά"
args['οπ'] = "ές"
if args['γπ'] == nil then args['γπ'] = "ών" end
return frame:preprocess(klisi1(args))
end
p['καρδινάλιος'] = function(frame)
local args = frame:getParent().args
args['οε'] = "ος"
args['γε'] = "ου"
args['γε2'] = "ου"
args['αε'] = "ο"
args['κε'] = "ε"
args['οπ'] = "οι"
args['γπ'] = "ων"
args['απ'] = "ους"
args['γπ2'] = "ων"
args['απ2'] = "ους"
args['γεθ'] = "3"
args['γπθ'] = "3"
args['απθ'] = "3"
return frame:preprocess(klisi1(args))
end
p['κόντες'] = function(frame)
local args = frame:getParent().args
args['οε'] = "ες"
args['γε'] = "ε"
args['αε'] = "ε"
args['οπ'] = "ηδες"
args['γπ'] = "ηδων"
return frame:preprocess(klisi1(args))
end
p['λαχειοπώλης'] = function(frame)
local args = frame:getParent().args
args['οε'] = "ης"
args['γε'] = "η"
args['αε'] = "η"
args['οπ'] = "ες"
if args['γπ'] == nil then args['γπ'] = "ών" end
args['οπ2'] = "ηδες"
args['γπ2'] = "ηδων"
return frame:preprocess(klisi1(args))
end
p['λύση'] = function(frame)
local args = frame:getParent().args
args['οε'] = "η"
args['γε'] = "ης"
args['γε2'] = "εως"
args['αε'] = "η"
args['οπ'] = "εις"
args['γπ'] = "εων"
args['γε2θ'] = "3"
args['οπθ'] = "3"
args['γπθ'] = "3"
return frame:preprocess(klisi1(args))
end
p['μανάβης'] = function(frame)
local args = frame:getParent().args
args['οε'] = "ης"
args['γε'] = "η"
args['αε'] = "η"
args['οπ'] = "ηδες"
args['γπ'] = "ηδων"
args['οπθ'] = "3"
args['γπθ'] = "3"
if args['2πλ'] == "1" then
args['οπ2'] = "αίοι"
args['γπ2'] = "αίων"
args['απ2'] = "αίους"
--TODO τσοπάνης -ηδες - αραίοι
--if args['προσφ'] ~= nil then
end
return frame:preprocess(klisi1(args))
end
p['μίλι'] = function(frame)
local args = frame:getParent().args
args['οε'] = "ι"
args['γε'] = "ίου"
args['αε'] = "ι"
args['οπ'] = "ια"
args['γπ'] = "ίων"
return frame:preprocess(klisi1(args))
end
p['ναύτης'] = function(frame)
local args = frame:getParent().args
args['οε'] = "ης"
args['γε'] = "η"
args['αε'] = "η"
args['οπ'] = "ες"
if args['γπ'] == nil then args['γπ'] = "ών" end
return frame:preprocess(klisi1(args))
end
p['νίκη'] = function(frame)
local args = frame:getParent().args
local arg2 = frame.args
args['οε'] = "η"
args['γε'] = "ης"
args['αε'] = "η"
args['οπ'] = "ες"
if arg2['σκόνη'] ~= nil then args['γπ0'] = "ών" end
if arg2['βιασύνη'] ~= nil then args['γπ0'] = "ων" end
if arg2['ζάχαρη'] == nil then args['γπ'] = "ών" end
return frame:preprocess(klisi1(args))
end
p['νικητής'] = function(frame)
local args = frame:getParent().args
args['οε'] = "ής"
args['γε'] = "ή"
args['αε'] = "ή"
args['οπ'] = "ές"
args['γπ'] = "ών"
return frame:preprocess(klisi1(args))
end
p['νότα'] = function(frame)
local args = frame:getParent().args
args['οε'] = "α"
args['γε'] = "ας"
args['αε'] = "α"
args['οπ'] = "ες"
args['γπ0'] = "ών"
return frame:preprocess(klisi1(args))
end
p['όνομα'] = function(frame)
local args = frame:getParent().args
args['οε'] = "α"
args['γε'] = "ατος"
args['αε'] = "α"
args['οπ'] = "ατα"
args['γπ'] = "άτων"
args['γεθ'] = "3"
args['οπθ'] = "3"
return frame:preprocess(klisi1(args))
end
p['ουρανός'] = function(frame)
local args = frame:getParent().args
local arg2 = frame.args
args['οε'] = "ός"
args['γε'] = "ού"
args['αε'] = "ό"
if arg2['οδός'] == nil then
if args['κε'] == nil then args['κε'] = "έ" end
else
args['κε0'] = "ό"
end
args['οπ'] = "οί"
args['γπ'] = "ών"
args['απ'] = "ούς"
return frame:preprocess(klisi1(args))
end
p['παιδί'] = function(frame)
local args = frame:getParent().args
args['οε'] = "ί"
args['γε'] = "ιού"
args['αε'] = "ί"
args['οπ'] = "ιά"
args['γπ'] = "ιών"
return frame:preprocess(klisi1(args))
end
p['παιδάκι'] = function(frame)
local args = frame:getParent().args
args['οε'] = "ι"
args['αε'] = "ι"
args['οπ'] = "ια"
return frame:preprocess(klisi1(args))
end
p['πεύκο'] = function(frame)
local args = frame:getParent().args
args['οε'] = "ο"
args['γε'] = "ου"
args['αε'] = "ο"
args['οπ'] = "α"
if args['γπ'] == nil then args['γπ'] = "ων" end
return frame:preprocess(klisi1(args))
end
p['πραματευτής'] = function(frame)
local args = frame:getParent().args
args['οε'] = "ής"
args['γε'] = "ή"
args['αε'] = "ή"
args['οπ'] = "ές"
args['γπ'] = "ών"
args['οπ2'] = "άδες"
args['γπ2'] = "άδων"
return frame:preprocess(klisi1(args))
end
p['πρόσωπο'] = function(frame)
local args = frame:getParent().args
args['οε'] = "ο"
args['γε'] = "ου"
args['αε'] = "ο"
args['οπ'] = "α"
args['γπ'] = "ων"
args['γεθ'] = "3"
args['γπθ'] = "3"
return frame:preprocess(klisi1(args))
end
p['πρόβατο'] = function(frame)
local args = frame:getParent().args
args['οε'] = "ο"
args['γε'] = "ου"
args['γε2'] = "ου"
args['αε'] = "ο"
args['οπ'] = "α"
args['γπ'] = "ων"
args['γπ2'] = "ων"
args['γεθ'] = "3"
args['γπθ'] = "3"
return frame:preprocess(klisi1(args))
end
p['ψυχή'] = function(frame)
local args = frame:getParent().args
args['οε'] = "ή"
args['γε'] = "ής"
args['αε'] = "ή"
args['οπ'] = "ές"
if args['γπ'] == nil then args['γπ'] = "ών" end
return frame:preprocess(klisi1(args))
end
p['ρήγας'] = function(frame)
local args = frame:getParent().args
args['οε'] = "ας"
args['γε'] = "α"
args['αε'] = "α"
args['οπ'] = "άδες"
args['γπ'] = "άδων"
return frame:preprocess(klisi1(args))
end
p['Ρηνιώ'] = function(frame)
local args = frame:getParent().args
args['οε'] = "ώ"
args['γε'] = "ώς"
args['αε'] = "ώ"
args['οπ'] = "XX"
args['α'] = "εν"
return frame:preprocess(klisi1(args))
end
p['σάλπιγγα'] = function(frame)
local args = frame:getParent().args
args['οε'] = "α"
args['γε'] = "ας"
args['αε'] = "α"
args['οπ'] = "ες"
args['γπ'] = "ων"
args['γπθ'] = "3"
if args['2gen'] == "1" then args['γπ2'] = "ων"
end
return frame:preprocess(klisi1(args))
end
p.sfoungaras = function(frame)
local args = frame:getParent().args
args['οε'] = "άς"
args['γε'] = "ά"
args['αε'] = "ά"
args['οπ'] = "άδες"
args['γπ'] = "άδων"
return frame:preprocess(klisi1(args))
end
p['ταμίας'] = function(frame)
local args = frame:getParent().args
args['οε'] = "ας"
args['γε'] = "α"
args['αε'] = "α"
args['οπ'] = "ες"
args['γπ'] = "ών"
return frame:preprocess(klisi1(args))
end
p['τέρας'] = function(frame)
local args = frame:getParent().args
args['οε'] = "ας"
args['γε'] = "ατος"
args['αε'] = "ας"
args['οπ'] = "ατα"
args['γπ'] = "άτων"
return frame:preprocess(klisi1(args))
end
p['θάλασσα'] = function(frame)
local args = frame:getParent().args
args['οε'] = "α"
args['γε'] = "ας"
args['αε'] = "α"
args['οπ'] = "ες"
args['γπ'] = "ών"
return frame:preprocess(klisi1(args))
end
p['τραγούδι'] = function(frame)
local args = frame:getParent().args
args['οε'] = "ι"
args['γε'] = "ιού"
args['αε'] = "ι"
args['οπ'] = "ια"
args['γπ'] = "ιών"
return frame:preprocess(klisi1(args))
end
p['βουνό'] = function(frame)
local args = frame:getParent().args
args['οε'] = "ό"
args['γε'] = "ού"
args['αε'] = "ό"
args['οπ'] = "ά"
args['γπ'] = "ών"
return frame:preprocess(klisi1(args))
end
-- με πρόσθετο σύμφωνο γ ή τ
p['τσάι'] = function(frame)
local args = frame:getParent().args
args['οε'] = "ι"
args['γε'] = "ιού"
args['οπ'] = "ια"
args['γπ'] = "ιών"
args['οεθ'] = "1"
args['γεθ'] = "2"
args['οπθ'] = "1"
args['γπθ'] = "2"
args['πρόσφ'] ="γ"
return frame:preprocess(klisi2(args))
end
p['παρόν'] = function(frame)
local args = frame:getParent().args
args['οε'] = ""
args['γε'] = "ος"
args['οπ'] = "α"
args['γπ'] = "ων"
args['οεθ'] = "1"
args['γεθ'] = "1"
args['οπθ'] = "1"
args['γπθ'] = "1"
args['πρόσφ'] ="τ"
return frame:preprocess(klisi2(args))
end
p['μέλλον'] = function(frame)
local args = frame:getParent().args
args['οε'] = ""
args['γε'] = "ος"
args['οπ'] = "α"
args['γπ'] = "ων"
args['οεθ'] = "1"
args['γεθ'] = "1"
args['οπθ'] = "1"
args['γπθ'] = "3"
args['πρόσφ'] ="τ"
return frame:preprocess(klisi2(args))
end
p['ον'] = function(frame)
local args = frame:getParent().args
args['οε'] = ""
args['γε'] = "ος"
args['οπ'] = "α"
args['γπ'] = "ων"
args['οεθ'] = "1"
args['γεθ'] = "3"
args['οπθ'] = "3"
args['γπθ'] = "3"
args['πρόσφ'] ="τ"
return frame:preprocess(klisi2(args))
end
return p