coins.ir.hir
クラス SwitchStmtImpl
java.lang.Object
|
+--coins.ir.hir.HIR_Impl
|
+--coins.ir.hir.StmtImpl
|
+--coins.ir.hir.SwitchStmtImpl
- すべての実装インタフェース:
- java.lang.Cloneable, HasStringObject, HIR, HIR0, IR, IR0, Stmt, SwitchStmt
- 直系の既知のサブクラス:
- SwitchModify
- public class SwitchStmtImpl
- extends StmtImpl
- implements SwitchStmt
switch statement class.
(by S. Fukuda)
クラス 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, 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, toString, 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, 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.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 |
defaultLabel
public Label defaultLabel
endLabel
public Label endLabel
SwitchStmtImpl
public SwitchStmtImpl(HirRoot pHirRoot,
Exp pSelectionExp,
IrList pJumpList,
Label pDefaultLabel,
Stmt pBodyStmt,
Label pEndLabel)
- SwitchStmtImpl
SwitchStmt ->
( switchCode
Exp @ // Case selection expression.
JumpTable_ @ // List of constants and statement
// labels.
Stmt @ // Collection of statements to be
// selected.
LabelStmt_ @ ) // Indicates end of switch statement.
JumpTable_ ->
( seqCode JumpList_ @
LabelNode @ ) // Default label.
JumpList_ -> ( listCode List_of_SwitchCase @ ) // Corelate
// Exp value and list of SwitchCase_ pairs.
SwitchCase_ -> ( seqCode ConstNode @ // Corelate Exp value and
LabelNode @ ) // switch statement label.
child1: case selection expression
child2: JumpTable of the form (seq jumpList LabelNode)
where labelNode indicates default label, and
jumpList is a list of const-label pairs
(hirList (hirSeq constNode labelNode) ... )
child3: statement containing statements to be selected.
child4: LabeledStmt indicating end of switch statement.
If default statement does not appear (defaultLabel.getHIRposition()
is null), then the defaultLabel is attached to the switch end
statement (statement with endlabel).
SwitchStmtImpl
public SwitchStmtImpl()
SwitchStmtImpl
public SwitchStmtImpl(HirRoot pHirRoot)
getSelectionExp
public Exp getSelectionExp()
- インタフェース
SwitchStmt
の記述:
- Get selection expression
- 定義:
- インタフェース
SwitchStmt
内の getSelectionExp
- 戻り値:
- the selection expression.
setSelectionExp
public void setSelectionExp(Exp pSelectionExp)
- インタフェース
SwitchStmt
の記述:
- Set selection expression
- 定義:
- インタフェース
SwitchStmt
内の setSelectionExp
- パラメータ:
pSelectionExp
- Selection expression of this switch statement.
getCaseCount
public int getCaseCount()
- 定義:
- インタフェース
SwitchStmt
内の getCaseCount
- 戻り値:
- the number of case branches of this switch.
getCaseConst
public Const getCaseConst(int index)
- インタフェース
SwitchStmt
の記述:
- Get the n-th (head is 0) case constant.
If out of range , return null
- 定義:
- インタフェース
SwitchStmt
内の getCaseConst
- 戻り値:
- the n-th case constant.
getCaseLabel
public Label getCaseLabel(int index)
- インタフェース
SwitchStmt
の記述:
- getCaseLabel
Get n-th (head is 0) case label.
If out of range , return null.
- 定義:
- インタフェース
SwitchStmt
内の getCaseLabel
- 戻り値:
- the n-th case label.
getCaseLabelNode
public LabelNode getCaseLabelNode(int index)
- インタフェース
SwitchStmt
の記述:
- getCaseLabelNode
Get LabelNode of n-th (head is 0) case label.
If out of range , return null.
- 定義:
- インタフェース
SwitchStmt
内の getCaseLabelNode
- 戻り値:
- the n-th case label node.
getDefaultLabel
public Label getDefaultLabel()
- インタフェース
SwitchStmt
の記述:
- Get default label
- 定義:
- インタフェース
SwitchStmt
内の getDefaultLabel
- 戻り値:
- the default label
getDefaultLabelNode
public LabelNode getDefaultLabelNode()
- インタフェース
SwitchStmt
の記述:
- Get default label node
- 定義:
- インタフェース
SwitchStmt
内の getDefaultLabelNode
- 戻り値:
- the default label node
getEndLabel
public Label getEndLabel()
- インタフェース
SwitchStmt
の記述:
- Get break destination label (switch-end label) of this
switch statement.
- 定義:
- インタフェース
SwitchStmt
内の getEndLabel
- 戻り値:
- the break destination label.
getBodyStmt
public Stmt getBodyStmt()
- インタフェース
SwitchStmt
の記述:
- Gget switch-body statement that contains case statements.
(Usually, it is BlockStmt.)
- 定義:
- インタフェース
SwitchStmt
内の getBodyStmt
- 戻り値:
- the body statement of this switch statement.
getSwitchEndNode
public LabeledStmt getSwitchEndNode()
- インタフェース
SwitchStmt
の記述:
- Get the switch end node to where break statements jump.
- 定義:
- インタフェース
SwitchStmt
内の getSwitchEndNode
- 戻り値:
- the switch end node with switch-end label.
combineWithConditionalExp
public void combineWithConditionalExp(Stmt pStmt,
HIR pCond)
- Combine pStmt with conditional expression part pCond
of control statement so that pStmt should be executed before
pCond.
- 定義:
- インタフェース
Stmt
内の combineWithConditionalExp
- オーバーライド:
- クラス
StmtImpl
内の combineWithConditionalExp
- パラメータ:
pStmt
- statement to be executed before pCond.pCond
- conditional expression to be combined with pStmt.
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