From 19e8bab1a4c8f531fd49de4fffd96fb231ad4c80 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Sun, 15 Jul 2018 10:55:03 +0200 Subject: [PATCH] allow for negated CAdv --- src/english/AdjectiveEng.gf | 2 +- src/english/AdverbEng.gf | 6 +++--- src/english/CatEng.gf | 5 ++--- src/english/GrammarEng.gf | 4 ++-- src/english/ParadigmsEng.gf | 5 ++++- src/english/StructuralEng.gf | 9 ++++----- 6 files changed, 16 insertions(+), 15 deletions(-) diff --git a/src/english/AdjectiveEng.gf b/src/english/AdjectiveEng.gf index 118e505b8..e5f9ec7ba 100644 --- a/src/english/AdjectiveEng.gf +++ b/src/english/AdjectiveEng.gf @@ -21,7 +21,7 @@ concrete AdjectiveEng of Adjective = CatEng ** open ResEng, Prelude in { } ; CAdvAP ad ap np = { - s = \\a => ad.s ++ ap.s ! a ++ ad.p ++ np.s ! npNom ; + s = \\a => ad.s ! Pos ++ ap.s ! a ++ ad.p ++ np.s ! npNom ; isPre = False } ; diff --git a/src/english/AdverbEng.gf b/src/english/AdverbEng.gf index ba1a2dcd4..165f88fba 100644 --- a/src/english/AdverbEng.gf +++ b/src/english/AdverbEng.gf @@ -3,10 +3,10 @@ concrete AdverbEng of Adverb = CatEng ** open ResEng, Prelude in { lin PositAdvAdj a = {s = a.s ! AAdv} ; ComparAdvAdj cadv a np = { - s = cadv.s ++ a.s ! AAdv ++ cadv.p ++ np.s ! npNom + s = cadv.s ! Pos ++ a.s ! AAdv ++ cadv.p ++ np.s ! npNom } ; ComparAdvAdjS cadv a s = { - s = cadv.s ++ a.s ! AAdv ++ cadv.p ++ s.s + s = cadv.s ! Pos ++ a.s ! AAdv ++ cadv.p ++ s.s } ; PrepNP prep np = {s = preOrPost prep.isPre prep.s (np.s ! NPAcc)} ; @@ -16,6 +16,6 @@ concrete AdverbEng of Adverb = CatEng ** open ResEng, Prelude in { SubjS = cc2 ; - AdnCAdv cadv = {s = cadv.s ++ cadv.p} ; + AdnCAdv cadv = {s = cadv.s ! Pos ++ cadv.p} ; } diff --git a/src/english/CatEng.gf b/src/english/CatEng.gf index dbdba346e..a2d6efa70 100644 --- a/src/english/CatEng.gf +++ b/src/english/CatEng.gf @@ -1,4 +1,4 @@ -concrete CatEng of Cat = CommonX - [Pol,SC] ** open ResEng, Prelude in { +concrete CatEng of Cat = CommonX - [Pol,SC,CAdv] ** open ResEng, Prelude in { flags optimize=all_subs ; @@ -85,10 +85,9 @@ concrete CatEng of Cat = CommonX - [Pol,SC] ** open ResEng, Prelude in { -- Structural Conj = {s1,s2 : Str ; n : Number} ; ----b Conj = {s : Str ; n : Number} ; ----b DConj = {s1,s2 : Str ; n : Number} ; Subj = {s : Str} ; Prep = {s : Str; isPre : Bool} ; + CAdv = {s : Polarity => Str; p : Str} ; -- Open lexical classes, e.g. Lexicon diff --git a/src/english/GrammarEng.gf b/src/english/GrammarEng.gf index dd8f98837..3e273229c 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,SC], + TextX - [Pol,PPos,PNeg,SC,CAdv], StructuralEng, IdiomEng, - TenseX - [Pol,PPos,PNeg,SC] + TenseX - [Pol,PPos,PNeg,SC,CAdv] ** open ResEng, Prelude in { flags startcat = Phr ; unlexer = text ; lexer = text ; diff --git a/src/english/ParadigmsEng.gf b/src/english/ParadigmsEng.gf index c96ff38fd..d88630e99 100644 --- a/src/english/ParadigmsEng.gf +++ b/src/english/ParadigmsEng.gf @@ -190,7 +190,8 @@ oper -- Adverbs modifying adjectives and sentences can also be formed. - mkAdA : Str -> AdA ; -- e.g. quite + mkAdA : Str -> AdA ; -- e.g. quite + mkCAdv : Str -> Str -> Str -> CAdv ; -- more than/no more than -- Adverbs modifying numerals @@ -497,6 +498,8 @@ mkInterj : Str -> Interj mkAdA x = lin AdA (ss x) ; mkAdN x = lin AdN (ss x) ; + mkCAdv sp sn p = lin CAdv {s = table Polarity [sp;sn]; p = p} ; + mkPrep p = lin Prep {s=p; isPre=True} ; mkPost p = lin Prep {s=p; isPre=False} ; noPrep = mkPrep [] ; diff --git a/src/english/StructuralEng.gf b/src/english/StructuralEng.gf index b2be5692c..97241b45a 100644 --- a/src/english/StructuralEng.gf +++ b/src/english/StructuralEng.gf @@ -1,6 +1,5 @@ concrete StructuralEng of Structural = CatEng ** - open MorphoEng, ResEng, ParadigmsEng, MakeStructuralEng, - (C = ConstructX), Prelude in { + open MorphoEng, ResEng, ParadigmsEng, MakeStructuralEng, Prelude in { flags optimize=all ; @@ -73,9 +72,9 @@ concrete StructuralEng of Structural = CatEng ** i_Pron = mkPron "I" "me" "my" "mine" singular P1 human ; in_Prep = mkPrep "in" ; it_Pron = mkPron "it" "it" "its" "its" singular P3 nonhuman ; - less_CAdv = C.mkCAdv "less" "than" ; + less_CAdv = mkCAdv "less" "no less" "than" ; many_Det = mkDeterminer plural "many" ; - more_CAdv = C.mkCAdv "more" "than" ; + more_CAdv = mkCAdv "more" "no more" "than" ; most_Predet = ss "most" ; much_Det = mkDeterminer singular "much" ; must_VV = { @@ -153,7 +152,7 @@ concrete StructuralEng of Structural = CatEng ** except_Prep = mkPrep "except" ; - as_CAdv = C.mkCAdv "as" "as" ; + as_CAdv = mkCAdv "as" "not as" "as" ; have_V2 = dirV2 (mk5V "have" "has" "had" "had" "having") ; that_Subj = ss "that" ;