diff options
author | Adam Chlipala <adamc@hcoop.net> | 2008-06-10 13:14:45 -0400 |
---|---|---|
committer | Adam Chlipala <adamc@hcoop.net> | 2008-06-10 13:14:45 -0400 |
commit | be45a4a950e01689219ebc5032f53f66b012f660 (patch) | |
tree | b74bacc12e7b841b59020352554f5987a577e3e6 /src/compiler.sml | |
parent | 0e437095df380d43e148c1348b1d00692e881461 (diff) |
Monoize
Diffstat (limited to 'src/compiler.sml')
-rw-r--r-- | src/compiler.sml | 36 |
1 files changed, 33 insertions, 3 deletions
diff --git a/src/compiler.sml b/src/compiler.sml index 45fd88e4..20eb3ef5 100644 --- a/src/compiler.sml +++ b/src/compiler.sml @@ -70,17 +70,38 @@ fun elaborate env filename = fun corify eenv cenv filename = case elaborate eenv filename of NONE => NONE - | SOME (_, file) => SOME (Corify.corify file) + | SOME (_, file) => + if ErrorMsg.anyErrors () then + NONE + else + SOME (Corify.corify file) fun reduce eenv cenv filename = case corify eenv cenv filename of NONE => NONE - | SOME file => SOME (Reduce.reduce (Shake.shake file)) + | SOME file => + if ErrorMsg.anyErrors () then + NONE + else + SOME (Reduce.reduce (Shake.shake file)) fun shake eenv cenv filename = case reduce eenv cenv filename of NONE => NONE - | SOME file => SOME (Shake.shake file) + | SOME file => + if ErrorMsg.anyErrors () then + NONE + else + SOME (Shake.shake file) + +fun monoize eenv cenv filename = + case shake eenv cenv filename of + NONE => NONE + | SOME file => + if ErrorMsg.anyErrors () then + NONE + else + SOME (Monoize.monoize cenv file) fun testParse filename = case parse filename of @@ -125,4 +146,13 @@ fun testShake filename = handle CoreEnv.UnboundNamed n => print ("Unbound named " ^ Int.toString n ^ "\n") +fun testMonoize filename = + (case monoize ElabEnv.basis CoreEnv.basis filename of + NONE => print "Failed\n" + | SOME file => + (Print.print (MonoPrint.p_file MonoEnv.basis file); + print "\n")) + handle MonoEnv.UnboundNamed n => + print ("Unbound named " ^ Int.toString n ^ "\n") + end |