diff --git a/src/english/BackwardEng.gf b/src/english/BackwardEng.gf index b3be68144..cc17d7eaa 100644 --- a/src/english/BackwardEng.gf +++ b/src/english/BackwardEng.gf @@ -13,7 +13,7 @@ concrete BackwardEng of Backward = CatEng ** open ResEng in { ComplV3 v np np2 = insertObj (\\_ => v.c2 ++ np.s ! Acc ++ v.c3 ++ np2.s ! Acc) (predV v) ; ComplV2V v np vp = - insertObj (\\a => infVP v.isAux vp Simul CPos a) + insertObj (\\a => infVP v.isAux vp False Simul CPos a) (insertObj (\\_ => v.c2 ++ np.s ! Acc) (predV v)) ; ComplV2S v np s = insertObj (\\_ => conjThat ++ s.s) @@ -33,7 +33,7 @@ concrete BackwardEng of Backward = CatEng ** open ResEng in { SlashVVV2 np vv v2 = mkClause (np.s ! Nom) np.a - (insertObj (\\a => infVP vv.isAux (predV v2) Simul CPos a) (predVV vv)) ** + (insertObj (\\a => infVP vv.isAux (predV v2) False Simul CPos a) (predVV vv)) ** {c2 = v2.c2} ; -- from Noun 19/4/2008 diff --git a/src/english/CatEng.gf b/src/english/CatEng.gf index a92e41ac1..dce939394 100644 --- a/src/english/CatEng.gf +++ b/src/english/CatEng.gf @@ -130,16 +130,16 @@ concrete CatEng of Cat = CommonX - [Pol,SC] ** open ResEng, Prelude in { SSlash = \ss -> ss.s ++ ss.c2 ; ClSlash = \cls -> cls.s ! Pres ! Simul ! CPos ! oDir ++ cls.c2 ; - VP = \vp -> infVP VVAux vp Simul CPos (agrP3 Sg) ; - VPSlash = \vps -> infVP VVAux vps Simul CPos (agrP3 Sg) ++ vps.c2; + VP = \vp -> infVP VVAux vp False Simul CPos (agrP3 Sg) ; + VPSlash = \vps -> infVP VVAux vps False Simul CPos (agrP3 Sg) ++ vps.c2; Conj = \conj -> conj.s1 ++ conj.s2 ; - V, VS, VQ, VA = \v -> infVP VVAux (predV v) Simul CPos (agrP3 Sg); - V2, V2A, V2Q, V2S = \v -> infVP VVAux (predV v) Simul CPos (agrP3 Sg) ++ v.c2; - V3 = \v -> infVP VVAux (predV v) Simul CPos (agrP3 Sg) ++ v.c2 ++ v.c3; - VV = \v -> infVP VVAux (predVV v) Simul CPos (agrP3 Sg) ; - V2V = \v -> infVP VVAux (predVc v) Simul CPos (agrP3 Sg) ; + V, VS, VQ, VA = \v -> infVP VVAux (predV v) False Simul CPos (agrP3 Sg); + V2, V2A, V2Q, V2S = \v -> infVP VVAux (predV v) False Simul CPos (agrP3 Sg) ++ v.c2; + V3 = \v -> infVP VVAux (predV v) False Simul CPos (agrP3 Sg) ++ v.c2 ++ v.c3; + VV = \v -> infVP VVAux (predVV v) False Simul CPos (agrP3 Sg) ; + V2V = \v -> infVP VVAux (predVc v) False Simul CPos (agrP3 Sg) ; A = \a -> a.s ! AAdj Posit Nom ; A2 = \a -> a.s ! AAdj Posit Nom ++ a.c2 ; diff --git a/src/english/ExtendEng.gf b/src/english/ExtendEng.gf index 1b2faf331..35fcc579e 100644 --- a/src/english/ExtendEng.gf +++ b/src/english/ExtendEng.gf @@ -150,7 +150,7 @@ concrete ExtendEng of Extend = isPre = vp.isSimple -- depends on whether there are complements } ; - EmbedPresPart vp = {s = \\a => infVP VVPresPart vp Simul CPos a} ; + EmbedPresPart vp = {s = \\a => infVP VVPresPart vp False Simul CPos a} ; PastPartAP vp = { s = \\a => vp.ad ! a ++ vp.ptp ++ vp.p ++ vp.c2 ++ vp.s2 ! a ++ vp.ext ; @@ -185,9 +185,9 @@ concrete ExtendEng of Extend = WithoutVP vp = {s = "without" ++ (GerundAdv (lin VP vp)).s} ; - InOrderToVP vp = {s = ("in order" | []) ++ infVP VVInf vp Simul CPos (AgP3Sg Neutr)} ; + InOrderToVP vp = {s = ("in order" | []) ++ infVP VVInf vp False Simul CPos (AgP3Sg Neutr)} ; - PurposeVP vp = {s = infVP VVInf vp Simul CPos (agrP3 Sg)} ; --- agr + PurposeVP vp = {s = infVP VVInf vp False Simul CPos (agrP3 Sg)} ; --- agr ByVP vp = {s = "by" ++ (GerundAdv (lin VP vp)).s} ; @@ -331,18 +331,18 @@ concrete ExtendEng of Extend = lin ComplGenVV v a p vp = insertObj (\\agr => a.s ++ p.s ++ - infVP v.typ vp a.a p.p agr) + infVP v.typ vp False a.a p.p agr) (predVV v) ; CompS s = {s = \\_ => "that" ++ s.s} ; CompQS qs = {s = \\_ => qs.s ! QIndir} ; CompVP ant p vp = {s = \\a => ant.s ++ p.s ++ - infVP VVInf vp ant.a p.p a} ; + infVP VVInf vp False ant.a p.p a} ; -- quite specific for English anyway UncontractedNeg = {s = [] ; p = CNeg False} ; - UttVPShort vp = {s = infVP VVAux vp Simul CPos (agrP3 Sg)} ; + UttVPShort vp = {s = infVP VVAux vp False Simul CPos (agrP3 Sg)} ; diff --git a/src/english/ExtraEng.gf b/src/english/ExtraEng.gf index 114ca208c..2968bbc55 100644 --- a/src/english/ExtraEng.gf +++ b/src/english/ExtraEng.gf @@ -91,9 +91,9 @@ concrete ExtraEng of ExtraEngAbs = CatEng ** isPre = vp.isSimple -- depends on whether there are complements } ; - EmbedPresPart vp = {s = \\a => infVP VVPresPart vp Simul CPos a} ; --- agr + EmbedPresPart vp = {s = \\a => infVP VVPresPart vp False Simul CPos a} ; --- agr - UttVPShort vp = {s = infVP VVAux vp Simul CPos (agrP3 Sg)} ; + UttVPShort vp = {s = infVP VVAux vp False Simul CPos (agrP3 Sg)} ; do_VV = { s = table { @@ -206,7 +206,7 @@ lin mkClause "there" (agrP3 (fromAgr np.a).n) (insertObj (\\_ => np.s ! NPAcc) (predV (regV "exist"))) ; - PurposeVP vp = {s = infVP VVInf vp Simul CPos (agrP3 Sg)} ; --- agr + PurposeVP vp = {s = infVP VVInf vp False Simul CPos (agrP3 Sg)} ; --- agr ComplBareVS v s = insertExtra s.s (predV v) ; diff --git a/src/english/IdiomEng.gf b/src/english/IdiomEng.gf index dfa039c4b..05f40d16b 100644 --- a/src/english/IdiomEng.gf +++ b/src/english/IdiomEng.gf @@ -32,9 +32,9 @@ concrete IdiomEng of Idiom = CatEng ** open Prelude, ResEng in { ProgrVP vp = insertObj (\\a => vp.ad ! a ++ vp.prp ++ vp.p ++ vp.s2 ! a) (predAux auxBe) ; - ImpPl1 vp = {s = "let's" ++ infVP VVAux vp Simul CPos (AgP1 Pl)} ; + ImpPl1 vp = {s = "let's" ++ infVP VVAux vp False Simul CPos (AgP1 Pl)} ; - ImpP3 np vp = {s = "let" ++ np.s ! NPAcc ++ infVP VVAux vp Simul CPos np.a} ; + ImpP3 np vp = {s = "let" ++ np.s ! NPAcc ++ infVP VVAux vp False Simul CPos np.a} ; SelfAdvVP vp = insertObj reflPron vp ; SelfAdVVP vp = insertAdVAgr reflPron vp ; diff --git a/src/english/PhraseEng.gf b/src/english/PhraseEng.gf index 4f32db8e1..122174140 100644 --- a/src/english/PhraseEng.gf +++ b/src/english/PhraseEng.gf @@ -12,7 +12,7 @@ concrete PhraseEng of Phrase = CatEng ** open Prelude, ResEng in { UttIP ip = {s = ip.s ! npNom} ; --- Acc also UttIAdv iadv = iadv ; UttNP np = {s = np.s ! npNom} ; - UttVP vp = {s = infVP VVInf vp Simul CPos (agrP3 Sg)} ; + UttVP vp = {s = infVP VVInf vp False Simul CPos (agrP3 Sg)} ; UttAdv adv = adv ; UttCN n = {s = n.s ! Sg ! Nom} ; UttCard n = {s = n.s ! Nom} ; diff --git a/src/english/ResEng.gf b/src/english/ResEng.gf index 14c7e2b85..d7c940913 100644 --- a/src/english/ResEng.gf +++ b/src/english/ResEng.gf @@ -464,17 +464,23 @@ param presVerb : {s : VForm => Str} -> Agr -> Str = \verb -> agrVerb (verb.s ! VPres) (verb.s ! VInf) ; - infVP : VVType -> VP -> Anteriority -> CPolarity -> Agr -> Str = \typ,vp,ant,cb,a -> + infVP : VVType -> VP -> Bool -> Anteriority -> CPolarity -> Agr -> Str = \typ,vp,ad_pos,ant,cb,a -> case cb of {CPos => ""; _ => "not"} ++ case ant of { Simul => case typ of { VVAux => vp.ad ! a ++ vp.inf ; - VVInf => "to" ++ vp.ad ! a ++ vp.inf ; ---- this is the "split infinitive" + VVInf => case ad_pos of { ---- this is the "split infinitive" + True => vp.ad ! a ++ "to" ++ vp.inf ; + False => "to" ++ vp.ad ! a ++ vp.inf + } ; _ => vp.ad ! a ++ vp.prp } ; Anter => case typ of { --# notpresent VVAux => "have" ++ vp.ad ! a ++ vp.ptp ; --# notpresent - VVInf => "to" ++ "have" ++ vp.ad ! a ++ vp.ptp ; --# notpresent + VVInf => case ad_pos of { --# notpresent + True => vp.ad ! a ++ "to" ++ "have" ++ vp.ptp ; --# notpresent + False => "to" ++ "have" ++ vp.ad ! a ++ vp.ptp --# notpresent + } ; --# notpresent _ => "having" ++ vp.ad ! a ++ vp.ptp --# notpresent } --# notpresent } ++ vp.p ++ diff --git a/src/english/SentenceEng.gf b/src/english/SentenceEng.gf index 79c1388b4..38a7ce129 100644 --- a/src/english/SentenceEng.gf +++ b/src/english/SentenceEng.gf @@ -12,7 +12,7 @@ concrete SentenceEng of Sentence = CatEng ** open Prelude, ResEng in { s = \\pol,n => let agr = AgP2 (numImp n) ; - verb = infVP VVAux vp Simul CPos agr ; + verb = infVP VVAux vp False Simul CPos agr ; dont = case pol of { CNeg True => "don't" ; CNeg False => "do" ++ "not" ; @@ -39,7 +39,7 @@ concrete SentenceEng of Sentence = CatEng ** open Prelude, ResEng in { EmbedS s = {s = \\_ => conjThat ++ s.s} ; EmbedQS qs = {s = \\_ => qs.s ! QIndir} ; - EmbedVP vp = {s = \\a => infVP VVInf vp Simul CPos a} ; + EmbedVP vp = {s = \\a => infVP VVInf vp False Simul CPos a} ; UseCl t p cl = { s = t.s ++ p.s ++ cl.s ! t.t ! t.a ! ctr p.p ! oDir diff --git a/src/english/VerbEng.gf b/src/english/VerbEng.gf index 1538bf593..20fd1863e 100644 --- a/src/english/VerbEng.gf +++ b/src/english/VerbEng.gf @@ -11,13 +11,13 @@ concrete VerbEng of Verb = CatEng ** open ResEng, Prelude in { Slash3V3 v np = insertObjc (\\_ => v.c3 ++ np.s ! NPAcc) (predVc v) ; ---- - ComplVV v vp = insertObj (\\a => infVP v.typ vp Simul CPos a) (predVV v) ; ---- insertExtra? + ComplVV v vp = insertObj (\\a => infVP v.typ vp False Simul CPos a) (predVV v) ; ---- insertExtra? ComplVS v s = insertExtra (conjThat ++ s.s) (predV v) ; --- ComplVS v s = insertObj (variants {\\_ => conjThat ++ s.s; \\_ => s.s}) (predV v) ; ComplVQ v q = insertExtra (q.s ! QIndir) (predV v) ; ComplVA v ap = insertObj (ap.s) (predV v) ; - SlashV2V v vp = insertObjc (\\a => v.c3 ++ infVP v.typ vp Simul CPos a) (predVc v) ; + SlashV2V v vp = insertObjc (\\a => v.c3 ++ infVP v.typ vp False Simul CPos a) (predVc v) ; SlashV2S v s = insertExtrac (conjThat ++ s.s) (predVc v) ; ---- insertExtra? --- SlashV2S v s = insertObjc (variants {\\_ => conjThat ++ s.s; \\_ => s.s}) (predVc v) ; SlashV2Q v q = insertExtrac (q.s ! QIndir) (predVc v) ; @@ -39,10 +39,10 @@ concrete VerbEng of Verb = CatEng ** open ResEng, Prelude in { in f vp' ; SlashVV vv vp = vp ** - insertObj (\\a => infVP vv.typ vp Simul CPos a) (predVV vv) ; + insertObj (\\a => infVP vv.typ vp False Simul CPos a) (predVV vv) ; SlashV2VNP vv np vp = vp ** insertObjPre (\\_ => vv.c2 ++ np.s ! NPAcc) - (insertObjc (\\a => vv.c3 ++ infVP vv.typ vp Simul CPos a) (predVc vv)) ; + (insertObjc (\\a => vv.c3 ++ infVP vv.typ vp False Simul CPos a) (predVc vv)) ; UseComp comp = insertObj comp.s (predAux auxBe) ;