coins.ir.hir
Class IndexedLoopStmtImpl

java.lang.Object
  extended bycoins.ir.hir.HIR_Impl
      extended bycoins.ir.hir.StmtImpl
          extended bycoins.ir.hir.LoopStmtImpl
              extended bycoins.ir.hir.IndexedLoopStmtImpl
All Implemented Interfaces:
java.lang.Cloneable, HasStringObject, HIR, HIR0, IndexedLoopStmt, IR, IR0, LoopStmt, Stmt

public class IndexedLoopStmtImpl
extends LoopStmtImpl
implements IndexedLoopStmt

IndexedLoop-statement class.


Field Summary
protected  Exp fEndValue
           
protected  Var fLoopIndex
           
protected  Exp fStartValue
           
protected  Exp fStepValue
           
protected  boolean fUpward
           
 
Fields inherited from class coins.ir.hir.LoopStmtImpl
fLoopBackLabel, fLoopEndLabel, fLoopInf, fLoopStepLabel
 
Fields inherited from class coins.ir.hir.StmtImpl
fMultiBlock, fNextStmt, fPrevStmt
 
Fields inherited from class coins.ir.hir.HIR_Impl
fAdditionalChild, fChildCount, fChildNode1, fChildNode2, fDbgLevel, fHirAnnex, fOperator, fParentNode, fType, hirRoot, inversionTable, machineParam, sourceLanguage
 
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
 
Constructor Summary
IndexedLoopStmtImpl(HirRoot pHirRoot, Var pLoopIndex, Exp pStartValue, Exp pEndValue, Exp pStepValue, boolean pUpward, Stmt pLoopBody)
           
 
Method Summary
 void accept(HirVisitor pVisitor)
          accept Acceptor used in HIR visitor.
 Exp getEndValue()
          getEndValue Get the end value of the loop index.
 Var getLoopIndex()
          getLoopIndex Get the loop index variable of this loop.
 Exp getStartValue()
          getStartValue Get the start value of the loop index.
 Exp getStepValue()
          getStepValue Get the step value of this loop.
 boolean isUpward()
          isUpward See whether upward or downword.
 
Methods inherited from class coins.ir.hir.LoopStmtImpl
addToConditionalInitPart, addToLoopBodyPart, addToLoopEndPart, addToLoopInitPart, addToLoopStepPart, clone, combineWithConditionalExp, getConditionalInitPart, getConditionalInitPart2, getLoopBackLabel, getLoopBackPoint, getLoopBodyLabel, getLoopBodyPart, getLoopEndCondition, getLoopEndLabel, getLoopEndPart, getLoopInf, getLoopInitPart, getLoopStartCondition, getLoopStepLabel, getLoopStepPart, isLoopStmt, isSimpleForLoop, isSimpleIndexedLoop, isSimpleRepeatLoop, isSimpleUntilLoop, isSimpleWhileLoop, makeConditionalInitPart, replaceBodyPart, replaceConditionalInitPart, setChildrenOfLoop, setLoopEndCondition, setLoopInf, setLoopStartCondition
 
Methods inherited from class 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, isMultiBlock, isolateThisStmt, printLinkage, replaceThisStmtWith, setFileName, setLineNumber, toStringDetail, traceFirstStmt, traceLastStmt
 
Methods inherited from class 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
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface coins.ir.hir.LoopStmt
addToConditionalInitPart, addToLoopBodyPart, addToLoopEndPart, addToLoopInitPart, addToLoopStepPart, getConditionalInitPart, getLoopBackLabel, getLoopBackPoint, getLoopBodyLabel, getLoopBodyPart, getLoopEndCondition, getLoopEndLabel, getLoopEndPart, getLoopInf, getLoopInitPart, getLoopStartCondition, getLoopStepLabel, getLoopStepPart, isSimpleForLoop, isSimpleIndexedLoop, isSimpleRepeatLoop, isSimpleWhileLoop, replaceBodyPart, setLoopEndCondition, setLoopInf, setLoopStartCondition
 
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
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
 

Field Detail

fLoopIndex

protected Var fLoopIndex

fStartValue

protected Exp fStartValue

fEndValue

protected Exp fEndValue

fStepValue

protected Exp fStepValue

fUpward

protected boolean fUpward
Constructor Detail

IndexedLoopStmtImpl

public IndexedLoopStmtImpl(HirRoot pHirRoot,
                           Var pLoopIndex,
                           Exp pStartValue,
                           Exp pEndValue,
                           Exp pStepValue,
                           boolean pUpward,
                           Stmt pLoopBody)
Method Detail

getLoopIndex

public Var getLoopIndex()
Description copied from interface: IndexedLoopStmt
getLoopIndex Get the loop index variable of this loop.

Specified by:
getLoopIndex in interface IndexedLoopStmt
Returns:
loop index variable.

getStartValue

public Exp getStartValue()
Description copied from interface: IndexedLoopStmt
getStartValue Get the start value of the loop index.

Specified by:
getStartValue in interface IndexedLoopStmt
Returns:
loop start value.

getEndValue

public Exp getEndValue()
Description copied from interface: IndexedLoopStmt
getEndValue Get the end value of the loop index.

Specified by:
getEndValue in interface IndexedLoopStmt
Returns:
loop end value.

getStepValue

public Exp getStepValue()
Description copied from interface: IndexedLoopStmt
getStepValue Get the step value of this loop.

Specified by:
getStepValue in interface IndexedLoopStmt
Returns:
loop step value.

isUpward

public boolean isUpward()
Description copied from interface: IndexedLoopStmt
isUpward See whether upward or downword.

Specified by:
isUpward in interface IndexedLoopStmt
Returns:
true if upward, else return false.

accept

public void accept(HirVisitor pVisitor)
Description copied from interface: HIR0
accept Acceptor used in HIR visitor. See HirVisitor, HirVisitorModel1, HirVisitormodel2.

Specified by:
accept in interface HIR0
Overrides:
accept in class LoopStmtImpl