From b34ca8a92df409006b8572b629e36bf157cf5584 Mon Sep 17 00:00:00 2001 From: Joe Crayne Date: Tue, 20 Nov 2018 23:44:58 -0500 Subject: wip: monkey-patch setter. Void return value. --- c2haskell.hs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/c2haskell.hs b/c2haskell.hs index 0e03cd7..dbdde9c 100644 --- a/c2haskell.hs +++ b/c2haskell.hs @@ -497,7 +497,7 @@ changeName f d = d makeAcceptableDecl (HS.TypeDecl a (DHead b (HS.Ident c signame)) ftyp) = (HS.TypeDecl a (DHead b (HS.Ident c signame)) (makeFunctionUseIO $ makeAcceptableImport ftyp)) -makeSetter d@(CDeclExt (CDecl xs ys pos)) = changeArgList (const voidp) $ changeName ("setf_"++) d +makeSetter d@(CDeclExt (CDecl xs ys pos)) = changeReturnValue (const voidReturnType) $ changeArgList (const voidp) $ changeName ("setf_"++) d changeArgList1 f (CDeclr a xs b c d) = CDeclr a (f xs) b c d @@ -509,6 +509,12 @@ changeArgList f (CFDefExt (CFunDef xs ys zs c d)) = CFDefExt (CFunDef xs (change changeArgList f (CDeclExt (CDecl xs ys pos)) = (CDeclExt (CDecl xs (changeArgList2 f ys) pos)) +changeReturnValue f (CFDefExt (CFunDef xs ys zs c d)) = (CFDefExt (CFunDef (f xs) ys zs c d)) +changeReturnValue f (CDeclExt (CDecl xs ys pos)) = (CDeclExt (CDecl (f xs) ys pos)) + +voidReturnType = [ CTypeSpec (CVoidType undefNode) ] + + voidp :: [CDerivedDeclarator NodeInfo] voidp = [ CFunDeclr (Right ( [ CDecl -- cgit v1.2.3