forked from GitHub/gf-core
77 lines
2.0 KiB
Plaintext
77 lines
2.0 KiB
Plaintext
-- Full .gfm format: multi-module files (see Words.gfm for a baseline format)
|
|
-- The compiler recognizes the suffix .gfm and a file for each module.
|
|
-- Food.gf, FoodEng.gf, FoodIta.gf
|
|
-- The first non-comment line must give a list of lang names for the top modules.
|
|
-- This modules are the ones imported in 'import Food.gfm'.
|
|
-- Their prefix comes from this file.
|
|
-- This file must be UTF-8 encoded.
|
|
|
|
|
|
> langs Eng Ita
|
|
|
|
abstract Food = {
|
|
|
|
cat
|
|
Phrase ; Item ; Kind ; Quality ;
|
|
|
|
flags startcat = Phrase ;
|
|
|
|
fun
|
|
Is : Item -> Quality -> Phrase ;
|
|
This, That : Kind -> Item ;
|
|
QKind : Quality -> Kind -> Kind ;
|
|
Wine, Cheese, Fish : Kind ;
|
|
Very : Quality -> Quality ;
|
|
Fresh, Warm, Italian, Expensive, Delicious, Boring : Quality ;
|
|
|
|
}
|
|
|
|
concrete FoodEng of Food = {
|
|
|
|
|
|
lincat
|
|
Phrase, Item, Kind, Quality = {s : Str} ;
|
|
|
|
lin
|
|
Is item quality = {s = item.s ++ "is" ++ quality.s} ;
|
|
This kind = {s = "this" ++ kind.s} ;
|
|
That kind = {s = "that" ++ kind.s} ;
|
|
QKind quality kind = {s = quality.s ++ kind.s} ;
|
|
Wine = {s = "wine"} ;
|
|
Cheese = {s = "cheese"} ;
|
|
Fish = {s = "fish"} ;
|
|
Very quality = {s = "very" ++ quality.s} ;
|
|
Fresh = {s = "fresh"} ;
|
|
Warm = {s = "warm"} ;
|
|
Italian = {s = "Italian"} ;
|
|
Expensive = {s = "expensive"} ;
|
|
Delicious = {s = "delicious"} ;
|
|
Boring = {s = "boring"} ;
|
|
|
|
}
|
|
|
|
concrete FoodIta of Food = {
|
|
|
|
flags coding = utf8 ;
|
|
|
|
lincat
|
|
Phrase, Item, Kind, Quality = {s : Str} ;
|
|
|
|
lin
|
|
Is item quality = {s = item.s ++ "è" ++ quality.s} ;
|
|
This kind = {s = "questo" ++ kind.s} ;
|
|
That kind = {s = "quel" ++ kind.s} ;
|
|
QKind quality kind = {s = kind.s ++ quality.s} ;
|
|
Wine = {s = "vino"} ;
|
|
Cheese = {s = "formaggio"} ;
|
|
Fish = {s = "pesce"} ;
|
|
Very quality = {s = "molto" ++ quality.s} ;
|
|
Fresh = {s = "fresco"} ;
|
|
Warm = {s = "caldo"} ;
|
|
Italian = {s = "italiano"} ;
|
|
Expensive = {s = "caro"} ;
|
|
Delicious = {s = "delizioso"} ;
|
|
Boring = {s = "noioso"} ;
|
|
|
|
}
|