coins.ir.hir
クラス SubpDefinitionImpl

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

public class SubpDefinitionImpl
extends HIR_Impl
implements SubpDefinition

Subprogram definition node.


フィールドの概要
 int fNodeIndexMax
          fNodeIndexMin Minimum of the node index.
 int fNodeIndexMin
          fNodeIndexMin Minimum of the node index.
 
クラス 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
 
コンストラクタの概要
SubpDefinitionImpl(HirRoot pHirRoot, Subp pSubpSym, SymTable pLocalSymTable, BlockStmt pInitiation, BlockStmt pHirBody)
           
 
メソッドの概要
 void accept(HirVisitor pVisitor)
          accept Acceptor used in HIR visitor.
 void addInitiationStmt(Stmt pStmt)
          Add pInitiationStmt to the tail of the block containing initiation statements that should be executed at the entry to the subprogram.
 java.lang.Object clone()
          clone Override Object.clone in HIR.
 HIR copyWithOperandsChangingLabel(IrList pLabelCorrespondence)
           
 Stmt getHirBody()
          Get the body part of the subprogram.
 BlockStmt getInitiationPart()
           Get the block containing statements that initiate variables local to the subprogram.
 int getNodeIndexMax()
          Get the node index attached at the last node of the subprogram definition.
 int getNodeIndexMin()
          Get the node index attached at the first node of the subprogram definition.
 Label getStartLabel()
          Get the start label that is attached at the head of subprogram body.
 Subp getSubpSym()
          Get the subprogram symbol of this subprogram definition.
 SymTable getSymTable()
          Get the symbol table local to the subprogram.
 void print(int pIndent, boolean pDetail)
          print Print this subtree in text format traversing all children of this node.
 void printHir(java.lang.String pHeader)
          printHir Print the HIR body of this subprogram.
 void setHirBody(BlockStmt pHirBody)
          Set pHirBody as the body part of the subprogram.
 void setSymTable(SymTable pSymTable)
           
 
クラス 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, getNextStmt, 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, 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, toStringDetail, 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.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, 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, program, qualifiedExp, repeatStmt, replaceThisNode, returnStmt, setFlag, setIndexNumberToAllNodes, sizeofExp, sizeofExp, subpDefinition, subpNode, subscriptedExp, switchStmt, symNode, trueNode, undecayExp, varNode, whileStmt
 

フィールドの詳細

fNodeIndexMin

public int fNodeIndexMin
fNodeIndexMin Minimum of the node index. fNodeIndexMax Maximum of the node index. They are set by setIndexNumberToAllNodes of HIR interface.


fNodeIndexMax

public int fNodeIndexMax
fNodeIndexMin Minimum of the node index. fNodeIndexMax Maximum of the node index. They are set by setIndexNumberToAllNodes of HIR interface.

コンストラクタの詳細

SubpDefinitionImpl

public SubpDefinitionImpl(HirRoot pHirRoot,
                          Subp pSubpSym,
                          SymTable pLocalSymTable,
                          BlockStmt pInitiation,
                          BlockStmt pHirBody)
メソッドの詳細

getSymTable

public SymTable getSymTable()
インタフェース SubpDefinition の記述:
Get the symbol table local to the subprogram.

定義:
インタフェース SubpDefinition 内の getSymTable
戻り値:
the symbol table.

setSymTable

public void setSymTable(SymTable pSymTable)

getSubpSym

public Subp getSubpSym()
インタフェース SubpDefinition の記述:
Get the subprogram symbol of this subprogram definition.

定義:
インタフェース SubpDefinition 内の getSubpSym
戻り値:
the subprogram symbol.

getInitiationPart

public BlockStmt getInitiationPart()
インタフェース SubpDefinition の記述:
 Get the block containing statements that initiate
 variables local to the subprogram.
 Note:
   In C language, initial value specification should be
   evaluated at the position where the initial value
   declaration statement encountered. This means that
   the initiation statement in HIR should be placed
   at the position where the declaration statement is
   encountered, just as executable statement. Thus, if
   the source language is C, getInitiationPart() will
   return empty BlockStmt or null.

定義:
インタフェース SubpDefinition 内の getInitiationPart
戻り値:
the block statement containing initiation statements that should be executed at the entry point of the subprogram.

addInitiationStmt

public void addInitiationStmt(Stmt pStmt)
インタフェース SubpDefinition の記述:
Add pInitiationStmt to the tail of the block containing initiation statements that should be executed at the entry to the subprogram. (If C is the source language, this method is not used.)

定義:
インタフェース SubpDefinition 内の addInitiationStmt
パラメータ:
pStmt - to be added to the initiation block.

getHirBody

public Stmt getHirBody()
インタフェース SubpDefinition の記述:
Get the body part of the subprogram. It contains the sequence of executable statements in the subprogram.

定義:
インタフェース SubpDefinition 内の getHirBody
戻り値:
the body part of the subprogram.

setHirBody

public void setHirBody(BlockStmt pHirBody)
インタフェース SubpDefinition の記述:
Set pHirBody as the body part of the subprogram.

定義:
インタフェース SubpDefinition 内の setHirBody
パラメータ:
pHirBody - body part to be set.

getStartLabel

public Label getStartLabel()
インタフェース SubpDefinition の記述:
Get the start label that is attached at the head of subprogram body.

定義:
インタフェース SubpDefinition 内の getStartLabel
戻り値:
the start label.

copyWithOperandsChangingLabel

public HIR copyWithOperandsChangingLabel(IrList pLabelCorrespondence)

clone

public java.lang.Object clone()
                       throws java.lang.CloneNotSupportedException
クラス HIR_Impl の記述:
clone Override Object.clone in HIR.

オーバーライド:
クラス HIR_Impl 内の clone
戻り値:
cloned HIR object.
例外:
java.lang.CloneNotSupportedException

print

public void print(int pIndent,
                  boolean pDetail)
インタフェース IR の記述:
print Print this subtree in text format traversing all children of this node. "this" may be any subtree (it may be a leaf node).

定義:
インタフェース IR 内の print
オーバーライド:
クラス HIR_Impl 内の print
パラメータ:
pIndent - number of heading spaces for indentation.
pDetail - true if detail print is requested, false otherwise.

printHir

public void printHir(java.lang.String pHeader)
インタフェース SubpDefinition の記述:
printHir Print the HIR body of this subprogram.

定義:
インタフェース SubpDefinition 内の printHir
パラメータ:
pHeader - Header message to be printed.

accept

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

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

getNodeIndexMin

public int getNodeIndexMin()
インタフェース SubpDefinition の記述:
Get the node index attached at the first node of the subprogram definition. It is the minimum index of the subprogram definition.

定義:
インタフェース SubpDefinition 内の getNodeIndexMin
戻り値:
the minimum index.

getNodeIndexMax

public int getNodeIndexMax()
インタフェース SubpDefinition の記述:
Get the node index attached at the last node of the subprogram definition. It is the maximum index of the subprogram definition.

定義:
インタフェース SubpDefinition 内の getNodeIndexMax
戻り値:
the maximum index.