diff options
Diffstat (limited to 'examples/foods/FoodsTsn.gf')
| -rw-r--r-- | examples/foods/FoodsTsn.gf | 177 |
1 files changed, 0 insertions, 177 deletions
diff --git a/examples/foods/FoodsTsn.gf b/examples/foods/FoodsTsn.gf deleted file mode 100644 index dae2bdfba..000000000 --- a/examples/foods/FoodsTsn.gf +++ /dev/null @@ -1,177 +0,0 @@ - --- (c) 2009 Laurette Pretorius Sr & Jr and Ansu Berg under LGPL - -concrete FoodsTsn of Foods = open Prelude, Predef in { - flags coding = utf8; - lincat - Comment = {s:Str}; - Item = {s:Str; c:NounClass; n:Number}; - Kind = {w: Number => Str; r: Str; c: NounClass; q: Number => Str; b: Bool}; - Quality = {s: NounClass => Number => Str; p_form: Str; t: TType}; - lin - Pred item quality = {s = item.s ++ ((mkPredDescrCop quality.t) ! item.c ! item.n) ++ quality.p_form}; - - This kind = {s = (kind.w ! Sg) ++ (mkDemPron1 ! kind.c ! Sg) ++ (kind.q ! Sg); c = kind.c; n = Sg}; - That kind = {s = (kind.w ! Sg) ++ (mkDemPron2 ! kind.c ! Sg) ++ (kind.q ! Sg); c = kind.c; n = Sg}; - These kind = {s = (kind.w ! Pl) ++ (mkDemPron1 ! kind.c ! Pl) ++ (kind.q ! Pl); c = kind.c; n = Pl}; - Those kind = {s = (kind.w ! Pl) ++ (mkDemPron2 ! kind.c ! Pl) ++ (kind.q ! Pl); c = kind.c; n = Pl}; - - Mod quality kind = mkMod quality kind; - - -- Lexicon - Wine = mkNounNC14_6 "jalwa"; - Cheese = mkNounNC9_10 "kase"; - Fish = mkNounNC9_10 "thlapi"; - Pizza = mkNounNC9_10 "pizza"; - Very quality = smartVery quality; - Fresh = mkVarAdj "ntsha"; - Warm = mkOrdAdj "bothitho"; - Italian = mkPerAdj "Itali"; - Expensive = mkVerbRel "tura"; - Delicious = mkOrdAdj "monate"; - Boring = mkOrdAdj "bosula"; - - param - NounClass = NC9_10 | NC14_6; - Number = Sg | Pl; - TType = P | V | ModV | R ; - oper - mkMod : {s: NounClass => Number => Str; p_form: Str; t: TType} -> {w: Number => Str; r: Str; c: NounClass; q: Number => Str; b: Bool} -> {w: Number => Str; r: Str; c: NounClass; q: Number => Str; - b: Bool} = \x,y -> case y.b of - { - True => {w = y.w; r = y.r; c = y.c; - q = table { - Sg => ((y.q ! Sg) ++ "le" ++ ((smartQualRelPart (x.t)) ! y.c ! Sg) ++ ((smartDescrCop (x.t)) ! y.c ! Sg) ++ (x.s ! y.c ! Sg)); - Pl => ((y.q ! Pl) ++ "le" ++ ((smartQualRelPart (x.t))! y.c ! Pl) ++ ((smartDescrCop (x.t)) ! y.c ! Pl) ++(x.s ! y.c ! Pl)) - }; b = True - }; - False => {w = y.w; r = y.r; c = y.c; - q = table { - Sg => ((y.q ! Sg) ++ ((smartQualRelPart (x.t)) ! y.c ! Sg) ++ ((smartDescrCop (x.t)) ! y.c ! Sg) ++ (x.s ! y.c ! Sg)); - Pl => ((y.q ! Pl) ++ ((smartQualRelPart (x.t)) ! y.c ! Pl) ++ ((smartDescrCop (x.t)) ! y.c ! Pl) ++(x.s ! y.c ! Pl)) - }; b = True - } - }; - - mkNounNC14_6 : Str -> {w: Number => Str; r: Str; c: NounClass; q: Number => Str; b: Bool} = \x -> {w = table {Sg => "bo" + x; Pl => "ma" + x}; r = x; c = NC14_6; - q = table {Sg => ""; Pl => ""}; b = False}; - - mkNounNC9_10 : Str -> {w: Number => Str; r: Str; c: NounClass; q: Number => Str; b: Bool} = \x -> {w = table {Sg => "" + x; Pl => "di" + x}; r = x; c = NC9_10; - q = table {Sg => ""; Pl => ""}; b = False}; - - mkVarAdj : Str -> {s: NounClass => Number => Str; p_form: Str; t: TType} = \x -> - { - s = table { - NC9_10 => table {Sg => "" + x; Pl => "di" + x}; - NC14_6 => table {Sg => "bo" + x; Pl => "ma" + x} - }; - p_form = x; - t = R; - }; - - mkOrdAdj : Str -> {s: NounClass => Number => Str; p_form: Str; t: TType} = \x -> - { - s = table { - NC9_10 => table {Sg => "" + x; Pl => "" + x}; - NC14_6 => table {Sg => "" + x; Pl => "" + x} - }; - p_form = x; - t = R; - }; - - mkVerbRel : Str -> {s: NounClass => Number => Str; p_form: Str; t: TType} = \x -> - { - s = table { - NC9_10 => table {Sg => x + "ng"; Pl => x + "ng"}; - NC14_6 => table {Sg => x + "ng"; Pl => x + "ng"} - }; - p_form = x; - t = V; - }; - - mkPerAdj : Str -> {s: NounClass => Number => Str; p_form: Str; t: TType} = \x -> - { - s = table { - NC9_10 => table {Sg => "" + x; Pl => "" + x}; - NC14_6 => table {Sg => "" + x; Pl => "" + x} - }; - p_form = "mo" ++ x; - t = P; - }; - - mkVeryAdj : {s: NounClass => Number => Str; p_form: Str; t: TType} -> {s: NounClass => Number => Str; p_form: Str; t: TType} = \x -> - { - s = table{c => table{n => (x.s!c!n) ++ "thata"}}; p_form = x.p_form ++ "thata"; t = x.t - }; - - mkVeryVerb : {s: NounClass => Number => Str; p_form: Str; t: TType} -> {s: NounClass => Number => Str; p_form: Str; t: TType} = \x -> - { - s = table{c => table{n => (x.s!c!n) ++ "thata"}}; p_form = x.p_form ++ "thata"; t = ModV - }; - - smartVery : {s: NounClass => Number => Str; p_form: Str; t: TType} -> {s: NounClass => Number => Str; p_form: Str; t: TType} = -\x -> case x.t of --(x.s!c!n) - { - (V | ModV) => mkVeryVerb x; - --ModV => mkVeryVerb x; - _ => mkVeryAdj x - }; - - mkDemPron1 : NounClass => Number => Str = table - { - NC9_10 => table {Sg => "e"; Pl => "tse"}; - NC14_6 => table {Sg => "bo"; Pl => "a"} - }; - - mkDemPron2 : NounClass => Number => Str = table - { - NC9_10 => table {Sg => "eo"; Pl => "tseo"}; - NC14_6 => table {Sg => "boo"; Pl => "ao"} - }; - - smartQualRelPart : TType -> (NounClass => Number => Str) = \x -> case x of - { - P => mkQualRelPart_PName; - _ => mkQualRelPart - }; - - mkQualRelPart : NounClass => Number => Str = table - { - NC9_10 => table {Sg => "e"; Pl => "tse"}; - NC14_6 => table {Sg => "bo"; Pl => "a"} - }; - - mkQualRelPart_PName : NounClass => Number => Str = table - { - NC9_10 => table {Sg => "ya"; Pl => "tsa"}; - NC14_6 => table {Sg => "ba"; Pl => "a"} - }; - - smartDescrCop : TType -> (NounClass => Number => Str) = \x -> case x of - { - P => mkDescrCop_PName; - _ => mkDescrCop - }; - - mkDescrCop : NounClass => Number => Str = table - { - NC9_10 => table {Sg => "e"; Pl => "di"}; - NC14_6 => table {Sg => "bo"; Pl => "a"} - }; - - mkDescrCop_PName : NounClass => Number => Str = table - { - NC9_10 => table {Sg => "ga"; Pl => "ga"}; - NC14_6 => table {Sg => "ga"; Pl => "ga"} - }; - - mkPredDescrCop : TType -> (NounClass => Number => Str) = \x -> case x of - { - V => table {NC9_10 => table {Sg => "e" ++ "a"; Pl => "di" ++ "a"}; - NC14_6 => table {Sg => "bo" ++ "a"; Pl => "a" ++ "a"}}; - - _ => table {NC9_10 => table {Sg => "e"; Pl => "di"}; - NC14_6 => table {Sg => "bo"; Pl => "a"}} - }; - -} |
