packages feed

gf-3.6: examples/foods/FoodsEpo.gf

-- (c) 2009 Julia Hammar under LGPL

concrete FoodsEpo of Foods = open Prelude in {

  flags coding =utf8 ;

  lincat
    Comment = SS ; 
    Kind, Quality = {s : Number => Str} ; 
    Item = {s : Str ; n : Number} ; 

  lin
    Pred item quality = ss (item.s ++ copula ! item.n ++ quality.s ! item.n) ;
    This = det Sg "ĉi tiu" ;
    That  = det Sg "tiu" ;
    These = det Pl "ĉi tiuj" ;
    Those = det Pl "tiuj" ;
    Mod quality kind = {s = \\n => quality.s ! n ++ kind.s ! n} ;
    Wine = regNoun "vino" ;
    Cheese = regNoun "fromaĝo" ;
    Fish = regNoun "fiŝo" ;
    Pizza = regNoun "pico" ;
    Very quality = {s = \\n => "tre" ++ quality.s ! n} ;
    Fresh = regAdj "freŝa" ;
    Warm = regAdj "varma" ;
    Italian = regAdj "itala" ;
    Expensive = regAdj "altekosta" ;
    Delicious = regAdj "bongusta" ;
    Boring = regAdj "enuiga" ;

  param
    Number = Sg | Pl ;

  oper
    det : Number -> Str -> {s : Number => Str} -> {s : Str ; n : Number} = 
      \n,d,cn -> {
        s = d ++ cn.s ! n ;
        n = n
      } ;
    regNoun : Str -> {s : Number => Str} = 
      \vino -> {s = table {Sg => vino ; Pl => vino + "j"}
	} ;
    regAdj : Str -> {s : Number => Str} =
      \nova -> {s = table {Sg => nova ; Pl => nova + "j"}
      } ;
    copula : Number => Str = \\_ => "estas" ;
}