diff --git a/src/italian/ExtendIta.gf b/src/italian/ExtendIta.gf index 37edea3f7..45da30608 100644 --- a/src/italian/ExtendIta.gf +++ b/src/italian/ExtendIta.gf @@ -1,7 +1,8 @@ --# -path=alltenses:../common:../abstract:../romance -concrete ExtendIta of Extend = CatIta ** ExtendRomanceFunctor-- - - -- [ - -- ] +concrete ExtendIta of Extend = CatIta ** ExtendRomanceFunctor - + [ + PassVPSlash, PassAgentVPSlash + ] -- don't forget to put the names of your own -- definitions here with @@ -21,4 +22,19 @@ lin FullName gn sn = { g = gn.g } ; -} ; + +lin PassVPSlash vps = passVPSlash vps [] ; + PassAgentVPSlash vps np = passVPSlash + vps (let by = in by.s ++ (np.s ! by.c).ton) ; + +oper + passVPSlash : VPSlash -> Str -> VP = \vps, agent -> + let auxvp = predV auxPassive + in + vps ** { + s = auxvp.s ; + agr = auxvp.agr ; + comp = \\a => vps.comp ! a ++ (let agr = complAgr a in vps.s.s ! VPart agr.g agr.n) ++ agent ; + } ; + +} diff --git a/src/spanish/ExtendSpa.gf b/src/spanish/ExtendSpa.gf index 2282d33db..df7491847 100644 --- a/src/spanish/ExtendSpa.gf +++ b/src/spanish/ExtendSpa.gf @@ -19,7 +19,8 @@ concrete ExtendSpa of Extend = CatSpa ** ExtendRomanceFunctor - youPlFem_Pron, youPolFem_Pron, youPolPlFem_Pron, - youPolPl_Pron + youPolPl_Pron, + PassVPSlash, PassAgentVPSlash ] -- don't forget to put the names of your own -- definitions here with @@ -106,4 +107,18 @@ lin FullName gn sn = { g = gn.g } ; +lin PassVPSlash vps = passVPSlash vps [] ; + PassAgentVPSlash vps np = passVPSlash + vps (let by = in by.s ++ (np.s ! by.c).ton) ; + +oper + passVPSlash : VPSlash -> Str -> VP = \vps, agent -> + let auxvp = predV auxPassive + in + vps ** { + s = auxvp.s ; + agr = auxvp.agr ; + comp = \\a => vps.comp ! a ++ (let agr = complAgr a in vps.s.s ! VPart agr.g agr.n) ++ agent ; + } ; + } ;