diff --git a/src/english/AdjectiveEng.gf b/src/english/AdjectiveEng.gf index 241d50ed..1b8808f2 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 5806c7ea..f38e97a6 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 0eb61599..ef628925 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 c6dbeb1e..dfd00a0e 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 86f993b6..dd8f9883 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 9fccab1d..3ca58a80 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 ee44e068..79c1388b 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