coins.sym
Interface UnionType

All Superinterfaces:
Sym, Sym0, Type
All Known Implementing Classes:
UnionTypeImpl

public interface UnionType
extends Type

UnionType interface


Field Summary
 
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
 
Method Summary
 void addElem(Elem pElem)
          addElem Add element to this union type.
 void finishUnionType(boolean pSeparately)
          finishUnionType Finish to define this union type.
 IrList getElemList()
          getElemList
 SymTable getSymTable()
           
 Sym getTag()
           
 void setAlignment(int pAlignment)
          setAlignment Set alignment value to be equal to the pAlignment.
 void setSymTable(SymTable pSymTalbe)
           
 void setTag(Sym pTag)
           
 
Methods inherited from interface coins.sym.Type
getAlignment, getAlignmentGap, getCompleteType, getDimension, 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, toStringDetail, 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
 

Method Detail

getSymTable

public SymTable getSymTable()

setSymTable

public void setSymTable(SymTable pSymTalbe)

getElemList

public IrList getElemList()
getElemList

Specified by:
getElemList in interface Type
Returns:
the list of elements for this union.

addElem

public void addElem(Elem pElem)
addElem Add element to this union type. finishUnionType Finish to define this union type. addElem is called after instantiating UnionType without giving element list. After successive call of addElem, finishUnionType should be called. See unionType of Sym.

Parameters:
pElem - Element of this union type.

finishUnionType

public void finishUnionType(boolean pSeparately)
finishUnionType Finish to define this union type. After successive call of addElem, finishUnionType should be called. This will make the union type name and then compute the size of this union. See unionType of Sym, addElem.

Parameters:
pSeparately - false if UnionType is constructed with complete element list, true if UnionType is constructed as incomplete and sequence of addElem call is performed and then finishUnionType is called.

getTag

public Sym getTag()

setTag

public void setTag(Sym pTag)

setAlignment

public void setAlignment(int pAlignment)
setAlignment Set alignment value to be equal to the pAlignment. Default value of alignment is set to the alignment of element type with the largest alignment value.

Parameters:
pAlignment - alignment value to be set.