forked from GitHub/gf-core
Greek by Ioanna Papodopoulou - complete, 27th RGL language
This commit is contained in:
264
lib/src/greek/StructuralGre.gf
Normal file
264
lib/src/greek/StructuralGre.gf
Normal file
@@ -0,0 +1,264 @@
|
||||
concrete StructuralGre of Structural = CatGre **
|
||||
open ResGre, ParadigmsGre, MakeStructuralGre, BeschGre,
|
||||
Prelude in {
|
||||
|
||||
flags coding = utf8 ;
|
||||
|
||||
|
||||
|
||||
|
||||
lin
|
||||
|
||||
above_Prep = mkPreposition "πάνω από" ;
|
||||
after_Prep = mkPreposition "μετά από" ;
|
||||
all_Predet = { s = \\n,g,c => (regAdj "όλος").s ! Posit ! g ! n ! c };
|
||||
almost_AdA, almost_AdN = ss "σχεδόν" ;
|
||||
although_Subj = ss "παρόλο που" ** {m = Ind} ;
|
||||
always_AdV = ss "πάντα" ;
|
||||
and_Conj = {s1 = [] ; s2 = "και" ; n = Pl} ;
|
||||
because_Subj = ss "επειδή" ** {m = Ind} ;
|
||||
before_Prep = mkPreposition "πρίν από" ;
|
||||
behind_Prep = mkPreposition "πίσω από" ;
|
||||
between_Prep = mkPreposition2 "ανάμεσα";
|
||||
both7and_DConj = {s1,s2 = "και" ; n = Pl} ;
|
||||
but_PConj = ss "αλλά" ;
|
||||
by8agent_Prep = mkPreposition "από";
|
||||
by8means_Prep = mkPreposition "από";
|
||||
can8know_VV = mkVV (v_VerbNoPassive1 "ξέρω" "ξέρω" "ήξερα" "ήξερα" " ") ;
|
||||
can_VV = mkVV (v_VerbNoPassive5 "μπορώ" "μπορέσω" "μπόρεσα" "μπορούσα" "μπόρεσε" " " ) ;
|
||||
during_Prep = mkPreposition3 "κατα τη διάρκεια" ;
|
||||
either7or_DConj = mkConj "είτε" "ή" plural ;
|
||||
|
||||
every_Det = let kathenas : ResGre.Gender => ResGre.Case => Str = \\g,c => case <g,c> of {
|
||||
<Masc| Change,Nom |Vocative> => "ο καθένας";
|
||||
<Masc| Change,Gen|CPrep P_Dat> => "του καθενός" ;
|
||||
<Masc| Change, Acc |CPrep P_se | CPrep PNul> => prepCase c ++ "τον καθένα" ;
|
||||
<Fem,Nom |Vocative |Acc |CPrep P_se | CPrep PNul> => prepCase c ++ "η καθεμία";
|
||||
<Fem,Gen|CPrep P_Dat > => "της καθεμίας" ;
|
||||
<Neut,Nom |Vocative |Acc |CPrep P_se | CPrep PNul> => prepCase c ++"το καθένα";
|
||||
<Neut,Gen|CPrep P_Dat > => "του καθενός"
|
||||
}; in {
|
||||
s = \\_,c => prepCase c ++ "κάθε" ;
|
||||
sp = kathenas ;
|
||||
n = Sg ;
|
||||
isNeg = False
|
||||
} ;
|
||||
|
||||
everybody_NP = nppolPos (mkDeterminer "όλοι" "όλων" "όλους" "όλες" "όλων" "όλες" "όλα" "όλων" "όλα" "όλα" "όλων" "όλα" Pl) ;
|
||||
everything_NP = makeNP "τα πάντα" "των πάντων" "στα πάντα" Pl Neut ;
|
||||
everywhere_Adv = ss "παντού" ;
|
||||
|
||||
few_Det ={s,sp = \\g,c => case <g,c> of {
|
||||
<Masc,Nom |Vocative> => "λίγοι";
|
||||
<Masc,Gen|CPrep P_Dat> => "λίγων" ;
|
||||
<Masc ,Acc |CPrep P_se | CPrep PNul> =>prepCase c ++"λίγους" ;
|
||||
<Fem,Nom |Vocative |Acc |CPrep P_se | CPrep PNul> => prepCase c ++"λίγες";
|
||||
<Fem,Gen|CPrep P_Dat > => "λίγων" ;
|
||||
<Neut| Change,Nom |Vocative |Acc |CPrep P_se | CPrep PNul> => prepCase c ++"λίγα";
|
||||
<Neut| Change,Gen|CPrep P_Dat > => "λίγων"
|
||||
};
|
||||
n= Pl;
|
||||
isNeg = False
|
||||
} ;
|
||||
|
||||
for_Prep = mkPreposition "για" ;
|
||||
from_Prep = mkPreposition "από" ;
|
||||
he_Pron = mkPron "αυτός" "του" "τον" "αυτόν" "αυτού" Masc Sg P3 ;
|
||||
here_Adv = ss "εδώ" ;
|
||||
here7to_Adv = ss "ως εδώ" ;
|
||||
here7from_Adv = ss "από εδώ " ;
|
||||
how_IAdv = ss "πόσο" ;
|
||||
how8much_IAdv = ss "πόσο" ;
|
||||
how8many_IDet = mkDeterminer "πόσοι" "πόσων" "πόσους" "πόσες" "πόσων" "πόσες" "πόσα" "πόσων" "πόσα" "πόσοι" "πόσων" "πόσους" Pl ;
|
||||
i_Pron = mkPron "εγώ" "μου" "με" "εμένα" "εμού" Masc Sg P1 ;
|
||||
if_Subj = ss "αν" ** {m = Ind};
|
||||
in8front_Prep = mkPreposition "μπροστά από";
|
||||
in_Prep = complPrepSe;
|
||||
it_Pron = mkPron "αυτό" "του" "το" "αυτό" "αυτού" Neut Sg P3 ;
|
||||
less_CAdv = {s="λιγότερο"; p= "από" ; c= CPrep PNul ; lock_CAdv = <>} ;
|
||||
|
||||
many_Det = {s,sp = \\g,c => case <g,c> of {
|
||||
<Masc,Nom |Vocative> => "πολλοί";
|
||||
<Masc |Fem | Neut |Change,Gen|CPrep P_Dat> => "πολλών" ;
|
||||
<Masc ,Acc |CPrep P_se | CPrep PNul> =>prepCase c ++ "πολλούς" ;
|
||||
<Fem,Nom |Vocative |Acc |CPrep P_se | CPrep PNul> => prepCase c ++"πολλές";
|
||||
<Neut| Change,Nom |Vocative |Acc |CPrep P_se | CPrep PNul> => prepCase c ++"πολλά"
|
||||
};
|
||||
n= Pl;
|
||||
isNeg = False
|
||||
} ;
|
||||
|
||||
more_CAdv = {s="πιό"; p="από" ; c= CPrep PNul} ;
|
||||
most_Predet = { s = \\n,g,c => artDef g n c ++ (regAdj "περισσότερος").s ! Posit ! g ! n ! c };
|
||||
|
||||
much_Det = {s,sp = \\g,c => case <g,c> of{
|
||||
<Masc| Change,Nom> => "πολύς";
|
||||
<Masc| Change,Gen|CPrep P_Dat> => "πόλύ" ;
|
||||
<Masc| Change,Acc |CPrep P_se | CPrep PNul> => prepCase c ++"πολύ" ;
|
||||
<Masc| Change,Vocative> => "πολύ" ;
|
||||
<Fem,Nom |Vocative |Acc |CPrep P_se | CPrep PNul> =>prepCase c ++ "πολλή";
|
||||
<Fem,Gen|CPrep P_Dat > => "πολλής" ;
|
||||
<Neut,Nom |Vocative |Acc |CPrep P_se | CPrep PNul> => prepCase c ++"πολύ";
|
||||
<Neut,Gen|CPrep P_Dat > => "πολύ"
|
||||
};
|
||||
n= Sg;
|
||||
isNeg = False
|
||||
} ;
|
||||
|
||||
must_VV = mkVV (v_mk_Prepei "πρέπει" "έπρεπε" ** {lock_V = <>});
|
||||
no_Utt = ss "όχι" ;
|
||||
on_Prep = complPrepSe ;
|
||||
only_Predet =let mono : Number =>Gender=> Case => Str= \\n,g,c => case <n,g,c> of {<_,_,_> => prepCase c ++ "μόνο" } in { s = mono} ;
|
||||
or_Conj = {s1 = [] ; s2 = "ή" ; n = Sg} ;
|
||||
otherwise_PConj = ss "αλλιώς" ;
|
||||
part_Prep = complGen ;
|
||||
please_Voc = ss "παρακαλώ" ;
|
||||
possess_Prep = complGen ;
|
||||
quite_Adv = ss "αρκετά" ;
|
||||
she_Pron = mkPron "αυτή" "της" "την" "αυτήν" "αυτής" Fem Sg P3 ;
|
||||
so_AdA = ss "τόσο" ;
|
||||
|
||||
someSg_Det = {s,sp = \\g,c => case <g,c> of {
|
||||
<Masc| Change,Nom> => "κάποιος";
|
||||
<Masc| Change,Gen|CPrep P_Dat> => "κάποιου" ;
|
||||
<Masc| Change,Acc |CPrep P_se | CPrep PNul> =>prepCase c ++ "κάποιον" ;
|
||||
<Masc| Change,Vocative> => "κάποιε" ;
|
||||
<Fem,Nom |Vocative |Acc |CPrep P_se | CPrep PNul> => prepCase c ++"κάποια";
|
||||
<Fem,Gen|CPrep P_Dat > => "κάποιας" ;
|
||||
<Neut,Nom |Vocative |Acc |CPrep P_se | CPrep PNul> => prepCase c ++"κάποιο";
|
||||
<Neut,Gen|CPrep P_Dat > => "κάποιου"
|
||||
};
|
||||
n= Sg;
|
||||
isNeg = False
|
||||
} ;
|
||||
|
||||
somePl_Det = {s,sp = \\g,c => case <g,c> of {
|
||||
<Masc,Nom |Vocative> => "κάποιοι";
|
||||
<Masc |Fem | Neut |Change,Gen|CPrep P_Dat> => "κάποιων" ;
|
||||
<Masc ,Acc |CPrep P_se | CPrep PNul> => prepCase c ++"κάποιους" ;
|
||||
<Fem,Nom |Vocative |Acc |CPrep P_se | CPrep PNul> => prepCase c ++"κάποιες";
|
||||
<Neut| Change,Nom |Vocative |Acc |CPrep P_se | CPrep PNul> => prepCase c ++"κάποια"
|
||||
};
|
||||
n= Pl;
|
||||
isNeg = False
|
||||
} ;
|
||||
|
||||
somebody_NP = nppolPos (mkDeterminer "κάποιος" "κάποιου" "κάποιον" "κάποια" "κάποιας" "κάποια" "κάποιο" "κάποιου" "κάποιο" "κάποιος" "κάποιου" "κάποιον" Sg ) ;
|
||||
something_NP = makeNP "κάτι" Sg Neut False ;
|
||||
somewhere_Adv = ss "κάπου" ;
|
||||
that_Quant = { s = \\_,g,n,c => prepCase c ++ (regAdj "εκείνος").s ! Posit ! g ! n ! c ++ artDef g n c ; sp =\\g,n,c => (regAdj "εκείνος").s ! Posit ! g ! n ! c ; isNeg =False };
|
||||
that_Subj = ss "οτι" ** {m = Ind} ;
|
||||
there_Adv = ss "εκεί" ;
|
||||
there7to_Adv = ss "ως εκεί" ;
|
||||
there7from_Adv = ss "απο εκεί";
|
||||
therefore_PConj = ss "γι'αυτό" ;
|
||||
they_Pron = mkPron "αυτοί" "τους" "τους" "αυτούς" "αυτών" Masc Pl P3 ;
|
||||
|
||||
this_Quant = {
|
||||
s =\\_,g,n,c => prepCase c ++ (regAdj "αυτός").s ! Posit ! g ! n ! c ++ artDef g n c ;
|
||||
sp =\\g,n,c => (regAdj "αυτός").s ! Posit ! g ! n ! c ;
|
||||
isNeg =False
|
||||
};
|
||||
|
||||
through_Prep = mkPrep4 "μέσω";
|
||||
to_Prep = complPrepSe ;
|
||||
too_AdA = ss "υπερβολικά" ;
|
||||
under_Prep = mkPreposition "κάτω από" ;
|
||||
very_AdA = ss "πολύ" ;
|
||||
want_VV = mkVV (VerbNoPassive2syll "θέλω" "θελήσω" "θέλησα" "ήθελα" "ηθελημένος" ** {lock_V = <>}) ;
|
||||
we_Pron = mkPron "εμείς" "μας" "μας" "εμάς" "ημών" Masc Pl P1 ;
|
||||
whatPl_IP = {s = \\g,c => prepCase c ++ "τι" ; n= Pl; a = a} where {a = aagr Masc Pl} ;
|
||||
whatSg_IP = {s = \\g,c => prepCase c ++ "τι" ; n= Sg; a = a} where {a = aagr Masc Sg} ;
|
||||
when_IAdv = ss "πότε" ;
|
||||
when_Subj = ss "όταν" ** {m =Con} ;
|
||||
where_IAdv = ss "που" ;
|
||||
|
||||
which_IQuant = {s = table {
|
||||
Sg => table {Masc | Change=> table { Nom => "ποιός";
|
||||
Gen => "ποιού";
|
||||
Acc | CPrep P_se |CPrep PNul => "ποιόν" ;
|
||||
Voc => " "
|
||||
};
|
||||
Fem => table { Nom | Acc | CPrep P_se |CPrep PNul => "ποιά";
|
||||
Gen => "ποιάς";
|
||||
Voc => " "
|
||||
};
|
||||
Neut => table { Nom | Acc | CPrep P_se |CPrep PNul => "ποιό";
|
||||
Gen => "ποιού";
|
||||
Voc => " "
|
||||
} };
|
||||
Pl => table {Masc => table { Nom => "ποιoί";
|
||||
Gen => "ποιών";
|
||||
Acc |CPrep P_se |CPrep PNul => "ποιούς" ;
|
||||
Voc => " "
|
||||
};
|
||||
Fem => table { Nom | Acc | CPrep P_se |CPrep PNul => "ποιές";
|
||||
Gen => "ποιών" ;
|
||||
Voc => " "
|
||||
};
|
||||
Neut | Change => table { Nom | Acc | CPrep P_se |CPrep PNul => "ποιά";
|
||||
Gen => "ποιών";
|
||||
Voc => " "
|
||||
}}}};
|
||||
|
||||
whoSg_IP = {s = \\g,c => case <g,c> of {
|
||||
<Masc ,Nom> =>prepCase c ++ "ποιός" ;
|
||||
<Fem ,Nom | Acc |CPrep P_se | CPrep PNul > =>prepCase c ++ "ποιά" ;
|
||||
<Neut| Change ,Nom | Acc | CPrep P_se | CPrep PNul > =>prepCase c ++ "ποιό" ;
|
||||
<Fem ,Gen> =>prepCase c ++"ποιάς" ;
|
||||
<Neut | Change | Masc,Gen> => prepCase c ++"ποιού" ;
|
||||
<Masc ,Acc |CPrep P_se | CPrep PNul > => prepCase c ++"ποιόν" ;
|
||||
_ => " "
|
||||
};
|
||||
a = {g = Masc ; n = Sg} ;
|
||||
n=Sg
|
||||
};
|
||||
|
||||
whoPl_IP = {s = \\g,c => case <g,c> of {
|
||||
<Masc ,Nom> => prepCase c ++"ποιοί" ;
|
||||
<Fem ,Nom | Acc | CPrep P_se | CPrep PNul > => prepCase c ++ "ποιές" ;
|
||||
<Neut| Change ,Nom | Acc | CPrep P_se | CPrep PNul > => prepCase c ++"ποιά" ;
|
||||
<Fem | Neut | Change | Masc,Gen> => prepCase c ++"ποιών" ;
|
||||
<Masc,Acc | CPrep P_se | CPrep PNul > => prepCase c ++"ποιούς" ;
|
||||
_ => " "
|
||||
};
|
||||
a = {g = Masc ; n = Pl} ;
|
||||
n=Pl
|
||||
};
|
||||
|
||||
why_IAdv = ss "γιατί" ;
|
||||
with_Prep = mkPreposition "με" ;
|
||||
without_Prep = mkPreposition "χωρίς" ;
|
||||
yes_Utt = ss "ναι" ;
|
||||
youSg_Pron = mkPron "εσύ" "σου" "σε" "εσένα" "εσού" Masc Sg P2 ;
|
||||
youPl_Pron = mkPron "εσείς" "σας" "σας" "εσάς" "υμών" Masc Pl P2 ;
|
||||
youPol_Pron = mkPron "εσείς" "σας" "σας" "εσάς" "υμών" Masc Pl P2 ;
|
||||
|
||||
no_Quant = let kanenas : ResGre.Gender => ResGre.Number => ResGre.Case => Str = \\g,n,c => case <g,n,c> of {
|
||||
<Masc| Change,Sg,Nom |Vocative> => "κανένας";
|
||||
<Masc| Change,Sg,Gen|CPrep P_Dat> => "κανενός" ;
|
||||
<Masc| Change,Sg, Acc |CPrep P_se | CPrep PNul> => prepCase c ++ "κανέναν" ;
|
||||
<Fem,Sg,Nom |Vocative |Acc |CPrep P_se | CPrep PNul> => prepCase c ++ "καμία";
|
||||
<Fem,Sg,Gen|CPrep P_Dat > => "καμιάς" ;
|
||||
<Neut,Sg,Nom |Vocative |Acc |CPrep P_se | CPrep PNul> => prepCase c ++"κανένα";
|
||||
<Neut,Sg,Gen|CPrep P_Dat > => "κανενός" ;
|
||||
<_,Pl,_> => " " };
|
||||
in {
|
||||
s = \\_ => kanenas ;
|
||||
sp = kanenas ;
|
||||
isNeg = True
|
||||
} ;
|
||||
|
||||
not_Predet = let oxi : Number =>Gender=> Case => Str= \\n,g,c => case <n,g,c> of {<_,_,_> => prepCase c ++ "όχι" } in { s = oxi} ;
|
||||
if_then_Conj = {s1 = "αν" ; s2 = "τότε" ; n = Sg ; lock_Conj = <>} ;
|
||||
at_least_AdN = ss "τουλάχιστον" ;
|
||||
at_most_AdN = ss "το πολύ" ;
|
||||
nobody_NP = nppolNeg (mkDeterminer "κανένας" "κανενός" "κανέναν" "καμία" "καμιάς" "καμία" "κανένα" "κανενός" "κανένα" "κανένας" "κανενός" "κανέναν" Sg) ;
|
||||
nothing_NP = makeNP "τίποτα" Sg Neut True;
|
||||
except_Prep = mkPreposition "εκτός απο";
|
||||
as_CAdv = {s="τόσο"; p="όσο" ; c= Nom} ;
|
||||
have_V2 = dirV2 (mkAux "έχω" "είχα" "έχε" "έχετε" "έχων" ** {lock_V = <>}) ;
|
||||
lin language_title_Utt = ss "Ελληνικά" ;
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user