anvil.script.expression
Class AbstractAssignmentNode

java.lang.Object
  |
  +--anvil.script.expression.Node
        |
        +--anvil.script.expression.Parent
              |
              +--anvil.script.expression.MultiParent
                    |
                    +--anvil.script.expression.AbstractAssignmentNode
Direct Known Subclasses:
AdditionAssignmentNode, AssignmentNode, ConcatenationAssignmentNode, DivisionAssignmentNode, InitAssignmentNode, ModuloAssignmentNode, MultiplicationAssignmentNode, SubstitutionAssignmentNode, SubtractionAssignmentNode

public abstract class AbstractAssignmentNode
extends MultiParent

class AbstractAssignmentNode


Field Summary
protected  Location[] _locations
           
 
Fields inherited from class anvil.script.expression.MultiParent
_child, _childs, _hasSplices
 
Fields inherited from class anvil.script.expression.Node
DELETE, EXPR_ADD, EXPR_AND, EXPR_ARRAY, EXPR_ASSIGN, EXPR_ASSIGN_ADD, EXPR_ASSIGN_CONCAT, EXPR_ASSIGN_DIVIDE, EXPR_ASSIGN_INIT, EXPR_ASSIGN_MODULO, EXPR_ASSIGN_MULTIPLY, EXPR_ASSIGN_SUBST, EXPR_ASSIGN_SUBTRACT, EXPR_ATTRIBUTE, EXPR_BOOLEAN_CAST, EXPR_CALL, EXPR_CLASSOF, EXPR_CLONE, EXPR_COMPARE, EXPR_COMPARISON_CHAIN, EXPR_CONCATENATION, EXPR_CONDITIONAL, EXPR_CONSTANT, EXPR_CONSTANT_VARIABLE, EXPR_COPY, EXPR_DEFAULT_MAPPING, EXPR_DEFINED, EXPR_DELETE, EXPR_DIVIDE, EXPR_EMPTY_REFERENCE, EXPR_EQUAL, EXPR_EXACT_EQUAL, EXPR_EXACT_NOT_EQUAL, EXPR_FLOAT_CAST, EXPR_FOREACH, EXPR_GREATER, EXPR_GREATER_EQUAL, EXPR_HAS, EXPR_IMPORT, EXPR_IN, EXPR_INT_CAST, EXPR_INVOKE, EXPR_IS, EXPR_LESS, EXPR_LESS_EQUAL, EXPR_LINK, EXPR_LIST, EXPR_MAPPING, EXPR_MATCH, EXPR_MODULO, EXPR_MULTIPLY, EXPR_NAMED, EXPR_NAMESPACE, EXPR_NEW, EXPR_NO_MATCH, EXPR_NOT, EXPR_NOT_EQUAL, EXPR_OR, EXPR_PIPE, EXPR_POSTFIX_DECREMENT, EXPR_POSTFIX_INCREMENT, EXPR_PREFIX_DECREMENT, EXPR_PREFIX_INCREMENT, EXPR_RANGE, EXPR_REFERENCE, EXPR_SELECT, EXPR_SIZEOF, EXPR_SPLICE, EXPR_STRING_BUFFER, EXPR_STRING_CAST, EXPR_SUBTRACT, EXPR_SYMBOL, EXPR_THIS, EXPR_THUNK, EXPR_TYPE, EXPR_TYPEOF, EXPR_UNARY_MINUS, EXPR_UNARY_PLUS, EXPR_VARIABLE, EXPR_XOR, GET, GET_BOOLEAN, GET_REF, GET_TYPE, GET_UNREF, NONE
 
Constructor Summary
AbstractAssignmentNode(Location[] locations, int childs)
           
AbstractAssignmentNode(Parent parent)
           
 
Method Summary
 void check(ErrorListener context)
           
 void compile(ByteCompiler context, int operation)
           
 void compile(ByteCompiler context, Node child)
           
 void compile(ByteCompiler context, Node left, Node right)
           
protected  void compileOperation(ByteCompiler context, Node left, Node right)
           
protected abstract  java.lang.String getAssignmentMethod()
           
abstract  java.lang.String getOperator()
           
 boolean isConstant()
           
 
Methods inherited from class anvil.script.expression.MultiParent
childs, evalChilds, getChild, getChilds, hasSplices, setChild, toString
 
Methods inherited from class anvil.script.expression.Parent
eval, findNamed, findNamedIndex, hasNamedParameters, optimize, optimizeChilds, toString
 
Methods inherited from class anvil.script.expression.Node
isAssignable, isUpdatable, typeOf
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

_locations

protected Location[] _locations
Constructor Detail

AbstractAssignmentNode

public AbstractAssignmentNode(Location[] locations,
                              int childs)

AbstractAssignmentNode

public AbstractAssignmentNode(Parent parent)
Method Detail

isConstant

public boolean isConstant()
Overrides:
isConstant in class Parent

check

public void check(ErrorListener context)
Overrides:
check in class Parent

getOperator

public abstract java.lang.String getOperator()

getAssignmentMethod

protected abstract java.lang.String getAssignmentMethod()

compileOperation

protected void compileOperation(ByteCompiler context,
                                Node left,
                                Node right)

compile

public void compile(ByteCompiler context,
                    Node left,
                    Node right)

compile

public void compile(ByteCompiler context,
                    Node child)
Overrides:
compile in class Node

compile

public void compile(ByteCompiler context,
                    int operation)
Overrides:
compile in class MultiParent