coins.sym
クラス VectorTypeImpl

java.lang.Object
  |
  +--coins.sym.SymImpl
        |
        +--coins.sym.TypeImpl
              |
              +--coins.sym.VectorTypeImpl
すべての実装インタフェース:
java.lang.Cloneable, HasStringObject, Sym, Sym0, Type, VectorType

public class VectorTypeImpl
extends TypeImpl
implements VectorType


フィールドの概要
(パッケージプライベート)  int fAlignment
           
(パッケージプライベート)  int fDimension
           
(パッケージプライベート)  long fElemCount
           
(パッケージプライベート)  Exp fElemCountExp
           
(パッケージプライベート)  Type fElemType
           
(パッケージプライベート)  long fLowerBound
           
(パッケージプライベート)  Exp fLowerBoundExp
           
 
クラス coins.sym.TypeImpl から継承したフィールド
fCompleteType, fConst, fOrigin, fRestrict, fTypeCore, fTypeKind, fVolatile
 
クラス coins.sym.SymImpl から継承したフィールド
fDbgLevel, fDefinedIn, fFlagBox, fKind, fName, fNextSym, fRecordedIn, fSourceInf, fSymInf, fType, fUniqueNameSym, fWork, machineParam, sourceLanguage, symRoot
 
インタフェース coins.sym.Type から継承したフィールド
KIND_ADDRESS, KIND_ALIGNMENT, KIND_BASE_LIM, KIND_BOOL, KIND_CHAR, KIND_DEFINED, KIND_DOUBLE, KIND_ENUM, KIND_FLOAT, KIND_FLOAT_LOWER_LIM, KIND_FLOAT_UPPER_LIM, KIND_INT, KIND_INT_UPPER_LIM, KIND_LONG, KIND_LONG_DOUBLE, KIND_LONG_LONG, KIND_OFFSET, KIND_POINTER, KIND_RANKS, KIND_REGION, KIND_SHORT, KIND_STRING, KIND_STRUCT, KIND_SUBP, KIND_U_CHAR, KIND_U_INT, KIND_U_LONG, KIND_U_LONG_LONG, KIND_U_SHORT, KIND_UNDEF, KIND_UNION, KIND_UNSIGNED_LOWER_LIM, KIND_VECTOR, KIND_VOID, KIND_WCHAR
 
インタフェース coins.sym.Sym から継承したフィールド
KIND_NAME, VISIBILITY
 
インタフェース coins.sym.Sym0 から継承したフィールド
FLAG_ADDRESS_TAKEN, FLAG_CASTLESS_SUBP, FLAG_COMMON, FLAG_COMPLEX_STRUCT, FLAG_DERIVED_SYM, FLAG_GENERATED_SYM, FLAG_INCOMPLETE_TYPE, FLAG_POINTER_OPERATION, FLAG_REGION_ELEM, FLAG_RESERVED_NAME, FLAG_SIZEOF_TAKEN, FLAG_UNFIXED_SIZE, FLAG_UNIFORM_SIZE, FLAG_VALUE_IS_ASSIGNED, KIND_AREG, KIND_BOOL_CONST, KIND_CHAR_CONST, KIND_CONST_FIRST, KIND_CONST_LAST, KIND_ELEM, KIND_EXP_ID, KIND_FLOAT_CONST, KIND_INT_CONST, KIND_LABEL, KIND_MREG, KIND_NAMED_CONST, KIND_OTHER, KIND_PARAM, KIND_REMOVED, KIND_STRING_CONST, KIND_TAG, KIND_TYPE, KIND_VAR, SYM_COMPILE_UNIT, SYM_EXTERN, SYM_PRIVATE, SYM_PROTECTED, SYM_PUBLIC
 
コンストラクタの概要
VectorTypeImpl(SymRoot pSymRoot, java.lang.String pTypeName, Type pElemType, long pElemCount)
           
VectorTypeImpl(SymRoot pSymRoot, java.lang.String pTypeName, Type pElemType, long pElemCount, Exp pElemCountExp, long pLowerBound, Exp pLowerBoundExp)
          VectorTypeImpl General constructor of VectorTypeImpl.
VectorTypeImpl(SymRoot pSymRoot, Type pElemType, long pElemCount)
           
 
メソッドの概要
 int getAlignment()
          getAlignment Get alignment value for this type.
 int getDimension()
          getDimension Get the dimension of this type.
 long getElemCount()
          getElemCount Get the number of elements in the vector.
 Exp getElemCountExp()
          getElemCountExp Get the expression representing the number of elements in the vector.
 Type getElemType()
          getElemType
 long getLowerBound()
          getLowerBound
 Exp getLowerBoundExp()
          getLowerBoundExp
 boolean isCompatibleWith(Type pType)
          evaluateElemCount Get the characteristics of "this" array type.
 boolean isRectangularArray()
          isRectangularArray
 void setAlignment(int pAlignment)
          setAlignment Set alignment value to be equal to the pAlignment which should be greater or equal to the alignment of element type.
protected  void setVectorTypeFields(java.lang.String pTypeName, Type pElemType, long pElemCount, Exp pElemCountExp, long pLowerBound, Exp pLowerBoundExp)
           
 java.lang.String toString()
          Get the string image of object.
 java.lang.String toStringDetail()
          toStringDetail Get detailed attributes of this symbol in text which is not interned.
 
クラス coins.sym.TypeImpl から継承したメソッド
getAlignmentGap, getCompleteType, getElemList, getElemListString, getElemListString, getEnumListString, getFinalOrigin, getOrigin, getPointedType, getSizeExp, getSizeValue, getTypeKind, getTypeRank, getUnqualifiedType, isBasicType, isConst, isFloating, isInteger, isRestrict, isScalar, isSizeEvaluable, isUnsigned, isVolatile, makeConstType, makeRestrictType, makeVolatileType, searchTypeCompatibleWithThis, setOrigin, setSizeExp, setSizeValue, setStaticTable, toStringShort
 
クラス coins.sym.SymImpl から継承したメソッド
bareStringConst, baseType, boolConst, charConst, charConst, charConst, definedType, definedType, defineElem, defineLabel, defineParam, defineRegionVar, defineSubp, defineVar, defineVar, derivedSym, enumType, enumType, floatConst, floatConst, getDefinedColumn, getDefinedFile, getDefinedIn, getDefinedInName, getDefinedLine, getFlag, getInf, getName, getNameOrNull, getNextSym, getOrAddInf, getOriginalSym, getOriginalSym, getPureName, getRecordedIn, getSourceInf, getSymKind, getSymKindName, getSymType, getUniqueName, getWork, intConst, intConst, intObject, isGlobal, isHIR, isRemoved, isSym, linkSym, makeCstring, makeCstringWithTrailing0, makeEnumTypeName, makeExpString, makeJavaString, makeStructUnionTypeName, makeSubpTypeName, makeSubpTypeName, makeVectorTypeName, makeVectorTypeName, makeVectorTypeName, namedConst, namedConst, pointerType, pointerType, pointerType, pointerType, pointerType, print, print, regionType, regionType, remove, setDefinedFile, setDefinedIn, setDefinedLine, setFlag, setOriginalSym, setParameters, setRecordedIn, setSourceInf, setSymKind, setSymType, setUniqueNameSym, setWork, stringConst, stringConstFromQuotedString, structType, structType, subpType, subpType, symbol, unionType, unionType, vectorType, vectorType, vectorType, vectorType, vectorTypeUnfixed, vectorTypeUnfixed
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
インタフェース coins.sym.Type から継承したメソッド
getAlignmentGap, getCompleteType, getElemList, getElemListString, getFinalOrigin, getOrigin, getPointedType, getSizeExp, getSizeValue, getTypeKind, getTypeRank, getUnqualifiedType, isBasicType, isConst, isFloating, isInteger, isRestrict, isScalar, isSizeEvaluable, isUnsigned, isVolatile, makeConstType, makeRestrictType, makeVolatileType, setOrigin, setSizeExp, setSizeValue
 
インタフェース coins.sym.Sym から継承したメソッド
baseType, boolConst, charConst, defineVar, derivedSym, floatConst, getDefinedColumn, getDefinedInName, getDefinedLine, getInf, getNameOrNull, getOrAddInf, getOriginalSym, getOriginalSym, getPureName, getSymKindName, getWork, intConst, intObject, isRemoved, makeCstring, makeCstringWithTrailing0, makeEnumTypeName, makeJavaString, makeStructUnionTypeName, makeSubpTypeName, makeVectorTypeName, makeVectorTypeName, makeVectorTypeName, namedConst, pointerType, pointerType, pointerType, regionType, remove, setDefinedFile, setDefinedIn, setDefinedLine, setRecordedIn, setSymKind, setSymType, setUniqueNameSym, setWork, stringConstFromQuotedString, symbol, toStringShort, vectorType, vectorType, vectorType, vectorTypeUnfixed
 
インタフェース coins.sym.Sym0 から継承したメソッド
charConst, definedType, defineElem, defineLabel, defineParam, defineSubp, defineVar, enumType, floatConst, getDefinedFile, getDefinedIn, getFlag, getName, getNextSym, getRecordedIn, getSymKind, getSymType, getUniqueName, intConst, isGlobal, namedConst, pointerType, setFlag, stringConst, structType, subpType, unionType, vectorType, vectorTypeUnfixed
 

フィールドの詳細

fElemType

Type fElemType

fElemCount

long fElemCount

fElemCountExp

Exp fElemCountExp

fLowerBound

long fLowerBound

fLowerBoundExp

Exp fLowerBoundExp

fDimension

int fDimension

fAlignment

int fAlignment
コンストラクタの詳細

VectorTypeImpl

public VectorTypeImpl(SymRoot pSymRoot,
                      java.lang.String pTypeName,
                      Type pElemType,
                      long pElemCount)

VectorTypeImpl

public VectorTypeImpl(SymRoot pSymRoot,
                      java.lang.String pTypeName,
                      Type pElemType,
                      long pElemCount,
                      Exp pElemCountExp,
                      long pLowerBound,
                      Exp pLowerBoundExp)
VectorTypeImpl General constructor of VectorTypeImpl. If pTypeName is null, the type name is generated. If pElemCountExp is evaluable then element count is decided by pElemCountExp else the element count is decided by pElemCount. If pLowerBoundExp is evaluable then lower bound is decided by pLowerBoundExp else the lower bound is decided by pLowerBound.


VectorTypeImpl

public VectorTypeImpl(SymRoot pSymRoot,
                      Type pElemType,
                      long pElemCount)
メソッドの詳細

setVectorTypeFields

protected void setVectorTypeFields(java.lang.String pTypeName,
                                   Type pElemType,
                                   long pElemCount,
                                   Exp pElemCountExp,
                                   long pLowerBound,
                                   Exp pLowerBoundExp)

getDimension

public int getDimension()
インタフェース Type の記述:
getDimension Get the dimension of this type. "this" is an array type.

定義:
インタフェース Type 内の getDimension
オーバーライド:
クラス TypeImpl 内の getDimension
戻り値:
the dimension of this type if this is an array type; 1: 1-dimensinal array, 2: 2-dimensional array, ,,, ; If this is not an array type, return 0.

getElemType

public Type getElemType()
インタフェース VectorType の記述:
getElemType

定義:
インタフェース VectorType 内の getElemType
戻り値:
the type of vector element.

getElemCount

public long getElemCount()
インタフェース VectorType の記述:
getElemCount Get the number of elements in the vector. If the number is not yet fixed or it is given as expression containing variable, 0 will be returned.

定義:
インタフェース VectorType 内の getElemCount
戻り値:
the number of elements in the vector.

getElemCountExp

public Exp getElemCountExp()
インタフェース VectorType の記述:
getElemCountExp Get the expression representing the number of elements in the vector. If the number of elements is given as constant, then this method returns ConstNode expression representing the value.

定義:
インタフェース VectorType 内の getElemCountExp
戻り値:
the expression representing the number of elements in the vector.

getLowerBound

public long getLowerBound()
インタフェース VectorType の記述:
getLowerBound

定義:
インタフェース VectorType 内の getLowerBound
戻り値:
the lower bound of index for this vector. If the lower bound is not specified, 0 is assumed.

getLowerBoundExp

public Exp getLowerBoundExp()
インタフェース VectorType の記述:
getLowerBoundExp

定義:
インタフェース VectorType 内の getLowerBoundExp
戻り値:
the expression representing the lower bound of index for this vector.

isCompatibleWith

public boolean isCompatibleWith(Type pType)
evaluateElemCount Get the characteristics of "this" array type. "this" should be an array type symbol. evaluateElemCount: returns element count as integer value. If it can not be evaluated, return 0.

定義:
インタフェース Type 内の isCompatibleWith
オーバーライド:
クラス TypeImpl 内の isCompatibleWith
パラメータ:
pType - a type to be compared with this type.
戻り値:
true if this type is compatible with pType.

isRectangularArray

public boolean isRectangularArray()
インタフェース VectorType の記述:
isRectangularArray

定義:
インタフェース VectorType 内の isRectangularArray
戻り値:
true if this is a vector of constant number of elements whose type has fixed uniform size, where fixed uniform size elements are: basic type (other than PointerType, SubpType) EnumType StructType/UnionType whose elements are all fixed uniform size VectorType with true value for RectangularArray()

getAlignment

public int getAlignment()
インタフェース Type の記述:
getAlignment Get alignment value for this type. It depends on target machine. For basic types, the alignment value is a byte count specified in MachineParam.java. The default value of alignment of VectorType is the alignment of element type which may differ vector by vector. The defalut alignment value of StructType or UnionType is set to that of its element with the largest alignment value which may differ struct by struct or union by union. The alignment value of StructType, UnionType, or VectorType should be set by setAlignment method of corresponding type when the type is defined. As for subprogram, if alignment of return value is required, get it by subp.getReturnValueType().getAlignment(), and if alignment of subprogram object code is required, get it by symRoot.machineParam.getAlignment(Type.KIND_SUBP). //##67

定義:
インタフェース Type 内の getAlignment
オーバーライド:
クラス TypeImpl 内の getAlignment
戻り値:
the alignment number of this type in bytes.

setAlignment

public void setAlignment(int pAlignment)
インタフェース VectorType の記述:
setAlignment Set alignment value to be equal to the pAlignment which should be greater or equal to the alignment of element type. Default value of alignment is set to the alignment of element type when an instance of VectorType is created.

定義:
インタフェース VectorType 内の setAlignment
パラメータ:
pAlignment - alignment value to be set.

toString

public java.lang.String toString()
インタフェース HasStringObject の記述:
Get the string image of object.

定義:
インタフェース HasStringObject 内の toString
オーバーライド:
クラス TypeImpl 内の toString

toStringDetail

public java.lang.String toStringDetail()
インタフェース Sym の記述:
toStringDetail Get detailed attributes of this symbol in text which is not interned.

定義:
インタフェース Sym 内の toStringDetail
オーバーライド:
クラス TypeImpl 内の toStringDetail