coins.sym
クラス SubpImpl

java.lang.Object
  |
  +--coins.sym.SymImpl
        |
        +--coins.sym.SubpImpl
すべての実装インタフェース:
java.lang.Cloneable, HasStringObject, Subp, Sym, Sym0

public class SubpImpl
extends SymImpl
implements Subp

Subp Class Subp (subprogram) class. Subprogram means such program construct as procedure, function, method, constructor, destructor, statement function, library function, etc. Each subprogram has its local symbol table which is maintained by pushSymbolTable, popSymbolTable, reopenSymbolTable in SymbolTableInterface. Enhancement is required to implement object oriented languages.


フィールドの概要
protected  java.util.Set fAccessedSyms
          Set of FlowAnalSym symbols accessed in this subprogram
protected  IrList fCallList
          List of subprograms called from this subprogram
protected  Label fEndLabel
           
protected  int fErrorCount
           
protected  java.lang.Object fFlowInf
          Information locally used for flow analysis, optimization, parallelyzation, etc. of this subprogram.
protected  Stmt fHirBody
          The HIR body statement of this subprogram
protected  BlockStmt fInitiationProcess
          initiation procedure of this subprogram
protected  IrList fLabelDefList
          Defineded labels in this subprogram
protected  SymTable fLocalSymTable
           
protected  Subp fNextSubp
          Link to the next subproguram
protected  boolean fNoParamSpec
          fIsAnyParamPermitted is true if any number of parameters of any kind are permitted.
protected  java.lang.Object fOptInf
           
protected  Param fOptParam
          Optional parameter generated for this subprogram if this subprogram has optional parameters.
protected  java.lang.Object fParallelInf
           
protected  IrList fParamList
          Parameter IrList of this subprogram.
protected  boolean fParamListIsSet
          fParamListIsSet is changed to true if fParamList is set (so as not to change it any more).
protected  IrList fParamListTemp
          Parameter type list of this subprogram.
protected  IrList fParamTypeListTemp
          Parameter type list temporally used in addParamType.
protected  Type fReturnValueType
           
 boolean fSafeArrayAll
          fSafeArrayAll is set to true if #pragama safeArrayAll is given.
protected  Label fStartLabel
           
protected  SubpDefinition fSubpDefinition
          The IR SubpDefinition node of this subprogram
protected  int fSubpKind
          Kind of this subprogram
protected  int fTempCount
           
protected  int fTempDCount
           
protected  IrList fTempDVarList
          List of temporal double variables ganerated by compiler
protected  IrList fTempVarList
          List of temporal long variables ganerated by compiler
 
クラス coins.sym.SymImpl から継承したフィールド
fDbgLevel, fDefinedIn, fFlagBox, fKind, fName, fNextSym, fRecordedIn, fSourceInf, fSymInf, fType, fUniqueNameSym, fWork, machineParam, sourceLanguage, symRoot
 
インタフェース coins.sym.Sym から継承したフィールド
KIND_NAME, VISIBILITY
 
インタフェース coins.sym.Sym0 から継承したフィールド
FLAG_ADDRESS_TAKEN, FLAG_CASTLESS_SUBP, FLAG_COMMON, FLAG_COMPLEX_STRUCT, FLAG_DERIVED_SYM, FLAG_GENERATED_SYM, FLAG_INCOMPLETE_TYPE, FLAG_POINTER_OPERATION, FLAG_REGION_ELEM, FLAG_RESERVED_NAME, FLAG_SIZEOF_TAKEN, FLAG_UNFIXED_SIZE, FLAG_UNIFORM_SIZE, FLAG_VALUE_IS_ASSIGNED, KIND_AREG, KIND_BOOL_CONST, KIND_CHAR_CONST, KIND_CONST_FIRST, KIND_CONST_LAST, KIND_ELEM, KIND_EXP_ID, KIND_FLOAT_CONST, KIND_INT_CONST, KIND_LABEL, KIND_MREG, KIND_NAMED_CONST, KIND_OTHER, KIND_PARAM, KIND_REMOVED, KIND_STRING_CONST, KIND_SUBP, KIND_TAG, KIND_TYPE, KIND_VAR, SYM_COMPILE_UNIT, SYM_EXTERN, SYM_PRIVATE, SYM_PROTECTED, SYM_PUBLIC
 
コンストラクタの概要
SubpImpl(SymRoot pSymRoot)
           
SubpImpl(SymRoot pSymRoot, java.lang.String pName, Type pReturnValueType, Sym pDefinedIn)
           
 
メソッドの概要
 void addInitiationStmt(Stmt pInitiation)
          addInitiationStmt Add pInitiation as the HIR statement in initiation procedure.
 void addParam(Param pParam)
          addParam Add parameter to the parameter list of this subprogram.
 void addParamType(Type pParamType)
          addParamType Add parameter type to a temporal parameter type list.
 void addToCallList(Subp pCallee)
          addToCallList Add pCallee as a subprogram in the call list of this subprogram.
 void addToErrorCount(int pCount)
          addToErrorCount Add pCount to the number of syntax/semantic error counter of this subprogram.
 void addToLabelDefList(Label pLabel)
           
 void buildLabelRefList()
          Build the list of labels defined in the subprogram so as getLabelDefList() returns proper list, and build the list of LabelNode for every labels to show the label node refering them.
 void closeSubpHeader()
          closeSubpHeader Finalize the header part of subprogram.
 void closeSubpPrototype()
          closeSubpPrototype Finalize a prototype declaration of subprogram.
 java.util.Set getAccessedSyms()
           
 IrList getCallList()
          getCallList Get the list of subprograms called in this subprogram.
 Label getEndLabel()
          getEndLabel setEndLabel Get/set a label attached to the exit point of this subprogram.
 int getErrorCount()
          getErrorCount Get the number of syntax/semantic errors of this subprogram.
 java.lang.Object getFlowInf()
          getEntryBBlock
 Stmt getHirBody()
          getHirBody Get the procedural body of this subprogram represented in high level intermediate representation (HIR).
 IrList getLabelDefList()
          getLabelDefList Get the list of labels defined in this subprogram.
 Subp getNextSubp()
          getNextSubp Get the subprogram next to this one having the same scope as this.
 java.lang.Object getOptInf()
           
 Param getOptionalParam()
          getOptionalParam -- TO BE DELETED Get the formal parameter generated by setOptionalParam for this subprogram.
 java.lang.Object getParallelInf()
           
 IrList getParamList()
          getParamList Get the parameter list of this subprogram.
 IrList getParamTypeList()
          getParamTypeList Get the parameter type list of this subprogram.
 Type getReturnValueType()
          getReturnValueType Get the return value type of this subprogram.
 Label getStartLabel()
          getStartLabel setStartLabel Get/set a label attached to the entry point of this subprogram.
 Stmt getStmtWithLabel(Label pLabel)
          getStmtWithLabel Get the HIR Stmt attached with pLabel.
 SubpDefinition getSubpDefinition()
          getFirstLocalVar //## Deleted.
 int getSubpKind()
          getSubpKind Get subprogram kind (subpOrdinary/subpMember/subpConstructor/subpDestructor).
 SymTable getSymTable()
          getSymTable Get the symbol table local to this subprogram.
 int getVisibility()
          getVisibility setVisibility Get/set the visibility attribute of the subprogram.
 boolean hasNoParamSpec()
          
 boolean hasOptionalParam()
          hasOptionalParam
 BlockStmt initiationProcedure()
          initiationProcedure Get HIR initiation procedure of this subprogram, where the initiation procedure is executed at the first invocation of this subprogram or at the beginning of execution and skipped in later invocations.
 boolean isSafeArrayAll()
           
 void printLabelRefList()
          Print the label reference list built by buildLabelRefList().
 void removeLabelDef(Label pLabel)
           
 void resetLabelLink()
          resetLabelLink Reset label reference list of labels in this subprogram.
 void setAccessedSyms(java.util.Set pAccessedSyms)
           
 void setEndLabel(Label pLabel)
           
 void setFlowInf(java.lang.Object pInf)
           
 void setHirBody(Stmt pHirBody, Label pStartLabel, Label pEndLabel)
          setHirBody Set the procedural body of this subprogram represented in high level intermediate representation (HIR).
 void setNextSubp(Subp pNext)
          setNextSubp Set pNext as the subprogram next to this one and make the original next subprogram as the next one of pNext.
 void setNoParamSpec()
          Permit any number of parameters of any type for this subprogram.
 void setOptInf(java.lang.Object pInf)
           
 Param setOptionalParam()
          setOptionalParam -- TO BE DELETED Generate a formal parameter corresponding to "..." in parameter specification and make getOptionalParam() to be true for this subprogram.
 void setParallelInf(java.lang.Object pInf)
           
 void setReturnValueType(Type pType)
          setReturnValueType Set the return value type of this subprogram.
 void setStartLabel(Label pLabel)
           
 void setSubpDefinition(SubpDefinition pSubpDefinition)
          setSubpDefinition Set the SubpDefinition node defining the IR body of this subprogram.
 void setSubpKind(int pSubpKind)
          setSubpKind Set subprogram kind (subpOrdinary/subpMember/subpConstructor/subpDestructor).
 void setSymTable(SymTable pSymTable)
          setSymTable Set the symbol table local to this subprogram.
 void setVisibility(int pVisibility)
          SetVisibility Sset the visibility attribute of the subprogram.
 java.lang.String toStringDetail()
          toStringDetail Get detailed attributes of this symbol in text which is not interned.
 
クラス coins.sym.SymImpl から継承したメソッド
bareStringConst, baseType, boolConst, charConst, charConst, charConst, definedType, definedType, defineElem, defineLabel, defineParam, defineRegionVar, defineSubp, defineVar, defineVar, derivedSym, enumType, enumType, floatConst, floatConst, getDefinedColumn, getDefinedFile, getDefinedIn, getDefinedInName, getDefinedLine, getFlag, getInf, getName, getNameOrNull, getNextSym, getOrAddInf, getOriginalSym, getOriginalSym, getPureName, getRecordedIn, getSourceInf, getSymKind, getSymKindName, getSymType, getUniqueName, getWork, intConst, intConst, intObject, isGlobal, isHIR, isRemoved, isSym, linkSym, makeCstring, makeCstringWithTrailing0, makeEnumTypeName, makeExpString, makeJavaString, makeStructUnionTypeName, makeSubpTypeName, makeSubpTypeName, makeVectorTypeName, makeVectorTypeName, makeVectorTypeName, namedConst, namedConst, pointerType, pointerType, pointerType, pointerType, pointerType, print, print, regionType, regionType, remove, setDefinedFile, setDefinedIn, setDefinedLine, setFlag, setOriginalSym, setParameters, setRecordedIn, setSourceInf, setSymKind, setSymType, setUniqueNameSym, setWork, stringConst, stringConstFromQuotedString, structType, structType, subpType, subpType, symbol, toString, toStringShort, unionType, unionType, vectorType, vectorType, vectorType, vectorType, vectorTypeUnfixed, vectorTypeUnfixed
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
インタフェース coins.sym.Sym から継承したメソッド
baseType, boolConst, charConst, defineVar, derivedSym, floatConst, getDefinedColumn, getDefinedInName, getDefinedLine, getInf, getNameOrNull, getOrAddInf, getOriginalSym, getOriginalSym, getPureName, getSymKindName, getWork, intConst, intObject, isRemoved, makeCstring, makeCstringWithTrailing0, makeEnumTypeName, makeJavaString, makeStructUnionTypeName, makeSubpTypeName, makeVectorTypeName, makeVectorTypeName, makeVectorTypeName, namedConst, pointerType, pointerType, pointerType, regionType, remove, setDefinedFile, setDefinedIn, setDefinedLine, setRecordedIn, setSymKind, setSymType, setUniqueNameSym, setWork, stringConstFromQuotedString, symbol, toStringShort, vectorType, vectorType, vectorType, vectorTypeUnfixed
 
インタフェース coins.sym.Sym0 から継承したメソッド
charConst, definedType, defineElem, defineLabel, defineParam, defineSubp, defineVar, enumType, floatConst, getDefinedFile, getDefinedIn, getFlag, getName, getNextSym, getRecordedIn, getSymKind, getSymType, getUniqueName, intConst, isGlobal, namedConst, pointerType, setFlag, stringConst, structType, subpType, unionType, vectorType, vectorTypeUnfixed
 

フィールドの詳細

fNextSubp

protected Subp fNextSubp
Link to the next subproguram


fSubpKind

protected int fSubpKind
Kind of this subprogram


fReturnValueType

protected Type fReturnValueType

fLocalSymTable

protected SymTable fLocalSymTable

fParamList

protected IrList fParamList
Parameter IrList of this subprogram. This is effective only after closeSubpHeader is called.


fParamListIsSet

protected boolean fParamListIsSet
fParamListIsSet is changed to true if fParamList is set (so as not to change it any more). fParamList is set by closeSubpHeader but not set by closeSubpPrototype.


fParamListTemp

protected IrList fParamListTemp
Parameter type list of this subprogram. This is temporally used for constructing SubpType and getParamTypeList() of SubpType does not refer this field.


fParamTypeListTemp

protected IrList fParamTypeListTemp
Parameter type list temporally used in addParamType.


fOptParam

protected Param fOptParam
Optional parameter generated for this subprogram if this subprogram has optional parameters. fOptParam is null if this subprogram has no optional param.


fNoParamSpec

protected boolean fNoParamSpec
fIsAnyParamPermitted is true if any number of parameters of any kind are permitted.


fTempVarList

protected IrList fTempVarList
List of temporal long variables ganerated by compiler


fTempCount

protected int fTempCount

fTempDVarList

protected IrList fTempDVarList
List of temporal double variables ganerated by compiler


fTempDCount

protected int fTempDCount

fSubpDefinition

protected SubpDefinition fSubpDefinition
The IR SubpDefinition node of this subprogram


fHirBody

protected Stmt fHirBody
The HIR body statement of this subprogram


fInitiationProcess

protected BlockStmt fInitiationProcess
initiation procedure of this subprogram


fLabelDefList

protected IrList fLabelDefList
Defineded labels in this subprogram


fStartLabel

protected Label fStartLabel

fEndLabel

protected Label fEndLabel

fCallList

protected IrList fCallList
List of subprograms called from this subprogram


fAccessedSyms

protected java.util.Set fAccessedSyms
Set of FlowAnalSym symbols accessed in this subprogram


fSafeArrayAll

public boolean fSafeArrayAll
fSafeArrayAll is set to true if #pragama safeArrayAll is given. It means that all subscripted variables and pointer expressions representing array elements never access memory location outside the corresponding array and their subscript values and offset values are all non-negative.


fFlowInf

protected java.lang.Object fFlowInf
Information locally used for flow analysis, optimization, parallelyzation, etc. of this subprogram.


fOptInf

protected java.lang.Object fOptInf

fParallelInf

protected java.lang.Object fParallelInf

fErrorCount

protected int fErrorCount
コンストラクタの詳細

SubpImpl

public SubpImpl(SymRoot pSymRoot)

SubpImpl

public SubpImpl(SymRoot pSymRoot,
                java.lang.String pName,
                Type pReturnValueType,
                Sym pDefinedIn)
メソッドの詳細

getNextSubp

public Subp getNextSubp()
getNextSubp Get the subprogram next to this one having the same scope as this. Default sequence is defined according to the order of creation by defineUnique, etc. in SymInterface, but it may also be set by setNextSubp.

定義:
インタフェース Subp 内の getNextSubp
戻り値:
the next subprogram which has the same DefinedIn as this subprogram. If there is no next subprogram, then return null.

setNextSubp

public void setNextSubp(Subp pNext)
setNextSubp Set pNext as the subprogram next to this one and make the original next subprogram as the next one of pNext.

定義:
インタフェース Subp 内の setNextSubp
パラメータ:
pNext - subprogram defined in the same scope as this subprogram.

getSubpKind

public int getSubpKind()
getSubpKind Get subprogram kind (subpOrdinary/subpMember/subpConstructor/subpDestructor).

定義:
インタフェース Subp 内の getSubpKind
戻り値:
int The subprogram kind of this subprogram.

setSubpKind

public void setSubpKind(int pSubpKind)
setSubpKind Set subprogram kind (subpOrdinary/subpMember/subpConstructor/subpDestructor).

定義:
インタフェース Subp 内の setSubpKind
パラメータ:
pSubpKind - subprogram kind to be set to this subprogram. setSubpKind set the subprogram kind of this subprogram as pSubpKind.

getVisibility

public int getVisibility()
getVisibility setVisibility Get/set the visibility attribute of the subprogram. "this" may be any subprogram.

定義:
インタフェース Subp 内の getVisibility
戻り値:
the visibility attribute of the subprogram

setVisibility

public void setVisibility(int pVisibility)
インタフェース Subp の記述:
SetVisibility Sset the visibility attribute of the subprogram.

定義:
インタフェース Subp 内の setVisibility
パラメータ:
pVisibility - visibility attribute to be set by setVisibility. (SYM_EXTERN, SYM_PUBLIC, SYM_PROTECTED, SYM_PRIVATE, SYM_COMPILE_UNIT)

getSymTable

public SymTable getSymTable()
インタフェース Subp の記述:
getSymTable Get the symbol table local to this subprogram. (The symbol table given by setSymTable.)

定義:
インタフェース Subp 内の getSymTable
戻り値:
the symbol table local to this subprogram.

setSymTable

public void setSymTable(SymTable pSymTable)
インタフェース Subp の記述:
setSymTable Set the symbol table local to this subprogram. If the symbol table is nested, then give the outermost symbol table local to this subprogram.

定義:
インタフェース Subp 内の setSymTable

getReturnValueType

public Type getReturnValueType()
インタフェース Subp の記述:
getReturnValueType Get the return value type of this subprogram.

定義:
インタフェース Subp 内の getReturnValueType
戻り値:
the return value type.

setReturnValueType

public void setReturnValueType(Type pType)
インタフェース Subp の記述:
setReturnValueType Set the return value type of this subprogram.

定義:
インタフェース Subp 内の setReturnValueType
パラメータ:
pType - the return value type.

getParamList

public IrList getParamList()
インタフェース Subp の記述:
getParamList Get the parameter list of this subprogram. If it has no parameter, then return empty list. //##80 Before calling this method, closeSubpHeader should be called. The returned value may be incorrect if this is called before calling closeSubpHeader.

定義:
インタフェース Subp 内の getParamList
戻り値:
the parameter list.

getParamTypeList

public IrList getParamTypeList()
インタフェース Subp の記述:
getParamTypeList Get the parameter type list of this subprogram. If it has no parameter, then return null. If neither closeSubpHeader nore closeSubpPrototype is called before calling this method, getParamTypeList may return null.

定義:
インタフェース Subp 内の getParamTypeList
戻り値:
the list of parameter types.

addParam

public void addParam(Param pParam)
インタフェース Subp の記述:
addParam
  Add parameter to the parameter list of this subprogram.
  If closeSubpPrototype has been called by processing
  prototype declaration, getParamTypeList will return
  the list of parameter types. It is recommended to check
  the consistency between prototype declaration and
  subprogram definition before calling addParam for
  each parameter. If null is returned by getParamTypeList,
  then prototype declaration is not yet given
  (closeSubpPrototype is not yet called.)
  See closeSubpHeader.

定義:
インタフェース Subp 内の addParam

addParamType

public void addParamType(Type pParamType)
インタフェース Subp の記述:
addParamType Add parameter type to a temporal parameter type list. See closeSubpPrototype.

定義:
インタフェース Subp 内の addParamType

getOptionalParam

public Param getOptionalParam()
getOptionalParam -- TO BE DELETED Get the formal parameter generated by setOptionalParam for this subprogram. If this subprogram has no optional parameter, return null.

戻り値:
the formal parameter generated for "..." in parameter specification.

setOptionalParam

public Param setOptionalParam()
setOptionalParam -- TO BE DELETED Generate a formal parameter corresponding to "..." in parameter specification and make getOptionalParam() to be true for this subprogram.


hasOptionalParam

public boolean hasOptionalParam()
インタフェース Subp の記述:
hasOptionalParam

定義:
インタフェース Subp 内の hasOptionalParam
戻り値:
true if this subprogram has optional parameter (represented by ... in C in such way as int printf(char*, ...)) otherwise return false.

setNoParamSpec

public void setNoParamSpec()
インタフェース Subp の記述:
Permit any number of parameters of any type for this subprogram.

定義:
インタフェース Subp 内の setNoParamSpec

hasNoParamSpec

public boolean hasNoParamSpec()
インタフェース Subp の記述:

定義:
インタフェース Subp 内の hasNoParamSpec
戻り値:
true if any number of parameters of any type are permitted in such case as extern sub(); sub(a); sub(a, b); in old C language style.

closeSubpHeader

public void closeSubpHeader()
インタフェース Subp の記述:
closeSubpHeader
  Finalize the header part of subprogram.
  This method will set subprogram type for this subprogram
  and set other inevitable information for this subprogram.
  Before calling this method, addParam, setOptionalParam,
  setVisibility should be called if required and return value type
  should be given if required as it is written
  in defineSubp of Sym interface.
  It is the responsibility of language dependent front end
  to check the consistency between prototype declaration and
  subprogram definition.
  If closeSubpPrototype has been called by processing
  prototype declaration, getParamTypeList will return
  the list of parameter types. It is recommended to check
  the consistency between prototype declaration and
  subprogram definition before calling addParam for
  each parameter. The closeSubpHeader will adjust
  the parameter type list according to the list get by
  getParamList and so the consistency check will not be
  effective after the call.

定義:
インタフェース Subp 内の closeSubpHeader

closeSubpPrototype

public void closeSubpPrototype()
インタフェース Subp の記述:
closeSubpPrototype
  Finalize a prototype declaration of subprogram.
  This method will set subprogram type for this subprogram.
  Before calling this method, addParamType, setOptionalParam,
  setVisibility should be called if required and return value type
  should also be given if required.
  It is the responsibility of language dependent front end
  to check the consistency between prototype declaration and
  subprogram definition.
  Typical sequence of processing prototype declaration is:
    Subp lSubp = symRoot.sym.defineSubp("name".intern(), returnType);
    lSubp.resetParamTypeList(); // If multiple declaration is allowed.
    lSubp.addParamType(paramType1);
    lSubp.addParamType(paramType2);
    ....
    lSubp.setOptionalparam(); // only when optional parameter is given.
    lSubp.setVisibility(Sym.SYM_PUBLIC); // only if public.
    lSubp.closeSubpPrototype();

定義:
インタフェース Subp 内の closeSubpPrototype

getSubpDefinition

public SubpDefinition getSubpDefinition()
getFirstLocalVar //## Deleted. See nextVar of SymIterator. Get the first local variable of this subprogram.

定義:
インタフェース Subp 内の getSubpDefinition
戻り値:
the first local variable of this subprogram. If this has no local variable, then return null. The first local variable is set when a variable is defined for the first time specifying this subprogram by pDefinedIn parameter in define etc.

setSubpDefinition

public void setSubpDefinition(SubpDefinition pSubpDefinition)
インタフェース Subp の記述:
setSubpDefinition Set the SubpDefinition node defining the IR body of this subprogram.

定義:
インタフェース Subp 内の setSubpDefinition
パラメータ:
pSubpDefinition - the SubpDefinition node of this subprogram.

getHirBody

public Stmt getHirBody()
getHirBody Get the procedural body of this subprogram represented in high level intermediate representation (HIR).

定義:
インタフェース Subp 内の getHirBody
戻り値:
HIR procedural body of this subprogram. If no procedural body is given in this compile unit (i.e. external subprogram) then return null.

setHirBody

public void setHirBody(Stmt pHirBody,
                       Label pStartLabel,
                       Label pEndLabel)
setHirBody Set the procedural body of this subprogram represented in high level intermediate representation (HIR).

定義:
インタフェース Subp 内の setHirBody
パラメータ:
pHirBody - procedural body represented in HIR specifying operations to be performed when this subprogram is called. setHirBody set pHirBody as the HIR procedural body of this subprogram.
pStartLabel - Label to be attached at entry point.
pEndLabel - Label to be attached at exit point.

initiationProcedure

public BlockStmt initiationProcedure()
initiationProcedure Get HIR initiation procedure of this subprogram, where the initiation procedure is executed at the first invocation of this subprogram or at the beginning of execution and skipped in later invocations.

戻り値:
initiation procedure block. Return null if no initiation procedure is specified.

addInitiationStmt

public void addInitiationStmt(Stmt pInitiation)
addInitiationStmt Add pInitiation as the HIR statement in initiation procedure.

パラメータ:
pInitiation - statement to be put in the ititiation block.

getLabelDefList

public IrList getLabelDefList()
getLabelDefList Get the list of labels defined in this subprogram. A label is added to the label list of symRoot.subpCurrent when defineLabel of Sym is called.

戻り値:
the list of labels defined in this subprogram.

resetLabelLink

public void resetLabelLink()
インタフェース Subp の記述:
resetLabelLink Reset label reference list of labels in this subprogram. getLabelRefList() for labels will return null when resetLabelLink is called and addToHirList, addToLirList are not yet called.

定義:
インタフェース Subp 内の resetLabelLink

addToLabelDefList

public void addToLabelDefList(Label pLabel)

removeLabelDef

public void removeLabelDef(Label pLabel)

getStmtWithLabel

public Stmt getStmtWithLabel(Label pLabel)
インタフェース Subp の記述:
getStmtWithLabel Get the HIR Stmt attached with pLabel.

定義:
インタフェース Subp 内の getStmtWithLabel
パラメータ:
pLabel - Label with which Stmt is to be searched.
戻り値:
Stmt attached with pLabel. return null if no statement is found having pLabel.

getStartLabel

public Label getStartLabel()
インタフェース Subp の記述:
getStartLabel setStartLabel Get/set a label attached to the entry point of this subprogram. The start label is attached by SubpDefinition and other classes are not required to worry about setting it.

定義:
インタフェース Subp 内の getStartLabel

setStartLabel

public void setStartLabel(Label pLabel)
定義:
インタフェース Subp 内の setStartLabel

getEndLabel

public Label getEndLabel()
インタフェース Subp の記述:
getEndLabel setEndLabel Get/set a label attached to the exit point of this subprogram. The end label is attached by SubpDefinition and other classes are not required to worry about setting it.

定義:
インタフェース Subp 内の getEndLabel

setEndLabel

public void setEndLabel(Label pLabel)
定義:
インタフェース Subp 内の setEndLabel

getCallList

public IrList getCallList()
getCallList Get the list of subprograms called in this subprogram.

定義:
インタフェース Subp 内の getCallList
戻り値:
list of subprograms called in this subprogram.

addToCallList

public void addToCallList(Subp pCallee)
addToCallList Add pCallee as a subprogram in the call list of this subprogram. If pCallee is already in the call list, no addition is performed.

定義:
インタフェース Subp 内の addToCallList
パラメータ:
pCallee - a subprogram called in this subprogram.

getAccessedSyms

public java.util.Set getAccessedSyms()

setAccessedSyms

public void setAccessedSyms(java.util.Set pAccessedSyms)

getFlowInf

public java.lang.Object getFlowInf()
getEntryBBlock

定義:
インタフェース Subp 内の getFlowInf
戻り値:
the entry basic block of the graph of basic blocks corresponding to this subprogram. If there is no basic block for this subprogram, return null.

setFlowInf

public void setFlowInf(java.lang.Object pInf)
定義:
インタフェース Subp 内の setFlowInf

getOptInf

public java.lang.Object getOptInf()
定義:
インタフェース Subp 内の getOptInf

setOptInf

public void setOptInf(java.lang.Object pInf)
定義:
インタフェース Subp 内の setOptInf

getParallelInf

public java.lang.Object getParallelInf()
定義:
インタフェース Subp 内の getParallelInf

setParallelInf

public void setParallelInf(java.lang.Object pInf)
定義:
インタフェース Subp 内の setParallelInf

isSafeArrayAll

public boolean isSafeArrayAll()
定義:
インタフェース Subp 内の isSafeArrayAll
戻り値:
true if #pragma safeArrayAll is specified.

addToErrorCount

public void addToErrorCount(int pCount)
インタフェース Subp の記述:
addToErrorCount Add pCount to the number of syntax/semantic error counter of this subprogram.

定義:
インタフェース Subp 内の addToErrorCount

getErrorCount

public int getErrorCount()
インタフェース Subp の記述:
getErrorCount Get the number of syntax/semantic errors of this subprogram.

定義:
インタフェース Subp 内の getErrorCount

buildLabelRefList

public void buildLabelRefList()
インタフェース Subp の記述:
Build the list of labels defined in the subprogram so as getLabelDefList() returns proper list, and build the list of LabelNode for every labels to show the label node refering them. This method may be called by finishHir() of HIR interface.

定義:
インタフェース Subp 内の buildLabelRefList

printLabelRefList

public void printLabelRefList()
インタフェース Subp の記述:
Print the label reference list built by buildLabelRefList().

定義:
インタフェース Subp 内の printLabelRefList

toStringDetail

public java.lang.String toStringDetail()
インタフェース Sym の記述:
toStringDetail Get detailed attributes of this symbol in text which is not interned.

定義:
インタフェース Sym 内の toStringDetail
オーバーライド:
クラス SymImpl 内の toStringDetail