week45 mandatory part finished
[fp1415.git] / fp2 / week45 / mart / RefactorX.dcl
diff --git a/fp2/week45/mart/RefactorX.dcl b/fp2/week45/mart/RefactorX.dcl
new file mode 100644 (file)
index 0000000..e71f36b
--- /dev/null
@@ -0,0 +1,15 @@
+definition module RefactorX\r
+\r
+import StdEnv\r
+\r
+:: Expr = NR Int | VAR Name | OP Expr Operator Expr | LET Name Expr Expr\r
+:: Name :== String\r
+:: Operator = PLUS | MIN | MUL | DIV\r
+:: Val = Result Int | Undef\r
+\r
+from StdClass import class toString\r
+\r
+instance toString Expr\r
+free :: Expr -> [Name]\r
+remove_unused_lets :: Expr -> Expr\r
+eval :: Expr -> Val\r