1
0
forked from GitHub/gf-rgl
Files
gf-rgl/src/persian/ConjunctionPes.gf
2019-04-18 18:31:59 +02:00

60 lines
2.0 KiB
Plaintext

concrete ConjunctionPes of Conjunction =
CatPes ** open ResPes, Coordination, Prelude in {
flags optimize=all_subs ;
lin
ConjS = conjunctDistrTable VVForm ;
ConjAdv = conjunctDistrSS ;
-- ConjAdv conj advs = conjunctDistrTable Gender conj advs ;
ConjNP conj ss = ss ** conjunctDistrTable Mod conj ss ** {
a = conjAgr (agrP3 conj.n) ss.a ;
animacy = ss.animacy ;
} ;
ConjAP conj ss = ss ** conjunctDistrTable Mod conj ss ; -- Adv isn't changed
ConjRS conj rs = rs ** conjunctDistrTable Agr conj rs ;
---- These fun's are generated from the list cat's.
BaseS = twoTable VVForm ;
ConsS = consrTable VVForm comma ;
BaseAdv = twoSS ;
ConsAdv = consrSS comma ;
BaseNP x y = y ** twoTable Mod x y ** {a = conjAgr x.a y.a ; animacy = y.animacy } ; -- check animacy
BaseRS x y = x ** twoTable Agr x y ;
ConsNP xs x = xs ** consrTable Mod comma xs x ** {a = conjAgr xs.a x.a ; animacy = xs.animacy } ; -- InaandB xs.animacy x.animacy} ;
ConsRS xs x = xs ** consrTable Agr comma xs x ;
BaseAP x y = y ** twoTable Mod x y ;
ConsAP xs x = xs ** consrTable Mod comma xs x ; -- Table3 Number Gender Case comma xs x ;-- ** {isPre = andB xs.isPre x.isPre} ;
BaseCN cn1 cn2 = leanCN cn1 ** twoTable2 Number Mod (leanCN cn1) (leanCN cn2) ;
ConsCN cn cns = leanCN cn ** consrTable2 Number Mod comma (leanCN cn) cns ;
ConjCN conj cns = cns ** conjunctDistrTable2 Number Mod conj cns ;
lincat
[S] = {s1,s2 : VVForm => Str} ;
[Adv] = {s1,s2 : Str} ;
[NP] = {s1,s2 : Mod => Str} ** BaseNP ;
[CN] = {s1,s2 : Number => Mod => Str ;
animacy : Animacy ;
isCmpd : CmpdStatus;
hasAdj : Bool ;
compl : Number => Str} ;
[AP] = {s1,s2 : Mod => Str ; adv : Str ; isPre,afterPrefix : Bool} ;
[RS] = {s1,s2 : Agr => Str ; rp : RelPron => Str} ;
oper
leanCN : CN -> CN = \cn -> cn ** {
compl = \\n => [] ;
s = \\n,m => cn.s ! n ! m ++ cn.compl ! n ;
} ;
}