Renamed one of the array functions in the function table to be clearer

This commit is contained in:
Neil Brown 2008-03-01 20:22:34 +00:00
parent 01ac2ef21d
commit 60daa07b93
3 changed files with 12 additions and 12 deletions

View File

@ -67,7 +67,7 @@ cgenOps = GenOps {
genAlt = cgenAlt,
genAllocMobile = cgenAllocMobile,
genArrayLiteralElems = cgenArrayLiteralElems,
genArraySize = cgenArraySize,
genArraySizeDecl = cgenArraySizeDecl,
genArraySizesLiteral = cgenArraySizesLiteral,
genArrayStoreName = genName,
genArraySubscript = cgenArraySubscript,
@ -1003,7 +1003,7 @@ cgenSlice v@(A.SubscriptedVariable _ _ (A.Variable _ on)) start count ds
-- We need to disable the index check here because we might be taking
-- element 0 of a 0-length array -- which is valid.
= (tell ["&"] >> call genVariableUnchecked v,
call genArraySize False
call genArraySizeDecl False
(do genLeftB
tell ["occam_check_slice("]
call genExpression start
@ -1021,8 +1021,8 @@ cgenSlice v@(A.SubscriptedVariable _ _ (A.Variable _ on)) start count ds
genRightB
))
cgenArraySize :: Bool -> CGen () -> A.Name -> CGen ()
cgenArraySize isPtr size n
cgenArraySizeDecl :: Bool -> CGen () -> A.Name -> CGen ()
cgenArraySizeDecl isPtr size n
= if isPtr
then do tell ["const int*"]
genName n
@ -1052,7 +1052,7 @@ abbrevVariable am (A.Array _ _) v@(A.SubscriptedVariable _ (A.Subscript _ _) _)
genAASize (A.SubscriptedVariable _ (A.Subscript _ _) v) arg
= genAASize v (arg + 1)
genAASize (A.Variable _ on) arg
= call genArraySize True
= call genArraySizeDecl True
(tell ["&"] >> genName on >> tell ["_sizes[", show arg, "]"])
genAASize (A.DirectedVariable _ _ v) arg
= const $ call genMissing "Cannot abbreviate a directed variable as an array"
@ -1064,7 +1064,7 @@ abbrevVariable am (A.Array ds _) v@(A.SubscriptedVariable m (A.SubscriptFrom _ s
abbrevVariable am (A.Array ds _) v@(A.SubscriptedVariable m (A.SubscriptFor _ count) _)
= call genSlice v (makeConstant m 0) count ds
abbrevVariable am (A.Array _ _) v
= (call genVariable v, call genArraySize True (call genVariable v >> tell ["_sizes"]))
= (call genVariable v, call genArraySizeDecl True (call genVariable v >> tell ["_sizes"]))
abbrevVariable am (A.Chan {}) v
= (call genVariable v, noSize)
abbrevVariable am (A.Record _) v
@ -1106,7 +1106,7 @@ cgenRetypeSizes m destT destN srcT srcV
dieP m "genRetypeSizes expecting free dimension"
A.Dimension n -> tell [show n]
| d <- destDS]
call genArraySize False (genLeftB >> seqComma dims >> genRightB) destN
call genArraySizeDecl False (genLeftB >> seqComma dims >> genRightB) destN
-- Not array; just check the size is 1.
_ ->
@ -1181,7 +1181,7 @@ cgenFlatArraySize ds
-- | Declare an _sizes array for a variable.
cdeclareArraySizes :: A.Type -> A.Name -> CGen ()
cdeclareArraySizes t name
= call genArraySize False (call genArraySizesLiteral name t) name
= call genArraySizeDecl False (call genArraySizesLiteral name t) name
-- | Generate a C literal to initialise an _sizes array with, where all the
-- dimensions are fixed.

View File

@ -87,7 +87,7 @@ data GenOps = GenOps {
-- | Generates the given array element expressions as a flattened (one-dimensional) list of literals
genArrayLiteralElems :: [A.ArrayElem] -> CGen (),
-- | Declares a constant array for the sizes (dimensions) of a C array.
genArraySize :: Bool -> CGen () -> A.Name -> CGen (),
genArraySizeDecl :: Bool -> CGen () -> A.Name -> CGen (),
-- | Writes out the dimensions of an array, that can be used to initialise the sizes of an array. Fails if there is an 'A.UnknownDimension' present.
genArraySizesLiteral :: A.Name -> A.Type -> CGen (),
-- | Writes out the actual data storage array name.

View File

@ -293,8 +293,8 @@ testArraySizes = TestList
testBoth "genArraySizesLiteral 0" "{3}" "tockArrayView<int,1>(foo_actual,tockDims(3))" (tcall2 genArraySizesLiteral foo $ A.Array [A.Dimension 3] A.Int)
,testBoth "genArraySizesLiteral 1" "{3,6,8}" "tockArrayView<int,3>(foo_actual,tockDims(3,6,8))" (tcall2 genArraySizesLiteral foo $ A.Array [A.Dimension 3, A.Dimension 6, A.Dimension 8] A.Int)
,testBothFail "genArraySizesLiteral 2" (tcall2 genArraySizesLiteral foo $ A.Array [A.Dimension 6, A.UnknownDimension] A.Int)
,testBothSame "genArraySize 0" "const int*foo_sizes=@;" (tcall3 genArraySize True at foo)
,testBothSame "genArraySize 1" "const int foo_sizes[]=@;" (tcall3 genArraySize False at foo)
,testBothSame "genArraySizeDecl 0" "const int*foo_sizes=@;" (tcall3 genArraySizeDecl True at foo)
,testBothSame "genArraySizeDecl 1" "const int foo_sizes[]=@;" (tcall3 genArraySizeDecl False at foo)
,testBothSame "genArrayLiteralElems 0" "$" $ unfolded (tcall genArrayLiteralElems [A.ArrayElemExpr undefined])
,testBothSame "genArrayLiteralElems 1" "$,$,$" $ unfolded (tcall genArrayLiteralElems [A.ArrayElemExpr undefined, A.ArrayElemExpr undefined, A.ArrayElemExpr undefined])
,testBothSame "genArrayLiteralElems 2" "$,$,$" $ unfolded (tcall genArrayLiteralElems [A.ArrayElemExpr undefined, A.ArrayElemArray [A.ArrayElemExpr undefined, A.ArrayElemExpr undefined]])
@ -737,7 +737,7 @@ testRetypeSizes = TestList
showBytesInParams _ t v = tell ["$(" ++ show t ++ " " ++ show v ++ ")"]
showArrSize _ sz _ = tell ["^("] >> sz >> tell [")"]
over :: Override
over = local $ \ops -> ops {genBytesIn = showBytesInParams, genStop = override2 at, genArraySize = showArrSize}
over = local $ \ops -> ops {genBytesIn = showBytesInParams, genStop = override2 at, genArraySizeDecl = showArrSize}
defRecord :: String -> String -> A.Type -> State CompState ()
defRecord rec mem t = defineName (simpleName rec) $ A.NameDef emptyMeta rec rec A.RecordName (A.RecordType emptyMeta False [(simpleName mem,t)]) A.Original A.Unplaced