coins.ffront
Class FStmt

java.lang.Object
  extended bycoins.ffront.FStmt
All Implemented Interfaces:
Node
Direct Known Subclasses:
ArithIfStmt, AssignGotoStmt, AssignLabelStmt, AssignOrFuncStmt, BlockIfStmt, CallStmt, CloseStmt, ComputedGoto, ContinueStmt, EndStmt, EntryStmt, FormatStmt, GotoStmt, HeaderStmt, IfStmt, InquireStmt, LabeledDoStmt, OpenStmt, OtherIOStmt, PauseStmt, ReadStmt, ReturnStmt, StopStmt, UnLabeledDoStmt, WriteStmt

public class FStmt
extends java.lang.Object
implements Node

Super class for all FORTRAN statements


Field Summary
(package private)  Token defLabel
           
(package private)  DeclManager fDeclMgr
           
(package private)  ExecStmtManager fESMgr
           
(package private)  FirToHir fHir
           
(package private)  HirUtility fHirUtil
           
(package private)  int fLine
           
(package private)  SymTable fSymTable
           
(package private)  TypeUtility fTypeUtil
           
(package private)  FirList generatedStmts
           
(package private)  HIR hir
           
(package private)  Stmt stmt
           
 
Constructor Summary
FStmt(int line, FirToHir pfHir)
           
 
Method Summary
(package private)  void addGeneratedStmt(Stmt pStmt)
           
(package private)  void addGeneratedStmtFirst(Stmt pStmt)
           
 void addLabel(Token t)
           
 void addResultTo(BlockStmt block)
          add generated statements and original statement to the block Called after the process of original statement
protected  void dp(java.lang.String str)
           
 java.lang.String getLabelString()
           
 Stmt getResult()
           
 boolean hasNotLabel()
           
 Exp makeArgAddr(FStmt pFStmt)
           
 Exp makeExp()
           
(package private)  SymTable mergeSymTable(SymTable dst, SymTable src)
           
 void preprocess()
           
 void print(int level, java.lang.String spaces)
           
 void process()
          define optional label and add it to generated statements
 void setLineAndFileInfo(Stmt pStmt)
           
(package private)  SymTable setSymTable(SymTable table)
           
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

fHir

FirToHir fHir

fLine

int fLine

hir

HIR hir

defLabel

Token defLabel

stmt

Stmt stmt

generatedStmts

FirList generatedStmts

fHirUtil

HirUtility fHirUtil

fTypeUtil

TypeUtility fTypeUtil

fDeclMgr

DeclManager fDeclMgr

fESMgr

ExecStmtManager fESMgr

fSymTable

SymTable fSymTable
Constructor Detail

FStmt

public FStmt(int line,
             FirToHir pfHir)
Method Detail

print

public void print(int level,
                  java.lang.String spaces)
Specified by:
print in interface Node

toString

public java.lang.String toString()
Specified by:
toString in interface Node

addLabel

public void addLabel(Token t)

preprocess

public void preprocess()

process

public void process()
define optional label and add it to generated statements


makeExp

public Exp makeExp()
Specified by:
makeExp in interface Node

makeArgAddr

public Exp makeArgAddr(FStmt pFStmt)
Specified by:
makeArgAddr in interface Node

getLabelString

public java.lang.String getLabelString()

hasNotLabel

public boolean hasNotLabel()

addResultTo

public void addResultTo(BlockStmt block)
add generated statements and original statement to the block Called after the process of original statement

Parameters:
block -

addGeneratedStmt

void addGeneratedStmt(Stmt pStmt)

addGeneratedStmtFirst

void addGeneratedStmtFirst(Stmt pStmt)

mergeSymTable

SymTable mergeSymTable(SymTable dst,
                       SymTable src)

setSymTable

SymTable setSymTable(SymTable table)

setLineAndFileInfo

public void setLineAndFileInfo(Stmt pStmt)

getResult

public Stmt getResult()

dp

protected void dp(java.lang.String str)