coins.sym
Class RegionTypeImpl

java.lang.Object
  extended bycoins.sym.SymImpl
      extended bycoins.sym.TypeImpl
          extended bycoins.sym.RegionTypeImpl
All Implemented Interfaces:
java.lang.Cloneable, HasStringObject, RegionType, Sym, Sym0, Type

public class RegionTypeImpl
extends TypeImpl
implements RegionType

RegionTypeImpl Class


Field Summary
protected  IrList fCurrentElemList
           
protected  SymTable fCurrentSymTable
           
protected  IrList fListOfElemList
           
protected  java.lang.String fRegionName
           
protected  Var fRegionVar
           
protected  int fStorageClass
           
protected  IrList fSubpList
           
protected  IrList fSymTableList
           
protected  Sym fTag
           
 
Fields inherited from class coins.sym.TypeImpl
fCompleteType, fConst, fOrigin, fRestrict, fTypeCore, fTypeKind, fVolatile
 
Fields inherited from class coins.sym.SymImpl
fDbgLevel, fDefinedIn, fFlagBox, fKind, fName, fNextSym, fRecordedIn, fSourceInf, fSymInf, fType, fUniqueNameSym, fWork, machineParam, sourceLanguage, symRoot
 
Fields inherited from interface 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
 
Fields inherited from interface coins.sym.Sym
KIND_NAME, VISIBILITY
 
Fields inherited from interface 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
 
Constructor Summary
RegionTypeImpl(SymRoot pSymRoot, java.lang.String pRegionName, int pStorageClass)
          RegionTypeImpl constructor Make an instance of RegionType in symRoot.symTableRoot.
 
Method Summary
 void addElemToCurrentRegion(Elem pElem)
          addElemToCurrentRegion Add element pElem to this region.
 int addSubp(Subp pSubp, SymTable pRegionSymTable)
           
 void finishCurrentRegion()
           finishCurrentRegion Close the current region (this region) by setting all required fields so that methods getRegionElemList, getRegionVar, getSizeValue of this RegionType and evaluateDisp() of region elements become effective.
 SymTable getCurrentRegionSymTable()
          getCurrentRegionSymTable
 IrList getRegionElemList(Subp pSubp)
           
 SymTable getRegionSymTable(int pIndex)
          getRegionSymTable Get pIndex-th symbol table from the list of symbol tables of this RegionType.
 SymTable getRegionSymTable(Subp pSubp)
          getRegionSymTable
 Var getRegionVar()
           
 IrList getSubpList()
           
 Sym getTag()
           
 void setTag(Sym pTag)
           
 java.lang.String toStringDetail()
          toStringDetail Get detailed attributes of this symbol in text which is not interned.
 
Methods inherited from class coins.sym.TypeImpl
getAlignment, getAlignmentGap, getCompleteType, getDimension, getElemList, getElemListString, getElemListString, getEnumListString, getFinalOrigin, getOrigin, getPointedType, getSizeExp, getSizeValue, getTypeKind, getTypeRank, getUnqualifiedType, isBasicType, isCompatibleWith, isConst, isFloating, isInteger, isRestrict, isScalar, isSizeEvaluable, isUnsigned, isVolatile, makeConstType, makeRestrictType, makeVolatileType, searchTypeCompatibleWithThis, setOrigin, setSizeExp, setSizeValue, setStaticTable, toString, toStringShort
 
Methods inherited from class 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
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface coins.sym.Type
getAlignment, getAlignmentGap, getCompleteType, getDimension, getElemList, getElemListString, getFinalOrigin, getOrigin, getPointedType, getSizeExp, getSizeValue, getTypeKind, getTypeRank, getUnqualifiedType, isBasicType, isCompatibleWith, isConst, isFloating, isInteger, isRestrict, isScalar, isSizeEvaluable, isUnsigned, isVolatile, makeConstType, makeRestrictType, makeVolatileType, setOrigin, setSizeExp, setSizeValue
 
Methods inherited from interface 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
 
Methods inherited from interface 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
 

Field Detail

fSubpList

protected IrList fSubpList

fSymTableList

protected IrList fSymTableList

fListOfElemList

protected IrList fListOfElemList

fCurrentElemList

protected IrList fCurrentElemList

fCurrentSymTable

protected SymTable fCurrentSymTable

fRegionVar

protected Var fRegionVar

fRegionName

protected java.lang.String fRegionName

fTag

protected Sym fTag

fStorageClass

protected int fStorageClass
Constructor Detail

RegionTypeImpl

public RegionTypeImpl(SymRoot pSymRoot,
                      java.lang.String pRegionName,
                      int pStorageClass)
RegionTypeImpl constructor Make an instance of RegionType in symRoot.symTableRoot. It is not recommended to use this constructor directly but use regionType method of Sym because there are several restrictions in using this constructor. List of elements should be given by calling addElem method repeatedly and then call finishRegionType().

Parameters:
pSymRoot - SymRoot instance to be passed to the resultant type.
pRegionName - Name of the region type. It shoul be . If it has no region name, generate it by generateTag() of SymTable.
pStorageClass - give VAR_STATIC or VAR_AUTO of Var interface.
Method Detail

addSubp

public int addSubp(Subp pSubp,
                   SymTable pRegionSymTable)
Specified by:
addSubp in interface RegionType

getCurrentRegionSymTable

public SymTable getCurrentRegionSymTable()
Description copied from interface: RegionType
getCurrentRegionSymTable

Specified by:
getCurrentRegionSymTable in interface RegionType
Returns:
the symbol table containing the definitions of elements to be included in the region in the current subprogram (symRoot.subpCurrent).

getRegionSymTable

public SymTable getRegionSymTable(Subp pSubp)
Description copied from interface: RegionType
getRegionSymTable

Specified by:
getRegionSymTable in interface RegionType
Parameters:
pSubp - Subprogram for which the corresponding symbol table is to be gotten.
Returns:
the symbol table containing the definitions of elements declared in pSubp to be included in the region.

getRegionSymTable

public SymTable getRegionSymTable(int pIndex)
Description copied from interface: RegionType
getRegionSymTable Get pIndex-th symbol table from the list of symbol tables of this RegionType. This method is mainly used to get the symbol table corresponding to the region declared outside subprogram.

Specified by:
getRegionSymTable in interface RegionType
Parameters:
pIndex - index of the symbol tabel to be gotten in the list of the symbol tables.
Returns:
the pIndex-th symbol table containing the definitions of elements to be included in the region.

getSubpList

public IrList getSubpList()
Specified by:
getSubpList in interface RegionType

addElemToCurrentRegion

public void addElemToCurrentRegion(Elem pElem)
Description copied from interface: RegionType
addElemToCurrentRegion Add element pElem to this region. addElem is called after instantiating RegionType. After successive call of addElemToCurrentRegion, finishCurrentRegion should be called. Sym.FLAG_REGION_ELEM is set true for pElem. See regionType of Sym.

Specified by:
addElemToCurrentRegion in interface RegionType
Parameters:
pElem - Element to be included in this region.

getRegionElemList

public IrList getRegionElemList(Subp pSubp)
Specified by:
getRegionElemList in interface RegionType

finishCurrentRegion

public void finishCurrentRegion()
Description copied from interface: RegionType
  finishCurrentRegion
  Close the current region (this region) by setting all required fields
  so that methods
    getRegionElemList, getRegionVar, getSizeValue of this RegionType
  and
    evaluateDisp() of region elements
  become effective.

Specified by:
finishCurrentRegion in interface RegionType

getRegionVar

public Var getRegionVar()
Specified by:
getRegionVar in interface RegionType

getTag

public Sym getTag()

setTag

public void setTag(Sym pTag)

toStringDetail

public java.lang.String toStringDetail()
Description copied from interface: Sym
toStringDetail Get detailed attributes of this symbol in text which is not interned.

Specified by:
toStringDetail in interface Sym
Overrides:
toStringDetail in class TypeImpl