From 1c155490c548c5a09208e766cb8809ec89bd3081 Mon Sep 17 00:00:00 2001 From: Neil Brown Date: Wed, 29 Aug 2007 14:07:52 +0000 Subject: [PATCH] Added support for the array constructors to typeOfExpression --- Types.hs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Types.hs b/Types.hs index 5d26bed..31645a4 100644 --- a/Types.hs +++ b/Types.hs @@ -201,6 +201,14 @@ typeOfExpression e A.BytesInExpr m e -> return A.Int A.BytesInType m t -> return A.Int A.OffsetOf m t n -> return A.Int + A.ExprConstr m (A.RangeConstr _ b e) -> + do bt <- typeOfExpression b + et <- typeOfExpression e + if bt == et then return (A.Array [A.UnknownDimension] bt) else dieP m "Types did not match for beginning and end of range" + A.ExprConstr m (A.RepConstr _ rep e) -> + do t <- typeOfExpression e + count <- evalIntExpression $ sizeOfReplicator rep + return $ A.Array [A.Dimension count] t --}}} returnTypesOfFunction :: (CSM m, Die m) => A.Name -> m [A.Type]