From d2416679eff983d31ea9b2de4bdd0124c50bd20d Mon Sep 17 00:00:00 2001 From: Michael Andreen Date: Mon, 27 Feb 2006 19:07:16 +0000 Subject: [PATCH] some restructuring --- Typecheck.hs | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/Typecheck.hs b/Typecheck.hs index ec40b1f..2414203 100644 --- a/Typecheck.hs +++ b/Typecheck.hs @@ -16,13 +16,12 @@ typeCheckExp :: (MonadState Types m) => Exp -> m Type typeCheckExp (BiOpExp e o e') = do t1 <- typeCheckExp e t2 <- typeCheckExp e' - if not(t1 == t2) then fail "" - else case inList o [Eq,NEq] of - True -> return TBool - False -> if not(t1 == TInt) then fail "" - else case inList o [Plus,Minus,Times,Div] of - True -> return TInt - False -> return TBool + if not(t1 == t2) then fail "The parameters for the binary operator aren't equal" + else if inList o [Eq,NEq] then return TBool + else if not(t1 == TInt) then fail "The parameters need to be of type int" + else if inList o [Plus,Minus,Times,Div] + then return TInt + else return TBool typeCheckExp (EVar i) = typeCheckVar i typeCheckExp (EAss i e) = do a <- typeCheckVar i -- 2.39.2