junc.ast
Class AdditiveExpNode

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

public class AdditiveExpNode
extends ExpressionNode

Describe class AdditiveExpNode here.

Version:
1.0
Author:
Diwaker Gupta
See Also:
Serialized Form

Field Summary
 junc.ast.ExpressionNode left
          Describe variable left here.
 int operator
          Describe variable operator here.
 junc.ast.ExpressionNode parent
          Describe variable parent here.
 junc.ast.ExpressionNode right
          Describe variable right here.
 
Fields inherited from class junc.ast.ExpressionNode
falseList, leftValue, statementExpression, trueList, type
 
Fields inherited from class antlr.BaseAST
down
 
Constructor Summary
AdditiveExpNode(junc.ast.ExpressionNode left, junc.ast.ExpressionNode right, int operator)
          Creates a new AdditiveExpNode instance.
 
Method Summary
 java.math.BigDecimal evaluate(junc.symtab.SymbolTable stable)
          Describe evaluate method here.
 boolean operationPlus()
          Describe operationPlus method here.
 junc.types.JUnCBaseType stringType()
          Describe stringType method here.
 void translate(org.apache.bcel.generic.ClassGen classGen, org.apache.bcel.generic.MethodGen methodGen)
          Describe translate method here.
 void translateStringConcat(org.apache.bcel.generic.ClassGen classGen, org.apache.bcel.generic.MethodGen methodGen)
          Describe translateStringConcat method here.
 junc.types.JUnCBaseType typeCheck(junc.symtab.SymbolTable stable)
          Describe typeCheck method here.
 
Methods inherited from class junc.ast.ExpressionNode
addFalseList, addTrueList, appendToFalseList, appendToTrueList, backPatch, desynthesize, evaluateExp, leftValue, lookupPrimop, superExp, synthesize, thisExp, thisOrSuperExp, translateSynthesized, 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

operator

public int operator
Describe variable operator here.


left

public junc.ast.ExpressionNode left
Describe variable left here.


right

public junc.ast.ExpressionNode right
Describe variable right here.


parent

public junc.ast.ExpressionNode parent
Describe variable parent here. null if leftmost AdditiveExp, otherwise next AdditiveExp to the left is used in case of string concatenation

Constructor Detail

AdditiveExpNode

public AdditiveExpNode(junc.ast.ExpressionNode left,
                       junc.ast.ExpressionNode right,
                       int operator)
Creates a new AdditiveExpNode instance.

Parameters:
left - an ExpressionNode value
right - an ExpressionNode value
operator - an int value
Method Detail

stringType

public junc.types.JUnCBaseType stringType()
Describe stringType method here.

Returns:
a JUnCBaseType value

operationPlus

public boolean operationPlus()
Describe operationPlus method here.

Returns:
a boolean value

evaluate

public java.math.BigDecimal evaluate(junc.symtab.SymbolTable stable)
                              throws NotConstantException
Describe evaluate method here.

Overrides:
evaluate in class ExpressionNode
Parameters:
stable - a SymbolTable value
Returns:
a BigDecimal value
Throws:
NotConstantException - if an error occurs

typeCheck

public junc.types.JUnCBaseType typeCheck(junc.symtab.SymbolTable stable)
                                  throws TypeCheckError
Describe typeCheck method here.

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

translateStringConcat

public void translateStringConcat(org.apache.bcel.generic.ClassGen classGen,
                                  org.apache.bcel.generic.MethodGen methodGen)
Describe translateStringConcat method here.

Parameters:
classGen - a ClassGen value
methodGen - a MethodGen value

translate

public void translate(org.apache.bcel.generic.ClassGen classGen,
                      org.apache.bcel.generic.MethodGen methodGen)
Describe translate method here.

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