diff options
| author | aarne <aarne@chalmers.se> | 2010-12-01 08:10:23 +0000 |
|---|---|---|
| committer | aarne <aarne@chalmers.se> | 2010-12-01 08:10:23 +0000 |
| commit | 9b6f775b760883b49fd9c56580f22dc5933a7d2a (patch) | |
| tree | ed7f628348e20076daca1db519ceccaecea96115 /examples/gfm-format | |
| parent | acfa9722e262cc94a486373288c94b27dbbf7ba0 (diff) | |
documentation in gfm-format examples (dir renamed from multi)
Diffstat (limited to 'examples/gfm-format')
| -rw-r--r-- | examples/gfm-format/Food.gfm | 76 | ||||
| -rw-r--r-- | examples/gfm-format/Words.gfm | 22 |
2 files changed, 98 insertions, 0 deletions
diff --git a/examples/gfm-format/Food.gfm b/examples/gfm-format/Food.gfm new file mode 100644 index 000000000..feb3dfcf6 --- /dev/null +++ b/examples/gfm-format/Food.gfm @@ -0,0 +1,76 @@ +-- 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"} ; + +} diff --git a/examples/gfm-format/Words.gfm b/examples/gfm-format/Words.gfm new file mode 100644 index 000000000..0e3aafb3e --- /dev/null +++ b/examples/gfm-format/Words.gfm @@ -0,0 +1,22 @@ +-- Baseline of .gfm format: multilingual word lists (see Food.gfm for multi-module gf) +-- The compiler recognizes the suffix .gfm and creates four files: +-- Words.gf, WordsEng.gf, WordsFin.gf, WordsSwe.gf +-- The first non-comment line must give a list of lang names. +-- The prefix comes from this file, as well as the abstract name. +-- Languages are separated by ';', variants within a language by ','. +-- Multi-word expressions are allowed. +-- The startcat is S. +-- The abstract name is multi_word_S for the first multi word (or word) on each line. +-- This file must be UTF-8 encoded. + +> langs Eng Swe Fin + +house ; hus ; talo +car, automobile ; bil ; auto +man ; man ; mies +girl ; flicka, tjej ; tyttö +technical university ; teknisk högskola ; teknillinen korkeakoulu + + + + |
