.. java:import:: fr.inria.tapenade.utils ILLang .. java:import:: fr.inria.tapenade.utils Tree .. java:import:: fr.inria.tapenade.utils ToObject ArrayDim ======== .. java:package:: fr.inria.tapenade.representation :noindex: .. java:type:: public class ArrayDim One dimension of an ArrayTypeSpec. Holds the original Tree, and the computed lower and upper dimensions. Fields ------ lower ^^^^^ .. java:field:: protected Integer lower :outertype: ArrayDim Array lower bound. overEstimate ^^^^^^^^^^^^ .. java:field:: public String overEstimate :outertype: ArrayDim String that may describe a possible overestimate of this dimension's length (can be useful when unDeclarableLength is true) rankInRef ^^^^^^^^^ .. java:field:: protected int rankInRef :outertype: ArrayDim The rank of the reference dimension inside the reference array. -1 for unknown, 0 for unique dimension, else 1 for 1st child, etc. refArrayTree ^^^^^^^^^^^^ .. java:field:: protected Tree refArrayTree :outertype: ArrayDim A "reference" array variable whose rankInRef'th dimension size determines this dimension size. refNDims ^^^^^^^^ .. java:field:: protected int refNDims :outertype: ArrayDim The number of dimensions of the reference array. refQuality ^^^^^^^^^^ .. java:field:: protected int refQuality :outertype: ArrayDim Prefer sizes that are given as an immediate integer, then as an integer variable, then declared as ":" but certainly allocated, then as a last resort declared as allocatable... treeForDeclaration ^^^^^^^^^^^^^^^^^^ .. java:field:: public Tree treeForDeclaration :outertype: ArrayDim Special case: special dimension Tree to be used in declaration only unDeclarableLength ^^^^^^^^^^^^^^^^^^ .. java:field:: public boolean unDeclarableLength :outertype: ArrayDim true when we cannot declare this dimension because its size is "dynamic", so that actual refs to this dimension must use an explicit arrayTriplet instead of just ":" upper ^^^^^ .. java:field:: protected Integer upper :outertype: ArrayDim Array lower bound. Constructors ------------ ArrayDim ^^^^^^^^ .. java:constructor:: public ArrayDim(Tree dimensionTree, Integer lower, Integer upper, Tree refArrayTree, int rankInRef, int refNDims, int refQuality) :outertype: ArrayDim Methods ------- copy ^^^^ .. java:method:: protected ArrayDim copy() :outertype: ArrayDim Copy this ArrayDim. :return: a copy, with a copy of the array tree dimension. detectUnDeclarableLength ^^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public void detectUnDeclarableLength(SymbolTable symbolTable) :outertype: ArrayDim Mark this dimension (which evaluates well in "symbolTable") when it cannot be evaluated correctly in the (publicST) SymbolTable in which it must be used for an array declaration dump ^^^^ .. java:method:: public void dump() throws java.io.IOException :outertype: ArrayDim Prints in detail the contents of this ArrayDim, onto TapEnv.curOutputStream(). equalLength ^^^^^^^^^^^ .. java:method:: protected boolean equalLength(ArrayDim otherDim, int comparison) :outertype: ArrayDim erasePrivateInfo ^^^^^^^^^^^^^^^^ .. java:method:: protected void erasePrivateInfo(Unit publishedUnit) :outertype: ArrayDim Erase "tree" if it uses local symbols of publishedUnit: :param publishedUnit: Unit. fullArrayTriplet ^^^^^^^^^^^^^^^^ .. java:method:: public boolean fullArrayTriplet(Tree tree) :outertype: ArrayDim getSize ^^^^^^^ .. java:method:: public Tree getSize() :outertype: ArrayDim :return: a tree representing the array size. isNone ^^^^^^ .. java:method:: protected boolean isNone() :outertype: ArrayDim :return: true if dimension is "none". isNullOrNoneOrStar ^^^^^^^^^^^^^^^^^^ .. java:method:: public boolean isNullOrNoneOrStar() :outertype: ArrayDim isSufficientlyDefined ^^^^^^^^^^^^^^^^^^^^^ .. java:method:: protected boolean isSufficientlyDefined() :outertype: ArrayDim isUnknown ^^^^^^^^^ .. java:method:: protected boolean isUnknown() :outertype: ArrayDim :return: true if unknown dimension. lowerTree ^^^^^^^^^ .. java:method:: protected Tree lowerTree() :outertype: ArrayDim preciseDimension ^^^^^^^^^^^^^^^^ .. java:method:: protected static ArrayDim preciseDimension(ArrayDim mainDim, ArrayDim complementDim, SymbolTable symbolTable) :outertype: ArrayDim setSize ^^^^^^^ .. java:method:: protected void setSize(Tree sizeTree) :outertype: ArrayDim Modifies the upper bound of this ArrayDim so that its total size becomes equal to "sizeTree". setSizeForDeclaration ^^^^^^^^^^^^^^^^^^^^^ .. java:method:: public void setSizeForDeclaration(Tree sizeTree) :outertype: ArrayDim setTree ^^^^^^^ .. java:method:: protected void setTree(Tree tree) :outertype: ArrayDim Set the array dimension tree. :param tree: the array dimension. showType ^^^^^^^^ .. java:method:: protected String showType() :outertype: ArrayDim size ^^^^ .. java:method:: public int size() :outertype: ArrayDim :return: intger array size using lower and upper bounds. testConformingAndChoose ^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: protected static ArrayDim testConformingAndChoose(ArrayDim dim1, ArrayDim dim2) :outertype: ArrayDim :return: When dim1 and dim2 conform, the one which is best suited to provide the size of this dimension. Otherwise return null. toString ^^^^^^^^ .. java:method:: @Override public String toString() :outertype: ArrayDim tree ^^^^ .. java:method:: public Tree tree() :outertype: ArrayDim :return: the array dimension tree. updateImportedDim ^^^^^^^^^^^^^^^^^ .. java:method:: protected void updateImportedDim(SymbolTable symbolTable) :outertype: ArrayDim upperTree ^^^^^^^^^ .. java:method:: protected Tree upperTree() :outertype: ArrayDim weakenForInference ^^^^^^^^^^^^^^^^^^ .. java:method:: protected ArrayDim weakenForInference() :outertype: ArrayDim