|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--coins.ffront.BaseManager | +--coins.ffront.DeclManager
Declaration Manager
フィールドの概要 | |
(パッケージプライベート) F77Sym |
f7Sym
|
(パッケージプライベート) FirList |
fCharParamList
|
(パッケージプライベート) CommonManager |
fCommonMgr
|
(パッケージプライベート) ConstManager |
fConstMgr
|
(パッケージプライベート) EquivManager |
fEquivMgr
|
(パッケージプライベート) ImplicitManager |
fImplMgr
|
(パッケージプライベート) BlockStmt |
fInitialPart
|
(パッケージプライベート) Subp |
fSubp
|
(パッケージプライベート) SubpDefinition |
fSubpDef
|
(パッケージプライベート) SymTable |
fSymTable
|
(パッケージプライベート) Type |
functionType
|
(パッケージプライベート) HeaderStmt |
programHeader
|
クラス coins.ffront.BaseManager から継承したフィールド |
fHir, fHirUtil, fTypeUtil, hir, hirRoot, sym, symRoot |
コンストラクタの概要 | |
DeclManager(FirToHir fth,
F77Sym f7s)
|
メソッドの概要 | |
(パッケージプライベート) void |
addInitialPart(Stmt stmt)
|
(パッケージプライベート) java.lang.String |
characterLengthVarName(java.lang.String id)
|
(パッケージプライベート) void |
checkEntryStmt()
If entryStmtList is not empty, (1) make new ENTRY statement and add it to the program body (2) add the parameters of each ENTRY statement to programHeader.fArgs (3) change program header (change header's name and parameters and add computed goto statement to goto the place of each ENTRY statement) (4) make new subprogram for each ENTRY statement |
(パッケージプライベート) void |
declDimensionVariable(Type type,
java.lang.String ident,
FirList dims)
|
(パッケージプライベート) void |
declDimensionVariableWithLength(Type type,
java.lang.String ident,
FirList dims,
Token length)
|
(パッケージプライベート) void |
declVariable(Type type,
java.lang.String ident)
|
(パッケージプライベート) void |
declVariableWithLength(Type type,
java.lang.String ident,
Token length)
|
(パッケージプライベート) void |
defineFunctionType()
define function type (void if subroutine or main). |
(パッケージプライベート) Param |
defineParam(java.lang.String id)
define id as parameter. |
Subp |
defineSubp(java.lang.String id,
Type returnType,
int visibility,
IrList pParams)
Define a subprogram in the current symbol table. |
Subp |
defineSubpWithoutClose(java.lang.String id,
Type returnType,
int visibility)
|
(パッケージプライベート) Var |
defineVar(java.lang.String lexem)
|
(パッケージプライベート) boolean |
deleteFromSymbolTable(java.lang.String name)
|
(パッケージプライベート) void |
flattenExpList_r(java.util.List list,
ExpListExp explist)
|
(パッケージプライベート) ExpListExp |
flattenExpList(ExpListExp e)
|
(パッケージプライベート) ConstManager |
getConstManager()
|
Type |
getDeclType(java.lang.String pIdent)
|
(パッケージプライベート) Type |
getFunctionType()
get function type |
Type |
getImplicitType(java.lang.String id)
|
(パッケージプライベート) HeaderStmt |
getProgramHeader()
|
(パッケージプライベート) java.lang.String |
getProgramUnitName()
|
(パッケージプライベート) Type |
getSymbolType(java.lang.String name)
|
(パッケージプライベート) boolean |
isBlockVariable(java.lang.String ident)
|
(パッケージプライベート) boolean |
isDefinedInLocal(Sym sym)
|
(パッケージプライベート) boolean |
isDefinedSymbol(java.lang.String name)
|
(パッケージプライベート) boolean |
isEquivVariable(java.lang.String ident)
|
(パッケージプライベート) boolean |
isParamIdent(java.lang.String ident)
|
(パッケージプライベート) Exp |
makeBlockVariableExp(java.lang.String ident)
|
(パッケージプライベート) Exp |
makeEquivVariableExp(java.lang.String ident)
|
(パッケージプライベート) void |
processDecl()
Process Declare. |
(パッケージプライベート) void |
processDimension()
process Dimension statement |
(パッケージプライベート) void |
processExternal()
Process external declaration. |
(パッケージプライベート) void |
processProgramHeader()
Process program header statement |
(パッケージプライベート) void |
processSave()
|
(パッケージプライベート) void |
processTypeDecl()
Process define variables as each types. |
Sym |
search(java.lang.String ident)
|
Var |
searchOrAddVar(java.lang.String ident)
If the ident is defined as a Var return the Var. |
Var |
searchOrAddVar(java.lang.String ident,
Type pType)
If the ident is defined as a Var of type pType return the Var. |
Sym |
searchSymOrAddVar(java.lang.String ident)
If the ident is defined as a Sym return the Sym. |
Type |
searchType(java.lang.String ident)
|
void |
setHirBody(BlockStmt blockStmt)
|
(パッケージプライベート) void |
setInitialValue(Var v,
Exp e)
|
(パッケージプライベート) void |
setInitialValue(Var v,
Exp e,
java.lang.String lexem)
|
(パッケージプライベート) void |
setProgramHeader(HeaderStmt pHeader)
|
(パッケージプライベート) Sym |
symBlockVariable(java.lang.String ident)
|
(パッケージプライベート) Sym |
symEquivVariable(java.lang.String ident)
|
クラス coins.ffront.BaseManager から継承したメソッド |
dp, printMsgFatal, printMsgRecovered |
クラス java.lang.Object から継承したメソッド |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
フィールドの詳細 |
ImplicitManager fImplMgr
CommonManager fCommonMgr
EquivManager fEquivMgr
ConstManager fConstMgr
F77Sym f7Sym
Type functionType
HeaderStmt programHeader
Subp fSubp
SymTable fSymTable
SubpDefinition fSubpDef
BlockStmt fInitialPart
FirList fCharParamList
コンストラクタの詳細 |
public DeclManager(FirToHir fth, F77Sym f7s)
メソッドの詳細 |
public Type getImplicitType(java.lang.String id)
public Type getDeclType(java.lang.String pIdent)
ConstManager getConstManager()
void processDecl()
void defineFunctionType()
void checkEntryStmt()
void processProgramHeader()
Param defineParam(java.lang.String id)
java.lang.String characterLengthVarName(java.lang.String id)
void declVariable(Type type, java.lang.String ident)
void declDimensionVariable(Type type, java.lang.String ident, FirList dims)
void declVariableWithLength(Type type, java.lang.String ident, Token length)
void declDimensionVariableWithLength(Type type, java.lang.String ident, FirList dims, Token length)
void processTypeDecl()
void processExternal()
void processDimension()
void processSave()
boolean isBlockVariable(java.lang.String ident)
Exp makeBlockVariableExp(java.lang.String ident)
Sym symBlockVariable(java.lang.String ident)
boolean isEquivVariable(java.lang.String ident)
Exp makeEquivVariableExp(java.lang.String ident)
Sym symEquivVariable(java.lang.String ident)
public Var searchOrAddVar(java.lang.String ident)
ident
-
public Var searchOrAddVar(java.lang.String ident, Type pType)
ident
- pType
-
boolean isParamIdent(java.lang.String ident)
public Sym searchSymOrAddVar(java.lang.String ident)
ident
-
public Sym search(java.lang.String ident)
public Type searchType(java.lang.String ident)
public Subp defineSubp(java.lang.String id, Type returnType, int visibility, IrList pParams)
id
- subprogram namereturnType
- type of the subprogrampParams
- parameters
public Subp defineSubpWithoutClose(java.lang.String id, Type returnType, int visibility)
Type getFunctionType()
public void setHirBody(BlockStmt blockStmt)
HeaderStmt getProgramHeader()
void setProgramHeader(HeaderStmt pHeader)
ExpListExp flattenExpList(ExpListExp e)
void flattenExpList_r(java.util.List list, ExpListExp explist)
void setInitialValue(Var v, Exp e)
void addInitialPart(Stmt stmt)
void setInitialValue(Var v, Exp e, java.lang.String lexem)
Type getSymbolType(java.lang.String name)
boolean deleteFromSymbolTable(java.lang.String name)
boolean isDefinedSymbol(java.lang.String name)
Var defineVar(java.lang.String lexem)
java.lang.String getProgramUnitName()
boolean isDefinedInLocal(Sym sym)
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |