7af12ece7c79b3a5d43db9c67b35d9ef9ad1d83d
[clean-tests.git] / eadt / main.icl
1 implementation module main
2
3 import Data.GenDefault
4 import StdEnv
5
6 import Sub
7
8 gDefault{|Expr|} = Lit 0
9
10 eval :: Expr -> Int
11 eval (Lit i) = i
12 eval (e1 +. e2) = eval e1 + eval e2
13 eval x = evalSub x
14
15 pprint :: Expr -> String
16 pprint (Lit i) = toString i
17 pprint (e1 +. e2) = pprint e1 +++ " + " +++ pprint e2
18 pprint x = pprintSub x
19
20 Start = pprint (Lit 5 -. Lit 6)