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

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

public interface IfStmt
extends Stmt

If-statement.


フィールドの概要
 
インタフェース 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
 
メソッドの概要
 void addToElsePart(Stmt pStmt, boolean pBeforeBranch)
          addToElsePart Add pStmt to the tail of else-part of this if-statement.
 void addToThenPart(Stmt pStmt, boolean pBeforeBranch)
          addToThenPart Add pStmt to the tail of then-part of this if-statement.
 LabeledStmt getElsePart()
          getElsePart Get the else-part of if-statement.
 Label getEndLabel()
          getEndLabel (##2) Get the end label of if-statement.
 Exp getIfCondition()
          getIfCondition Get the condition part of if-statement.
 LabeledStmt getThenPart()
          getThenPart Get the then-part of if-statement.
 void replaceElsePart(LabeledStmt pNewElsePart)
          replaceThenPart Replace the else-part of this if-statement by pNewElsePart.
 void replaceThenPart(LabeledStmt pNewThenPart)
          replaceThenPart Replace the then-part of this if-statement by pNewThenPart.
 void setIfCondition(Exp pCondition)
          setIfCondition Set the condition part of if-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
 

メソッドの詳細

getIfCondition

public Exp getIfCondition()
getIfCondition Get the condition part of if-statement. "this" should be IfStmt statement built by ifStmt.

戻り値:
the pCondition expression subtree if "this" is if-statement, otherwise return null.

setIfCondition

public void setIfCondition(Exp pCondition)
setIfCondition Set the condition part of if-statement. "this" should be IfStmt statement built by ifStmt.

パラメータ:
pCondition - Condition expression to be set.

getThenPart

public LabeledStmt getThenPart()
getThenPart Get the then-part of if-statement. "this" should be IfStmt statement built by ifStmt.

戻り値:
the pThenPart subtree if "this" is if-statement, otherwise return null.

getElsePart

public LabeledStmt getElsePart()
getElsePart Get the else-part of if-statement. "this" should be IfStmt statement built by ifStmt.

戻り値:
the pElsePart subtree if "this" is if-statement, otherwise return null.

getEndLabel

public Label getEndLabel()
getEndLabel (##2) Get the end label of if-statement. The end label is a label indicating the end of if-statement. "this" should be IfStmt statement built by ifStmt.

戻り値:
the end label of this if-statement.

addToThenPart

public void addToThenPart(Stmt pStmt,
                          boolean pBeforeBranch)
addToThenPart Add pStmt to the tail of then-part of this if-statement. If pBeforeBranch is true, the addition is made before a branch statement in the then-part if there is a branch. If then-part is a non-block statement, then it is changed to a block statement containing pStmt. The then-part should not be null.

パラメータ:
pStmt - Statement to be added.
pBeforeBranch - true if addition before branch point.

addToElsePart

public void addToElsePart(Stmt pStmt,
                          boolean pBeforeBranch)
addToElsePart Add pStmt to the tail of else-part of this if-statement. If pBeforeBranch is true, the addition is made before a branch statement in the else-part if there is a branch. If else-part is a non-block statement, then it is changed to a block statement containing pStmt. The else-part should not be null.

パラメータ:
pStmt - Statement to be added.
pBeforeBranch - true if addition before branch point.

replaceThenPart

public void replaceThenPart(LabeledStmt pNewThenPart)
replaceThenPart Replace the then-part of this if-statement by pNewThenPart. The label kind of the label in pNewThenPart is set to Label.THEN_LABEL.

パラメータ:
pNewThenPart - Statement used for replacement.

replaceElsePart

public void replaceElsePart(LabeledStmt pNewElsePart)
replaceThenPart Replace the else-part of this if-statement by pNewElsePart. The label kind of the label in pNewElsePart is set to Label.ELSE_LABEL.

パラメータ:
pNewElsePart - Statement used for replacement.