diff --git a/src/german/ExtendGer.gf b/src/german/ExtendGer.gf index e6abf28a..4c60590d 100644 --- a/src/german/ExtendGer.gf +++ b/src/german/ExtendGer.gf @@ -7,7 +7,8 @@ concrete ExtendGer of Extend = VPS, ListVPS, VPI, ListVPI, MkVPS, BaseVPS, ConsVPS, ConjVPS, PredVPS, MkVPI, BaseVPI, ConsVPI, ConjVPI, ComplVPIVV, - CardCNCard, PassVPSlash, PassAgentVPSlash, CompoundN + CardCNCard, CompoundN, + PassVPSlash, PassAgentVPSlash, PastPartAP, PastPartAgentAP ] with (Grammar = GrammarGer) ** @@ -160,6 +161,28 @@ lin PassVPSlash vp = lin PassAgentVPSlash vp np = ---- "von" here, "durch" in StructuralGer insertObj (\\_ => (PastPartAgentAP (lin VPSlash vp) (lin NP np)).s ! APred) (predV werdenPass) ; +lin PastPartAP vp = + let a = agrP3 Sg in { + s = \\af => (vp.nn ! a).p1 ++ (vp.nn ! a).p2 ++ (vp.nn ! a).p3 ++ vp.a2 ++ vp.adj + ++ vp.inf.inpl.p2 ++ (vp.inf.extr ! a) ++ vp.s.s ! VPastPart af ; + isPre = True ; + c = <[],[]> ; + ext = vp.ext + } ; + +lin PastPartAgentAP vp np = + let a = agrP3 Sg ; + agent = appPrepNP von_Prep np + in { + s = \\af => (vp.nn ! a).p1 ++ (vp.nn ! a).p2 ++ (vp.nn ! a).p3 + ++ vp.a2 ++ agent ++ vp.adj ++ vp.inf.inpl.p2 + ++ vp.c2.s -- junk if not TV + ++ vp.ext ++ (vp.inf.extr ! a) ++ vp.s.s ! VPastPart af ; + isPre = True ; + c = <[],[]> ; + ext = [] + } ; + lin CompoundN a x = let s = a.co in lin N {