forked from GitHub/gf-rgl
fixed the problem found by Hans Leiss with Ger passives leaving out arguments and producing metavariables in parsing
This commit is contained in:
@@ -78,6 +78,11 @@ abstract Extra = Cat ** {
|
|||||||
|
|
||||||
PassAgentVPSlash : VPSlash -> NP -> VP ; -- be begged by her to go
|
PassAgentVPSlash : VPSlash -> NP -> VP ; -- be begged by her to go
|
||||||
|
|
||||||
|
-- In many languages, the passives use past participles.
|
||||||
|
|
||||||
|
PastPartAP : VPSlash -> AP ; -- lost (opportunity) ; (opportunity) lost in space
|
||||||
|
PastPartAgentAP : VPSlash -> NP -> AP ; -- (opportunity) lost by the company
|
||||||
|
|
||||||
-- publishing of the document
|
-- publishing of the document
|
||||||
|
|
||||||
NominalizeVPSlashNP : VPSlash -> NP -> NP ;
|
NominalizeVPSlashNP : VPSlash -> NP -> NP ;
|
||||||
|
|||||||
@@ -57,10 +57,26 @@ concrete ExtraGer of ExtraGerAbs = CatGer **
|
|||||||
c = (prepC slash.c2.c).c
|
c = (prepC slash.c2.c).c
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
PassVPSlash vps =
|
PassVPSlash vp = insertObj (\\_ => (PastPartAP (lin VPSlash vp)).s ! APred) (predV werdenPass) ;
|
||||||
insertInf (vps.s.s ! VPastPart APred) (predV werdenPass) ;
|
|
||||||
PassAgentVPSlash vps np = ---- "von" here, "durch" in StructuralGer
|
PassAgentVPSlash vp np = ---- "von" here, "durch" in StructuralGer
|
||||||
insertAdv (appPrep P.von_Prep np.s) (insertInf (vps.s.s ! VPastPart APred) (predV werdenPass)) ;
|
insertObj (\\_ => (PastPartAgentAP (lin VPSlash vp) (lin NP np)).s ! APred) (predV werdenPass) ;
|
||||||
|
|
||||||
|
PastPartAP vp = {
|
||||||
|
s = \\af => (vp.nn ! agrP3 Sg).p1 ++ (vp.nn ! agrP3 Sg).p2 ++ vp.a2 ++ vp.inf ++
|
||||||
|
vp.c2.s ++ --- junk if not TV
|
||||||
|
vp.ext ++ vp.infExt ++ vp.s.s ! VPastPart af ;
|
||||||
|
isPre = True
|
||||||
|
} ;
|
||||||
|
|
||||||
|
PastPartAgentAP vp np =
|
||||||
|
let agent = appPrep P.von_Prep np.s
|
||||||
|
in {
|
||||||
|
s = \\af => (vp.nn ! agrP3 Sg).p1 ++ (vp.nn ! agrP3 Sg).p2 ++ vp.a2 ++ agent ++ vp.inf ++
|
||||||
|
vp.c2.s ++ --- junk if not TV
|
||||||
|
vp.ext ++ vp.infExt ++ vp.s.s ! VPastPart af ;
|
||||||
|
isPre = True
|
||||||
|
} ;
|
||||||
|
|
||||||
lincat
|
lincat
|
||||||
VPS = {s : Order => Agr => Str} ;
|
VPS = {s : Order => Agr => Str} ;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
abstract ExtraGerAbs = Extra [
|
abstract ExtraGerAbs = Extra [
|
||||||
VPI,ListVPI,BaseVPI,ConsVPI,MkVPI,ComplVPIVV,ConjVPI,ClSlash,RCl,
|
VPI,ListVPI,BaseVPI,ConsVPI,MkVPI,ComplVPIVV,ConjVPI,ClSlash,RCl,
|
||||||
VPS,ListVPS,BaseVPS,ConsVPS,ConjVPS,MkVPS,PredVPS,EmptyRelSlash,
|
VPS,ListVPS,BaseVPS,ConsVPS,ConjVPS,MkVPS,PredVPS,EmptyRelSlash,
|
||||||
VPSlash, PassVPSlash, PassAgentVPSlash, CompIQuant,
|
VPSlash, PassVPSlash, PassAgentVPSlash, CompIQuant, PastPartAP, PastPartAgentAP,
|
||||||
Temp,Tense,Pol,S,NP,VV,VP,Conj,IAdv,IQuant,IComp,ICompAP,IAdvAdv,Adv,AP] ** {
|
Temp,Tense,Pol,S,NP,VV,VP,Conj,IAdv,IQuant,IComp,ICompAP,IAdvAdv,Adv,AP] ** {
|
||||||
flags coding=utf8;
|
flags coding=utf8;
|
||||||
fun
|
fun
|
||||||
|
|||||||
Reference in New Issue
Block a user