summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoe Crayne <joe@jerkface.net>2018-11-20 23:44:58 -0500
committerJoe Crayne <joe@jerkface.net>2018-11-20 23:44:58 -0500
commitb34ca8a92df409006b8572b629e36bf157cf5584 (patch)
tree58b0f381623924d8e4664b0ecb932e4cef7198e3
parenta59351a64b8cb9ad7fb208281b6f3232c62f2afe (diff)
wip: monkey-patch setter. Void return value.
-rw-r--r--c2haskell.hs8
1 files changed, 7 insertions, 1 deletions
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
497makeAcceptableDecl (HS.TypeDecl a (DHead b (HS.Ident c signame)) ftyp) 497makeAcceptableDecl (HS.TypeDecl a (DHead b (HS.Ident c signame)) ftyp)
498 = (HS.TypeDecl a (DHead b (HS.Ident c signame)) (makeFunctionUseIO $ makeAcceptableImport ftyp)) 498 = (HS.TypeDecl a (DHead b (HS.Ident c signame)) (makeFunctionUseIO $ makeAcceptableImport ftyp))
499 499
500makeSetter d@(CDeclExt (CDecl xs ys pos)) = changeArgList (const voidp) $ changeName ("setf_"++) d 500makeSetter d@(CDeclExt (CDecl xs ys pos)) = changeReturnValue (const voidReturnType) $ changeArgList (const voidp) $ changeName ("setf_"++) d
501 501
502changeArgList1 f (CDeclr a xs b c d) = CDeclr a (f xs) b c d 502changeArgList1 f (CDeclr a xs b c d) = CDeclr a (f xs) b c d
503 503
@@ -509,6 +509,12 @@ changeArgList f (CFDefExt (CFunDef xs ys zs c d)) = CFDefExt (CFunDef xs (change
509changeArgList f (CDeclExt (CDecl xs ys pos)) = (CDeclExt (CDecl xs (changeArgList2 f ys) pos)) 509changeArgList f (CDeclExt (CDecl xs ys pos)) = (CDeclExt (CDecl xs (changeArgList2 f ys) pos))
510 510
511 511
512changeReturnValue f (CFDefExt (CFunDef xs ys zs c d)) = (CFDefExt (CFunDef (f xs) ys zs c d))
513changeReturnValue f (CDeclExt (CDecl xs ys pos)) = (CDeclExt (CDecl (f xs) ys pos))
514
515voidReturnType = [ CTypeSpec (CVoidType undefNode) ]
516
517
512voidp :: [CDerivedDeclarator NodeInfo] 518voidp :: [CDerivedDeclarator NodeInfo]
513voidp = [ CFunDeclr 519voidp = [ CFunDeclr
514 (Right ( [ CDecl 520 (Right ( [ CDecl