coins.ir.hir
Interface LabeledStmt

All Superinterfaces:
java.lang.Cloneable, HIR, HIR0, IR, IR0, Stmt
All Known Implementing Classes:
LabeledStmtImpl

public interface LabeledStmt
extends Stmt

LabeledStmt Labeled statement interface


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
 
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
 
Method Summary
 Stmt deleteLabel(Label pLabel)
          deleteLabel
 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.
 
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

getStmt

public Stmt getStmt()

setStmt

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

Parameters:
pStmt - Statement to be set.

setLabelDefList

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

Parameters:
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.

Parameters:
pLabel - label to be deleted.
Returns:
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.

Parameters:
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.

Parameters:
from - LabeledStmt