summaryrefslogtreecommitdiff
path: root/src/cjrize.sml
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adamc@hcoop.net>2009-12-13 14:20:41 -0500
committerGravatar Adam Chlipala <adamc@hcoop.net>2009-12-13 14:20:41 -0500
commitb225596addee1a3cfd6c3189cff923e7f0e8f7c9 (patch)
tree14b2deefac4e078e2d5e4e5bdd076749de8659d8 /src/cjrize.sml
parent1063981355a5a041793c095c6fd89b91fa0bd579 (diff)
Initializers and setval
Diffstat (limited to 'src/cjrize.sml')
-rw-r--r--src/cjrize.sml17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/cjrize.sml b/src/cjrize.sml
index 703b9477..3936f6a5 100644
--- a/src/cjrize.sml
+++ b/src/cjrize.sml
@@ -468,6 +468,13 @@ fun cifyExp (eAll as (e, loc), sm) =
in
((L'.ENextval {seq = e, prepared = NONE}, loc), sm)
end
+ | L.ESetval (e1, e2) =>
+ let
+ val (e1, sm) = cifyExp (e1, sm)
+ val (e2, sm) = cifyExp (e2, sm)
+ in
+ ((L'.ESetval {seq = e1, count = e2}, loc), sm)
+ end
| L.EUnurlify (e, t) =>
let
@@ -653,6 +660,16 @@ fun cifyDecl ((d, loc), sm) =
| L.DJavaScript s => (SOME (L'.DJavaScript s, loc), NONE, sm)
| L.DCookie args => (SOME (L'.DCookie args, loc), NONE, sm)
| L.DStyle args => (SOME (L'.DStyle args, loc), NONE, sm)
+ | L.DInitializer e =>
+ (case #1 e of
+ L.EAbs (_, _, _, e) =>
+ let
+ val (e, sm) = cifyExp (e, sm)
+ in
+ (SOME (L'.DInitializer e, loc), NONE, sm)
+ end
+ | _ => (ErrorMsg.errorAt loc "Initializer has not been fully determined";
+ (NONE, NONE, sm)))
fun cjrize ds =
let