Change type of checkBidirectionalizability to return Maybe String
authorJoachim Breitner <mail@joachim-breitner.de>
Mon, 13 Sep 2010 20:13:13 +0000 (20:13 +0000)
committerJoachim Breitner <mail@joachim-breitner.de>
Mon, 13 Sep 2010 20:13:13 +0000 (20:13 +0000)
SemSyn.hs

index cd51c89..2017991 100644 (file)
--- a/SemSyn.hs
+++ b/SemSyn.hs
@@ -172,13 +172,13 @@ outputCode conf_ isShapify orig ast =
                 empty
                                   
 
-checkBidirectionalizability :: AST -> AST 
+checkBidirectionalizability :: AST -> Maybe String 
 checkBidirectionalizability ast = 
     case (checkTreeless $ eraseType ast, checkAffine $ eraseType ast)  of 
-      (Nothing, Nothing) -> ast
-      (Just (e,d),Nothing)       -> error $ showTreelessError (e,d) 
-      (Nothing, Just (vs,d'))    -> error $ showAffineError   (vs,d')
-      (Just (e,d), Just (vs,d')) -> error $ showTreelessError (e,d) ++ "\n" ++ showAffineError (vs,d') 
+      (Nothing, Nothing) -> Nothing
+      (Just (e,d),Nothing)       -> Just $ showTreelessError (e,d) 
+      (Nothing, Just (vs,d'))    -> Just $ showAffineError   (vs,d')
+      (Just (e,d), Just (vs,d')) -> Just $ showTreelessError (e,d) ++ "\n" ++ showAffineError (vs,d') 
     where
       showTreelessError (e,d)
           = show $ (text "Error: program is not treeless due to expression" $$