jellyj.syntaxtree
Class FieldExpNode

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

public class FieldExpNode
extends ExpressionNode


Field Summary
 intindex_d
          The index in the fields vector where the name was found.
 ExpressionNodeleft_d
          A ref to the expression to the left of the dot.
 MethodDeclarationNodemethodNode_d
          A ref to the AST node of the method where the field is being accessed.
 Symbolname_d
          Name of the field being accessed.
 FieldDeclarationNodenode_d
          A reference to the AST node.

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
FieldExpNode(ExpressionNode left, Symbol name, MethodDeclarationNode mnode)
           
FieldExpNode(ExpressionNode left, String name, MethodDeclarationNode mnode)
           

Method Summary
 BigDecimalevaluate(SymbolTable stable)
           
 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, evaluateExp, leftValue, lookupPrimop, superExp, synthesize, thisExp, thisOrSuperExp, type, typeExp, variableExp

Field Detail

index_d

public int index_d
The index in the fields vector where the name was found.

left_d

public ExpressionNode left_d
A ref to the expression to the left of the dot. Must be of some ClassType.

methodNode_d

public MethodDeclarationNode methodNode_d
A ref to the AST node of the method where the field is being accessed. Null if called from a static initializer.

name_d

public Symbol name_d
Name of the field being accessed.

node_d

public FieldDeclarationNode node_d
A reference to the AST node.
Constructor Detail

FieldExpNode

public FieldExpNode(ExpressionNode left, Symbol name, MethodDeclarationNode mnode)

FieldExpNode

public FieldExpNode(ExpressionNode left, String name, MethodDeclarationNode mnode)
Method Detail

evaluate

public BigDecimal evaluate(SymbolTable stable)
throws jellyj.util.NotConstant

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 jellyj.util.Symbol

Name of the field being accessed.

to Class jellyj.syntaxtree.ExpressionNode

A ref to the expression to the left of the dot. Must be of some ClassType.

to Class jellyj.syntaxtree.FieldDeclarationNode

A reference to the AST node.

to Class jellyj.syntaxtree.MethodDeclarationNode

A ref to the AST node of the method where the field is being accessed. Null if called from a static initializer.