coins.ffront
Class AssignOrFuncStmt

java.lang.Object
  extended bycoins.ffront.FStmt
      extended bycoins.ffront.AssignOrFuncStmt
All Implemented Interfaces:
Node

public class AssignOrFuncStmt
extends FStmt

Assignment statement or statement-function defining statement.


Field Summary
 
Fields inherited from class coins.ffront.FStmt
defLabel, fDeclMgr, fESMgr, fHir, fHirUtil, fLine, fSymTable, fTypeUtil, generatedStmts, hir, stmt
 
Constructor Summary
AssignOrFuncStmt(Node pLeft, Node pRight, int line, FirToHir pfHir)
           
 
Method Summary
(package private)  void characterAssignment(FortranCharacterExp e1, FortranCharacterExp e2)
           
(package private)  Exp complexCheck(Exp e)
          complex?
 Node getLeft()
           
 Node getRight()
           
(package private)  boolean isStmtFunc()
          Return true if this is a statement-function defining statement.
 void print(int level, java.lang.String spaces)
           
 void process()
          Make HIR node of assignment statement.
 java.lang.String toString()
           
 
Methods inherited from class coins.ffront.FStmt
addGeneratedStmt, addGeneratedStmtFirst, addLabel, addResultTo, dp, getLabelString, getResult, hasNotLabel, makeArgAddr, makeExp, mergeSymTable, preprocess, setLineAndFileInfo, setSymTable
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

AssignOrFuncStmt

public AssignOrFuncStmt(Node pLeft,
                        Node pRight,
                        int line,
                        FirToHir pfHir)
Method Detail

getLeft

public Node getLeft()

getRight

public Node getRight()

print

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

toString

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

process

public void process()
Make HIR node of assignment statement. COMPLEX type assignment is composed of real part assignment and imaginary part assignment

Overrides:
process in class FStmt

characterAssignment

void characterAssignment(FortranCharacterExp e1,
                         FortranCharacterExp e2)

complexCheck

Exp complexCheck(Exp e)
complex?


isStmtFunc

boolean isStmtFunc()
Return true if this is a statement-function defining statement. If lhs is a form of SubscrOrFunCall and its name is undefined or not an array name then this is a statement-function defining statement. In these cases, define this statement function as a SymtFuncType subprogram.

Returns:
true if statement function.