1
0
forked from GitHub/gf-rgl

Merge pull request #222 from inariksit/arabic

(Ara,Pes) Add {Base,Cons,Conj}CN
This commit is contained in:
Inari Listenmaa
2019-04-10 14:24:26 +02:00
committed by GitHub
2 changed files with 24 additions and 0 deletions

View File

@@ -6,6 +6,7 @@ lincat
[S] = {s1,s2 : Order => Str} ;
[Adv] = {s1,s2 : Str} ;
[NP] = {s1,s2 : Case => Str ; a : Agr ; empty : Str; isHeavy : Bool} ;
[CN] = {s1,s2 : NTable ; g : Gender ; h : Species ; isDual : Bool ; np : Case => Str ; isHeavy : Bool} ;
[AP] = {s1,s2 : Species => Gender => Number => State => Case => Str} ;
lin
@@ -34,8 +35,17 @@ lin
ConsAP = consrTable5 Species Gender Number State Case comma ;
ConjAP = conjunctDistrTable5 Species Gender Number State Case ;
BaseCN cn1 cn2 = leanCN cn1 ** twoTable3 Number State Case (leanCN cn1) (leanCN cn2) ;
ConsCN cn cns = leanCN cn ** consrTable3 Number State Case comma (leanCN cn) cns ;
ConjCN conj cns = cns ** conjunctDistrTable3 Number State Case conj cns ;
oper
leanCN : CN -> CN = \cn -> cn ** {
np = \\_ => [] ;
s = \\n,s,c => cn2str cn n s c
} ;
conjAgr : Agr -> Agr -> Agr = \a,b -> {
isPron = False ;
pgn = let gnA = pgn2gn a.pgn ; gnB = pgn2gn b.pgn in

View File

@@ -35,11 +35,25 @@ concrete ConjunctionPes of Conjunction =
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 : 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 ;
} ;
}