From 6fe595104cef956bcd0f12b1ac12d4ded31561fa Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Tue, 3 Jul 2018 18:48:46 +0200 Subject: [PATCH] support postposition adjectives --- src/english/AdjectiveEng.gf | 4 ++-- src/english/CatEng.gf | 8 ++++---- src/english/ParadigmsEng.gf | 2 +- src/english/ResEng.gf | 5 +++-- 4 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/english/AdjectiveEng.gf b/src/english/AdjectiveEng.gf index 1b8808f2d..118e505b8 100644 --- a/src/english/AdjectiveEng.gf +++ b/src/english/AdjectiveEng.gf @@ -4,7 +4,7 @@ concrete AdjectiveEng of Adjective = CatEng ** open ResEng, Prelude in { PositA a = { s = \\_ => a.s ! AAdj Posit Nom ; - isPre = True + isPre = a.isPre } ; ComparA a np = { s = \\_ => a.s ! AAdj Compar Nom ++ "than" ++ np.s ! npNom ; @@ -12,7 +12,7 @@ concrete AdjectiveEng of Adjective = CatEng ** open ResEng, Prelude in { } ; UseComparA a = { s = \\_ => a.s ! AAdj Compar Nom ; - isPre = True + isPre = a.isPre } ; AdjOrd ord = { diff --git a/src/english/CatEng.gf b/src/english/CatEng.gf index dce939394..cd7c3e306 100644 --- a/src/english/CatEng.gf +++ b/src/english/CatEng.gf @@ -98,8 +98,8 @@ concrete CatEng of Cat = CommonX - [Pol,SC] ** open ResEng, Prelude in { VV = {s : VVForm => Str ; p : Str ; typ : VVType} ; V2V = Verb ** {c2,c3 : Str ; typ : VVType} ; - A = {s : AForm => Str} ; - A2 = {s : AForm => Str ; c2 : Str} ; + A = {s : AForm => Str ; isPre : Bool} ; + A2 = {s : AForm => Str ; c2 : Str ; isPre : Bool} ; N = {s : Number => Case => Str ; g : Gender} ; N2 = {s : Number => Case => Str ; g : Gender} ** {c2 : Str} ; @@ -119,8 +119,8 @@ concrete CatEng of Cat = CommonX - [Pol,SC] ** open ResEng, Prelude in { VV = \s -> {s = \\_ => s; p = ""; isRefl = False; typ = VVInf} ; V2V = \s -> {s = \\_ => s; p = ""; isRefl = False; c2,c3="" ; typ = VVInf} ; - A = \s -> {s = \\_ => s} ; - A2 = \s -> {s = \\_ => s; c2 = ""} ; + A = \s -> {s = \\_ => s; isPre = True} ; + A2 = \s -> {s = \\_ => s; c2 = ""; isPre = True} ; N = \s -> {s = \\_,_ => s; g = Neutr} ; N2 = \s -> {s = \\_,_ => s; c2 = ""; g = Neutr} ; diff --git a/src/english/ParadigmsEng.gf b/src/english/ParadigmsEng.gf index 20439659b..e145d0327 100644 --- a/src/english/ParadigmsEng.gf +++ b/src/english/ParadigmsEng.gf @@ -647,7 +647,7 @@ mkInterj : Str -> Interj let ad = (a.s ! AAdj Posit Nom) in regADeg ad ; - irregAdv a adv = lin A {s = table {AAdv => adv; aform => a.s ! aform}} ; + irregAdv a adv = lin A {s = table {AAdv => adv; aform => a.s ! aform}; isPre = a.isPre} ; prepA2 : A -> Prep -> A2 ; diff --git a/src/english/ResEng.gf b/src/english/ResEng.gf index d7c940913..0608fdac6 100644 --- a/src/english/ResEng.gf +++ b/src/english/ResEng.gf @@ -141,14 +141,15 @@ param } } ; - mkAdjective : (_,_,_,_ : Str) -> {s : AForm => Str; lock_A : {}} = + mkAdjective : (_,_,_,_ : Str) -> {s : AForm => Str; isPre : Bool; lock_A : {}} = \good,better,best,well -> lin A { s = table { AAdj Posit c => (regGenitiveS good) ! c ; AAdj Compar c => (regGenitiveS better) ! c ; AAdj Superl c => (regGenitiveS best) ! c ; AAdv => well - } + } ; + isPre = True } ; mkVerb : (_,_,_,_,_ : Str) -> Verb =