Catch-all aliases working again
[hcoop/domtool2.git] / src / eval.sml
index 6cbeca7..1fec487 100644 (file)
@@ -60,7 +60,7 @@ fun exec' evs (eAll as (e, _)) =
     case e of
        ESkip => SM.empty
       | ESet (ev, e) => SM.insert (SM.empty, ev, e)
-      | EGet (x, ev, e) => exec' evs (Reduce.subst x (lookup (evs, ev)) e)
+      | EGet (x, _, ev, e) => exec' evs (Reduce.subst x (lookup (evs, ev)) e)
       | ESeq es =>
        let
            val (new, _) =
@@ -77,9 +77,8 @@ fun exec' evs (eAll as (e, _)) =
       | ELocal (e1, e2) =>
        let
            val evs' = exec' evs e1
-           val evs'' = exec' (conjoin (evs, evs')) e2
        in
-           conjoin (evs, evs'')
+           exec' (conjoin (evs, evs')) e2
        end
       | EWith (e1, e2) =>
        let
@@ -103,7 +102,7 @@ fun exec' evs (eAll as (e, _)) =
        in
            case Env.action prim of
                NONE => raise Fail "Unbound primitive action"
-             | SOME action => action (evs, args)
+             | SOME action => action (evs, List.map (Reduce.reduceExp Env.empty) args)
        end
 
 fun exec evs e =