summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoe Crayne <joe@jerkface.net>2018-11-21 14:50:23 -0500
committerJoe Crayne <joe@jerkface.net>2018-11-21 14:50:23 -0500
commit247fc0956e73356ec9339d9d8033749f707a3f38 (patch)
treeb05779a6de3ca2f2df905348c8d531fd9a5caf56
parent4c37b2f61273995fe7126a57b8c47a6ebda0b6a2 (diff)
Put haskell type in stub error message.
-rw-r--r--c2haskell.hs11
1 files changed, 5 insertions, 6 deletions
diff --git a/c2haskell.hs b/c2haskell.hs
index c55458a..df97487 100644
--- a/c2haskell.hs
+++ b/c2haskell.hs
@@ -497,6 +497,7 @@ changeName f d = d
497 497
498makeAcceptableDecl (HS.TypeDecl a (DHead b (HS.Ident c signame)) ftyp) 498makeAcceptableDecl (HS.TypeDecl a (DHead b (HS.Ident c signame)) ftyp)
499 = (HS.TypeDecl a (DHead b (HS.Ident c signame)) (makeFunctionUseIO $ makeAcceptableImport ftyp)) 499 = (HS.TypeDecl a (DHead b (HS.Ident c signame)) (makeFunctionUseIO $ makeAcceptableImport ftyp))
500makeAcceptableDecl (HS.TypeSig a b ftyp) = HS.TypeSig a b (makeFunctionUseIO $ makeAcceptableImport ftyp)
500 501
501makeSetter d = -- @(CDeclExt (CDecl xs ys pos)) = 502makeSetter d = -- @(CDeclExt (CDecl xs ys pos)) =
502 let name = concatMap identToString $ take 1 $ catMaybes $ sym d 503 let name = concatMap identToString $ take 1 $ catMaybes $ sym d
@@ -537,7 +538,8 @@ makeStub d = -- @(CDeclExt (CDecl xs ys pos)) =
537 (args,vs) = makeParameterNames oargs 538 (args,vs) = makeParameterNames oargs
538 name = concatMap identToString $ take 1 $ catMaybes $ sym d 539 name = concatMap identToString $ take 1 $ catMaybes $ sym d
539 rval = True -- todo: Set False for void function. 540 rval = True -- todo: Set False for void function.
540 in setBody (stubBody ("f_"++name) vs rval) $ changeArgList (const $ args:xs) d 541 msg = "undefined: " ++ HS.prettyPrint (makeAcceptableDecl $ head $ sig d) ++ "\n"
542 in setBody (stubBody ("f_"++name) vs rval msg) $ changeArgList (const $ args:xs) d
541 543
542 544
543parameterIdent :: CDeclaration a -> Maybe Ident 545parameterIdent :: CDeclaration a -> Maybe Ident
@@ -585,7 +587,7 @@ voidp = [ CFunDeclr
585 where n = undefNode 587 where n = undefNode
586 588
587 589
588stubBody name vs rval = 590stubBody name vs rval msg =
589 CCompound [] 591 CCompound []
590 [ CBlockStmt 592 [ CBlockStmt
591 (CIf 593 (CIf
@@ -614,10 +616,7 @@ stubBody name vs rval =
614 undefNode 616 undefNode
615 where 617 where
616 printmsg = (CExpr (Just (C.CCall (CVar (C.Ident "fputs" 0 undefNode) undefNode) 618 printmsg = (CExpr (Just (C.CCall (CVar (C.Ident "fputs" 0 undefNode) undefNode)
617 [ CConst 619 [ CConst (CStrConst (cString msg) undefNode)
618 (CStrConst
619 (cString $ "missing symbol: " ++ name ++ ".\n")
620 undefNode)
621 , CVar (C.Ident "stderr" 0 undefNode) undefNode 620 , CVar (C.Ident "stderr" 0 undefNode) undefNode
622 ] 621 ]
623 undefNode)) undefNode) 622 undefNode)) undefNode)