mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-10-03 07:33:39 -06:00
110 lines
3.2 KiB
Plaintext
110 lines
3.2 KiB
Plaintext
concrete VerbSlv of Verb = CatSlv ** open ResSlv, ParamX, ParadigmsSlv, Prelude in {
|
|
|
|
lin
|
|
UseV v =
|
|
{ s = \\p,vform => ne ! p ++ v.s ! vform ;
|
|
s2 = \\a => v.p ; ----AR: +p particle
|
|
isCop = False ;
|
|
refl = v.refl
|
|
} ;
|
|
|
|
ComplVV v vp = {
|
|
s = \\p,vf => ne ! p ++ v.s ! vf;
|
|
s2 = \\a => vp.s ! Pos ! VInf ++ vp.refl ++ vp.s2 ! a;
|
|
isCop=False; refl=[]
|
|
} ;
|
|
ComplVS v s = {
|
|
s = \\p,vf => ne ! p ++ v.s ! vf;
|
|
s2 = \\_ => v.p ++ "da" ++ s.s; isCop=False; refl=v.refl
|
|
} ;
|
|
ComplVQ v q = {
|
|
s = \\p,vf => ne ! p ++ v.s ! vf;
|
|
s2 = \\_ => q.s; isCop=False; refl=[]
|
|
} ;
|
|
ComplVA v ap = {
|
|
s = \\p,vf => ne ! p ++ v.s ! vf;
|
|
s2 = \\a => v.p ++ ap.s ! Indef ! inanimateGender a.g ! Nom ! a.n;
|
|
isCop=False; refl=v.refl
|
|
} ;
|
|
|
|
SlashV2a v =
|
|
{ s = \\p,vform => ne ! p ++ v.s ! vform ;
|
|
s2 = \\a => v.p ; ----AR: +p particle
|
|
c2 = v.c2 ;
|
|
isCop = False ;
|
|
refl = v.refl
|
|
} ;
|
|
|
|
SlashV2V v vp = {
|
|
s=\\p,vf => ne ! p ++ v.s ! vf;
|
|
s2=\\a => v.p ++ vp.s ! Pos ! VInf ++ vp.refl ++ vp.s2 ! a;
|
|
c2=mkPrep [] accusative; isCop=False; refl=v.refl
|
|
} ;
|
|
SlashV2S v s = {
|
|
s=\\p,vf => ne ! p ++ v.s ! vf; s2=\\_ => v.p ++ "da" ++ s.s;
|
|
c2=mkPrep [] accusative; isCop=False; refl=v.refl
|
|
} ;
|
|
SlashV2Q v q = {
|
|
s=\\p,vf => ne ! p ++ v.s ! vf; s2=\\_ => v.p ++ q.s;
|
|
c2=mkPrep [] accusative; isCop=False; refl=v.refl
|
|
} ;
|
|
SlashV2A v ap = {
|
|
s=\\p,vf => ne ! p ++ v.s ! vf;
|
|
s2=\\a => v.p ++ ap.s ! Indef ! inanimateGender a.g ! Acc ! a.n;
|
|
c2=mkPrep [] accusative; isCop=False; refl=v.refl
|
|
} ;
|
|
|
|
--Check these V3-slashes AE
|
|
Slash2V3 v np =
|
|
{ s = \\p,vform => ne ! p ++ v.s ! vform ;
|
|
s2 = \\_ => v.p ++ v.c2.s ++ np.s ! v.c2.c ;
|
|
c2 = v.c3 ;
|
|
isCop = False ;
|
|
refl = v.refl
|
|
} ;
|
|
|
|
Slash3V3 v np =
|
|
{ s = \\p,vform => ne ! p ++ v.s ! vform ;
|
|
s2 = \\_ => v.p ++ v.c3.s ++ np.s ! v.c3.c ;
|
|
c2 = v.c2 ;
|
|
isCop = False ;
|
|
refl = v.refl
|
|
} ;
|
|
|
|
ComplSlash vp np =
|
|
insertObj (\\_ => vp.c2.s ++ np.s ! vp.c2.c) vp;
|
|
|
|
|
|
ReflVP vp = {
|
|
s = \\vform => vp.s ! vform ; --? the compiler told me to cut the polarity from this function?
|
|
--s = \\p,vform => ne ! p ++ vp.s ! vform ;
|
|
s2 = \\a => vp.s2 ! a ;
|
|
isCop = False ;
|
|
refl = reflexive ! vp.c2.c
|
|
} ;
|
|
|
|
UseComp comp = {
|
|
s = copula ;
|
|
s2 = comp.s ;
|
|
isCop = True ;
|
|
refl = []
|
|
} ;
|
|
|
|
AdvVP vp adv = insertObj (\\_ => adv.s) vp ;
|
|
ExtAdvVP vp adv = AdvVP vp adv ;
|
|
AdVVP adv vp = vp ** {s2 = \\a => adv.s ++ vp.s2 ! a} ;
|
|
AdvVPSlash vp adv = vp ** {s2 = \\a => vp.s2 ! a ++ adv.s} ;
|
|
AdVVPSlash adv vp = vp ** {s2 = \\a => adv.s ++ vp.s2 ! a} ;
|
|
VPSlashPrep vp prep = vp ** {c2=prep} ;
|
|
|
|
CompAP ap = {
|
|
s = \\agr => ap.s ! Indef ! inanimateGender agr.g ! Nom ! agr.n
|
|
} ;
|
|
|
|
CompAdv adv = {s = \\agr => adv.s} ; ----AR
|
|
CompNP np = {s = \\agr => np.s ! Nom} ; ----AR
|
|
CompCN cn = {s = \\agr => cn.s ! Indef ! Nom ! agr.n} ;
|
|
UseCopula = {s=copula;s2=\\_=>[];isCop=True;refl=[]} ;
|
|
|
|
}
|