forked from GitHub/gf-rgl
(Ger) Agreement with ReflVP + ComplSlash
ComplSlash ( … ReflVP … ) X: reflexive should agree with X ReflVP ... ( … ComplSlash … X): reflexive should agree with subject
This commit is contained in:
+30
-25
@@ -7,13 +7,13 @@ concrete VerbGer of Verb = CatGer ** open Prelude, ResGer, Coordination in {
|
||||
|
||||
ComplVV v vp =
|
||||
let
|
||||
vpi = infVP v.isAux vp
|
||||
vpi = infVP v.isAux vp ;
|
||||
vps = predVGen v.isAux v ;
|
||||
in
|
||||
insertExtrapos vpi.p4 (
|
||||
insertInfExt vpi.p3 (
|
||||
insertInf vpi.p2 (
|
||||
insertObj vpi.p1 (
|
||||
predVGen v.isAux v)))) ;
|
||||
insertObjc vpi.p1 vps))) ;
|
||||
|
||||
ComplVS v s =
|
||||
insertExtrapos (comma ++ conjThat ++ s.s ! Sub) (predV v) ;
|
||||
@@ -21,48 +21,53 @@ concrete VerbGer of Verb = CatGer ** open Prelude, ResGer, Coordination in {
|
||||
insertExtrapos (comma ++ q.s ! QIndir) (predV v) ;
|
||||
ComplVA v ap = insertAdj (v.c2.s ++ ap.s ! APred) ap.c ap.ext (predV v) ; -- changed
|
||||
|
||||
SlashV2a v = predV v ** {c2 = v.c2} ;
|
||||
SlashV2a v = predVc v ;
|
||||
|
||||
Slash2V3 v np =
|
||||
insertObj (\\_ => appPrepNP v.c2 np) (predV v) ** {c2 = v.c3} ;
|
||||
insertObjc (\\_ => appPrepNP v.c2 np) (predVc v) ** {c2 = v.c3} ;
|
||||
Slash3V3 v np =
|
||||
insertObj (\\_ => appPrepNP v.c3 np) (predV v) ** {c2 = v.c2} ;
|
||||
insertObjc (\\_ => appPrepNP v.c3 np) (predVc v) ;
|
||||
|
||||
SlashV2S v s =
|
||||
insertExtrapos (conjThat ++ s.s ! Sub) (predV v) ** {c2 = v.c2} ;
|
||||
insertExtrapos (conjThat ++ s.s ! Sub) (predVc v) ;
|
||||
SlashV2Q v q =
|
||||
insertExtrapos (q.s ! QIndir) (predV v) ** {c2 = v.c2} ;
|
||||
insertExtrapos (q.s ! QIndir) (predVc v) ;
|
||||
SlashV2V v vp =
|
||||
let
|
||||
vpi = infVP v.isAux vp
|
||||
in
|
||||
vpi = infVP v.isAux vp ;
|
||||
vps = predVGen v.isAux v ** {c2 = v.c2} ;
|
||||
in vps **
|
||||
insertExtrapos vpi.p3 (
|
||||
insertInf vpi.p2 (
|
||||
insertObj vpi.p1 ((predVGen v.isAux v)))) ** {c2 = v.c2} ;
|
||||
insertObj vpi.p1 vps)) ;
|
||||
|
||||
SlashV2A v ap =
|
||||
insertAdj (ap.s ! APred) ap.c ap.ext (predV v) ** {c2 = v.c2} ; -- changed
|
||||
insertAdj (ap.s ! APred) ap.c ap.ext (predVc v) ;
|
||||
|
||||
ComplSlash vp np = insertObjNP (isLightComplement np.isPron vp.c2) (\\_ => appPrepNP vp.c2 np) vp ;
|
||||
ComplSlash vps np =
|
||||
let vp = insertObjNP (isLightComplement np.isPron vps.c2) (\\_ => appPrepNP vps.c2 np) vps ;
|
||||
in case vp.missingAdv of {
|
||||
True => vp ;
|
||||
False => objAgr np vp } ; -- IL 24/04/2018 force reflexive in the VPSlash to take the agreement of the object introduced by ComplSlash.
|
||||
|
||||
SlashVV v vp =
|
||||
let
|
||||
vpi = infVP v.isAux vp
|
||||
in
|
||||
vpi = infVP v.isAux vp ;
|
||||
vps = predVGen v.isAux v ** {c2 = vp.c2} ;
|
||||
in vps **
|
||||
insertExtrapos vpi.p3 (
|
||||
insertInf vpi.p2 (
|
||||
insertObj vpi.p1 (
|
||||
predVGen v.isAux v))) ** {c2 = vp.c2} ;
|
||||
insertObj vpi.p1 vps)) ;
|
||||
|
||||
SlashV2VNP v np vp =
|
||||
SlashV2VNP v np vp =
|
||||
let
|
||||
vpi = infVP v.isAux vp
|
||||
in
|
||||
vpi = infVP v.isAux vp ;
|
||||
vps = predVGen v.isAux v ** {c2 = v.c2} ;
|
||||
in vps **
|
||||
insertExtrapos vpi.p3 (
|
||||
insertInf vpi.p2 (
|
||||
insertObj vpi.p1 (
|
||||
insertObj (\\_ => appPrepNP v.c2 np) (
|
||||
predVGen v.isAux v)))) ** {c2 = v.c2} ;
|
||||
insertObj (\\_ => appPrepNP v.c2 np) vps))) ;
|
||||
|
||||
UseComp comp =
|
||||
insertExtrapos comp.ext (insertObj comp.s (predV sein_V)) ; -- agr not used
|
||||
@@ -87,14 +92,14 @@ concrete VerbGer of Verb = CatGer ** open Prelude, ResGer, Coordination in {
|
||||
|
||||
AdVVP adv vp = insertAdv adv.s vp ; -- not AdV 27/5/2012: nicht immer
|
||||
|
||||
AdvVPSlash vp adv = insertAdv adv.s vp ** {c2 = vp.c2} ;
|
||||
AdVVPSlash adv vp = insertAdv adv.s vp ** {c2 = vp.c2} ;
|
||||
AdvVPSlash vp adv = vp ** insertAdv adv.s vp ;
|
||||
AdVVPSlash adv vp = vp ** insertAdv adv.s vp ;
|
||||
|
||||
ReflVP vp = insertObj (\\a => appPrep vp.c2
|
||||
(\\k => usePrepC k (\c -> reflPron ! a ! c))) vp ;
|
||||
|
||||
PassV2 v = insertInf (v.s ! VPastPart APred) (predV werdenPass) ;
|
||||
|
||||
VPSlashPrep vp prep = vp ** {c2 = prep} ;
|
||||
VPSlashPrep vp prep = vp ** {c2 = prep ; missingAdv = True} ;
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user