diff options
author | Joe Crayne <joe@jerkface.net> | 2019-03-22 19:14:27 -0400 |
---|---|---|
committer | Joe Crayne <joe@jerkface.net> | 2019-03-22 19:14:27 -0400 |
commit | 6cbcc42ef4ac75a9bccb4e9d0acc53116c7c68e8 (patch) | |
tree | 09ca5acc642cd194bb88506fcc5cad0aee836bbf | |
parent | a7ef7551b3bc078c6992619e3fe847324b074d24 (diff) |
Option to suppress do-syntax.
-rw-r--r-- | monkeypatch.hs | 8 |
1 files changed, 7 insertions, 1 deletions
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 | |||
573 | mixComments :: [StyledComment] -> [CCompoundBlockItem NodeInfo] -> [CCompoundBlockItem NodeInfo] | 573 | mixComments :: [StyledComment] -> [CCompoundBlockItem NodeInfo] -> [CCompoundBlockItem NodeInfo] |
574 | mixComments cs stmts = foldr insertComment stmts cs | 574 | mixComments cs stmts = foldr insertComment stmts cs |
575 | 575 | ||
576 | applyDoSyntax' C2HaskellOptions{oSuppressDo=True} x = x | ||
577 | applyDoSyntax' _ x = applyDoSyntax x | ||
578 | |||
576 | transpile :: C2HaskellOptions -> FilePath -> IncludeStack -> CTranslationUnit NodeInfo -> IO () | 579 | transpile :: C2HaskellOptions -> FilePath -> IncludeStack -> CTranslationUnit NodeInfo -> IO () |
577 | transpile o fname incs (CTranslUnit edecls _) = do | 580 | transpile o fname incs (CTranslUnit edecls _) = do |
578 | let db = foldr update initTranspile edecls | 581 | let db = foldr update initTranspile edecls |
@@ -632,7 +635,7 @@ transpile o fname incs (CTranslUnit edecls _) = do | |||
632 | return $ foldr applyComputation (Computation Map.empty Map.empty retUnit) xs | 635 | return $ foldr applyComputation (Computation Map.empty Map.empty retUnit) xs |
633 | case mhask of | 636 | case mhask of |
634 | Just hask -> do printHeader | 637 | Just hask -> do printHeader |
635 | mapM_ (putStrLn . (" "++)) $ lines $ HS.prettyPrint $ applyDoSyntax $ comp hask | 638 | mapM_ (putStrLn . (" "++)) $ lines $ HS.prettyPrint $ applyDoSyntax' o $ comp hask |
636 | Nothing -> forM_ (oSelectFunction o) $ \_ -> do | 639 | Nothing -> forM_ (oSelectFunction o) $ \_ -> do |
637 | printHeader | 640 | printHeader |
638 | forM_ bdy $ \d -> do | 641 | forM_ bdy $ \d -> do |
@@ -955,6 +958,7 @@ data C2HaskellOptions = C2HaskellOptions | |||
955 | , oPreprocess :: Bool | 958 | , oPreprocess :: Bool |
956 | , oTranspile :: Bool | 959 | , oTranspile :: Bool |
957 | , oCommentsOnly :: Bool | 960 | , oCommentsOnly :: Bool |
961 | , oSuppressDo :: Bool | ||
958 | } | 962 | } |
959 | 963 | ||
960 | defopts :: C2HaskellOptions | 964 | defopts :: C2HaskellOptions |
@@ -966,6 +970,7 @@ defopts = C2HaskellOptions | |||
966 | , oPreprocess = False | 970 | , oPreprocess = False |
967 | , oTranspile = False | 971 | , oTranspile = False |
968 | , oCommentsOnly = False | 972 | , oCommentsOnly = False |
973 | , oSuppressDo = False | ||
969 | } | 974 | } |
970 | 975 | ||
971 | parseOptions :: [String] -> C2HaskellOptions -> C2HaskellOptions | 976 | parseOptions :: [String] -> C2HaskellOptions -> C2HaskellOptions |
@@ -976,6 +981,7 @@ parseOptions ("-p":args) o = parseOptions args o{ oPrettyC = True } | |||
976 | parseOptions ("--cpp":args) o = parseOptions args o{ oPreprocess = True } | 981 | parseOptions ("--cpp":args) o = parseOptions args o{ oPreprocess = True } |
977 | parseOptions ("-v":args) o = parseOptions args o{ oVerbose = True } | 982 | parseOptions ("-v":args) o = parseOptions args o{ oVerbose = True } |
978 | parseOptions ("--tohs":args) o = parseOptions args o{ oTranspile = True } | 983 | parseOptions ("--tohs":args) o = parseOptions args o{ oTranspile = True } |
984 | parseOptions ("--nodo":args) o = parseOptions args o{ oSuppressDo = True } | ||
979 | parseOptions ("--comments":args) o = parseOptions args o{ oCommentsOnly = True } | 985 | parseOptions ("--comments":args) o = parseOptions args o{ oCommentsOnly = True } |
980 | parseOptions as o = error (show as) | 986 | parseOptions as o = error (show as) |
981 | 987 | ||