HCoop
/
hcoop
/
domtool2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix regeneration of multi-file dependencies
[hcoop/domtool2.git]
/
src
/
eval.sml
diff --git
a/src/eval.sml
b/src/eval.sml
index
0cabf34
..
08fd7f5
100644
(file)
--- a/
src/eval.sml
+++ b/
src/eval.sml
@@
-60,7
+60,12
@@
fun exec' evs (eAll as (e, _)) =
case e of
ESkip => SM.empty
| ESet (ev, e) => SM.insert (SM.empty, ev, 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) =>
+ let
+ val e' = Reduce.subst x (lookup (evs, ev)) e
+ in
+ exec' evs (Reduce.reduceExp Env.empty e')
+ end
| ESeq es =>
let
val (new, _) =
| ESeq es =>
let
val (new, _) =
@@
-102,7
+107,7
@@
fun exec' evs (eAll as (e, _)) =
in
case Env.action prim of
NONE => raise Fail "Unbound primitive action"
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 =
end
fun exec evs e =
@@
-113,4
+118,6
@@
fun exec evs e =
Env.post ()
end
Env.post ()
end
+val exec' = fn evs => fn e => conjoin (evs, exec' evs e)
+
end
end