org.mozilla.javascript.ast
Class InfixExpression

java.lang.Object
  extended by org.mozilla.javascript.Node
      extended by org.mozilla.javascript.ast.AstNode
          extended by org.mozilla.javascript.ast.InfixExpression
All Implemented Interfaces:
java.lang.Comparable<AstNode>, java.lang.Iterable<Node>
Direct Known Subclasses:
Assignment, ObjectProperty, PropertyGet, XmlDotQuery, XmlMemberGet

public class InfixExpression
extends AstNode

AST node representing an infix (binary operator) expression. The operator is the node's Token type.


Nested Class Summary
 
Nested classes/interfaces inherited from class org.mozilla.javascript.ast.AstNode
AstNode.DebugPrintVisitor, AstNode.PositionComparator
 
Nested classes/interfaces inherited from class org.mozilla.javascript.Node
Node.NodeIterator
 
Field Summary
protected  AstNode left
           
protected  int operatorPosition
           
protected  AstNode right
           
 
Fields inherited from class org.mozilla.javascript.ast.AstNode
length, parent, position
 
Fields inherited from class org.mozilla.javascript.Node
ATTRIBUTE_FLAG, BOTH, CASEARRAY_PROP, CATCH_SCOPE_PROP, CONTROL_BLOCK_PROP, DECR_FLAG, DESCENDANTS_FLAG, DESTRUCTURING_ARRAY_LENGTH, DESTRUCTURING_NAMES, DESTRUCTURING_PARAMS, DESTRUCTURING_SHORTHAND, DIRECTCALL_PROP, END_DROPS_OFF, END_RETURNS, END_RETURNS_VALUE, END_UNREACHED, END_YIELDS, EXPRESSION_CLOSURE_PROP, first, FUNCTION_PROP, GENERATOR_END_PROP, INCRDECR_PROP, ISNUMBER_PROP, JSDOC_PROP, LABEL_ID_PROP, last, LAST_PROP, LEFT, lineno, LOCAL_BLOCK_PROP, LOCAL_PROP, MEMBER_TYPE_PROP, NAME_PROP, next, NON_SPECIALCALL, OBJECT_IDS_PROP, PARENTHESIZED_PROP, POST_FLAG, PROPERTY_FLAG, propListHead, REGEXP_PROP, RIGHT, SKIP_INDEXES_PROP, SPECIALCALL_EVAL, SPECIALCALL_PROP, SPECIALCALL_WITH, TARGETBLOCK_PROP, type, VARIABLE_PROP
 
Constructor Summary
InfixExpression()
           
InfixExpression(AstNode left, AstNode right)
          Constructs a new InfixExpression.
InfixExpression(int pos)
           
InfixExpression(int operator, AstNode left, AstNode right, int operatorPos)
          Constructs a new InfixExpression.
InfixExpression(int pos, int len)
           
InfixExpression(int pos, int len, AstNode left, AstNode right)
           
 
Method Summary
 AstNode getLeft()
          Returns the left-hand side of the expression
 int getOperator()
          Returns operator token – alias for Node.getType()
 int getOperatorPosition()
          Returns relative offset of operator token
 AstNode getRight()
          Returns the right-hand side of the expression
 boolean hasSideEffects()
           
 void setLeft(AstNode left)
          Sets the left-hand side of the expression, and sets its parent to this node.
 void setLeftAndRight(AstNode left, AstNode right)
           
 void setOperator(int operator)
          Sets operator token – like Node.setType(int), but throws an exception if the operator is invalid.
 void setOperatorPosition(int operatorPosition)
          Sets operator token's relative offset
 void setRight(AstNode right)
          Sets the right-hand side of the expression, and sets its parent to this node.
 java.lang.String toSource(int depth)
          Emits source code for this node.
 void visit(NodeVisitor v)
          Visits this node, the left operand, and the right operand.
 
Methods inherited from class org.mozilla.javascript.ast.AstNode
addChild, assertNotNull, codeBug, compareTo, debugPrint, depth, getAbsolutePosition, getAstRoot, getEnclosingFunction, getEnclosingScope, getLength, getLineno, getParent, getPosition, makeIndent, operatorToString, printList, setBounds, setLength, setParent, setPosition, setRelative, shortName, toSource
 
Methods inherited from class org.mozilla.javascript.Node
addChildAfter, addChildBefore, addChildrenToBack, addChildrenToFront, addChildToBack, addChildToFront, getChildBefore, getDouble, getExistingIntProp, getFirstChild, getIntProp, getJsDoc, getJsDocNode, getLastChild, getLastSibling, getNext, getProp, getScope, getString, getType, hasChildren, hasConsistentReturnUsage, iterator, labelId, labelId, newNumber, newString, newString, newTarget, putIntProp, putProp, removeChild, removeChildren, removeProp, replaceChild, replaceChildAfter, resetTargets, setDouble, setJsDocNode, setLineno, setScope, setString, setType, toString, toStringTree
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

left

protected AstNode left

right

protected AstNode right

operatorPosition

protected int operatorPosition
Constructor Detail

InfixExpression

public InfixExpression()

InfixExpression

public InfixExpression(int pos)

InfixExpression

public InfixExpression(int pos,
                       int len)

InfixExpression

public InfixExpression(int pos,
                       int len,
                       AstNode left,
                       AstNode right)

InfixExpression

public InfixExpression(AstNode left,
                       AstNode right)
Constructs a new InfixExpression. Updates bounds to include left and right nodes.


InfixExpression

public InfixExpression(int operator,
                       AstNode left,
                       AstNode right,
                       int operatorPos)
Constructs a new InfixExpression.

Parameters:
operatorPos - the absolute position of the operator
Method Detail

setLeftAndRight

public void setLeftAndRight(AstNode left,
                            AstNode right)

getOperator

public int getOperator()
Returns operator token – alias for Node.getType()


setOperator

public void setOperator(int operator)
Sets operator token – like Node.setType(int), but throws an exception if the operator is invalid.

Throws:
java.lang.IllegalArgumentException - if operator is not a valid token code

getLeft

public AstNode getLeft()
Returns the left-hand side of the expression


setLeft

public void setLeft(AstNode left)
Sets the left-hand side of the expression, and sets its parent to this node.

Parameters:
left - the left-hand side of the expression
Throws:
IllegalArgumentException} - if left is null

getRight

public AstNode getRight()
Returns the right-hand side of the expression

Returns:
the right-hand side. It's usually an AstNode node, but can also be a FunctionNode representing Function expressions.

setRight

public void setRight(AstNode right)
Sets the right-hand side of the expression, and sets its parent to this node.

Throws:
IllegalArgumentException} - if right is null

getOperatorPosition

public int getOperatorPosition()
Returns relative offset of operator token


setOperatorPosition

public void setOperatorPosition(int operatorPosition)
Sets operator token's relative offset

Parameters:
operatorPosition - offset in parent of operator token

hasSideEffects

public boolean hasSideEffects()
Overrides:
hasSideEffects in class AstNode

toSource

public java.lang.String toSource(int depth)
Description copied from class: AstNode
Emits source code for this node. Callee is responsible for calling this function recursively on children, incrementing indent as appropriate.

Note: if the parser was in error-recovery mode, some AST nodes may have null children that are expected to be non-null when no errors are present. In this situation, the behavior of the toSource method is undefined: toSource implementations may assume that the AST node is error-free, since it is intended to be invoked only at runtime after a successful parse.

Specified by:
toSource in class AstNode
Parameters:
depth - the current recursion depth, typically beginning at 0 when called on the root node.

visit

public void visit(NodeVisitor v)
Visits this node, the left operand, and the right operand.

Specified by:
visit in class AstNode
Parameters:
v - the object to call with this node and its children