From 7b57942b3a10e51fdb7f78d276dc0187a22c3871 Mon Sep 17 00:00:00 2001 From: "Juan J. Martinez" Date: Tue, 16 Aug 2022 23:10:06 +0100 Subject: Test labels, test for errors WIP --- src/Compiler.hs | 4 ++-- src/Error.hs | 5 ++++- 2 files changed, 6 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/Compiler.hs b/src/Compiler.hs index 49af369..da25c5d 100644 --- a/src/Compiler.hs +++ b/src/Compiler.hs @@ -114,7 +114,7 @@ compile x = do Right (Just (A.FuncType params rtyp)) -> do r <- typecheckCall args params case r of - Just err -> addError $ Error err pos + Just err -> addError $ TypeError err pos Nothing -> return $ Right rtyp Right _ -> addError $ Error "non callable value in function call" pos _ -> return $ Right Nothing @@ -125,7 +125,7 @@ compile x = do Just (_, A.FuncType _ rtyp, _) -> do r <- typecheckReturn value rtyp case r of - Just err -> addError $ Error err pos + Just err -> addError $ TypeError err pos Nothing -> return $ Right rtyp (A.Var ident pos) -> do (ev, errs) <- get diff --git a/src/Error.hs b/src/Error.hs index f61cea2..19f88fd 100644 --- a/src/Error.hs +++ b/src/Error.hs @@ -4,7 +4,10 @@ import Data.List (sort) import Text.Parsec (SourcePos, errorPos) import Text.Parsec.Error (ParseError, errorMessages, showErrorMessages) -data Error = Error String SourcePos deriving (Eq) +data Error + = TypeError String SourcePos + | Error String SourcePos + deriving (Eq) instance Show Error where show (Error message pos) = -- cgit v1.2.3