mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-06-25 02:56:28 -06:00
(Som) More VV types
This commit is contained in:
+33
-13
@@ -15,17 +15,33 @@ lin
|
||||
ReflVP = ResSom.insertRefl ;
|
||||
|
||||
-- : VV -> VP -> VP ;
|
||||
ComplVV vv vp = let vc = vp.vComp in case vv.isVS of {
|
||||
True => vp ** {
|
||||
vComp = vc ** {pr = vv.s ! VInf} ;
|
||||
obj2 = vp.obj2 ** {s = []} ; -- word order hack to avoid more parameters:
|
||||
miscAdv = vp.miscAdv ++ vp.obj2.s -- dump it all to miscAdv
|
||||
ComplVV vv vp = let vc = vp.vComp in case vv.vvtype of {
|
||||
Waa_In => vp ** {
|
||||
vComp = vc ** {in_ = vv.s ! VInf} ; -- it's always the word "in", and it will be placed before subject pronoun. it's placed in vv.s!VInf so that the VV would contribute with some string. /IL
|
||||
obj2 = vp.obj2 ** {s = []} ; -- word order hack to avoid more parameters:
|
||||
miscAdv = vp.miscAdv ++ vp.obj2.s -- dump the object to miscAdv
|
||||
} ;
|
||||
|
||||
False => vp ** {
|
||||
Subjunctive => vp ** {
|
||||
s = vv.s ; -- check Saeed p. 169
|
||||
vComp = vc ** {pst = vc.pst ++ vp.s ! VInf} ;
|
||||
pred = NoPred ;
|
||||
stm = Waxa ;
|
||||
vComp = vc ** {
|
||||
subcl = \\agr =>
|
||||
let subj = pronTable ! agr ;
|
||||
cls = predVPSlash subj vp ;
|
||||
rcl = mergeRCl (cls.s ! True) ;
|
||||
in "in" ++ rcl.s ! Pres ! Simul ! Pos
|
||||
} ; -- TODO check
|
||||
obj2 = vp.obj2 ** {s = []} ; -- dump the object to vComp.subcl
|
||||
} ;
|
||||
|
||||
Infinitive => vp ** {
|
||||
s = vv.s ; -- check Saeed p. 169
|
||||
vComp = vc ** {
|
||||
inf = vc.inf ++ vp.s ! VInf
|
||||
} ;
|
||||
stm = Waa NoPred ;
|
||||
-- pred = NoPred ;
|
||||
}
|
||||
} ;
|
||||
|
||||
@@ -127,28 +143,32 @@ lin
|
||||
-- : AP -> Comp ;
|
||||
CompAP ap = {
|
||||
comp = \\a => <[], ap.s ! AF (getNum a) Abs> ;
|
||||
pred = Copula ;
|
||||
stm = Waa Copula ;
|
||||
-- pred = Copula ;
|
||||
} ;
|
||||
|
||||
-- : CN -> Comp ;
|
||||
CompCN cn = {
|
||||
comp = \\a => <[], cn2str Sg Abs cn> ;
|
||||
pred = NoCopula ;
|
||||
stm = Waa NoCopula ;
|
||||
-- pred = NoCopula ;
|
||||
} ;
|
||||
|
||||
-- NP -> Comp ;
|
||||
CompNP np = {
|
||||
comp = \\a => <[], np.s ! Abs> ;
|
||||
pred = NoCopula ;
|
||||
stm = Waa NoCopula ;
|
||||
-- pred = NoCopula ;
|
||||
} ;
|
||||
|
||||
-- : Adv -> Comp ;
|
||||
CompAdv adv = {
|
||||
comp = \\a => <[], linAdv adv> ;
|
||||
pred = Copula ;
|
||||
stm = Waa Copula ;
|
||||
-- pred = Copula ;
|
||||
} ;
|
||||
|
||||
-- : VP -- Copula alone;
|
||||
UseCopula = useV copula ** {pred=Copula} ;
|
||||
UseCopula = useV copula ;
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user