From 6cbcc42ef4ac75a9bccb4e9d0acc53116c7c68e8 Mon Sep 17 00:00:00 2001 From: Joe Crayne Date: Fri, 22 Mar 2019 19:14:27 -0400 Subject: Option to suppress do-syntax. --- monkeypatch.hs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/monkeypatch.hs b/monkeypatch.hs index 37e52a6..bc55425 100644 --- a/monkeypatch.hs +++ b/monkeypatch.hs @@ -573,6 +573,9 @@ insertComment c stmts = everywhere (mkT go) stmts mixComments :: [StyledComment] -> [CCompoundBlockItem NodeInfo] -> [CCompoundBlockItem NodeInfo] mixComments cs stmts = foldr insertComment stmts cs +applyDoSyntax' C2HaskellOptions{oSuppressDo=True} x = x +applyDoSyntax' _ x = applyDoSyntax x + transpile :: C2HaskellOptions -> FilePath -> IncludeStack -> CTranslationUnit NodeInfo -> IO () transpile o fname incs (CTranslUnit edecls _) = do let db = foldr update initTranspile edecls @@ -632,7 +635,7 @@ transpile o fname incs (CTranslUnit edecls _) = do return $ foldr applyComputation (Computation Map.empty Map.empty retUnit) xs case mhask of Just hask -> do printHeader - mapM_ (putStrLn . (" "++)) $ lines $ HS.prettyPrint $ applyDoSyntax $ comp hask + mapM_ (putStrLn . (" "++)) $ lines $ HS.prettyPrint $ applyDoSyntax' o $ comp hask Nothing -> forM_ (oSelectFunction o) $ \_ -> do printHeader forM_ bdy $ \d -> do @@ -955,6 +958,7 @@ data C2HaskellOptions = C2HaskellOptions , oPreprocess :: Bool , oTranspile :: Bool , oCommentsOnly :: Bool + , oSuppressDo :: Bool } defopts :: C2HaskellOptions @@ -966,6 +970,7 @@ defopts = C2HaskellOptions , oPreprocess = False , oTranspile = False , oCommentsOnly = False + , oSuppressDo = False } parseOptions :: [String] -> C2HaskellOptions -> C2HaskellOptions @@ -976,6 +981,7 @@ parseOptions ("-p":args) o = parseOptions args o{ oPrettyC = True } parseOptions ("--cpp":args) o = parseOptions args o{ oPreprocess = True } parseOptions ("-v":args) o = parseOptions args o{ oVerbose = True } parseOptions ("--tohs":args) o = parseOptions args o{ oTranspile = True } +parseOptions ("--nodo":args) o = parseOptions args o{ oSuppressDo = True } parseOptions ("--comments":args) o = parseOptions args o{ oCommentsOnly = True } parseOptions as o = error (show as) -- cgit v1.2.3