|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcoins.ir.hir.HIR_Impl
coins.ir.hir.StmtImpl
coins.ir.hir.BlockStmtImpl
Block representing a sequence of statements.
| Field Summary | |
(package private) Stmt |
fLastStmt
|
(package private) SymTable |
fLocalSymTable
|
(package private) boolean |
fSubpBodyFlag
|
| Fields inherited from class coins.ir.hir.StmtImpl |
fMultiBlock, fNextStmt, fPrevStmt |
| 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 |
| Constructor Summary | |
BlockStmtImpl(HirRoot pHirRoot)
BlockStmt Build block statement that make a sequence of statement to be treated as one statement. |
|
BlockStmtImpl(HirRoot pHirRoot,
Stmt pStmtSequence)
|
|
| Method Summary | |
void |
accept(HirVisitor pVisitor)
accept Acceptor used in HIR visitor. |
void |
addBeforeBranchStmt(Stmt pStatement)
addBeforeBranchStmt (##6) If the last statement of this block is a branch statement (jump, if, switch, call, return), then insert pStatement in front of it. |
Stmt |
addFirstStmt(Stmt pStatement)
addFirstStmt |
Stmt |
addLastStmt(Stmt pStatement)
addLastStmt |
java.lang.Object |
clone()
clone Override Object.clone in HIR. |
Stmt |
getFirstStmt()
getFirstStrmt |
Stmt |
getLastStmt()
getLastStmt Get the last statement of this block. |
boolean |
getSubpBodyFlag()
|
SymTable |
getSymTable()
getSymTable |
void |
replaceFirstStmt(Stmt pStmt)
|
void |
setFirstStmt(Stmt pStmt)
|
void |
setLastStmt(Stmt pStmt)
|
void |
setSubpBodyFlag(boolean pFlag)
|
void |
setSymTable(SymTable pSymTable)
setSymTable Set pSymTable as the local symbol tabel of this BlockStmt. |
java.lang.String |
toString()
toString Get text representation of this node without traversing children. |
| Methods inherited from class java.lang.Object |
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Methods inherited from interface coins.ir.hir.Stmt |
addNextStmt, ancestorControlStmtOfConditionalExp, attachLabel, attachLabelAsFirstOne, combineStmt, combineWithConditionalExp, copyPosition, cutLabelLinkOfStmt, deleteThisStmt, getBlockStmt, getFileName, getLabel, getLabelDefList, getLabeledStmt, getLineNumber, getPreviousStmt, getUpperStmt, insertPreviousStmt, insertPreviousStmt, isBranchStmt, isMultiBlock, isolateThisStmt, replaceThisStmtWith, setFileName, setLineNumber |
| 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, toStringDetail, toStringShort, toStringWithChildren, undecayExp, undecayExp, undecayExp, whileStmt |
| Methods inherited from interface coins.ir.IR |
addInf, getChild1, getChild2, getInf, getInfList, getParent, getSym, print, 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, print, program, qualifiedExp, repeatStmt, replaceThisNode, returnStmt, setFlag, setIndexNumberToAllNodes, sizeofExp, sizeofExp, subpDefinition, subpNode, subscriptedExp, switchStmt, symNode, trueNode, undecayExp, varNode, whileStmt |
| Field Detail |
SymTable fLocalSymTable
Stmt fLastStmt
boolean fSubpBodyFlag
| Constructor Detail |
public BlockStmtImpl(HirRoot pHirRoot)
pHirRoot - instance of HirRoot common to all HIR nodes.
public BlockStmtImpl(HirRoot pHirRoot,
Stmt pStmtSequence)
| Method Detail |
public SymTable getSymTable()
BlockStmt
getSymTable in interface BlockStmtpublic void setSymTable(SymTable pSymTable)
BlockStmt
setSymTable in interface BlockStmtpSymTable - local symbol tabel to be attached to this
block.public Stmt addFirstStmt(Stmt pStatement)
BlockStmtAdd pStatement as the first statement of this block. If this block has already has several statements, this method inserts pStatement in front of the existing statements. If pStatement is null, no statement is added and the current first statement is returned. This method changes statement linkages (linkages get by getNextStmt(), getPreviousStmt(), getParent()). If these linkages are used later, then make a copy (by copyWithOperands()) and use the copy as the parameter.
addFirstStmt in interface BlockStmtpStatement - Statement that was added.
public Stmt addLastStmt(Stmt pStatement)
BlockStmtAdd pStatement as the last statement of this block. If this block has no statement, this method does the same operation as that of addFirstStmt. Successive call of addlastStmt add a sequence of statements to this block in the order of addition. If this block has already labeled statement as the last statement where the label of the last statement is either RETURN_POINT_LABEL or LOOP_STEP_LABEL, then pStatement is inserted in front of the last labeled statement. If pStatement is null, no statement is added and the current last statement is returned. This method changes statement linkages (linkages get by getNextStmt(), getPreviousStmt(), getParent()). If these linkages are used later, then make a copy (by copyWithOperands()) and use the copy as the parameter.
addLastStmt in interface BlockStmtpStatement - Statement that was added.
public void addBeforeBranchStmt(Stmt pStatement)
BlockStmt
addBeforeBranchStmt in interface BlockStmtpStatement - Statement that was added.public Stmt getFirstStmt()
BlockStmt
Get the first statement of this block.
If this block has no statement, then null is returned.
After getting the first statement, successive call of
getNextStmt() will traverse all statements in this block.
for (Stmt lStmt = lBBlock.getFirstStmt(); lStmt != null;
lStmt = lStmt.getNextStmt()) { ...... }
getFirstStmt in interface BlockStmtpublic Stmt getLastStmt()
BlockStmt
getLastStmt in interface BlockStmtpublic void setFirstStmt(Stmt pStmt)
public void setLastStmt(Stmt pStmt)
public void replaceFirstStmt(Stmt pStmt)
public boolean getSubpBodyFlag()
getSubpBodyFlag in interface BlockStmtpublic void setSubpBodyFlag(boolean pFlag)
setSubpBodyFlag in interface BlockStmt
public java.lang.Object clone()
throws java.lang.CloneNotSupportedException
HIR_Impl
clone in class StmtImpljava.lang.CloneNotSupportedExceptionpublic void accept(HirVisitor pVisitor)
HIR0
accept in interface HIR0accept in class HIR_Implpublic java.lang.String toString()
HIR
toString in interface HIRtoString in class HIR_Impl
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||