coins.ir.hir
インタフェース LabeledStmt

すべてのスーパーインタフェース:
java.lang.Cloneable, HIR, HIR0, IR, IR0, Stmt
既知の実装クラスの一覧:
LabeledStmtImpl

public interface LabeledStmt
extends Stmt

LabeledStmt Labeled statement interface


フィールドの概要
 
インタフェース coins.ir.hir.HIR から継承したフィールド
OP_CODE_NAME, OP_CODE_NAME_DENSE
 
インタフェース coins.ir.IR から継承したフィールド
OP_INF, OP_LIST, OP_PROG, OP_SUBP_DEF
 
インタフェース 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
 
メソッドの概要
 Stmt deleteLabel(Label pLabel)
          deleteLabel Delete LabelDef having pLabel as its label from the list of LabelDef nodes of this statement.
 Stmt getStmt()
           
 void merge(LabeledStmt from)
          Merging of LabeledStmt.
 void replaceLabelNodesReferingThisStmtToNewOne(Label pNewLabel)
          replaceLabelNodesReferingThisStmtToNewOne Replace each LabelNode that refers a label defined by this statement to a LabelNode having pNewLabel.
 void setLabelDefList(IrList pLabelDefList)
          Set thte label definition list of this statement.
 void setStmt(Stmt pStmt)
          Set the statement part of this labeled statement.
 
インタフェース 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, toString, toStringDetail, toStringShort, toStringWithChildren, undecayExp, undecayExp, undecayExp, whileStmt
 
インタフェース coins.ir.IR から継承したメソッド
addInf, getChild1, getChild2, getInf, getInfList, getParent, getSym, print, print, removeInf
 
インタフェース coins.ir.IR0 から継承したメソッド
getChild, getChildCount, getIndex, getOperator, setChild
 
インタフェース 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
 

メソッドの詳細

getStmt

public Stmt getStmt()

setStmt

public void setStmt(Stmt pStmt)
Set the statement part of this labeled statement.

パラメータ:
pStmt - Statement to be set.

setLabelDefList

public void setLabelDefList(IrList pLabelDefList)
Set thte label definition list of this statement.

パラメータ:
pLabelDefList - label definition list to be set.

deleteLabel

public Stmt deleteLabel(Label pLabel)
deleteLabel
  Delete LabelDef having pLabel as its label from
  the list of LabelDef nodes of this statement.
  If no label remains after deletion,
  this statement is changed to a statement without label.
  If no label remains and statement body is either null or
  NullNode, then this statement is deleted and null is returned.

パラメータ:
pLabel - label to be deleted.
戻り値:
the statement without pLabel or return null.

replaceLabelNodesReferingThisStmtToNewOne

public void replaceLabelNodesReferingThisStmtToNewOne(Label pNewLabel)
replaceLabelNodesReferingThisStmtToNewOne Replace each LabelNode that refers a label defined by this statement to a LabelNode having pNewLabel. If this statement has multiple labels, all LabelNodes refering them are replaced by instanciating new LabelNode.

パラメータ:
pNewLabel - Label to which refering LabelNodes are to be changed.

merge

public void merge(LabeledStmt from)
Merging of LabeledStmt. The label which given LabeledStmt includes is added to this LabeledStmt. However, if the same kind of label as the added label already exists, this method replaces instead of adds. Moreover, the label not referred is not added.

パラメータ:
from - LabeledStmt