From 7bb298c12edc219c40c16db31a40dba9db4702fc Mon Sep 17 00:00:00 2001 From: Joe Crayne Date: Fri, 22 Mar 2019 04:28:47 -0400 Subject: Use return () as default statement. --- monkeypatch.hs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/monkeypatch.hs b/monkeypatch.hs index 95cf709..10f868f 100644 --- a/monkeypatch.hs +++ b/monkeypatch.hs @@ -160,8 +160,8 @@ cvarName :: CExpression a -> Maybe String cvarName (CVar (C.Ident n _ _) _) = Just n cvarName _ = Nothing -hsopUnit :: HS.Exp () -hsopUnit = HS.Con () (Special () (UnitCon ())) +retUnit :: HS.Exp () +retUnit = App () (hsvar "return") $ HS.Con () (Special () (UnitCon ())) infixOp :: HS.Exp () -> String -> HS.Exp () -> HS.Exp () @@ -300,7 +300,7 @@ grokExpression fe (CStatExpr (CCompound idents xs _) _) = do [CBlockStmt (CExpr mexp ni)] -> Just $ CBlockStmt (CReturn mexp ni) _ -> Just (head y) -- Nothing FIXME gs <- mapM (grokStatement fe) (reverse $ y' : ys) - let s0 = foldr applyComputation (Computation Map.empty Map.empty (App () (hsvar "return") hsopUnit)) gs + let s0 = foldr applyComputation (Computation Map.empty Map.empty retUnit) gs s1 = fmap (\xp -> Paren () xp) s0 hv = uniqIdentifier "ret" (compFree s1) k = uniqIdentifier "go" (compFree s1) @@ -628,7 +628,7 @@ transpile o fname incs (CTranslUnit edecls _) = do else do let mhask = do xs <- mapM (grokStatement fe) bdy - return $ foldr applyComputation (Computation Map.empty Map.empty hsopUnit) xs + return $ foldr applyComputation (Computation Map.empty Map.empty retUnit) xs case mhask of Just hask -> do printHeader mapM_ (putStrLn . (" "++)) $ lines $ HS.prettyPrint $ comp hask -- cgit v1.2.3