mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-05-21 00:52:51 -06:00
Greek by Ioanna Papodopoulou - complete, 27th RGL language
This commit is contained in:
103
lib/src/greek/SentenceGre.gf
Normal file
103
lib/src/greek/SentenceGre.gf
Normal file
@@ -0,0 +1,103 @@
|
||||
concrete SentenceGre of Sentence = CatGre ** open Prelude, ResGre,ParadigmsGre in {
|
||||
|
||||
flags coding= utf8;
|
||||
|
||||
lin
|
||||
|
||||
PredVP np vp = predVPPol np.isNeg ((np.s ! Nom).comp) np.a vp ;
|
||||
---- PredVP np vp = predVPPol np.isNeg ((np.s ! Nom).comp | [] ) np.a vp ; -- AR removed empty subject variant
|
||||
|
||||
PredSCVP sc vp = predVP sc.s (agrP3 Neut Sg) vp ;
|
||||
|
||||
|
||||
|
||||
SlashVP np v2 = {s = \\agr =>
|
||||
let
|
||||
vp = v2
|
||||
in
|
||||
(predVP (np.s ! Nom).comp np.a vp).s ;n3 = v2.n3 ; c2 = v2.c2 };
|
||||
|
||||
|
||||
AdvSlash slash adv = {
|
||||
s = \\ag,o,m,t,a,p => slash.s !ag ! o ! m ! t! a ! p ++ adv.s ;
|
||||
n3 = slash.n3 ;
|
||||
c2 = slash.c2
|
||||
} ;
|
||||
|
||||
|
||||
SlashPrep cl prep = {
|
||||
s = \\_ => cl.s ;
|
||||
n3 = \\_ => [] ;
|
||||
c2 = {s = prep.s ; c = prep.c ; isDir = False}
|
||||
} ;
|
||||
|
||||
|
||||
SlashVS np vs slash = {
|
||||
s = \\ag =>
|
||||
(predVP
|
||||
(np.s ! Nom).comp np.a
|
||||
(insertComplement (\\b => conjThat ++ slash.s ! ag ! Ind)
|
||||
(predV vs))).s
|
||||
} ** {n3 = slash.n3 ; c2 = slash.c2};
|
||||
|
||||
|
||||
ImpVP vp = {
|
||||
s = \\pol,n,aspect=>
|
||||
let
|
||||
a = Ag Masc Sg P2 ;
|
||||
a2 = Ag Masc Pl P2 ;
|
||||
in
|
||||
case <pol,n,aspect> of {
|
||||
<Pos,Sg,Perf> => vp.v.s ! VImperative Perf Sg Active ++ vp.clit ++ vp.clit2 ++ vp.comp ! a ;
|
||||
<Pos,Pl,Perf> => vp.v.s ! VImperative Perf Pl Active ++ vp.clit ++ vp.clit2 ++vp.comp ! a2 ;
|
||||
<Pos,Sg,Imperf> => vp.v.s ! VImperative Imperf Sg Active ++ vp.clit ++ vp.clit2 ++ vp.comp ! a ;
|
||||
<Pos,Pl,Imperf> => vp.v.s ! VImperative Imperf Pl Active ++ vp.clit ++ vp.clit2 ++vp.comp ! a2 ;
|
||||
<Neg,Sg,Perf> => "μην" ++ vp.clit ++ vp.clit2 ++ vp.v.s ! VPres Con Sg P2 Active Perf++ vp.comp ! a ;
|
||||
<Neg,Pl,Perf> => "μην" ++ vp.clit ++ vp.clit2++ vp.v.s ! VPres Con Pl P2 Active Perf++ vp.comp ! a2;
|
||||
<Neg,Sg,Imperf> => "μην" ++ vp.clit ++ vp.clit2 ++ vp.v.s ! VPres Ind Sg P2 Active Perf++ vp.comp ! a ;
|
||||
<Neg,Pl,Imperf> => "μην" ++ vp.clit ++ vp.clit2++ vp.v.s ! VPres Ind Pl P2 Active Perf++ vp.comp ! a2
|
||||
} ;
|
||||
} ;
|
||||
|
||||
|
||||
EmbedS s = {s = conjThat ++ s.s ! Ind} ;
|
||||
|
||||
EmbedQS qs = {s = qs.s ! QIndir} ;
|
||||
|
||||
EmbedVP vp = {s = (predVP [] (Ag Masc Sg P3) vp).s ! Main ! TPres ! Simul ! Pos !Con};
|
||||
|
||||
|
||||
|
||||
UseCl t p cl = {s = \\o => t.s ++ p.s ++ cl.s !Main ! t.t !t.a! p.p ! t.m } ;
|
||||
|
||||
|
||||
UseQCl t p cl = {
|
||||
s = \\q => t.s ++ p.s ++ cl.s ! t.t ! t.a ! p.p ! q
|
||||
} ;
|
||||
|
||||
|
||||
UseRCl t p cl = {
|
||||
s = \\r,ag => t.s ++ p.s ++ cl.s ! ag ! t.t ! t.a ! p.p ! r ;
|
||||
c = cl.c
|
||||
} ;
|
||||
|
||||
UseSlash t p cl = {
|
||||
s = \\ag,m =>
|
||||
t.s ++ p.s ++ cl.s ! ag ! Main ! t.t ! t.a ! p.p ! m ;
|
||||
n3 = cl.n3 ;
|
||||
c2 = cl.c2
|
||||
} ;
|
||||
|
||||
AdvS a s ={s = \\m => a.s ++ s.s ! m} ;
|
||||
|
||||
ExtAdvS a s ={s = \\m => a.s ++ "," ++ s.s ! m} ;
|
||||
|
||||
SSubjS a s b = {
|
||||
s = \\m => a.s !m ++ s.s ++ b.s ! s.m
|
||||
} ;
|
||||
|
||||
RelS s r = {
|
||||
s = \\o => s.s ! o ++ "," ++ r.s ! Ind ! agrP3 Neut Sg
|
||||
} ;
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user