summaryrefslogtreecommitdiff
path: root/examples/gadt-transfer
diff options
context:
space:
mode:
Diffstat (limited to 'examples/gadt-transfer')
-rw-r--r--examples/gadt-transfer/Foods.gf15
-rw-r--r--examples/gadt-transfer/FoodsDut.gf58
-rw-r--r--examples/gadt-transfer/FoodsEng.gf43
-rw-r--r--examples/gadt-transfer/Makefile4
-rw-r--r--examples/gadt-transfer/README35
-rw-r--r--examples/gadt-transfer/VeryFoods.hs23
6 files changed, 0 insertions, 178 deletions
diff --git a/examples/gadt-transfer/Foods.gf b/examples/gadt-transfer/Foods.gf
deleted file mode 100644
index 8ea02f39d..000000000
--- a/examples/gadt-transfer/Foods.gf
+++ /dev/null
@@ -1,15 +0,0 @@
--- (c) 2009 Aarne Ranta under LGPL
-
-abstract Foods = {
- flags startcat = Comment ;
- cat
- Comment ; Item ; Kind ; Quality ;
- fun
- Pred : Item -> Quality -> Comment ;
- This, That, These, Those : Kind -> Item ;
- Mod : Quality -> Kind -> Kind ;
- Wine, Cheese, Fish, Pizza : Kind ;
- Very : Quality -> Quality ;
- Fresh, Warm, Italian,
- Expensive, Delicious, Boring : Quality ;
-}
diff --git a/examples/gadt-transfer/FoodsDut.gf b/examples/gadt-transfer/FoodsDut.gf
deleted file mode 100644
index d4855e5c6..000000000
--- a/examples/gadt-transfer/FoodsDut.gf
+++ /dev/null
@@ -1,58 +0,0 @@
--- (c) 2009 Femke Johansson under LGPL
-
-concrete FoodsDut of Foods = {
-
- lincat
- Comment = {s : Str};
- Quality = {s : AForm => Str};
- Kind = { s : Number => Str};
- Item = {s : Str ; n : Number};
-
- lin
- Pred item quality =
- {s = item.s ++ copula ! item.n ++ quality.s ! APred};
- This = det Sg "deze";
- These = det Pl "deze";
- That = det Sg "die";
- Those = det Pl "die";
-
- Mod quality kind =
- {s = \\n => quality.s ! AAttr ++ kind.s ! n};
- Wine = regNoun "wijn";
- Cheese = noun "kaas" "kazen";
- Fish = noun "vis" "vissen";
- Pizza = noun "pizza" "pizza's";
-
- Very a = {s = \\f => "erg" ++ a.s ! f};
-
- Fresh = regadj "vers";
- Warm = regadj "warm";
- Italian = regadj "Italiaans";
- Expensive = adj "duur" "dure";
- Delicious = regadj "lekker";
- Boring = regadj "saai";
-
- param
- Number = Sg | Pl;
- AForm = APred | AAttr;
-
- oper
- det : Number -> Str ->
- {s : Number => Str} -> {s : Str ; n: Number} =
- \n,det,noun -> {s = det ++ noun.s ! n ; n=n};
-
- noun : Str -> Str -> {s : Number => Str} =
- \man,men -> {s = table {Sg => man; Pl => men}};
-
- regNoun : Str -> {s : Number => Str} =
- \wijn -> noun wijn (wijn + "en");
-
- regadj : Str -> {s : AForm => Str} =
- \koud -> adj koud (koud+"e");
-
- adj : Str -> Str -> {s : AForm => Str} =
- \duur, dure -> {s = table {APred => duur; AAttr => dure}};
-
- copula : Number => Str =
- table {Sg => "is" ; Pl => "zijn"};
-}
diff --git a/examples/gadt-transfer/FoodsEng.gf b/examples/gadt-transfer/FoodsEng.gf
deleted file mode 100644
index e7359a4ff..000000000
--- a/examples/gadt-transfer/FoodsEng.gf
+++ /dev/null
@@ -1,43 +0,0 @@
--- (c) 2009 Aarne Ranta under LGPL
-
-concrete FoodsEng of Foods = {
- flags language = en_US;
- lincat
- Comment, Quality = {s : Str} ;
- Kind = {s : Number => Str} ;
- Item = {s : Str ; n : Number} ;
- lin
- Pred item quality =
- {s = item.s ++ copula ! item.n ++ quality.s} ;
- This = det Sg "this" ;
- That = det Sg "that" ;
- These = det Pl "these" ;
- Those = det Pl "those" ;
- Mod quality kind =
- {s = \\n => quality.s ++ kind.s ! n} ;
- Wine = regNoun "wine" ;
- Cheese = regNoun "cheese" ;
- Fish = noun "fish" "fish" ;
- Pizza = regNoun "pizza" ;
- Very a = {s = "very" ++ a.s} ;
- Fresh = adj "fresh" ;
- Warm = adj "warm" ;
- Italian = adj "Italian" ;
- Expensive = adj "expensive" ;
- Delicious = adj "delicious" ;
- Boring = adj "boring" ;
- param
- Number = Sg | Pl ;
- oper
- det : Number -> Str ->
- {s : Number => Str} -> {s : Str ; n : Number} =
- \n,det,noun -> {s = det ++ noun.s ! n ; n = n} ;
- noun : Str -> Str -> {s : Number => Str} =
- \man,men -> {s = table {Sg => man ; Pl => men}} ;
- regNoun : Str -> {s : Number => Str} =
- \car -> noun car (car + "s") ;
- adj : Str -> {s : Str} =
- \cold -> {s = cold} ;
- copula : Number => Str =
- table {Sg => "is" ; Pl => "are"} ;
-}
diff --git a/examples/gadt-transfer/Makefile b/examples/gadt-transfer/Makefile
deleted file mode 100644
index 7399656f6..000000000
--- a/examples/gadt-transfer/Makefile
+++ /dev/null
@@ -1,4 +0,0 @@
-all:
- gf -make -output-format=haskell --haskell=gadt FoodsEng.gf FoodsDut.gf
- ghc --make VeryFoods.hs
-
diff --git a/examples/gadt-transfer/README b/examples/gadt-transfer/README
deleted file mode 100644
index 10ff7543e..000000000
--- a/examples/gadt-transfer/README
+++ /dev/null
@@ -1,35 +0,0 @@
-AR 5/3/2011
-
-Example on using GADT and composOp in transfer.
-
-To compile:
-
- make
-
-To test:
-
- echo "this expensive boring wine is warm" | ./VeryFoods
- this expensive very boring wine is warm
-
- echo "deze dure wijn is saai" | ./VeryFoods
- deze dure wijn is erg saai
-
-Functionality: wraps every occurrence of "boring" with "very".
-
-This is implemented with a function that needs only two cases: one for "Boring" and another
-for the rest of trees. On the method, see
-
- B. Bringert and A. Ranta.
- A Pattern for Almost Compositional Functions.
- Journal of Functional Programming, 18(5-6), pp. 567-598, 2008.
- http://www.cse.chalmers.se/alumni/bringert/publ/composOp-jfp/composOp-jfp.pdf
-
-Source code:
-
- VeryFoods.hs -- main Haskell module, hand-written
- Makefile
- Foods.gf, FoodsEng.gf, FoodsDut.gf -- from GF/contrib/summerschool/foods/
-
-Foods.hs and Foods.pgf are generated by 'make'.
-
-
diff --git a/examples/gadt-transfer/VeryFoods.hs b/examples/gadt-transfer/VeryFoods.hs
deleted file mode 100644
index ad6b6dc7f..000000000
--- a/examples/gadt-transfer/VeryFoods.hs
+++ /dev/null
@@ -1,23 +0,0 @@
-{-# OPTIONS_GHC -fglasgow-exts #-}
-module Main where
-
-import PGF
-import Foods
-
--- example of using GADT: turn every occurrence of "boring" to "very boring"
-
-main = do
- pgf <- readPGF "Foods.pgf"
- interact (doVery pgf)
-
-doVery pgf s = case parseAllLang pgf (startCat pgf) s of
- (l,t:_):_ -> unlines $ return $ linearize pgf l $ gf $ veryC $ fg t
-
-veryC :: GComment -> GComment
-veryC = very
-
-very :: forall a. Foods.Tree a -> Foods.Tree a
-very t = case t of
- GBoring -> GVery GBoring
- _ -> composOp very t
-