week 45 finish
[fp1415.git] / fp2 / week45 / mart / RefactorX.dcl
1 // Mart Lubbers s4109503, Camil Staps s4498062
2
3 definition module RefactorX
4
5 from StdClass import class toString
6 import StdEnv
7
8 :: Expr = NR Int | VAR Name | OP Expr Operator Expr | LET Name Expr Expr
9 :: Name :== String
10 :: Operator = PLUS | MIN | MUL | DIV
11 :: Val = Result Int | Undef
12
13
14 instance toString Expr
15 free :: Expr -> [Name]
16 remove_unused_lets :: Expr -> Expr
17 eval :: Expr -> Val