org.omegahat.Environment.Parser.Parse
Class AssignExpression

java.lang.Object
  |
  +--antlr.BaseAST
        |
        +--antlr.CommonAST
              |
              +--org.omegahat.Environment.Parser.Parse.BasicExpression
                    |
                    +--org.omegahat.Environment.Parser.Parse.NumberExpression
                          |
                          +--org.omegahat.Environment.Parser.Parse.BinaryExpression
                                |
                                +--org.omegahat.Environment.Parser.Parse.OperatorExpression
                                      |
                                      +--org.omegahat.Environment.Parser.Parse.AssignExpression
All Implemented Interfaces:
antlr.collections.AST, Evaluable, ExpressionInt, OmegaTokenTypes, java.lang.Runnable, java.io.Serializable, Subsettable, TreeNodeInt
Direct Known Subclasses:
ArrayAccessAssignExpression, NamedArgument, NamedAttribute

public class AssignExpression
extends OperatorExpression

General assignment expression of the form x = 1.

See Also:
Serialized Form

Field Summary
protected  Database database
           
protected  int database_id
           
protected  java.lang.String name
           
 
Fields inherited from class org.omegahat.Environment.Parser.Parse.OperatorExpression
operation
 
Fields inherited from class org.omegahat.Environment.Parser.Parse.BinaryExpression
els, LHS, RHS
 
Fields inherited from class org.omegahat.Environment.Parser.Parse.BasicExpression
children, comments, isActive, parent, POST, PRE
 
Fields inherited from class antlr.BaseAST
down, right
 
Fields inherited from interface org.omegahat.Environment.Parser.AntlrParser.OmegaTokenTypes
ABSTRACT, ARG_LIST, ARRAY_DECLARATOR, ARRAY_INIT, ASSIGN, BAND, BAND_ASSIGN, BLOCK, BNOT, BOR, BOR_ASSIGN, BREAK, BSR, BSR_ASSIGN, BXOR, BXOR_ASSIGN, CHAR_LITERAL, CLASS_DEF, COLON, COMMA, CONTINUE, CTOR_DEF, DEC, DIV, DIV_ASSIGN, DOT, DOTS, EAGER, ELEMENT_OP, EOF, EQUAL, ESC, EXPONENT, EXPONENT_OP, EXPR, EXTENDS_CLAUSE, FINAL, FLOAT_SUFFIX, FUNCTION, GE, GT, HEX_DIGIT, IDENT, IMPLEMENTS_CLAUSE, IMPORT, INC, INDEX_OP, INSTANCE_INIT, INSTANCEOF, INTERFACE_DEF, LABELED_STAT, LAND, LAZY, LBRACK, LCURLY, LE, LITERAL_abstract, LITERAL_boolean, LITERAL_break, LITERAL_byte, LITERAL_case, LITERAL_catch, LITERAL_char, LITERAL_class, LITERAL_const, LITERAL_continue, LITERAL_default, LITERAL_do, LITERAL_double, LITERAL_eager, LITERAL_else, LITERAL_extends, LITERAL_false, LITERAL_final, LITERAL_finally, LITERAL_float, LITERAL_for, LITERAL_function, LITERAL_global, LITERAL_if, LITERAL_implements, LITERAL_import, LITERAL_in, LITERAL_instanceof, LITERAL_int, LITERAL_interface, LITERAL_lazy, LITERAL_long, LITERAL_method, LITERAL_native, LITERAL_new, LITERAL_null, LITERAL_private, LITERAL_protected, LITERAL_public, LITERAL_return, LITERAL_short, LITERAL_static, LITERAL_super, LITERAL_switch, LITERAL_synchronized, LITERAL_this, LITERAL_threadsafe, LITERAL_throw, LITERAL_throws, LITERAL_transient, LITERAL_true, LITERAL_try, LITERAL_void, LITERAL_while, LNOT, LOR, LPAREN, LT, METHOD, METHOD_CALL, METHOD_DEF, MINUS, MINUS_ASSIGN, MISSING_ARG, ML_COMMENT, MOD, MOD_ASSIGN, MODIFIERS, NOT_EQUAL, NULL_TREE_LOOKAHEAD, NUM_FLOAT, NUM_INT, NUM_LONG, OBJBLOCK, PACKAGE_DEF, PARAMETER_DEF, PARAMETERS, PLUS, PLUS_ASSIGN, POST_DEC, POST_INC, QUESTION, RBRACK, RCURLY, RETURN, RPAREN, SEMI, SEQUENCE_OP, SL, SL_ASSIGN, SL_COMMENT, SLIST, SR, SR_ASSIGN, STAR, STAR_ASSIGN, STATIC_INIT, STRING_LITERAL, SYNCHRONIZED, THROW, TRANSIENT, TYPE, TYPECAST, UNARY_MINUS, UNARY_PLUS, VARIABLE_DEF, VOCAB, WS
 
Constructor Summary
AssignExpression(java.lang.Object lhs, java.lang.Object rhs)
           
AssignExpression(java.lang.Object lhs, java.lang.Object rhs, int op)
           
AssignExpression(java.lang.Object lhs, java.lang.Object rhs, java.lang.Integer op)
           
 
Method Summary
 boolean arrayAssignment()
           
 java.lang.Object arrayOperation(java.lang.Object original, java.lang.Object rhs, Evaluator evaluator)
           
 double computeNumeric(double[] nums)
           
 Database database()
           
 Database database(Database db)
           
 int databaseId()
           
 int databaseId(int which)
           
 java.lang.Object eval(Evaluator evaluator)
           
protected  Database getDatabase(java.lang.String name, Evaluator evaluator)
           
 java.lang.String getName(Evaluator evaluator)
           
 boolean isMathOperation()
           
 java.lang.Object numericComputation(java.lang.Object[] vals)
           
 java.lang.Object operate(java.lang.Object original, java.lang.Object rhs, Evaluator evaluator)
          Perform the appropriate (potential) operation on the original value, relative the right hand-side value based on the type of assignment (=, +=, -=,++, etc.)
 java.lang.Object setField(FieldAccess expr, java.lang.Object value, Evaluator evaluator)
           
 
Methods inherited from class org.omegahat.Environment.Parser.Parse.OperatorExpression
operator, operator, separator
 
Methods inherited from class org.omegahat.Environment.Parser.Parse.BinaryExpression
element, element, elements, elements, getFirstChild, replaceChild, subset, toString
 
Methods inherited from class org.omegahat.Environment.Parser.Parse.NumberExpression
asBoolean, asInt, asInteger, asNumber, isNumber, toInteger, toInteger, toNumber
 
Methods inherited from class org.omegahat.Environment.Parser.Parse.BasicExpression
addChild, addComment, apply, apply, apply, children, children, comment, comment, depth, error, eval, evalInit, evaluationFrame, evaluator, getReferencedVariables, getReferencedVariables, getReferencedVariables, isActive, isActive, parent, parent, postComment, postComment, preComment, preComment, render, resolve, run, setParent, setParent, setParent, setParent, showComments, showComments, substitute, substitute
 
Methods inherited from class antlr.CommonAST
getText, getType, initialize, initialize, initialize, setText, setType
 
Methods inherited from class antlr.BaseAST
addChild, equals, equalsList, equalsListPartial, equalsTree, equalsTreePartial, findAll, findAllPartial, getNextSibling, removeChildren, setFirstChild, setNextSibling, setVerboseStringConversion, toStringList, toStringTree
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.omegahat.Environment.Parser.Parse.ExpressionInt
error, resolve, substitute
 
Methods inherited from interface org.omegahat.Environment.Parser.Parse.TreeNodeInt
addChild, children, depth, parent, parent
 
Methods inherited from interface org.omegahat.Environment.Language.Evaluable
eval
 

Field Detail

name

protected java.lang.String name

database_id

protected int database_id

database

protected Database database
Constructor Detail

AssignExpression

public AssignExpression(java.lang.Object lhs,
                        java.lang.Object rhs)

AssignExpression

public AssignExpression(java.lang.Object lhs,
                        java.lang.Object rhs,
                        java.lang.Integer op)

AssignExpression

public AssignExpression(java.lang.Object lhs,
                        java.lang.Object rhs,
                        int op)
Method Detail

eval

public java.lang.Object eval(Evaluator evaluator)
                      throws java.lang.Throwable
Overrides:
eval in class BinaryExpression

operate

public java.lang.Object operate(java.lang.Object original,
                                java.lang.Object rhs,
                                Evaluator evaluator)
Perform the appropriate (potential) operation on the original value, relative the right hand-side value based on the type of assignment (=, +=, -=,++, etc.)
Parameters:
original - the current value of the left hand side of the assignment.
rhs - the right hand side (RHS) of the assignment.
Returns:
the value that will be assigned, be it the RHS or the modified original value.

getName

public java.lang.String getName(Evaluator evaluator)
                         throws java.lang.Throwable

databaseId

public int databaseId(int which)

databaseId

public int databaseId()

database

public Database database(Database db)

database

public Database database()

getDatabase

protected Database getDatabase(java.lang.String name,
                               Evaluator evaluator)

arrayAssignment

public boolean arrayAssignment()

setField

public java.lang.Object setField(FieldAccess expr,
                                 java.lang.Object value,
                                 Evaluator evaluator)
                          throws java.lang.Throwable

arrayOperation

public java.lang.Object arrayOperation(java.lang.Object original,
                                       java.lang.Object rhs,
                                       Evaluator evaluator)

numericComputation

public java.lang.Object numericComputation(java.lang.Object[] vals)

computeNumeric

public double computeNumeric(double[] nums)

isMathOperation

public boolean isMathOperation()