summaryrefslogtreecommitdiff
path: root/book/examples/chapter8/CalculatorP.gf
diff options
context:
space:
mode:
authoraarne <aarne@chalmers.se>2010-11-22 12:55:37 +0000
committeraarne <aarne@chalmers.se>2010-11-22 12:55:37 +0000
commit76ba03b545600054176612201de78dca16eb65e1 (patch)
tree5615286b239bee637b32465e9cbf36807ab2c318 /book/examples/chapter8/CalculatorP.gf
parent0bf41793694e8b3101d09e34858eba8ab2c8c5b6 (diff)
started a subdir for the book
Diffstat (limited to 'book/examples/chapter8/CalculatorP.gf')
-rw-r--r--book/examples/chapter8/CalculatorP.gf14
1 files changed, 14 insertions, 0 deletions
diff --git a/book/examples/chapter8/CalculatorP.gf b/book/examples/chapter8/CalculatorP.gf
new file mode 100644
index 000000000..4e6315827
--- /dev/null
+++ b/book/examples/chapter8/CalculatorP.gf
@@ -0,0 +1,14 @@
+concrete CalculatorP of Calculator = open Prelude in {
+
+lincat
+ Exp = SS ;
+lin
+ EPlus = infix "+" ;
+ EMinus = infix "-" ;
+ ETimes = infix "*" ;
+ EDiv = infix "/" ;
+ EInt i = i ;
+oper
+ infix : Str -> SS -> SS -> SS = \f,x,y ->
+ ss ("(" ++ x.s ++ f ++ y.s ++ ")") ;
+}