small update fix
[fp1415.git] / fp2 / week45 / mart / RefactorX.dcl
1 definition module RefactorX
2
3 from StdClass import class toString
4 import StdEnv
5
6 :: Expr = NR Int | VAR Name | OP Expr Operator Expr | LET Name Expr Expr
7 :: Name :== String
8 :: Operator = PLUS | MIN | MUL | DIV
9 :: Val = Result Int | Undef
10
11
12 instance toString Expr
13 free :: Expr -> [Name]
14 remove_unused_lets :: Expr -> Expr
15 eval :: Expr -> Val