com.adamcornett.cminus.tree
Class VarTree

java.lang.Object
  extended by org.antlr.runtime.tree.BaseTree
      extended by org.antlr.runtime.tree.CommonTree
          extended by com.adamcornett.cminus.tree.CMTree
              extended by com.adamcornett.cminus.tree.ExprNode
                  extended by com.adamcornett.cminus.tree.VarTree
All Implemented Interfaces:
ScopeNode, SymbolNode, TypeNode, org.antlr.runtime.tree.Tree
Direct Known Subclasses:
ParamTree

public class VarTree
extends ExprNode
implements ScopeNode, SymbolNode

A node that represents a variable (symbol)

Author:
Adam Cornett

Field Summary
protected  CMTree IDNode
          The identifier node
protected  Scope scope
          The scope which the symbol is defined in.
private  Symbol sym
          The associated symbol from the SymbolTable
 
Fields inherited from class com.adamcornett.cminus.tree.CMTree
log
 
Fields inherited from class org.antlr.runtime.tree.CommonTree
childIndex, parent, startIndex, stopIndex, token
 
Fields inherited from class org.antlr.runtime.tree.BaseTree
children
 
Fields inherited from interface org.antlr.runtime.tree.Tree
INVALID_NODE
 
Constructor Summary
VarTree(org.antlr.runtime.Token payload)
           
 
Method Summary
 void emitCode(ClassGenerator classGenerator)
           
 int getRequiredStack()
           
 Type getReturnType()
           
 Scope getScope()
           
 int getScopeNumber()
           
 Symbol getSymbol()
           
protected  void initSymbol()
           
 boolean isArray()
           
 void pushIndex(ClassGenerator cg)
           
 void setReturnType(Type t)
           
 void setScope(Scope s)
           
 void setSymbol(Symbol s)
           
 
Methods inherited from class com.adamcornett.cminus.tree.ExprNode
getOperandType
 
Methods inherited from class com.adamcornett.cminus.tree.CMTree
emitLineInfo, getMaxTreeDepth, getNextLabelNumber
 
Methods inherited from class org.antlr.runtime.tree.CommonTree
dupNode, getCharPositionInLine, getChildIndex, getLine, getParent, getText, getToken, getTokenStartIndex, getTokenStopIndex, getType, isNil, setChildIndex, setParent, setTokenStartIndex, setTokenStopIndex, setUnknownTokenBoundaries, toString
 
Methods inherited from class org.antlr.runtime.tree.BaseTree
addChild, addChildren, createChildrenList, deleteChild, freshenParentAndChildIndexes, freshenParentAndChildIndexes, getAncestor, getAncestors, getChild, getChildCount, getChildren, getFirstChildWithType, hasAncestor, replaceChildren, sanityCheckParentAndChildIndexes, sanityCheckParentAndChildIndexes, setChild, toStringTree
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

sym

private Symbol sym
The associated symbol from the SymbolTable


IDNode

protected CMTree IDNode
The identifier node


scope

protected final Scope scope
The scope which the symbol is defined in.

Constructor Detail

VarTree

public VarTree(org.antlr.runtime.Token payload)
Method Detail

emitCode

public void emitCode(ClassGenerator classGenerator)
Overrides:
emitCode in class CMTree

getRequiredStack

public int getRequiredStack()
Overrides:
getRequiredStack in class CMTree

getReturnType

public Type getReturnType()
Specified by:
getReturnType in interface TypeNode

getScope

public Scope getScope()
Specified by:
getScope in interface ScopeNode

getScopeNumber

public int getScopeNumber()
Specified by:
getScopeNumber in interface ScopeNode

getSymbol

public Symbol getSymbol()
Specified by:
getSymbol in interface SymbolNode

isArray

public boolean isArray()

pushIndex

public void pushIndex(ClassGenerator cg)

setReturnType

public void setReturnType(Type t)
Specified by:
setReturnType in interface TypeNode

setScope

public void setScope(Scope s)
Specified by:
setScope in interface ScopeNode

setSymbol

public void setSymbol(Symbol s)
Specified by:
setSymbol in interface SymbolNode

initSymbol

protected void initSymbol()