forked from GitHub/gf-rgl
add standalone forms for VPS, i.e. version where clitics are not in the beginning
This commit is contained in:
+27
-8
@@ -60,8 +60,11 @@ lin
|
|||||||
TPastSimple = {s = [] ; t = Past} ;
|
TPastSimple = {s = [] ; t = Past} ;
|
||||||
|
|
||||||
lincat
|
lincat
|
||||||
VPS = {s : Agr => Str} ;
|
-- s follows an overt subject, which hosts the second-position clitics.
|
||||||
[VPS] = {s1,s2 : Agr => Str} ;
|
-- standalone is used without an overt subject and puts the finite verb
|
||||||
|
-- before the clitic cluster so that the cluster never starts the utterance.
|
||||||
|
VPS = {s,standalone : Agr => Str} ;
|
||||||
|
[VPS] = {s1,s2,standalone1 : Agr => Str} ;
|
||||||
VPI = {s : Agr => Str} ;
|
VPI = {s : Agr => Str} ;
|
||||||
[VPI] = {s1,s2 : Agr => Str} ;
|
[VPI] = {s1,s2 : Agr => Str} ;
|
||||||
[Comp] = {s1,s2 : Agr => Str} ;
|
[Comp] = {s1,s2 : Agr => Str} ;
|
||||||
@@ -73,13 +76,29 @@ param
|
|||||||
RNPHead = AntecedentHead | FixedHead Agr ;
|
RNPHead = AntecedentHead | FixedHead Agr ;
|
||||||
|
|
||||||
lin
|
lin
|
||||||
MkVPS temp pol vp = {s = \\a =>
|
MkVPS temp pol vp = {
|
||||||
tenseClitic temp.t a ++ vp.clit ! a ++
|
s = \\a =>
|
||||||
tenseVerb temp.t vp.verb a pol.p ++ vp.compl ! a
|
tenseClitic temp.t a ++ vp.clit ! a ++
|
||||||
|
tenseVerb temp.t vp.verb a pol.p ++ vp.compl ! a ;
|
||||||
|
standalone = \\a =>
|
||||||
|
tenseVerb temp.t vp.verb a pol.p ++
|
||||||
|
tenseClitic temp.t a ++ vp.clit ! a ++ vp.compl ! a
|
||||||
|
} ;
|
||||||
|
BaseVPS x y = {
|
||||||
|
s1 = x.s ; s2 = y.s ;
|
||||||
|
standalone1 = x.standalone
|
||||||
|
} ;
|
||||||
|
ConsVPS x xs = {
|
||||||
|
s1 = \\a => x.s ! a ++ SOFT_BIND ++ "," ++ xs.s1 ! a ;
|
||||||
|
s2 = xs.s2 ;
|
||||||
|
standalone1 = \\a =>
|
||||||
|
x.standalone ! a ++ SOFT_BIND ++ "," ++ xs.standalone1 ! a ;
|
||||||
|
} ;
|
||||||
|
ConjVPS conj xs = {
|
||||||
|
s = \\a => conj.s1 ++ xs.s1 ! a ++ conj.s2 ++ xs.s2 ! a ;
|
||||||
|
standalone = \\a =>
|
||||||
|
conj.s1 ++ xs.standalone1 ! a ++ conj.s2 ++ xs.s2 ! a
|
||||||
} ;
|
} ;
|
||||||
BaseVPS x y = {s1 = x.s ; s2 = y.s} ;
|
|
||||||
ConsVPS x xs = {s1 = \\a => x.s ! a ++ SOFT_BIND ++ "," ++ xs.s1 ! a ; s2 = xs.s2} ;
|
|
||||||
ConjVPS conj xs = {s = \\a => conj.s1 ++ xs.s1 ! a ++ conj.s2 ++ xs.s2 ! a} ;
|
|
||||||
PredVPS np vps = sentence True (np.s ! Nom) [] (vps.s ! np.a) ;
|
PredVPS np vps = sentence True (np.s ! Nom) [] (vps.s ! np.a) ;
|
||||||
|
|
||||||
MkVPI vp = {s = \\a => vp.verb.inf ++ vp.clit ! a ++ vp.compl ! a} ;
|
MkVPI vp = {s = \\a => vp.verb.inf ++ vp.clit ! a ++ vp.compl ! a} ;
|
||||||
|
|||||||
Reference in New Issue
Block a user