diff --git a/lib/src/greek/AdverbGre.gf b/lib/src/greek/AdverbGre.gf index dd2d9d091..52f55fc97 100644 --- a/lib/src/greek/AdverbGre.gf +++ b/lib/src/greek/AdverbGre.gf @@ -12,7 +12,7 @@ flags coding = utf8 ; ComparAdvAdjS cadv a s = { - s = cadv.s ++ a.adv ! Posit ++ cadv.p ++ "ότι" ++ s.s ! Ind + s = cadv.s ++ a.adv ! Posit ++ cadv.p ++ "οτι" ++ s.s ! Ind } ; @@ -30,6 +30,6 @@ flags coding = utf8 ; s = subj.s ++ s.s ! subj.m } ; - AdnCAdv cadv = {s = cadv.s ++ cadv.p} ; + AdnCAdv cadv = {s = cadv.s2 ++ cadv.p} ; } diff --git a/lib/src/greek/BeschGre.gf b/lib/src/greek/BeschGre.gf index a279e30b4..61f07a5df 100644 --- a/lib/src/greek/BeschGre.gf +++ b/lib/src/greek/BeschGre.gf @@ -1141,6 +1141,82 @@ mkVerbContracIrreg2 lEw pW eIpa Elega lE p eIp Eleg lEg leg eipWth eipwth part; +mkVerbContracIrreg3 : (x1,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Verb = \vlEpw, dW, eIda, Evlepa, vlEp, d, eId, Evlep, vlEp, vlep, eidWth, eidwth, part -> + { + s = table { + VPres Ind Sg P1 Active _ => vlEpw ; + VPres Ind Sg P2 Active _ => vlEp + "εις" ; + VPres Ind Sg P3 Active _=> vlEp + "ει" ; + VPres Ind Pl P1 Active _ => vlEp + "ουμε" ; + VPres Ind Pl P2 Active _ => vlEp + "ετε" ; + VPres Ind Pl P3 Active _ => vlEp + "ουν" ; + + VPres Ind Sg P1 Passive _ => vlEp + "ομαι" ; + VPres Ind Sg P2 Passive _ => vlEp +"εσαι" ; + VPres Ind Sg P3 Passive _=> vlEp +"εται" ; + VPres Ind Pl P1 Passive _=> vlep +"όμαστε" ; + VPres Ind Pl P2 Passive _ => vlEp + "εστε" ; + VPres Ind Pl P3 Passive _ => vlEp +"ονται" ; + + VPres _ Sg P1 Active _ => dW ; + VPres _ Sg P2 Active _ => d + "είς" ; + VPres _ Sg P3 Active _ => d + "εί" ; + VPres _ Pl P1 Active _=> d + "ούμε" ; + VPres _ Pl P2 Active _ => d + "είτε" ; + VPres _ Pl P3 Active _ => d + "ούν" ; + + VPres _ Sg P1 Passive _ => eidwth + "ώ" ; + VPres _ Sg P2 Passive _ => eidwth + "είς" ; + VPres _ Sg P3 Passive _ => eidwth + "εί" ; + VPres _ Pl P1 Passive _ => eidwth + "ούμε" ; + VPres _ Pl P2 Passive _ => eidwth + "είτε" ; + VPres _ Pl P3 Passive _ => eidwth + "ούν" ; + + VPast _ Sg P1 Active Perf => eIda ; + VPast _ Sg P2 Active Perf=> eId + "ες" ; + VPast _ Sg P3 Active Perf => eId + "ε" ; + VPast _ Pl P1 Active Perf => eId + "αμε" ; + VPast _ Pl P2 Active Perf => eId + "ατε" ; + VPast _ Pl P3 Active Perf => eId + "αν" ; + + VPast _ Sg P1 Passive Perf => eidWth + "ηκα" ; + VPast _ Sg P2 Passive Perf => eidWth + "ηκες" ; + VPast _ Sg P3 Passive Perf => eidWth + "ηκε" ; + VPast _ Pl P1 Passive Perf => eidwth + "ήκαμε" ; + VPast _ Pl P2 Passive Perf=> eidwth + "ήκατε" ; + VPast _ Pl P3 Passive Perf => eidWth + "ηκαν" ; + + VPast _ Sg P1 Active Imperf => Evlepa ; + VPast _ Sg P2 Active Imperf => Evlep + "ες" ; + VPast _ Sg P3 Active Imperf => Evlep + "ε" ; + VPast _ Pl P1 Active Imperf => vlEp+ "αμε" ; + VPast _ Pl P2 Active Imperf => vlEp + "ατε" ; + VPast _ Pl P3 Active Imperf => Evlep + "αν" ; + + VPast _ Sg P1 Passive Imperf=> vlep + "όμουν" ; + VPast _ Sg P2 Passive Imperf => vlep+ "όσουν" ; + VPast _ Sg P3 Passive Imperf => vlep +"όταν" ; + VPast _ Pl P1 Passive Imperf => vlep + "όμασταν" ; + VPast _ Pl P2 Passive Imperf=> vlep + "όσασταν" ; + VPast _ Pl P3 Passive Imperf => vlep + "όντουσαν" ; + + VNonFinite Active => d + "εί" ; + VNonFinite Passive => eidwth + "εί" ; + + VImperative Perf Sg Active=> d + "ές" ; + VImperative Perf Pl Active => d + "είτε" ; + VImperative Imperf Sg Active =>vlEp + "ε" ; + VImperative Imperf Pl Active => vlEp + "ετε" ; + + VImperative _ Sg Passive => " " ; + VImperative _ Pl Passive => eidwth + "είτε" ; + + Gerund =>vlEp + "οντας" ; + + Participle d g n c => (regAdj part).s !d! g !n !c + } + } ; + VerbContrIrreg3 : (x1,_,_,_ : Str) -> Verb = \vlEpw,dW,eIda,Evlepa-> let vlEp = init vlEpw; @@ -1153,7 +1229,7 @@ eidwth = mkVerbStem eidWth; part= mkPartStem eidwth; in - mkVerbContracIrreg2 vlEpw dW eIda Evlepa vlEp d eId Evlep vlEp vlep eidWth eidwth part; + mkVerbContracIrreg3 vlEpw dW eIda Evlepa vlEp d eId Evlep vlEp vlep eidWth eidwth part; @@ -2074,7 +2150,7 @@ zIs = init zIsw ; Ezis = init Ezisa ; zoYs = init zoYsa ; - Nonfinite = z + "εί" ; + Nonfinite = zIs + "ει" ; Imp1 = zIse ; Imp2 = z+ "είτε" ; Imp3 = zIs + "ε"; @@ -2091,7 +2167,7 @@ tharrEps = init tharrEpsw ; thArreps = init thArrepsa ; tharroYs = init tharroYsa ; - Nonfinite = tharr + "εί" ; + Nonfinite = tharrEps + "ει" ; Imp1 = thArrepse ; Imp2 = tharr + "είτε" ; Imp3 = thArreps + "ε"; diff --git a/lib/src/greek/CommonGre.gf b/lib/src/greek/CommonGre.gf index 61998df51..490723e98 100644 --- a/lib/src/greek/CommonGre.gf +++ b/lib/src/greek/CommonGre.gf @@ -14,7 +14,7 @@ flags coding = utf8 ; AdA = {s : Str} ; AdN = {s : Str} ; IAdv = {s : Str} ; - CAdv = {s : Str; p : Str} ** {c:Case}; + CAdv = {s ,s2: Str; p : Str} ** {c:Case}; PConj = {s : Str} ; Interj = {s : Str} ; diff --git a/lib/src/greek/LexiconGre.gf b/lib/src/greek/LexiconGre.gf index e36a1a9d7..920796e5b 100644 --- a/lib/src/greek/LexiconGre.gf +++ b/lib/src/greek/LexiconGre.gf @@ -49,7 +49,7 @@ flags coding = utf8 ; broad_A = mkA "ευρύς" "ευρέως" ; brother_N2 = ofN2 (mkN "αδελφός") ; brown_A = mkAdjAklito "καφέ" ; - burn_V= v_VerbContr2 "κλαίω" "κλάψω" "έκλαψα" "έκλαιγα" ; + burn_V= v_VerbContr2 "καίω" "κάψω" "έκαψα" "έκαιγα" ; butter_N = mkN "βούτυρο" "βουτύρων" Neut; buy_V2= dirV2 (v_Verb1d "αγοράζω" "αγοράσω" "αγόρασα" "αγόραζα" ) ; camera_N = mkN "κάμερα" Fem; @@ -81,7 +81,7 @@ flags coding = utf8 ; die_V = v_VerbNoPassive "πεθαίνω" "πεθάνω" "πέθανα" "πέθαινα" "πέθανε" "πεθαμένος" ; dig_V =v_Verb1c "σκάβω" "σκάψω" "έσκαψα" "έσκαβα" ; dirty_A = regAdj "βρώμικος" ; - distance_N3 = mkN3 (mkN "απόσταση" "αποστάσεις" Fem) acc (mkPreposition "ως" ** {lock_Prep = <>}); + distance_N3 = mkN3 (mkN "απόσταση" "αποστάσεις" Fem) (mkPrep "από"** {lock_Prep = <>}) (mkPrep "ως" ** {lock_Prep = <>}); doctor_N = mkN "γιατρός" ; dog_N = mkN "σκύλος" ; door_N = mkN "πόρτα" Fem; @@ -92,7 +92,7 @@ flags coding = utf8 ; dust_N = mkN "σκόνη" Fem ; ear_N =mkN "αφτί" ; earth_N = mkN "γή" "γής" "γή" "γή" "" "" "" "" Fem ; - easy_A2V = mkA2V (mkAd "εύκολος") acc gen ; + easy_A2V = mkA2V (mkA "εύκολος") acc gen ; eat_V2 = dirV2 (v_VerbContrIrreg "τρώω" "φάω" "έφαγα" "έτρωγα" ) ; egg_N = mkN "αβγό" ; empty_A = mkAd "άδειος" ; @@ -107,7 +107,7 @@ flags coding = utf8 ; fear_V2 =dirV2 (v_VerbDeponent "φοβάμαι" "φοβηθώ" "φοβήθηκα" "φοβόμουν" "φοβήσου" "φοβισμένος") ; feather_N = mkN "φτερό" ; fight_V2 = dirV2 (v_Verb2a "πολεμώ" "πολεμήσω" "πολέμησα" "πολεμούσα" ) ; - find_V2 = dirV2 (v_VerbContracIrregNopassive "βρίσκω" "βρώ" "βρήκα" "έβρισκα" "βρες" "βρισκόμενος"); +---- find_V2 = dirV2 (v_VerbContrIrreg3 "βρίσκω" "βρώ" "βρήκα" "έβρισκα" ); fingernail_N = mkN "νύχι" Neut ; fire_N = mkN "φωτιά" ; fish_N = mkN "ψάρι" Neut ; @@ -119,10 +119,10 @@ flags coding = utf8 ; fog_N = mkN "ομίχλη" Fem ; foot_N = mkN "πόδι" Neut ; forest_N = mkN "δάσος" Neut ; - forget_V2 = dirV2 (v_VerbNoPassive3 "ξεχνώ" "ξεχάσω" "ξέχασα" "ξεχνούσα" "ξέχνα" "ξεχασμένος" ); + forget_V2 = dirV2 (v_Verb2c "ξεχνώ" "ξεχάσω" "ξέχασα" "ξεχνούσα" ); freeze_V = v_VerbNoPassive "παγώνω" "παγώσω" "πάγωσα" "πάγωνα" "πάγωσε" "παγωμένος" ; fridge_N = mkN "ψυγείο" ; - friend_N = mkN "φίλος" ; --ΟΧΙ γιατι εχει 3 γενη + friend_N = mkN "φίλος" ; fruit_N = mkN "φρούτο" ; full_A = mkA "γεμάτος" ; fun_AV = mkAV (mkAd "αστείος") ; @@ -190,7 +190,7 @@ flags coding = utf8 ; love_N = mkN "αγάπη" Fem ; love_V2 = dirV2 (v_Verb2a "αγαπώ" "αγαπήσω" "αγάπησα" "αγαπούσα" ); man_N = mkN "άνδρας" Masc ; - married_A2 = mkA2 (mkA "παντρεμένος") (mkPreposition "με" ** {lock_Prep = <>}); + married_A2 = mkA2 (mkA "παντρεμένος") (mkPrep "με" ** {lock_Prep = <>}); meat_N = regIrreg "τέρας" ; milk_N = regIrreg "γάλα" ; moon_N = mkN "φεγγάρι" Neut; diff --git a/lib/src/greek/NounGre.gf b/lib/src/greek/NounGre.gf index ffe037176..689faff58 100644 --- a/lib/src/greek/NounGre.gf +++ b/lib/src/greek/NounGre.gf @@ -65,7 +65,7 @@ concrete NounGre of Noun = CatGre ** open ResGre, ParadigmsGre, Prelude in { RelNP np rs = { s = \\c => { - comp = (np.s ! c).comp ++ "," ++ rs.s! Ind ! np.a ; + comp = (np.s ! c).comp ++ rs.s! Ind ! np.a ; c1 = [] ; c2 = [] ; isClit = False @@ -208,7 +208,7 @@ concrete NounGre of Noun = CatGre ** open ResGre, ParadigmsGre, Prelude in { ApposCN cn np = let g = cn.g in { - s = \\n,c => cn.s ! n ! c ++ (np.s ! Nom).comp ; + s = \\n,c =>cn.s ! n ! c ++ (np.s ! c).comp ; g = g } ; diff --git a/lib/src/greek/NumeralGre.gf b/lib/src/greek/NumeralGre.gf index 6ac3587d6..7a13407d7 100644 --- a/lib/src/greek/NumeralGre.gf +++ b/lib/src/greek/NumeralGre.gf @@ -23,11 +23,11 @@ lin n4 = mkNum3 "τέσσερα" "δεκατέσσερα" "σαράντα" "τ lin n5 = mkNum2 "πέντε" "δεκαπέντε" "πενήντα" "πεντακόσια" "πέμπτος" "πεντηκοστός" "πεντακοσιοστός" "πεντάκις" "δεκαπεντάκις" "πεντηκοντάκις" "πεντακοσάκις"; -lin n6 = mkNum2 "έξι" "δεκαέξι" "εξήντα" "εξακόσια" "έκτος" "εξηκοστός" "εξακοσιοστός" "εξακισ" "δεκαεξάκις" "εξηκοντάκις" "εξακοσάκις" ; +lin n6 = mkNum2 "έξι" "δεκαέξι" "εξήντα" "εξακόσια" "έκτος" "εξηκοστός" "εξακοσιοστός" "εξάκις" "δεκαεξάκις" "εξηκοντάκις" "εξακοσάκις" ; lin n7 = mkNum2 "εφτά" "δεκαεφτά" "εβδομήντα" "εφτακόσια" "έβδομος" "εβδομηκοστός" "εφτακοσιοστός" "εφτάκις" "δεκαεφτάκις" "εβδομηκοντάκις" "επτακοσάκις"; -lin n8 = mkNum2 "οχτώ" "δεκαοχτώ" "ογδόντα" "οχτακόσια" "όγδοος" "ογδοηκοστός" "οχτακοσιοστός" "οχτακισ" "δεκαοκτάκις" "ογδοηκοντάκις" "οκτακοσάκις"; +lin n8 = mkNum2 "οχτώ" "δεκαοχτώ" "ογδόντα" "οχτακόσια" "όγδοος" "ογδοηκοστός" "οχτακοσιοστός" "οχτάκις" "δεκαοκτάκις" "ογδοηκοντάκις" "οκτακοσάκις"; lin n9 = mkNum2 "εννιά" "δεκαεννιά" "ενενήντα" "εννιακόσια" "ένατος" "ενενηκοστός" "εννιακοσιοστός" "εννιάκις" "δεκαεννεάκις" "ενενηκοντάκις" "εννεακοσάκις"; @@ -56,7 +56,7 @@ lin pot3 n = { lin pot3plus n m = { s = \\co => case n.n of { Sg => Xilias co n.s n.n ++ cardOrdXiliaSg "χίλια" "χιλιοστός" ! co ++ m.s ! co ; - Pl => Xilias co n.s n.n ++ n.s ! NCardX ++ cardOrdXiliaPl "χιλιάδες" "χιλιοστός" ! co ++ m.s ! co } + Pl => Xilias co n.s n.n ++ cardOrdXiliaPl "χιλιάδες" "χιλιοστός" ! co ++ m.s ! co } } ** {n = Pl} ; diff --git a/lib/src/greek/QuestionGre.gf b/lib/src/greek/QuestionGre.gf index 9a1f5e4d4..d9d3df167 100644 --- a/lib/src/greek/QuestionGre.gf +++ b/lib/src/greek/QuestionGre.gf @@ -41,9 +41,10 @@ concrete QuestionGre of Question = CatGre ** open ResGre, Prelude in { QuestSlash ip slash = { s = \\t,a,p => - let - cls = slash.s ! ip.a ! Inv ! t ! a ! p! Ind; - who = ip.s ! Masc ! slash.c2.c ++slash.c2.s + let + agr = Ag ip.a.g ip.n P3 ; + cls = slash.s ! ip.a ! Inv ! t ! a ! p! Ind ++ slash.n3 !agr; + who = slash.c2.s ++ ip.s ! Masc ! slash.c2.c in table { QDir => who ++ cls ; QIndir => who ++ cls diff --git a/lib/src/greek/RelativeGre.gf b/lib/src/greek/RelativeGre.gf index 2dd26c18c..d08feaaec 100644 --- a/lib/src/greek/RelativeGre.gf +++ b/lib/src/greek/RelativeGre.gf @@ -4,8 +4,10 @@ concrete RelativeGre of Relative = CatGre ** open Prelude, ResGre in { lin - + + + RelCl cl = { s = \\ag,t,a,p,_ =>"ώστε" ++ cl.s ! Main ! t ! a ! p ! Ind ; c = Nom @@ -29,10 +31,11 @@ concrete RelativeGre of Relative = CatGre ** open Prelude, ResGre in { RelSlash rp slash = { s = \\ag,t,a,p,m => - let aag = complAgr ag + let aag = complAgr ag ; + agr = Ag rp.a.g rp.a.n P3 ; in slash.c2.s ++ rp.s ! False ! aag ! slash.c2.c ++ - slash.s ! aag ! Main ! t ! a ! p ! m ; + slash.s ! aag ! Main ! t ! a ! p ! m ++ slash.n3 ! agr ; c = Acc } ; diff --git a/lib/src/greek/ResGre.gf b/lib/src/greek/ResGre.gf index 2ca23dff5..ba7329b4a 100644 --- a/lib/src/greek/ResGre.gf +++ b/lib/src/greek/ResGre.gf @@ -29,6 +29,7 @@ resource ResGre = ParamX ** open Prelude in { Form = Weak |Emphatic ; + VForm = VPres Mood Number Person Voice Aspect| VPast Mood Number Person Voice Aspect| VNonFinite Voice| VImperative Aspect Number Voice| Gerund | Participle Degree Gender Number Case; Voice = Active | Passive; @@ -173,36 +174,36 @@ resource ResGre = ParamX ** open Prelude in { in case of { => subj ++ negpm ++ clit ++ clit2 ++ verb m vo as ! t ++ comp; - => negpm ++ clit ++ clit2 ++ verb m vo as ! t ++ comp ++ subj ; + => negpm ++ clit ++ clit2 ++ verb m vo as ! t ++ subj ++ comp ; => subj ++ negpm ++ clit ++ clit2++ verb m vo as! TCond ++ comp ; - => negpm ++ clit ++ clit2 ++ verb m vo as ! TCond ++ comp ++ subj ; + => negpm ++ clit ++ clit2 ++ verb m vo as ! TCond ++ subj ++ comp ; => subj ++ negpm ++ "θα" ++ clit ++ clit2 ++verb m vo as! t ++ comp ; - => negpm ++ "θα"++ clit ++ clit2++ verb m vo as! t ++ comp ++ subj; + => negpm ++ "θα"++ clit ++ clit2++ verb m vo as! t ++ subj ++ comp ; => subj ++ negpm ++ "θα" ++ clit ++ clit2 ++ verb m vo as! TCond ++ comp ; - => negpm ++"θα" ++ clit ++ clit2 ++ verb m vo as! TCond ++ comp ++ subj ; + => negpm ++"θα" ++ clit ++ clit2 ++ verb m vo as! TCond ++ subj ++ comp ; => subj ++ negpm ++ "θα" ++ clit ++ verb m vo Imperf! TPast ++ comp ; - => negpm ++ "θα" ++ clit ++ clit2 ++ verb m vo Imperf ! TPast ++ comp ++ subj; + => negpm ++ "θα" ++ clit ++ clit2 ++ verb m vo Imperf ! TPast ++ subj ++ comp ; => subj ++ negpm ++ "θα"++ clit ++ clit2 ++ verb m vo as! TImperf ++ comp ; - => negpm ++ "θα" ++clit ++ clit2 ++ verb m vo as! TImperf ++ comp ++ subj ; + => negpm ++ "θα" ++clit ++ clit2 ++ verb m vo as! TImperf ++ subj ++comp ; => subj ++ negpm ++ clit ++ clit2 ++ verb m vo as! TPast ++ comp ; - => negpm ++ clit ++ clit2 ++ verb m vo as! TPast ++ comp ++ subj ; + => negpm ++ clit ++ clit2 ++ verb m vo as! TPast ++ subj ++ comp ; => subj ++ negpm ++ clit ++ clit2 ++ verb m vo as!TImperf ++ comp; - => negpm ++ clit ++ clit2 ++ verb m vo as!TImperf ++ comp ++ subj; + => negpm ++ clit ++ clit2 ++ verb m vo as!TImperf ++ subj ++comp ; <_, TImperf,Simul,Ind> => subj ++ negpm ++ clit ++ clit2 ++ verb m vo as! t ++ comp ; - <_, TImperf,Anterior,Ind> => negpm ++ clit ++ clit2 ++ verb m vo as! TImperf ++ comp ++ subj; + <_, TImperf,Anterior,Ind> => negpm ++ clit ++ clit2 ++ verb m vo as! TImperf ++ subj ++ comp ; <_, _,_,Con> => subj ++ "να" ++ negpm ++ clit ++ clit2 ++ verb m vo as! t ++ comp ; => subj ++ "ας" ++ negpm ++ clit ++ clit2 ++ verb m vo as! t ++ comp ; - => "ας" ++ negpm ++ clit ++ clit2 ++ verb m vo as! t ++ comp ++ subj + => "ας" ++ negpm ++ clit ++ clit2 ++ verb m vo as! t ++ subj ++ comp } } ; @@ -1439,17 +1440,17 @@ resource ResGre = ParamX ** open Prelude in { => "τα οποία" }; Gen |CPrep P_Dat => case of - { => "της οποίας" ; - => "του οποίου" ; - => "των οποίων" + { => prepCase c ++"της οποίας" ; + =>prepCase c ++ "του οποίου" ; + => prepCase c ++"των οποίων" }; Acc | CPrep PNul => case of - { => "την οποία" ; - => "τον οποίο" ; - => "το οποίο" ; - => "τις οποίες" ; - => "τους οποίους" ; - => "τα οποία" + { => prepCase c ++ "την οποία" ; + => prepCase c ++"τον οποίο" ; + => prepCase c ++ "το οποίο" ; + => prepCase c ++ "τις οποίες" ; + => prepCase c ++"τους οποίους" ; + => prepCase c ++"τα οποία" }; CPrep P_se => case of { => "στην οποία" ; @@ -1482,7 +1483,7 @@ resource ResGre = ParamX ** open Prelude in { =>prepCase c++ "ένα" ; => "ενός"; => " " ; - <_ ,Pl, _> => " " + <_ ,Pl, _> =>prepCase c ++ " " } ; @@ -1582,13 +1583,13 @@ resource ResGre = ParamX ** open Prelude in { VNonFinite Active => "υπάρξει" ; VNonFinite Passive => "υπάρξει" ; - VImperative Perf Sg Active=> " " ; - VImperative Perf Pl Active=> " " ; - VImperative Imperf Sg Active=> " " ; - VImperative Imperf Pl Active=> " " ; + VImperative Perf Sg Active=> "να είσαι" ; + VImperative Perf Pl Active=> "να είστε" ; + VImperative Imperf Sg Active=> "να είσαι" ; + VImperative Imperf Pl Active=> "να είστε" ; - VImperative _ Sg Passive => " " ; - VImperative _ Pl Passive=> "" ; + VImperative _ Sg Passive => "να είσαι" ; + VImperative _ Pl Passive=> "να είστε" ; Gerund => "όντας" ; @@ -1626,10 +1627,10 @@ resource ResGre = ParamX ** open Prelude in { VNonFinite Active => "υπάρξει" ; VNonFinite Passive => "υπάρξει" ; - VImperative Perf Sg Active=> " " ; - VImperative Perf Pl Active=> " " ; - VImperative Imperf Sg Active=> " " ; - VImperative Imperf Pl Active=> " " ; + VImperative Perf Sg Active=> "να υπάρχεις" ; + VImperative Perf Pl Active=> "να υπάρχετε" ; + VImperative Imperf Sg Active=> "να υπάρχεις" ; + VImperative Imperf Pl Active=> "να υπάρχετε" ; VImperative _ Sg Passive=> " " ; VImperative _ Pl Passive=> "" ; @@ -1652,39 +1653,29 @@ resource ResGre = ParamX ** open Prelude in { in { s = table { - VPres _ Sg P1 Active _=> Exw ; - VPres _ Sg P2 Active _=> Ex + "εις" ; - VPres _ Sg P3 Active _=> Ex + "ει" ; - VPres _ Pl P1 Active _=> Ex+ "ουμε" ; - VPres _ Pl P2 Active _=> Ex + "ετε" ; - VPres _ Pl P3 Active _=> Ex + "ουν" ; + VPres _ Sg P1 _ _=> Exw ; + VPres _ Sg P2 _ _=> Ex + "εις" ; + VPres _ Sg P3 _ _=> Ex + "ει" ; + VPres _ Pl P1 _ _=> Ex+ "ουμε" ; + VPres _ Pl P2 _ _=> Ex + "ετε" ; + VPres _ Pl P3 _ _=> Ex + "ουν" ; - VPres _ Sg P1 Passive _=> " " ; - VPres _ Sg P2 Passive _=> " " ; - VPres _ Sg P3 Passive _=> " " ; - VPres _ Pl P1 Passive _=> " " ; - VPres _ Pl P2 Passive _=> " " ; - VPres _ Pl P3 Passive _=> " " ; + - VPast _ Sg P1 Active _=> eIxa ; - VPast _ Sg P2 Active _=> eIx + "ες" ; - VPast _ Sg P3 Active _ => eIx + "ε" ; - VPast _ Pl P1 Active _ => eIx + "αμε" ; - VPast _ Pl P2 Active _ => eIx + "ατε" ; - VPast _ Pl P3 Active _ => eIx + "αν" ; + VPast _ Sg P1 _ _=> eIxa ; + VPast _ Sg P2 _ _=> eIx + "ες" ; + VPast _ Sg P3 _ _ => eIx + "ε" ; + VPast _ Pl P1 _ _ => eIx + "αμε" ; + VPast _ Pl P2 _ _ => eIx + "ατε" ; + VPast _ Pl P3 _ _ => eIx + "αν" ; - VPast _ Sg P1 Passive _ => " " ; - VPast _ Sg P2 Passve _=> " " ; - VPast _ Sg P3 Passive _ => " " ; - VPast _ Pl P1 Passive _ => " " ; - VPast _ Pl P2 Passive _ => " " ; - VPast _ Pl P3 Passive _ => " " ; + VNonFinite Active => Ex + "ει" ; VNonFinite Passive => " " ; - VImperative Perf Sg Active=> " " ; - VImperative Perf Pl Active=> " " ; + VImperative Perf Sg Active=> Exe ; + VImperative Perf Pl Active=> Exe ; VImperative Imperf Sg Active=> Exe ; VImperative Imperf Pl Active=> Exe ; diff --git a/lib/src/greek/StructuralGre.gf b/lib/src/greek/StructuralGre.gf index 60333036c..12925ef35 100644 --- a/lib/src/greek/StructuralGre.gf +++ b/lib/src/greek/StructuralGre.gf @@ -24,7 +24,7 @@ concrete StructuralGre of Structural = CatGre ** but_PConj = ss "αλλά" ; by8agent_Prep = mkPreposition "από"; by8means_Prep = mkPreposition "από"; - can8know_VV = mkVV (v_VerbNoPassive1 "ξέρω" "ξέρω" "ήξερα" "ήξερα" " ") ; + can8know_VV = mkVV (v_VerbNoPassive5 "μπορώ" "μπορέσω" "μπόρεσα" "μπορούσα" "μπόρεσε" " " ) ; can_VV = mkVV (v_VerbNoPassive5 "μπορώ" "μπορέσω" "μπόρεσα" "μπορούσα" "μπόρεσε" " " ) ; during_Prep = mkPreposition3 "κατα τη διάρκεια" ; either7or_DConj = mkConj "είτε" "ή" plural ; @@ -67,15 +67,15 @@ concrete StructuralGre of Structural = CatGre ** here_Adv = ss "εδώ" ; here7to_Adv = ss "ως εδώ" ; here7from_Adv = ss "από εδώ " ; - how_IAdv = ss "πόσο" ; + how_IAdv = ss "πώς" ; how8much_IAdv = ss "πόσο" ; - how8many_IDet = mkDeterminer "πόσοι" "πόσων" "πόσους" "πόσες" "πόσων" "πόσες" "πόσα" "πόσων" "πόσα" "πόσοι" "πόσων" "πόσους" Pl ; + 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 = <>} ; + less_CAdv = {s,s2="λιγότερο"; p= "από" ; c= CPrep PNul ; lock_CAdv = <>} ; many_Det = {s,sp = \\g,c => case of { => "πολλοί"; @@ -88,7 +88,7 @@ concrete StructuralGre of Structural = CatGre ** isNeg = False } ; - more_CAdv = {s="πιό"; p="από" ; c= CPrep PNul} ; + more_CAdv = {s="πιό"; s2 = "πάνω" ; 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 of{ @@ -172,39 +172,28 @@ concrete StructuralGre of Structural = CatGre ** 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 => " " - }}}}; + + which_IQuant = {s = \\n,g,c => case of { + => "ποιός"; + => "ποιού" ; + => prepCase c ++ "ποιόν" ; + => prepCase c ++ "ποιά"; + => "ποιάς" ; + => prepCase c ++"ποιό"; + => "ποιού" ; + => "ποιoί"; + => "ποιών" ; + => prepCase c ++ "ποιούς" ; + => prepCase c ++ "ποιές"; + => "ποιών" ; + => prepCase c ++"ποιά"; + => "ποιών" } + } ; whoSg_IP = {s = \\g,c => case of { - =>prepCase c ++ "ποιός" ; + =>prepCase c ++ "ποιός" ; =>prepCase c ++ "ποιά" ; - =>prepCase c ++ "ποιό" ; + =>prepCase c ++ "ποιό" ; =>prepCase c ++"ποιάς" ; => prepCase c ++"ποιού" ; => prepCase c ++"ποιόν" ; @@ -256,7 +245,7 @@ concrete StructuralGre of Structural = CatGre ** nobody_NP = nppolNeg (mkDeterminer "κανένας" "κανενός" "κανέναν" "καμία" "καμιάς" "καμία" "κανένα" "κανενός" "κανένα" "κανένας" "κανενός" "κανέναν" Sg) ; nothing_NP = makeNP "τίποτα" Sg Neut True; except_Prep = mkPreposition "εκτός απο"; - as_CAdv = {s="τόσο"; p="όσο" ; c= Nom} ; + as_CAdv = {s,s2="τόσο"; p="όσο" ; c= Nom} ; have_V2 = dirV2 (mkAux "έχω" "είχα" "έχε" "έχετε" "έχων" ** {lock_V = <>}) ; lin language_title_Utt = ss "Ελληνικά" ; diff --git a/lib/src/greek/VerbGre.gf b/lib/src/greek/VerbGre.gf index 4900b7892..ca29b579b 100644 --- a/lib/src/greek/VerbGre.gf +++ b/lib/src/greek/VerbGre.gf @@ -9,7 +9,7 @@ concrete VerbGre of Verb = CatGre ** open ResGre,CommonGre, Prelude in { ComplVV v vp = insertComplement (\\a => case a of { - Ag _ n p => "να" ++ vp.clit ++ vp.clit2 ++ vp.v.s ! VPres Con n p Active Perf ++ vp.comp ! a}) (predV v) ; + Ag _ n p => let vo= vp.voice ; as = vp.aspect in "να" ++ vp.clit ++ vp.clit2 ++ vp.v.s ! VPres Con n p vo as ++ vp.comp ! a}) (predV v) ; ComplVS v s = @@ -30,9 +30,11 @@ concrete VerbGre of Verb = CatGre ** open ResGre,CommonGre, Prelude in { SlashV2V v vp = mkVPSlash v.c2 ( predV v) ** { n3 = \\a => - let agr = clitAgr a + let agr = clitAgr a ; + vo = vp.voice ; + as = vp.aspect in - v.c3.s ++ "να" ++ vp.clit ++ vp.clit2 ++ vp.v.s ! VPres Con agr.n agr.p Active Perf ++ vp.comp! a ; + v.c3.s ++ "να" ++ vp.clit ++ vp.clit2 ++ vp.v.s ! VPres Con agr.n agr.p vo as ++ vp.comp! a ; c2 = v.c2 } ; @@ -50,7 +52,7 @@ concrete VerbGre of Verb = CatGre ** open ResGre,CommonGre, Prelude in { SlashV2A v ap = mkVPSlash v.c2 (predV v )** { - n3 =\\a => let agr = complAgr a in ap.s ! Posit ! agr.g ! agr.n ! Acc ; + n3 =\\a => let agr = complAgr a in ap.s ! Posit ! agr.g ! agr.n ! Acc ; c2 = v.c2 } ; @@ -61,16 +63,18 @@ concrete VerbGre of Verb = CatGre ** open ResGre,CommonGre, Prelude in { SlashVV v vp = insertComplement (\\a => case a of { - Ag _ n p => "να" ++ vp.clit ++ vp.clit2 ++ vp.v.s ! VPres Con n p Active Perf++ vp.comp ! a}) + Ag _ n p => let vo=vp.voice ; as =vp.aspect in "να" ++ vp.clit ++ vp.clit2 ++ vp.v.s ! VPres Con n p vo as++ vp.comp ! a}) (predV v) ** {n3 = vp.n3 ; c2 = vp.c2} ; SlashV2VNP v np vp = mkVPSlash vp.c2( insertObject v.c2 np (predV v)) ** { n3 = \\a => - let agr = clitAgr a + let agr = clitAgr a ; + vo=vp.voice ; + as =vp.aspect in - v.c2.s ++ "να" ++ vp.clit ++ vp.clit2 ++ vp.v.s ! VPres Con agr.n agr.p Active Perf ++ vp.comp! a ; + v.c2.s ++ "να" ++ vp.clit ++ vp.clit2 ++ vp.v.s ! VPres Con agr.n agr.p vo as ++ vp.comp! a ; c2 = v.c2 } ; @@ -79,15 +83,16 @@ concrete VerbGre of Verb = CatGre ** open ResGre,CommonGre, Prelude in { UseComp comp = insertComplement comp.s (predV copula) ; - PassV2 v = { + PassV2 v = let vp = predV v in { v = v ; clit = [] ; clit2 = [] ; comp = \\a => [] ; isNeg = False; voice = Passive ; - aspect = Perf ; + aspect = vp.aspect; } ; + AdvVP vp adv = insertAdv adv.s vp ;