diff --git a/lib/src/english/CatEng.gf b/lib/src/english/CatEng.gf index 8b512ff75..667f94677 100644 --- a/lib/src/english/CatEng.gf +++ b/lib/src/english/CatEng.gf @@ -51,7 +51,7 @@ concrete CatEng of Cat = CommonX ** open ResEng, Prelude in { CN = {s : Number => Case => Str ; g : Gender} ; NP = {s : Case => Str ; a : Agr} ; Pron = {s : Case => Str ; sp : Case => Str ; a : Agr} ; - Det = {s : Str ; sp : Case => Str ; n : Number} ; + Det = {s : Str ; sp : Case => Str ; n : Number ; hasNum : Bool} ; Predet = {s : Str} ; Ord = { s : Case => Str } ; Num = {s : Case => Str ; n : Number ; hasCard : Bool} ; diff --git a/lib/src/english/MorphoEng.gf b/lib/src/english/MorphoEng.gf index 437a0646f..053a241a0 100644 --- a/lib/src/english/MorphoEng.gf +++ b/lib/src/english/MorphoEng.gf @@ -16,10 +16,13 @@ resource MorphoEng = open Prelude, (Predef=Predef), ResEng in { oper - mkDeterminer : Number -> Str -> {s : Str ; sp : Case => Str; n : Number} = \n,s -> + mkDeterminer : Number -> Str -> + {s : Str ; sp : Case => Str; n : Number ; hasNum : Bool} = \n,s -> {s = s; sp = regGenitiveS s ; - n = n} ; + n = n ; + hasNum = True ; -- doesn't matter since s = sp + } ; --2 Pronouns diff --git a/lib/src/english/NounEng.gf b/lib/src/english/NounEng.gf index 31fe24659..6181f1577 100644 --- a/lib/src/english/NounEng.gf +++ b/lib/src/english/NounEng.gf @@ -37,17 +37,19 @@ concrete NounEng of Noun = CatEng ** open MorphoEng, ResEng, Prelude in { False => quant.sp ! num.hasCard ! num.n ! c ++ num.s ! Nom ; True => quant.sp ! num.hasCard ! num.n ! Nom ++ num.s ! c } ; - n = num.n + n = num.n ; + hasNum = num.hasCard } ; DetQuantOrd quant num ord = { s = quant.s ! num.hasCard ! num.n ++ num.s ! Nom ++ ord.s ! Nom; sp = \\c => quant.sp ! num.hasCard ! num.n ! Nom ++ num.s ! Nom ++ ord.s ! c ; - n = num.n + n = num.n ; + hasNum = True } ; DetNP det = { - s = det.sp ; + s = case det.hasNum of {True => \\_ => det.s ; _ => det.sp} ; a = agrP3 det.n } ;