diff --git a/lib/src/abstract/Verb.gf b/lib/src/abstract/Verb.gf index 958980d6b..906305d4f 100644 --- a/lib/src/abstract/Verb.gf +++ b/lib/src/abstract/Verb.gf @@ -56,6 +56,10 @@ abstract Verb = Cat ** { AdvVP : VP -> Adv -> VP ; -- sleep here AdVVP : AdV -> VP -> VP ; -- always sleep + AdvVPSlash : VPSlash -> Adv -> VPSlash ; -- use (it) here + AdVVPSlash : AdV -> VPSlash -> VPSlash ; -- always use (it) + + -- *Agents of passives* are constructed as adverbs with the -- preposition [Structural Structural.html]$.8agent_Prep$. diff --git a/lib/src/api/Constructors.gf b/lib/src/api/Constructors.gf index 119f8eac7..914ba2e01 100644 --- a/lib/src/api/Constructors.gf +++ b/lib/src/api/Constructors.gf @@ -1366,6 +1366,8 @@ incomplete resource Constructors = open Grammar in { --% = \a,p -> TUseRCl TPres a p ; --% mkRS : (Tense) -> (Ant) -> (Pol) -> RCl -> RS -- that wouldn't have slept = TUseRCl ; --% + mkRS : Temp -> (Pol) -> RCl -> RS -- that wouldn't have slept + = UseRCl ; --% mkRS : Conj -> RS -> RS -> RS -- who sleeps and whose mother runsx = \c,x,y -> ConjRS c (BaseRS x y) ; --% mkRS : Conj -> ListRS -> RS -- who sleeps, whom I see and who sleeps --: diff --git a/lib/src/english/ExtraEng.gf b/lib/src/english/ExtraEng.gf index 6c715ec6a..348cd5b20 100644 --- a/lib/src/english/ExtraEng.gf +++ b/lib/src/english/ExtraEng.gf @@ -108,4 +108,18 @@ concrete ExtraEng of ExtraEngAbs = CatEng ** EmbedPresPart vp = {s = infVP VVPresPart vp (agrP3 Sg)} ; --- agr UttVPShort vp = {s = infVP VVAux vp (agrP3 Sg)} ; + + do_VV = { + s = table { + VVF VInf => ["do"] ; + VVF VPres => "does" ; + VVF VPPart => ["done"] ; ---- + VVF VPresPart => ["doing"] ; + VVF VPast => ["did"] ; --# notpresent + VVPastNeg => ["didn't"] ; --# notpresent + VVPresNeg => "doesn't" + } ; + typ = VVAux + } ; + } diff --git a/lib/src/english/ExtraEngAbs.gf b/lib/src/english/ExtraEngAbs.gf index 8dc96ff5a..0ccb9e101 100644 --- a/lib/src/english/ExtraEngAbs.gf +++ b/lib/src/english/ExtraEngAbs.gf @@ -21,4 +21,7 @@ abstract ExtraEngAbs = Extra - [ProDrop] ** { UttVPShort : VP -> Utt ; +-- emphasizing "do", e.g. "John does walk" + + do_VV : VV ; } diff --git a/lib/src/english/VerbEng.gf b/lib/src/english/VerbEng.gf index ef65756e7..ed055dc0f 100644 --- a/lib/src/english/VerbEng.gf +++ b/lib/src/english/VerbEng.gf @@ -34,9 +34,11 @@ concrete VerbEng of Verb = CatEng ** open ResEng in { UseComp comp = insertObj comp.s (predAux auxBe) ; AdvVP vp adv = insertObj (\\_ => adv.s) vp ; - AdVVP adv vp = insertAdV adv.s vp ; + AdvVPSlash vp adv = insertObj (\\_ => adv.s) vp ** {c2 = vp.c2} ; + AdVVPSlash adv vp = insertAdV adv.s vp ** {c2 = vp.c2} ; + ReflVP v = insertObjPre (\\a => v.c2 ++ reflPron ! a) v ; PassV2 v = insertObj (\\_ => v.s ! VPPart) (predAux auxBe) ;