summaryrefslogtreecommitdiff
path: root/book/examples/chapter8/CalculatorJ.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/CalculatorJ.gf
parent0bf41793694e8b3101d09e34858eba8ab2c8c5b6 (diff)
started a subdir for the book
Diffstat (limited to 'book/examples/chapter8/CalculatorJ.gf')
-rw-r--r--book/examples/chapter8/CalculatorJ.gf13
1 files changed, 13 insertions, 0 deletions
diff --git a/book/examples/chapter8/CalculatorJ.gf b/book/examples/chapter8/CalculatorJ.gf
new file mode 100644
index 000000000..c5f40c8d3
--- /dev/null
+++ b/book/examples/chapter8/CalculatorJ.gf
@@ -0,0 +1,13 @@
+concrete CalculatorJ of Calculator = open Prelude in {
+lincat
+ Exp = SS ;
+lin
+ EPlus = postfix "iadd" ;
+ EMinus = postfix "isub" ;
+ ETimes = postfix "imul" ;
+ EDiv = postfix "idiv" ;
+ EInt i = ss ("ldc" ++ i.s) ;
+oper
+ postfix : Str -> SS -> SS -> SS = \op,x,y ->
+ ss (x.s ++ ";" ++ y.s ++ ";" ++ op) ;
+}