jellyj.syntaxtree
Class MethodExpNode

jellyj.syntaxtree.SyntaxTreeNode
  |
  +--jellyj.syntaxtree.ExpressionNode
        |
        +--jellyj.syntaxtree.MethodExpNode

public class MethodExpNode
extends ExpressionNode


Field Summary
 Vectorargs_d
          The list of arguments.
 MethodDeclarationNodecallee_d
          A ref to the AST node of the called method.
 MethodDeclarationNodecaller_d
          A ref to the AST node of the method where the call takes place.
 SymbolclassName_d
          The type name to which the invoked method belongs.
 ExpressionNodeleft_d
          This should always be a FieldExpNode.
 (package private) booleanspecial_d
          Set to true if the callee is a private method or a method called via super.

Fields inherited from class jellyj.syntaxtree.ExpressionNode
falseList_d, leftValue_d, statementExp_d, trueList_d, type_d

Fields inherited from class jellyj.syntaxtree.SyntaxTreeNode
column_d, line_d

Constructor Summary
MethodExpNode(ExpressionNode left, Vector args, MethodDeclarationNode caller)
           

Method Summary
 voidtranslate(ClassGen classGen, MethodGen methodGen)
           
 BranchHandletranslateSynthesized(ClassGen classGen, MethodGen methodGen)
           
 TypetypeCheck(SymbolTable stable)
           

Methods inherited from class jellyj.syntaxtree.ExpressionNode
addFalseList, addTrueList, appendToFalseList, appendToTrueList, backPatch, desynthesize, evaluate, evaluateExp, leftValue, lookupPrimop, superExp, synthesize, thisExp, thisOrSuperExp, type, typeExp, variableExp

Field Detail

args_d

public Vector args_d
The list of arguments.

callee_d

public MethodDeclarationNode callee_d
A ref to the AST node of the called method.

caller_d

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

className_d

public Symbol className_d
The type name to which the invoked method belongs.

left_d

public ExpressionNode left_d
This should always be a FieldExpNode.

special_d

boolean special_d
Set to true if the callee is a private method or a method called via super.
Constructor Detail

MethodExpNode

public MethodExpNode(ExpressionNode left, Vector args, MethodDeclarationNode caller)
Method Detail

translate

public void translate(ClassGen classGen, MethodGen methodGen)

translateSynthesized

public BranchHandle translateSynthesized(ClassGen classGen, MethodGen methodGen)

typeCheck

public Type typeCheck(SymbolTable stable)
throws jellyj.util.TypeCheckError

Association Links

to Class java.util.Vector

The list of arguments.

to Class jellyj.syntaxtree.ExpressionNode

This should always be a FieldExpNode.

to Class jellyj.util.Symbol

The type name to which the invoked method belongs.

to Class jellyj.syntaxtree.MethodDeclarationNode

A ref to the AST node of the method where the call takes place. Not applicable if the call takes place in .

to Class jellyj.syntaxtree.MethodDeclarationNode

A ref to the AST node of the called method.