aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJuan J. Martinez <jjm@usebox.net>2022-08-16 23:10:06 +0100
committerJuan J. Martinez <jjm@usebox.net>2022-08-16 23:10:06 +0100
commit7b57942b3a10e51fdb7f78d276dc0187a22c3871 (patch)
tree8af77798f00353dcc77e85aa3e167f7aff9e0ba7 /src
parent55692e10192968ae7f040ceb9a8469b6ce2412c4 (diff)
downloadmicro-lang-hs-7b57942b3a10e51fdb7f78d276dc0187a22c3871.tar.gz
micro-lang-hs-7b57942b3a10e51fdb7f78d276dc0187a22c3871.zip
Test labels, test for errors WIP
Diffstat (limited to 'src')
-rw-r--r--src/Compiler.hs4
-rw-r--r--src/Error.hs5
2 files changed, 6 insertions, 3 deletions
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) =