diff options
author | Joe Crayne <joe@jerkface.net> | 2018-11-20 23:44:58 -0500 |
---|---|---|
committer | Joe Crayne <joe@jerkface.net> | 2018-11-20 23:44:58 -0500 |
commit | b34ca8a92df409006b8572b629e36bf157cf5584 (patch) | |
tree | 58b0f381623924d8e4664b0ecb932e4cef7198e3 | |
parent | a59351a64b8cb9ad7fb208281b6f3232c62f2afe (diff) |
wip: monkey-patch setter. Void return value.
-rw-r--r-- | c2haskell.hs | 8 |
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 | |||
497 | makeAcceptableDecl (HS.TypeDecl a (DHead b (HS.Ident c signame)) ftyp) | 497 | makeAcceptableDecl (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 | ||
500 | makeSetter d@(CDeclExt (CDecl xs ys pos)) = changeArgList (const voidp) $ changeName ("setf_"++) d | 500 | makeSetter d@(CDeclExt (CDecl xs ys pos)) = changeReturnValue (const voidReturnType) $ changeArgList (const voidp) $ changeName ("setf_"++) d |
501 | 501 | ||
502 | changeArgList1 f (CDeclr a xs b c d) = CDeclr a (f xs) b c d | 502 | changeArgList1 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 | |||
509 | changeArgList f (CDeclExt (CDecl xs ys pos)) = (CDeclExt (CDecl xs (changeArgList2 f ys) pos)) | 509 | changeArgList f (CDeclExt (CDecl xs ys pos)) = (CDeclExt (CDecl xs (changeArgList2 f ys) pos)) |
510 | 510 | ||
511 | 511 | ||
512 | changeReturnValue f (CFDefExt (CFunDef xs ys zs c d)) = (CFDefExt (CFunDef (f xs) ys zs c d)) | ||
513 | changeReturnValue f (CDeclExt (CDecl xs ys pos)) = (CDeclExt (CDecl (f xs) ys pos)) | ||
514 | |||
515 | voidReturnType = [ CTypeSpec (CVoidType undefNode) ] | ||
516 | |||
517 | |||
512 | voidp :: [CDerivedDeclarator NodeInfo] | 518 | voidp :: [CDerivedDeclarator NodeInfo] |
513 | voidp = [ CFunDeclr | 519 | voidp = [ CFunDeclr |
514 | (Right ( [ CDecl | 520 | (Right ( [ CDecl |