Add primitive action handlers
[hcoop/domtool2.git] / src / main.sml
index 7f7d2c0..7bc4599 100644 (file)
@@ -30,6 +30,20 @@ val tInit = (TAction ((CRoot, dmy),
             dmy)
            
 fun check fname =
             dmy)
            
 fun check fname =
+    let
+       val prog = Parse.parse fname
+    in
+       if !ErrorMsg.anyErrors then
+           ()
+       else
+           let
+               val G' = Tycheck.checkFile Env.empty tInit prog
+           in
+               ()
+           end
+    end
+
+fun reduce fname =
     let
        val prog = Parse.parse fname
     in
     let
        val prog = Parse.parse fname
     in
@@ -56,4 +70,23 @@ fun check fname =
            end
     end
 
            end
     end
 
+fun eval fname =
+    let
+       val prog = Parse.parse fname
+    in
+       if !ErrorMsg.anyErrors then
+           ()
+       else
+           let
+               val G' = Tycheck.checkFile Env.empty tInit prog
+           in
+               if !ErrorMsg.anyErrors then
+                   ()
+               else
+                   case prog of
+                       (_, SOME body) => Eval.exec StringMap.empty body
+                     | _ => ()
+           end
+    end
+
 end
 end