summaryrefslogtreecommitdiff
path: root/src/compiler.sml
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adamc@hcoop.net>2008-06-10 13:14:45 -0400
committerGravatar Adam Chlipala <adamc@hcoop.net>2008-06-10 13:14:45 -0400
commitbe45a4a950e01689219ebc5032f53f66b012f660 (patch)
treeb74bacc12e7b841b59020352554f5987a577e3e6 /src/compiler.sml
parent0e437095df380d43e148c1348b1d00692e881461 (diff)
Monoize
Diffstat (limited to 'src/compiler.sml')
-rw-r--r--src/compiler.sml36
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