Refactor render code into SemSyn.renderCode
authorJoachim Breitner <mail@joachim-breitner.de>
Wed, 15 Sep 2010 13:37:21 +0000 (13:37 +0000)
committerJoachim Breitner <mail@joachim-breitner.de>
Wed, 15 Sep 2010 13:37:21 +0000 (13:37 +0000)
Main.hs
SemSyn.hs

diff --git a/Main.hs b/Main.hs
index b90e858..fcf52d1 100644 (file)
--- a/Main.hs
+++ b/Main.hs
@@ -215,21 +215,6 @@ usage = show $
                 lnextSpace (' ':_) = 0
                 lnextSpace (c:s)   = 1 + lnextSpace s 
 
-isNormalMode conf =
-    ( b18nMode conf == SemanticB18n ) 
-    || ( (b18nMode conf == SyntacticB18n || b18nMode conf == NoB18n)
-         && (execMode conf == Normal) )
-    
-
-isShapifyMode conf = 
-    (b18nMode conf == SyntacticB18n || b18nMode conf == NoB18n)
-    && (execMode conf == Shapify)
-
-isShapifyPlusMode conf =
-    (b18nMode conf == CombinedB18n) 
-    || ( (b18nMode conf == SyntacticB18n || b18nMode conf == NoB18n)
-         && (execMode conf == ShapifyPlus) )
-
 main :: IO ()
 main = do { args <- getArgs 
           ; let conf = adjustConfig $ parseArgs args defaultConfig
@@ -271,14 +256,7 @@ main = do { args <- getArgs
                                       ; print $ ppr p1 $$ ppr p2 $$ ppr p3
                                       ; putStrLn ""
                                       }
-                               _ | isNormalMode conf ->
-                                     print $ outputCode conf False (cprog) (typeInference cprog)
-                               _ | isShapifyMode conf -> 
-                                     print $ outputCode conf False (cprog) (shapify $ typeInference cprog)
-                               _ | isShapifyPlusMode conf -> 
-                                     print $ outputCode conf True  (cprog) (introNat $ shapify $ typeInference cprog)
-                               _ ->
-                                   print $ outputCode conf True  (cprog) (introNat $ shapify $ typeInference cprog)
+                               _ -> print $ renderCode conf cprog
                      }
           }
 
index 2017991..d5e0479 100644 (file)
--- a/SemSyn.hs
+++ b/SemSyn.hs
@@ -170,7 +170,29 @@ outputCode conf_ isShapify orig ast =
                   <> ppr (Name fName) <> text "_Bb rear s v" 
             _ ->
                 empty
-                                  
+
+
+isNormalMode conf =
+    ( b18nMode conf == SemanticB18n ) 
+    || ( (b18nMode conf == SyntacticB18n || b18nMode conf == NoB18n)
+         && (execMode conf == Normal) )
+
+isShapifyMode conf = 
+    (b18nMode conf == SyntacticB18n || b18nMode conf == NoB18n)
+    && (execMode conf == Shapify)
+
+isShapifyPlusMode conf =
+    (b18nMode conf == CombinedB18n) 
+    || ( (b18nMode conf == SyntacticB18n || b18nMode conf == NoB18n)
+         && (execMode conf == ShapifyPlus) )
+
+renderCode :: Config -> AST -> Doc
+renderCode conf cprog
+    | isNormalMode conf =      outputCode conf False (cprog) (typeInference cprog)
+    | isShapifyMode conf =     outputCode conf False (cprog) (shapify $ typeInference cprog)
+    | isShapifyPlusMode conf = outputCode conf True  (cprog) (introNat $ shapify $ typeInference cprog)
+    | otherwise =              outputCode conf True  (cprog) (introNat $ shapify $ typeInference cprog)
+
 
 checkBidirectionalizability :: AST -> Maybe String 
 checkBidirectionalizability ast =