coins.ir.hir
Class ProgramImpl

java.lang.Object
  extended bycoins.ir.hir.HIR_Impl
      extended bycoins.ir.hir.ProgramImpl
All Implemented Interfaces:
java.lang.Cloneable, HasStringObject, HIR, HIR0, IR, IR0, Program

public class ProgramImpl
extends HIR_Impl
implements Program

ProgramImpl class


Field Summary
protected  SymTable fGlobalSymTable
           
protected  IrList fRegionTypeList
           
 
Fields inherited from class coins.ir.hir.HIR_Impl
fAdditionalChild, fChildCount, fChildNode1, fChildNode2, fDbgLevel, fHirAnnex, fOperator, fParentNode, fType, hirRoot, inversionTable, machineParam, sourceLanguage
 
Fields inherited from interface coins.ir.hir.HIR
OP_CODE_NAME, OP_CODE_NAME_DENSE
 
Fields inherited from interface coins.ir.IR
OP_INF, OP_LIST, OP_PROG, OP_SUBP_DEF
 
Fields inherited from interface coins.ir.hir.HIR0
FLAG_C_PTR, FLAG_CONST_EXP, FLAG_INIT_BLOCK, FLAG_LOOP_WITH_CONDITIONAL_INIT, FLAG_NOCHANGE, FLAG_NONTERMINAL, OP_ADD, OP_ADD_ASSIGN, OP_ADDR, OP_AND, OP_AND_ASSIGN, OP_ARROW, OP_ASM, OP_ASSIGN, OP_BLOCK, OP_CALL, OP_CMP_EQ, OP_CMP_GE, OP_CMP_GT, OP_CMP_LE, OP_CMP_LT, OP_CMP_NE, OP_COMMA, OP_CONST, OP_CONTENTS, OP_CONV, OP_DECAY, OP_DIV, OP_DIV_ASSIGN, OP_ELEM, OP_ENCLOSE, OP_EQ_ZERO, OP_EXP_STMT, OP_EXPLIST, OP_EXPREPEAT, OP_FOR, OP_IF, OP_INDEX, OP_INDEXED_LOOP, OP_JUMP, OP_LABEL, OP_LABEL_DEF, OP_LABELED_STMT, OP_LG_AND, OP_LG_OR, OP_MOD, OP_MOD_ASSIGN, OP_MULT, OP_MULT_ASSIGN, OP_NEG, OP_NOT, OP_NULL, OP_OFFSET, OP_OR, OP_OR_ASSIGN, OP_PARAM, OP_PHI, OP_POST_DECR, OP_POST_INCR, OP_PRE_DECR, OP_PRE_INCR, OP_QUAL, OP_REPEAT, OP_RETURN, OP_SELECT, OP_SEQ, OP_SETDATA, OP_SHIFT_L_ASSIGN, OP_SHIFT_LL, OP_SHIFT_R, OP_SHIFT_R_ASSIGN, OP_SHIFT_RL, OP_SIZEOF, OP_STMT, OP_STMT_UPPER, OP_SUB, OP_SUB_ASSIGN, OP_SUBP, OP_SUBS, OP_SWITCH, OP_SYM, OP_TYPE, OP_UNDECAY, OP_UNTIL, OP_VAR, OP_WHILE, OP_XOR, OP_XOR_ASSIGN
 
Constructor Summary
ProgramImpl(HirRoot pHirRoot, Sym pProgSym, SymTable pGlobalSymTable, IR pInitiationPart, IrList pSubpList)
           
 
Method Summary
 void accept(HirVisitor pVisitor)
          accept Acceptor used in HIR visitor.
 void addInitiationStmt(IR pStmt)
          addInitiationStmt Add the initiation statement pStmt that initiates global variables to the initiation part (BlockStmt) of this program.
 void addRegion(RegionType pRegionType)
          addRegion Add pRegionType to the end of region list of this program.
 void addSubpDefinition(SubpDefinition pSubpDefinition)
          addSubpDefinition Add the definition of a subprogram to the end of subprogram definition list of this program.
 java.lang.Object clone()
          clone Override Object.clone in HIR.
 IR getInitiationPart()
          getInitiationPart Get the initiation part that initiates global variables.
 IrList getRegionList()
          getRegionList Get the list of RegionType instances.
 IrList getSubpDefinitionList()
          getSubpDefinitionList Get subprogram definition list of this program.
 SymTable getSymTable()
           
 void print(int pIndent, boolean pDetail)
          print Print this subtree in text format traversing all children of this node.
 void setSymTable(SymTable pSymTable)
           
 
Methods inherited from class coins.ir.hir.HIR_Impl
addInf, addrExp, asmStmt, assignStmt, blockStmt, callStmt, checkLinkage, conditionalExp, conditionalExp1, constNode, contains, contentsExp, convExp, copyInfListFrom, copyWithOperands, copyWithOperandsChangingLabels, cutParentLink, cutParentLink, decayExp, elemNode, exp, exp, exp, expList, expRepeat, expStmt, falseNode, fatalError, finishHir, flagsAreAllFalse, forStmt, forStmt, functionExp, getChild, getChild1, getChild2, getChildCount, getChildNumber, getClone, getExpId, getFlag, getFlagBox, getFlowAnalSym, getIndentSpace, getIndex, getInf, getInfList, getInfString, getIrName, getNextNode, getNextNodeSeeingAncestor, getNextStmt, getOperator, getParent, getResultOperand, getResultVar, getSourceNode, getSourceNode1, getSourceNode2, getStmtContainingThisNode, getSym, getSymOrExpId, getType, getWork, hirClone, hirIterator, hirList, hirNodeClone, hirSeq, hirSeq, hirSeq, ifStmt, indexedLoopStmt, indexedLoopStmt, infStmt, infStmt, intConstNode, intConstNode, irList, irList, isEmpty, isHIR, isLIR, isSameAs, isStmt, isSym, isTerminal, isTree, isTree, jumpStmt, labelDef, labeledStmt, labelNode, nullNode, nullStmt, offsetConstNode, phiExp, pointedExp, print, program, qualifiedExp, removeInf, repeatStmt, repeatStmt, replaceOperator, replaceResultOperand, replaceResultVar, replaceSource, replaceSource1, replaceSource2, replaceThisNode, returnStmt, returnStmt, setChild, setChild1, setChild2, setChildren, setChildren, setChildren, setChildren, setDataStmt, setFlag, setIndex, setIndexNumberToAllNodes, setIndexNumberToAllNodes, setIndexNumberToAllNodes2, setParameters, setParent, setType, setWork, severeError, sizeofExp, sizeofExp, slightError, subpDefinition, subpDefinition, subpDefinition, subpIterator, subpNode, subscriptedExp, subscriptedExp, switchStmt, symNode, toString, toStringDetail, toStringShort, toStringWithChildren, trueNode, typeNode, undecayExp, undecayExp, undecayExp, undecayExp, varNode, warinig, whileStmt, whileStmt, withInf
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface coins.ir.hir.HIR
addrExp, asmStmt, checkLinkage, conditionalExp, contains, copyInfListFrom, cutParentLink, exp, expList, expRepeat, forStmt, getExpId, getFlowAnalSym, getIndentSpace, getInfString, getIrName, getSourceNode, getSourceNode1, getSourceNode2, getSymOrExpId, getWork, hirNodeClone, hirSeq, hirSeq, indexedLoopStmt, indexedLoopStmt, infStmt, infStmt, intConstNode, irList, isEmpty, isStmt, isTree, nullNode, nullStmt, offsetConstNode, phiExp, repeatStmt, replaceSource, replaceSource1, replaceSource2, returnStmt, setChild1, setChild2, setChildren, setChildren, setDataStmt, setIndex, setIndexNumberToAllNodes, setParent, setType, setWork, subpDefinition, subpIterator, subscriptedExp, toString, toStringDetail, toStringShort, toStringWithChildren, undecayExp, undecayExp, undecayExp, whileStmt
 
Methods inherited from interface coins.ir.IR
addInf, getChild1, getChild2, getInf, getInfList, getParent, getSym, print, removeInf
 
Methods inherited from interface coins.ir.IR0
getChild, getChildCount, getIndex, getOperator, setChild
 
Methods inherited from interface coins.ir.hir.HIR0
assignStmt, blockStmt, callStmt, constNode, contentsExp, convExp, copyWithOperands, copyWithOperandsChangingLabels, decayExp, elemNode, exp, exp, expStmt, falseNode, finishHir, forStmt, functionExp, getChildNumber, getFlag, getFlagBox, getNextStmt, getStmtContainingThisNode, getType, hirClone, hirIterator, hirList, hirSeq, ifStmt, intConstNode, irList, isSameAs, jumpStmt, labelDef, labeledStmt, labelNode, pointedExp, program, qualifiedExp, repeatStmt, replaceThisNode, returnStmt, setFlag, setIndexNumberToAllNodes, sizeofExp, sizeofExp, subpDefinition, subpNode, subscriptedExp, switchStmt, symNode, trueNode, undecayExp, varNode, whileStmt
 

Field Detail

fGlobalSymTable

protected SymTable fGlobalSymTable

fRegionTypeList

protected IrList fRegionTypeList
Constructor Detail

ProgramImpl

public ProgramImpl(HirRoot pHirRoot,
                   Sym pProgSym,
                   SymTable pGlobalSymTable,
                   IR pInitiationPart,
                   IrList pSubpList)
Method Detail

getSymTable

public SymTable getSymTable()
Specified by:
getSymTable in interface Program

setSymTable

public void setSymTable(SymTable pSymTable)
Specified by:
setSymTable in interface Program

getSubpDefinitionList

public IrList getSubpDefinitionList()
getSubpDefinitionList Get subprogram definition list of this program. Each SubpDefinition can be get and treated by methods in IrList.

Specified by:
getSubpDefinitionList in interface Program
Returns:
SubpDefinition list of this program.

addSubpDefinition

public void addSubpDefinition(SubpDefinition pSubpDefinition)
Description copied from interface: Program
addSubpDefinition Add the definition of a subprogram to the end of subprogram definition list of this program.

Specified by:
addSubpDefinition in interface Program
Parameters:
pSubpDefinition - SubpDefinition node defining a subprogram.

getRegionList

public IrList getRegionList()
Description copied from interface: Program
getRegionList Get the list of RegionType instances. Each instance of RegionType can be get and treated by methods in IrList.

Specified by:
getRegionList in interface Program
Returns:
RegionType list of this program.

addRegion

public void addRegion(RegionType pRegionType)
Description copied from interface: Program
addRegion Add pRegionType to the end of region list of this program. If pRegionType is already recorded in the list, then it is not added.

Specified by:
addRegion in interface Program
Parameters:
pRegionType - RegionType to be recorded.

getInitiationPart

public IR getInitiationPart()
Description copied from interface: Program
getInitiationPart Get the initiation part that initiates global variables.

Specified by:
getInitiationPart in interface Program
Returns:
BlockStmt containing initiation statements.

addInitiationStmt

public void addInitiationStmt(IR pStmt)
Description copied from interface: Program
addInitiationStmt Add the initiation statement pStmt that initiates global variables to the initiation part (BlockStmt) of this program.

Specified by:
addInitiationStmt in interface Program

clone

public java.lang.Object clone()
Description copied from class: HIR_Impl
clone Override Object.clone in HIR.

Overrides:
clone in class HIR_Impl
Returns:
cloned HIR object.

print

public void print(int pIndent,
                  boolean pDetail)
Description copied from interface: IR
print Print this subtree in text format traversing all children of this node. "this" may be any subtree (it may be a leaf node).

Specified by:
print in interface IR
Overrides:
print in class HIR_Impl

accept

public void accept(HirVisitor pVisitor)
Description copied from interface: HIR0
accept Acceptor used in HIR visitor. See HirVisitor, HirVisitorModel1, HirVisitormodel2.

Specified by:
accept in interface HIR0
Overrides:
accept in class HIR_Impl