diff options
author | Adam Chlipala <adamc@hcoop.net> | 2008-12-21 12:30:57 -0500 |
---|---|---|
committer | Adam Chlipala <adamc@hcoop.net> | 2008-12-21 12:30:57 -0500 |
commit | c2da8978286838c438aa471631155c4d6d8f760e (patch) | |
tree | 8193826346d3d4131730c22f1c5fb17eee1e0576 /src/mono_reduce.sml | |
parent | 90bac0f10328d81ab18be3726779fed0cf77f8dd (diff) |
Handling singnal bind
Diffstat (limited to 'src/mono_reduce.sml')
-rw-r--r-- | src/mono_reduce.sml | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/mono_reduce.sml b/src/mono_reduce.sml index e1da02c9..841e034e 100644 --- a/src/mono_reduce.sml +++ b/src/mono_reduce.sml @@ -77,6 +77,7 @@ fun impure (e, _) = | EClosure (_, es) => List.exists impure es | EJavaScript (_, e) => impure e | ESignalReturn e => impure e + | ESignalBind (e1, e2) => impure e1 orelse impure e2 val liftExpInExp = Monoize.liftExpInExp @@ -333,6 +334,7 @@ fun reduce file = | EUnurlify (e, _) => summarize d e | EJavaScript (_, e) => summarize d e | ESignalReturn e => summarize d e + | ESignalBind (e1, e2) => summarize d e1 @ summarize d e2 fun exp env e = @@ -478,6 +480,9 @@ fun reduce file = | EStrcat ((EPrim (Prim.String s1), _), (EPrim (Prim.String s2), _)) => EPrim (Prim.String (s1 ^ s2)) + | ESignalBind ((ESignalReturn e1, loc), e2) => + #1 (reduceExp env (EApp (e2, e1), loc)) + | _ => e in (*Print.prefaces "exp'" [("r", MonoPrint.p_exp env (r, ErrorMsg.dummySpan))];*) |