diff options
author | Juan J. Martinez <jjm@usebox.net> | 2022-08-16 23:10:06 +0100 |
---|---|---|
committer | Juan J. Martinez <jjm@usebox.net> | 2022-08-16 23:10:06 +0100 |
commit | 7b57942b3a10e51fdb7f78d276dc0187a22c3871 (patch) | |
tree | 8af77798f00353dcc77e85aa3e167f7aff9e0ba7 /src | |
parent | 55692e10192968ae7f040ceb9a8469b6ce2412c4 (diff) | |
download | micro-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.hs | 4 | ||||
-rw-r--r-- | src/Error.hs | 5 |
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) = |