forked from GitHub/gf-rgl
44 lines
1.1 KiB
Plaintext
44 lines
1.1 KiB
Plaintext
--# -path=.:../common:../abstract
|
|
|
|
concrete ExtendAra of Extend =
|
|
CatAra ** ExtendFunctor - [
|
|
GenNP, SlashBareV2S, PredAPVP, GenModNP, ExistsNP,
|
|
StrandRelSlash, ExistPluralCN, ExistMassCN, ExistCN, EmptyRelSlash, DetNPMasc, DetNPFem,
|
|
ComplBareVS, ComplDirectVS, ComplDirectVQ,
|
|
ICompAP,
|
|
VPS, MkVPS,
|
|
ApposNP
|
|
]
|
|
with (Grammar=GrammarAra)
|
|
** open
|
|
|
|
Prelude,
|
|
ResAra,
|
|
ParamX
|
|
|
|
in {
|
|
|
|
lin
|
|
GenNP np = {s = \\_,_,_,_ => np.s ! Gen ; d = Const ; isNum,isPron,is1sg = False} ;
|
|
|
|
-- : NP -> NP -> NP
|
|
ApposNP np1 np2 = np2 ** {s = \\c => np1.s ! c ++ np2.s ! c} ;
|
|
|
|
-- : AP -> IComp ; -- "how old"
|
|
ICompAP ap = {s = \\gn => "كَمْ" ++ ap.s ! NoHum ! gn.g ! gn.n ! Indef ! Acc} ;
|
|
|
|
lincat
|
|
|
|
VPS = VP ; -- finite VP's with tense and polarity
|
|
|
|
lin
|
|
-- : Temp -> Pol -> VP -> VPS ; -- hasn't slept
|
|
MkVPS t p vp = lin VPS (vp ** {
|
|
s = \\pgn,vf => case <t.t,t.a> of { --- IL guessed tenses
|
|
<(Pres|Fut),Simul> => vp.s ! pgn ! VPImpf Ind ;
|
|
<Cond,_ > => vp.s ! pgn ! VPImpf Cnj ;
|
|
<_ ,_ > => vp.s ! pgn ! VPPerf
|
|
}
|
|
}) ;
|
|
}
|