diff --git a/src/english/AdjectiveEng.gf b/src/english/AdjectiveEng.gf index 241d50ed4..1b8808f2d 100644 --- a/src/english/AdjectiveEng.gf +++ b/src/english/AdjectiveEng.gf @@ -36,7 +36,7 @@ concrete AdjectiveEng of Adjective = CatEng ** open ResEng, Prelude in { } ; SentAP ap sc = { - s = \\a => ap.s ! a ++ sc.s ; + s = \\a => ap.s ! a ++ sc.s ! a ; isPre = False } ; diff --git a/src/english/CatEng.gf b/src/english/CatEng.gf index 5806c7ea9..f38e97a6e 100644 --- a/src/english/CatEng.gf +++ b/src/english/CatEng.gf @@ -1,4 +1,4 @@ -concrete CatEng of Cat = CommonX - [Pol] ** open ResEng, Prelude in { +concrete CatEng of Cat = CommonX - [Pol,SC] ** open ResEng, Prelude in { flags optimize=all_subs ; @@ -49,6 +49,7 @@ concrete CatEng of Cat = CommonX - [Pol] ** open ResEng, Prelude in { -- Adjective AP = {s : Agr => Str ; isPre : Bool} ; + SC = {s : Agr => Str} ; -- Noun diff --git a/src/english/ExtendEng.gf b/src/english/ExtendEng.gf index 0eb615996..ef6289252 100644 --- a/src/english/ExtendEng.gf +++ b/src/english/ExtendEng.gf @@ -141,7 +141,7 @@ concrete ExtendEng of Extend = isPre = vp.isSimple -- depends on whether there are complements } ; - EmbedPresPart vp = {s = infVP VVPresPart vp Simul CPos (agrP3 Sg)} ; --- agr + EmbedPresPart vp = {s = \\a => infVP VVPresPart vp Simul CPos a} ; PastPartAP vp = { s = \\a => vp.ad ! a ++ vp.ptp ++ vp.p ++ vp.c2 ++ vp.s2 ! a ++ vp.ext ; diff --git a/src/english/ExtraEng.gf b/src/english/ExtraEng.gf index c6dbeb1ed..dfd00a0ef 100644 --- a/src/english/ExtraEng.gf +++ b/src/english/ExtraEng.gf @@ -91,7 +91,7 @@ concrete ExtraEng of ExtraEngAbs = CatEng ** isPre = vp.isSimple -- depends on whether there are complements } ; - EmbedPresPart vp = {s = infVP VVPresPart vp Simul CPos (agrP3 Sg)} ; --- agr + EmbedPresPart vp = {s = \\a => infVP VVPresPart vp Simul CPos a} ; --- agr UttVPShort vp = {s = infVP VVAux vp Simul CPos (agrP3 Sg)} ; @@ -357,4 +357,4 @@ lin } ; -} \ No newline at end of file +} diff --git a/src/english/GrammarEng.gf b/src/english/GrammarEng.gf index 86f993b62..dd8f98837 100644 --- a/src/english/GrammarEng.gf +++ b/src/english/GrammarEng.gf @@ -11,10 +11,10 @@ concrete GrammarEng of Grammar = RelativeEng, ConjunctionEng, PhraseEng, - TextX - [Pol,PPos,PNeg], + TextX - [Pol,PPos,PNeg,SC], StructuralEng, IdiomEng, - TenseX - [Pol,PPos,PNeg] + TenseX - [Pol,PPos,PNeg,SC] ** open ResEng, Prelude in { flags startcat = Phr ; unlexer = text ; lexer = text ; diff --git a/src/english/NounEng.gf b/src/english/NounEng.gf index 9fccab1df..3ca58a80b 100644 --- a/src/english/NounEng.gf +++ b/src/english/NounEng.gf @@ -141,7 +141,7 @@ concrete NounEng of Noun = CatEng ** open MorphoEng, ResEng, Prelude in { } ; AdvCN cn ad = {s = \\n,c => cn.s ! n ! c ++ ad.s ; g = cn.g} ; - SentCN cn sc = {s = \\n,c => cn.s ! n ! c ++ sc.s ; g = cn.g} ; + SentCN cn sc = {s = \\n,c => cn.s ! n ! c ++ sc.s ! agrgP3 n cn.g ; g = cn.g} ; ApposCN cn np = {s = \\n,c => cn.s ! n ! Nom ++ np.s ! NCase c ; g = cn.g} ; diff --git a/src/english/SentenceEng.gf b/src/english/SentenceEng.gf index ee44e0684..79c1388b4 100644 --- a/src/english/SentenceEng.gf +++ b/src/english/SentenceEng.gf @@ -6,7 +6,7 @@ concrete SentenceEng of Sentence = CatEng ** open Prelude, ResEng in { PredVP np vp = mkClause (np.s ! npNom) np.a vp ; - PredSCVP sc vp = mkClause sc.s (agrP3 Sg) vp ; + PredSCVP sc vp = let a = agrP3 Sg in mkClause (sc.s ! a) a vp ; ImpVP vp = { s = \\pol,n => @@ -37,9 +37,9 @@ concrete SentenceEng of Sentence = CatEng ** open Prelude, ResEng in { (insertObj (\\_ => conjThat ++ slash.s) (predV vs)) ** {c2 = slash.c2} ; - EmbedS s = {s = conjThat ++ s.s} ; - EmbedQS qs = {s = qs.s ! QIndir} ; - EmbedVP vp = {s = infVP VVInf vp Simul CPos (agrP3 Sg)} ; --- agr + EmbedS s = {s = \\_ => conjThat ++ s.s} ; + EmbedQS qs = {s = \\_ => qs.s ! QIndir} ; + EmbedVP vp = {s = \\a => infVP VVInf vp Simul CPos a} ; UseCl t p cl = { s = t.s ++ p.s ++ cl.s ! t.t ! t.a ! ctr p.p ! oDir