coins.ir.hir
インタフェース SubpDefinition

すべてのスーパーインタフェース:
java.lang.Cloneable, HIR, HIR0, IR, IR0
既知の実装クラスの一覧:
SubpDefinitionImpl

public interface SubpDefinition
extends HIR

Subprogram definition node.


フィールドの概要
 
インタフェース 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
 
メソッドの概要
 void addInitiationStmt(Stmt pInitiationStmt)
          Add pInitiationStmt to the tail of the block containing initiation statements that should be executed at the entry to the subprogram.
 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 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.
 
インタフェース 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, print, removeInf
 
インタフェース coins.ir.IR0 から継承したメソッド
getChild, getChildCount, getIndex, getOperator, setChild
 
インタフェース 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
 

メソッドの詳細

getSymTable

public SymTable getSymTable()
Get the symbol table local to the subprogram.

戻り値:
the symbol table.

getSubpSym

public Subp getSubpSym()
Get the subprogram symbol of this subprogram definition.

戻り値:
the subprogram symbol.

getInitiationPart

public BlockStmt getInitiationPart()
 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.

戻り値:
the block statement containing initiation statements that should be executed at the entry point of the subprogram.

addInitiationStmt

public void addInitiationStmt(Stmt pInitiationStmt)
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.)

パラメータ:
pInitiationStmt - to be added to the initiation block.

getHirBody

public Stmt getHirBody()
Get the body part of the subprogram. It contains the sequence of executable statements in the subprogram.

戻り値:
the body part of the subprogram.

setHirBody

public void setHirBody(BlockStmt pHirBody)
Set pHirBody as the body part of the subprogram.

パラメータ:
pHirBody - body part to be set.

getStartLabel

public Label getStartLabel()
Get the start label that is attached at the head of subprogram body.

戻り値:
the start label.

printHir

public void printHir(java.lang.String pHeader)
printHir Print the HIR body of this subprogram.

パラメータ:
pHeader - Header message to be printed.

getNodeIndexMin

public int getNodeIndexMin()
Get the node index attached at the first node of the subprogram definition. It is the minimum index of the subprogram definition.

戻り値:
the minimum index.

getNodeIndexMax

public int getNodeIndexMax()
Get the node index attached at the last node of the subprogram definition. It is the maximum index of the subprogram definition.

戻り値:
the maximum index.