From 2551040b5a22a82027ec5e76b93b05b8f711129b Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Wed, 8 Mar 2023 18:51:06 +0100 Subject: [PATCH] PassVPSlash in ExtendFre --- src/french/AllFreAbs.gf | 2 +- src/french/ExtendFre.gf | 17 ++++++++++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/french/AllFreAbs.gf b/src/french/AllFreAbs.gf index 474168d5..f390d0f3 100644 --- a/src/french/AllFreAbs.gf +++ b/src/french/AllFreAbs.gf @@ -1,5 +1,5 @@ abstract AllFreAbs = Lang, IrregFreAbs, - ExtraFreAbs + Extend ** {} ; diff --git a/src/french/ExtendFre.gf b/src/french/ExtendFre.gf index a6639f41..7b504bc8 100644 --- a/src/french/ExtendFre.gf +++ b/src/french/ExtendFre.gf @@ -4,7 +4,8 @@ concrete ExtendFre of Extend = CatFre ** ExtendFunctor - [ ---- iFem_Pron, youFem_Pron, weFem_Pron, youPlFem_Pron, theyFem_Pron, youPolFem_Pron, youPolPl_Pron, youPolPlFem_Pron, - ExistCN, ExistMassCN, ExistPluralCN + ExistCN, ExistMassCN, ExistPluralCN, + PassVPSlash, PassAgentVPSlash ] -- put the names of your own definitions here with (Grammar = GrammarFre) ** @@ -38,6 +39,20 @@ lin oper de_Quant : Quant = IndefArt ** {s = \\_,_,_,_ => elisDe} ; +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 ; + } ; + lin GivenName, MaleSurname, FemaleSurname = \n -> n ; lin FullName gn sn = { s = gn.s ++ sn.s ;