diff options
| author | bjorn <bjorn@bringert.net> | 2008-11-19 13:11:45 +0000 |
|---|---|---|
| committer | bjorn <bjorn@bringert.net> | 2008-11-19 13:11:45 +0000 |
| commit | 0c538bf80bbf91a616d555a14018f2c6b2464b72 (patch) | |
| tree | 291ffca09a4256ab1b88a861fd53b9fa43a60cd4 /next-lib/src/english/SymbolEng.gf | |
| parent | 288ffd290a67a1d0ff497c8aa1d3c12d612a6dc3 (diff) | |
Added case inflection to English numerals and adjectives, in order to get genitive forms of stand-alone determiners that use Num or Ord right.
Diffstat (limited to 'next-lib/src/english/SymbolEng.gf')
| -rw-r--r-- | next-lib/src/english/SymbolEng.gf | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/next-lib/src/english/SymbolEng.gf b/next-lib/src/english/SymbolEng.gf index 6092902c9..b3425c90a 100644 --- a/next-lib/src/english/SymbolEng.gf +++ b/next-lib/src/english/SymbolEng.gf @@ -3,37 +3,42 @@ concrete SymbolEng of Symbol = CatEng ** open Prelude, ResEng in { lin - SymbPN i = {s = \\c => i.s ; g = Neutr} ; --- c - IntPN i = {s = \\c => i.s ; g = Neutr} ; --- c - FloatPN i = {s = \\c => i.s ; g = Neutr} ; --- c - NumPN i = {s = \\c => i.s ; g = Neutr} ; --- c + SymbPN i = {s = addGenitiveS i.s ; g = Neutr} ; + IntPN i = {s = addGenitiveS i.s ; g = Neutr} ; + FloatPN i = {s = addGenitiveS i.s ; g = Neutr} ; + NumPN i = {s = i.s ; g = Neutr} ; CNIntNP cn i = { - s = \\c => (cn.s ! Sg ! Nom ++ i.s) ; + s = \\c => cn.s ! Sg ! Nom ++ (addGenitiveS i.s) ! c ; a = agrgP3 Sg cn.g } ; CNSymbNP det cn xs = { - s = \\c => det.s ++ cn.s ! det.n ! c ++ xs.s ; + s = \\c => det.s ++ cn.s ! det.n ! Nom ++ (addGenitiveS xs.s) ! c ; a = agrgP3 det.n cn.g } ; CNNumNP cn i = { - s = \\c => (cn.s ! Sg ! Nom ++ i.s) ; + s = \\c => cn.s ! Sg ! Nom ++ i.s ! c ; a = agrgP3 Sg cn.g } ; SymbS sy = sy ; - SymbNum sy = {s = sy.s ; n = Pl ; hasCard = True} ; - SymbOrd sy = {s = sy.s ++ "th"} ; + SymbNum sy = { s = addGenitiveS sy.s ; n = Pl ; hasCard = True } ; + SymbOrd sy = { s = addGenitiveS (sy.s ++ "th")} ; lincat Symb, [Symb] = SS ; lin - MkSymb s = s ; BaseSymb = infixSS "and" ; ConsSymb = infixSS "," ; +oper + -- Note: this results in a space before 's, but there's + -- not mauch we can do about that. + addGenitiveS : Str -> Case => Str = \s -> + table { Gen => s ++ "'s"; _ => s } ; + } |
