summaryrefslogtreecommitdiffstats
path: root/cps.sml
diff options
context:
space:
mode:
Diffstat (limited to 'cps.sml')
-rw-r--r--cps.sml4
1 files changed, 4 insertions, 0 deletions
diff --git a/cps.sml b/cps.sml
index cd61a7a..894c57e 100644
--- a/cps.sml
+++ b/cps.sml
@@ -47,6 +47,10 @@ struct
| Syntax.LInt i => cont (Syntax.VInt i)
| Syntax.LString s => cont (Syntax.VString s)
| Syntax.LRecord [] => cont (Syntax.VInt 0)
+ | Syntax.LSelect (i, expr) =>
+ let val temp = Gensym.new ()
+ in toCPS expr (fn x => Syntax.CSelect (i, x, temp, cont (Syntax.VVar temp)))
+ end
| Syntax.LRecord exprs =>
let
fun go [] vars =