coins.ir.hir
Interface SwitchStmt

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

public interface SwitchStmt
extends Stmt

switch 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 getBodyStmt()
          Gget switch-body statement that contains case statements.
 Const getCaseConst(int index)
          Get the n-th (head is 0) case constant.
 int getCaseCount()
           
 Label getCaseLabel(int index)
          getCaseLabel Get n-th (head is 0) case label.
 LabelNode getCaseLabelNode(int index)
          getCaseLabelNode Get LabelNode of n-th (head is 0) case label.
 Label getDefaultLabel()
          Get default label
 LabelNode getDefaultLabelNode()
          Get default label node
 Label getEndLabel()
          Get break destination label (switch-end label) of this switch statement.
 Exp getSelectionExp()
          Get selection expression
 LabeledStmt getSwitchEndNode()
          Get the switch end node to where break statements jump.
 void setSelectionExp(Exp pSelectionExp)
          Set selection expression
 
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

getSelectionExp

public Exp getSelectionExp()
Get selection expression

Returns:
the selection expression.

setSelectionExp

public void setSelectionExp(Exp pSelectionExp)
Set selection expression

Parameters:
pSelectionExp - Selection expression of this switch statement.

getCaseCount

public int getCaseCount()
Returns:
the number of case branches of this switch.

getCaseConst

public Const getCaseConst(int index)
Get the n-th (head is 0) case constant. If out of range , return null

Returns:
the n-th case constant.

getCaseLabel

public Label getCaseLabel(int index)
getCaseLabel Get n-th (head is 0) case label. If out of range , return null.

Returns:
the n-th case label.

getCaseLabelNode

public LabelNode getCaseLabelNode(int index)
getCaseLabelNode Get LabelNode of n-th (head is 0) case label. If out of range , return null.

Returns:
the n-th case label node.

getDefaultLabel

public Label getDefaultLabel()
Get default label

Returns:
the default label

getDefaultLabelNode

public LabelNode getDefaultLabelNode()
Get default label node

Returns:
the default label node

getEndLabel

public Label getEndLabel()
Get break destination label (switch-end label) of this switch statement.

Returns:
the break destination label.

getSwitchEndNode

public LabeledStmt getSwitchEndNode()
Get the switch end node to where break statements jump.

Returns:
the switch end node with switch-end label.

getBodyStmt

public Stmt getBodyStmt()
Gget switch-body statement that contains case statements. (Usually, it is BlockStmt.)

Returns:
the body statement of this switch statement.