|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
Block representing a sequence of statements.
| Field Summary |
| 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 |
| Method Summary | |
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 |
Stmt |
getFirstStmt()
getFirstStrmt |
Stmt |
getLastStmt()
getLastStmt Get the last statement of this block. |
boolean |
getSubpBodyFlag()
|
SymTable |
getSymTable()
getSymTable |
void |
setSubpBodyFlag(boolean pFlag)
|
void |
setSymTable(SymTable pSymTable)
setSymTable Set pSymTable as the local symbol tabel of this BlockStmt. |
| 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, toString, 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 |
accept, 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 |
| Method Detail |
public SymTable getSymTable()
public void setSymTable(SymTable pSymTable)
pSymTable - local symbol tabel to be attached to this
block.public Stmt addFirstStmt(Stmt pStatement)
Add 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.
pStatement - Statement that was added.
public Stmt addLastStmt(Stmt pStatement)
Add 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.
pStatement - Statement that was added.
public void addBeforeBranchStmt(Stmt pStatement)
pStatement - Statement that was added.public Stmt getFirstStmt()
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()) { ...... }
public Stmt getLastStmt()
public boolean getSubpBodyFlag()
public void setSubpBodyFlag(boolean pFlag)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||