junc.ast
Class MethodExpNode

java.lang.Object
  |
  +--antlr.BaseAST
        |
        +--antlr.CommonAST
              |
              +--junc.ast.JUnCASTNode
                    |
                    +--junc.ast.ExpressionNode
                          |
                          +--junc.ast.MethodExpNode
All Implemented Interfaces:
antlr.collections.AST, java.io.Serializable

public class MethodExpNode
extends ExpressionNode

See Also:
Serialized Form

Field Summary
 java.util.Vector args
          The list of arguments.
 junc.ast.MethodDeclarationNode callee
          A ref to the AST node of the called method.
 junc.ast.MethodDeclarationNode caller
          A ref to the AST node of the method where the call takes place.
 junc.symtab.Symbol className
          The type name to which the invoked method belongs.
 junc.ast.ExpressionNode left
          This should always be a FieldExpNode.
 
Fields inherited from class junc.ast.ExpressionNode
falseList, leftValue, statementExpression, trueList, type
 
Fields inherited from class antlr.BaseAST
down, right
 
Constructor Summary
MethodExpNode(junc.ast.ExpressionNode left, java.util.Vector args, junc.ast.MethodDeclarationNode caller)
           
 
Method Summary
 void translate(org.apache.bcel.generic.ClassGen classGen, org.apache.bcel.generic.MethodGen methodGen)
          Describe translate method here.
 org.apache.bcel.generic.BranchHandle translateSynthesized(org.apache.bcel.generic.ClassGen classGen, org.apache.bcel.generic.MethodGen methodGen)
          First translate the expression and then synthesize it.
 junc.types.JUnCBaseType typeCheck(junc.symtab.SymbolTable symbolTable)
          Describe typeCheck method here.
 
Methods inherited from class junc.ast.ExpressionNode
addFalseList, addTrueList, appendToFalseList, appendToTrueList, backPatch, desynthesize, evaluate, evaluateExp, leftValue, lookupPrimop, superExp, synthesize, thisExp, thisOrSuperExp, type, typeExp, variableExp
 
Methods inherited from class junc.ast.JUnCASTNode
getColumnNumber, getLineNumber, setColumnNumber, setLineNumber
 
Methods inherited from class antlr.CommonAST
getText, getType, initialize, initialize, initialize, setText, setType
 
Methods inherited from class antlr.BaseAST
addChild, decode, encode, equals, equalsList, equalsListPartial, equalsTree, equalsTreePartial, findAll, findAllPartial, getFirstChild, getNextSibling, removeChildren, setFirstChild, setNextSibling, setVerboseStringConversion, toString, toStringList, toStringTree, xmlSerialize, xmlSerializeNode, xmlSerializeRootClose, xmlSerializeRootOpen
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

args

public java.util.Vector args
The list of arguments.


left

public junc.ast.ExpressionNode left
This should always be a FieldExpNode.


className

public junc.symtab.Symbol className
The type name to which the invoked method belongs.


caller

public junc.ast.MethodDeclarationNode caller
A ref to the AST node of the method where the call takes place. Not applicable if the call takes place in .


callee

public junc.ast.MethodDeclarationNode callee
A ref to the AST node of the called method.

Constructor Detail

MethodExpNode

public MethodExpNode(junc.ast.ExpressionNode left,
                     java.util.Vector args,
                     junc.ast.MethodDeclarationNode caller)
Method Detail

typeCheck

public junc.types.JUnCBaseType typeCheck(junc.symtab.SymbolTable symbolTable)
                                  throws TypeCheckError
Description copied from class: ExpressionNode
Describe typeCheck method here.

Specified by:
typeCheck in class ExpressionNode
Parameters:
symbolTable - a SymbolTable value
Returns:
a JUnCBaseType value
Throws:
TypeCheckError - if an error occurs

translateSynthesized

public org.apache.bcel.generic.BranchHandle translateSynthesized(org.apache.bcel.generic.ClassGen classGen,
                                                                 org.apache.bcel.generic.MethodGen methodGen)
Description copied from class: ExpressionNode
First translate the expression and then synthesize it. This method is redefined in those expressions that already synthesize their result to avoid synthesize, de-synthesize, synthesize sequences.

Overrides:
translateSynthesized in class ExpressionNode
Parameters:
classGen - a ClassGen value
methodGen - a MethodGen value
Returns:
a BranchHandle value

translate

public void translate(org.apache.bcel.generic.ClassGen classGen,
                      org.apache.bcel.generic.MethodGen methodGen)
Description copied from class: ExpressionNode
Describe translate method here.

Overrides:
translate in class ExpressionNode
Parameters:
classGen - a ClassGen value
methodGen - a MethodGen value