coins.ir.hir
クラス BlockStmtImpl
java.lang.Object
|
+--coins.ir.hir.HIR_Impl
|
+--coins.ir.hir.StmtImpl
|
+--coins.ir.hir.BlockStmtImpl
- すべての実装インタフェース:
- BlockStmt, java.lang.Cloneable, HasStringObject, HIR, HIR0, IR, IR0, Stmt
- public class BlockStmtImpl
- extends StmtImpl
- implements BlockStmt
Block representing a sequence of statements.
| クラス coins.ir.hir.HIR_Impl から継承したフィールド |
fAdditionalChild, fChildCount, fChildNode1, fChildNode2, fDbgLevel, fHirAnnex, fOperator, fParentNode, fType, hirRoot, inversionTable, machineParam, sourceLanguage |
| インタフェース 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 |
| クラス coins.ir.hir.StmtImpl から継承したメソッド |
addNextStmt, addNextStmt, adjustMultiBlockFlag, adjustMultiBlockFlag, ancestorControlStmtOfConditionalExp, attachLabel, attachLabelAsFirstOne, backTraceLabeledStmt, combineStmt, combineWithConditionalExp, copyPosition, cutLabelLinkOfStmt, deleteNextStmt, deletePreviousStmt, deleteThisStmt, getBlockStmt, getFileName, getLabel, getLabelDefList, getLabeledStmt, getLineNumber, getNextStmt, getPreviousStmt, getStmtWithLabel, getUpperStmt, insertPreviousStmt, insertPreviousStmt, isBranchStmt, isLoopStmt, isMultiBlock, isolateThisStmt, printLinkage, replaceThisStmtWith, setFileName, setLineNumber, toStringDetail, traceFirstStmt, traceLastStmt |
| クラス 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, 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, 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, toStringShort, toStringWithChildren, trueNode, typeNode, undecayExp, undecayExp, undecayExp, undecayExp, varNode, warinig, whileStmt, whileStmt, withInf |
| クラス java.lang.Object から継承したメソッド |
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| インタフェース 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 |
| インタフェース 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 |
| インタフェース 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 |
fLocalSymTable
SymTable fLocalSymTable
fLastStmt
Stmt fLastStmt
fSubpBodyFlag
boolean fSubpBodyFlag
BlockStmtImpl
public BlockStmtImpl(HirRoot pHirRoot)
- BlockStmt
Build block statement that make a sequence of statement to be
treated as one statement.
pStmtSequence sequence of statements to be included
in the block. It may be null at the creation of block statement
if statements are to be added by AddFirstStmt, AddNextStmt
of HIR_interface.
- パラメータ:
pHirRoot - instance of HirRoot common to all HIR nodes.
BlockStmtImpl
public BlockStmtImpl(HirRoot pHirRoot,
Stmt pStmtSequence)
getSymTable
public SymTable getSymTable()
- インタフェース
BlockStmt の記述:
- getSymTable
- 定義:
- インタフェース
BlockStmt 内の getSymTable
- 戻り値:
- the symbol table containing symbols locally declared
in this BlockStmt. If there is no local symbols declared
in this block, then the symbol table may be null.
setSymTable
public void setSymTable(SymTable pSymTable)
- インタフェース
BlockStmt の記述:
- setSymTable
Set pSymTable as the local symbol tabel of this BlockStmt.
- 定義:
- インタフェース
BlockStmt 内の setSymTable
- パラメータ:
pSymTable - local symbol tabel to be attached to this
block.
addFirstStmt
public Stmt addFirstStmt(Stmt pStatement)
- インタフェース
BlockStmt の記述:
- addFirstStmt
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.
- 定義:
- インタフェース
BlockStmt 内の addFirstStmt
- パラメータ:
pStatement - Statement that was added.
- 戻り値:
- the new first statement of the block.
addLastStmt
public Stmt addLastStmt(Stmt pStatement)
- インタフェース
BlockStmt の記述:
- addLastStmt
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.
- 定義:
- インタフェース
BlockStmt 内の addLastStmt
- パラメータ:
pStatement - Statement that was added.
- 戻り値:
- the new last statement of the block.
addBeforeBranchStmt
public void addBeforeBranchStmt(Stmt pStatement)
- インタフェース
BlockStmt の記述:
- 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. If the last statement is not a branch,
then add pStatement as the last statement of this block.
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.
- 定義:
- インタフェース
BlockStmt 内の addBeforeBranchStmt
- パラメータ:
pStatement - Statement that was added.
getFirstStmt
public Stmt getFirstStmt()
- インタフェース
BlockStmt の記述:
- getFirstStrmt
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()) { ...... }
- 定義:
- インタフェース
BlockStmt 内の getFirstStmt
- 戻り値:
- the first statement of this block.
getLastStmt
public Stmt getLastStmt()
- インタフェース
BlockStmt の記述:
- getLastStmt
Get the last statement of this block.
If this block has no statement, then null is returned.
- 定義:
- インタフェース
BlockStmt 内の getLastStmt
- 戻り値:
- the last statement of this block.
setFirstStmt
public void setFirstStmt(Stmt pStmt)
setLastStmt
public void setLastStmt(Stmt pStmt)
replaceFirstStmt
public void replaceFirstStmt(Stmt pStmt)
getSubpBodyFlag
public boolean getSubpBodyFlag()
- 定義:
- インタフェース
BlockStmt 内の getSubpBodyFlag
setSubpBodyFlag
public void setSubpBodyFlag(boolean pFlag)
- 定義:
- インタフェース
BlockStmt 内の setSubpBodyFlag
clone
public java.lang.Object clone()
throws java.lang.CloneNotSupportedException
- クラス
HIR_Impl の記述:
- clone
Override Object.clone in HIR.
- オーバーライド:
- クラス
StmtImpl 内の clone
- 戻り値:
- cloned HIR object.
- 例外:
java.lang.CloneNotSupportedException
accept
public void accept(HirVisitor pVisitor)
- インタフェース
HIR0 の記述:
- accept
Acceptor used in HIR visitor.
See HirVisitor, HirVisitorModel1, HirVisitormodel2.
- 定義:
- インタフェース
HIR0 内の accept - オーバーライド:
- クラス
HIR_Impl 内の accept
- パラメータ:
pVisitor - HirVisitor
toString
public java.lang.String toString()
- インタフェース
HIR の記述:
- toString
Get text representation of this node
without traversing children.
- 定義:
- インタフェース
HIR 内の toString - オーバーライド:
- クラス
HIR_Impl 内の toString
- 戻り値:
- the text string representing the node
including operation name, type, node index,
and symbol name if this represents a symbol or constant.