org.omegahat.Environment.Parser.Parse
Class UpdateUnaryExpression

java.lang.Object
  |
  +--antlr.BaseAST
        |
        +--antlr.CommonAST
              |
              +--org.omegahat.Environment.Parser.Parse.BasicExpression
                    |
                    +--org.omegahat.Environment.Parser.Parse.NumberExpression
                          |
                          +--org.omegahat.Environment.Parser.Parse.UnaryExpression
                                |
                                +--org.omegahat.Environment.Parser.Parse.UpdateUnaryExpression
All Implemented Interfaces:
antlr.collections.AST, Evaluable, ExpressionInt, OmegaTokenTypes, java.lang.Runnable, java.io.Serializable, Subsettable, TreeNodeInt

public class UpdateUnaryExpression
extends UnaryExpression

This is the class that represents and performs the evaluation of increment and decrement operations, be they either prefix or postfix, such as

x++  
a.b--
++x[0]

See Also:
Serialized Form

Field Summary
protected  boolean prefix
           
 
Fields inherited from class org.omegahat.Environment.Parser.Parse.UnaryExpression
expression, operation
 
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
UpdateUnaryExpression(java.lang.Object el, int op)
           
UpdateUnaryExpression(java.lang.Object el, int op, boolean pre)
           
 
Method Summary
 java.lang.Object eval(Evaluator evaluator)
           
 boolean isPrefix()
           
 boolean isPrefix(boolean val)
           
 java.lang.Object operate(java.lang.Object obj)
          Performs the action on the object.
static java.lang.Object toNumber(double val, java.lang.Object src)
          See MathExpression also and consolidate.
 java.lang.String toString()
           
 
Methods inherited from class org.omegahat.Environment.Parser.Parse.UnaryExpression
asBoolean, expression, expression, getFirstChild, isReassignment, op, op, opString
 
Methods inherited from class org.omegahat.Environment.Parser.Parse.NumberExpression
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, replaceChild, resolve, run, setParent, setParent, setParent, setParent, showComments, showComments, subset, 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, replaceChild
 
Methods inherited from interface org.omegahat.Environment.Language.Evaluable
eval
 

Field Detail

prefix

protected boolean prefix
Constructor Detail

UpdateUnaryExpression

public UpdateUnaryExpression(java.lang.Object el,
                             int op)

UpdateUnaryExpression

public UpdateUnaryExpression(java.lang.Object el,
                             int op,
                             boolean pre)
Method Detail

eval

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

operate

public java.lang.Object operate(java.lang.Object obj)
Description copied from class: UnaryExpression
Performs the action on the object.
Overrides:
operate in class UnaryExpression

isPrefix

public boolean isPrefix()

isPrefix

public boolean isPrefix(boolean val)

toNumber

public static java.lang.Object toNumber(double val,
                                        java.lang.Object src)
See MathExpression also and consolidate.

toString

public java.lang.String toString()
Overrides:
toString in class UnaryExpression