Generate size arrays using IsExpr rather than Is.

This wasn't actually wrong, but everywhere else uses IsExpr for Val
abbreviations.
This commit is contained in:
Adam Sampson 2008-05-26 17:19:25 +00:00
parent d9e00294f9
commit d8d6ab12cc
2 changed files with 11 additions and 10 deletions

View File

@ -164,12 +164,12 @@ declareSizesArray = applyDepthSM doStructured
let sizeDiff = length srcDs - length ds let sizeDiff = length srcDs - length ds
subSrcSizeVar = A.SubscriptedVariable m (A.SubscriptFromFor m (makeConstant m sizeDiff) (makeConstant m $ length ds)) varSrcSizes subSrcSizeVar = A.SubscriptedVariable m (A.SubscriptFromFor m (makeConstant m sizeDiff) (makeConstant m $ length ds)) varSrcSizes
sizeType = A.Array [makeDimension m $ length ds] A.Int sizeType = A.Array [makeDimension m $ length ds] A.Int
sizeSpecType = case sliceSize of sizeExpr = case sliceSize of
Just exp -> let subDims = [A.SubscriptedVariable m (A.Subscript m A.NoCheck $ makeConstant m n) varSrcSizes | n <- [1 .. (length srcDs - 1)]] in Just exp -> let subDims = [A.SubscriptedVariable m (A.Subscript m A.NoCheck $ makeConstant m n) varSrcSizes | n <- [1 .. (length srcDs - 1)]] in
A.IsExpr m A.ValAbbrev sizeType $
A.Literal m sizeType $ A.ArrayLiteral m $ A.Literal m sizeType $ A.ArrayLiteral m $
[A.ArrayElemExpr exp] ++ map (A.ArrayElemExpr . A.ExprVariable m) subDims [A.ArrayElemExpr exp] ++ map (A.ArrayElemExpr . A.ExprVariable m) subDims
Nothing -> A.Is m A.ValAbbrev sizeType subSrcSizeVar Nothing -> A.ExprVariable m subSrcSizeVar
sizeSpecType = A.IsExpr m A.ValAbbrev sizeType sizeExpr
defineSizesName m n_sizes sizeSpecType defineSizesName m n_sizes sizeSpecType
return $ A.Specification m n_sizes sizeSpecType return $ A.Specification m n_sizes sizeSpecType

View File

@ -257,7 +257,8 @@ qcTestDeclareSizes =
(foldr (A.SubscriptedVariable emptyMeta) (variable "src") subs) (foldr (A.SubscriptedVariable emptyMeta) (variable "src") subs)
,specSizes, defSrc) ,specSizes, defSrc)
where where
specSizes = A.Is emptyMeta A.ValAbbrev (A.Array [dimension $ length destDims] A.Int) $ specSizes = A.IsExpr emptyMeta A.ValAbbrev (A.Array [dimension $ length destDims] A.Int) $
A.ExprVariable m $
A.SubscriptedVariable emptyMeta (A.SubscriptFromFor emptyMeta A.SubscriptedVariable emptyMeta (A.SubscriptFromFor emptyMeta
(intLiteral $ toInteger $ length srcDims - length destDims) (intLiteral $ toInteger $ length srcDims - length destDims)
(intLiteral $ toInteger $ length destDims) (intLiteral $ toInteger $ length destDims)