coins.ir.hir
クラス AssignStmtImpl

java.lang.Object
  |
  +--coins.ir.hir.HIR_Impl
        |
        +--coins.ir.hir.StmtImpl
              |
              +--coins.ir.hir.AssignStmtImpl
すべての実装インタフェース:
AssignStmt, java.lang.Cloneable, HasStringObject, HIR, HIR0, IR, IR0, Stmt

public class AssignStmtImpl
extends StmtImpl
implements AssignStmt

Assignment statement class.


フィールドの概要
 
クラス coins.ir.hir.StmtImpl から継承したフィールド
fMultiBlock, fNextStmt, fPrevStmt
 
クラス coins.ir.hir.HIR_Impl から継承したフィールド
fAdditionalChild, fChildCount, fChildNode1, fChildNode2, fDbgLevel, fHirAnnex, fOperator, fParentNode, fType, hirRoot, inversionTable, machineParam, sourceLanguage
 
インタフェース 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
 
コンストラクタの概要
AssignStmtImpl(HirRoot pHirRoot, Exp pLeftSide, Exp pRightSide)
           
 
メソッドの概要
 void accept(HirVisitor pVisitor)
          accept Acceptor used in HIR visitor.
 Exp getLeftSide()
          getLeftSide getRightSide These methods get a component of "this" assign statement. (##2) If "this" is not an assignment statement, then they return null.
 Exp getRightSide()
          getLeftSide getRightSide These methods get a component of "this" assign statement. (##2) If "this" is not an assignment statement, then they return null.
 void replaceResultOperand(IR pOperand)
          replaceResultOperand Replace result variable of "this" node by pOperand.
 void replaceResultVar(IR pOperand)
          replaceResultVar to be DELETED.
 HIR replaceSource(int pNumber, HIR pOperand)
           
 HIR replaceSource1(HIR pOperand)
          replaceSource1 Replace the source operand 1 of "this" node by pOperand.
 HIR replaceSource2(HIR pOperand)
          replaceSource2 Replace the source operand 2 of "this" node by pOperand.
 void setLeftSide(Exp pOperand)
           
 void setRightSide(Exp pOperand)
           
 
クラス coins.ir.hir.StmtImpl から継承したメソッド
addNextStmt, addNextStmt, adjustMultiBlockFlag, adjustMultiBlockFlag, ancestorControlStmtOfConditionalExp, attachLabel, attachLabelAsFirstOne, backTraceLabeledStmt, clone, combineStmt, combineWithConditionalExp, 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, 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, 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, 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 から継承したメソッド
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
 

コンストラクタの詳細

AssignStmtImpl

public AssignStmtImpl(HirRoot pHirRoot,
                      Exp pLeftSide,
                      Exp pRightSide)
メソッドの詳細

getLeftSide

public Exp getLeftSide()
getLeftSide getRightSide These methods get a component of "this" assign statement. (##2) If "this" is not an assignment statement, then they return null. "this" should be AssignStmt statement built by buildAssign. getLeftSide return the left hand side expression (pLeftSide). getRightSide return the right hand side expression (pRightSide).

定義:
インタフェース AssignStmt 内の getLeftSide

getRightSide

public Exp getRightSide()
インタフェース AssignStmt の記述:
getLeftSide getRightSide These methods get a component of "this" assign statement. (##2) If "this" is not an assignment statement, then they return null. "this" should be AssignStmt statement built by buildAssign. getLeftSide return the left hand side expression (pLeftSide). getRightSide return the right hand side expression (pRightSide).

定義:
インタフェース AssignStmt 内の getRightSide

setLeftSide

public void setLeftSide(Exp pOperand)
定義:
インタフェース AssignStmt 内の setLeftSide

setRightSide

public void setRightSide(Exp pOperand)
定義:
インタフェース AssignStmt 内の setRightSide

replaceSource1

public HIR replaceSource1(HIR pOperand)
インタフェース HIR の記述:
replaceSource1 Replace the source operand 1 of "this" node by pOperand. "this" should be a node that can have source operand 1, that is, nonleaf node if "this" is HIR node, etc.

定義:
インタフェース HIR 内の replaceSource1
オーバーライド:
クラス HIR_Impl 内の replaceSource1
パラメータ:
pOperand - node that take place of source operand 1.

replaceSource2

public HIR replaceSource2(HIR pOperand)
インタフェース HIR の記述:
replaceSource2 Replace the source operand 2 of "this" node by pOperand. Other matters and conditions are just like those of replaceSource1. "this" should be a node that can have source operand 2.

定義:
インタフェース HIR 内の replaceSource2
オーバーライド:
クラス HIR_Impl 内の replaceSource2
パラメータ:
pOperand - node that take place of source operand 2.

replaceSource

public HIR replaceSource(int pNumber,
                         HIR pOperand)

replaceResultOperand

public void replaceResultOperand(IR pOperand)
replaceResultOperand Replace result variable of "this" node by pOperand. "this" should be a node that can have variable as its result operand, that is, "this" should be HIR assign node or LIR store node. If "this" is HIR assign node, its child 1 representing left hand side variable is replaced by pOperand. If "this" is LIR store node, the result variable is replaced by pOperand which may be a simple variable or a register or some other expression representing address of variable. (##2)

パラメータ:
pOperand - node that takes place of result variable. If "this" is HIR node then it should be HIR node, if "this" is LIR node then it should be LIR node.

replaceResultVar

public void replaceResultVar(IR pOperand)
replaceResultVar to be DELETED. Use replaceResultOperand. Replace result variable of "this" node by pOperand. "this" should be a node that can have variable as its result operand, that is, "this" should be HIR assign node or LIR store node. If "this" is HIR assign node, its child 1 representing left hand side variable is replaced by pOperand. If "this" is LIR store node, the result variable is replaced by pOperand which may be a simple variable or a register or some other expression representing address of variable. (##2)

パラメータ:
pOperand - node that takes place of result variable. If "this" is HIR node then it should be HIR node, if "this" is LIR node then it should be LIR node.

accept

public void accept(HirVisitor pVisitor)
インタフェース HIR0 の記述:
accept Acceptor used in HIR visitor. See HirVisitor, HirVisitorModel1, HirVisitormodel2.

定義:
インタフェース HIR0 内の accept
オーバーライド:
クラス HIR_Impl 内の accept
パラメータ:
pVisitor - HirVisitor