Package org.mozilla.javascript.ast
Class InfixExpression
- java.lang.Object
-
- org.mozilla.javascript.Node
-
- org.mozilla.javascript.ast.AstNode
-
- org.mozilla.javascript.ast.InfixExpression
-
- 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'sToken
type.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.mozilla.javascript.ast.AstNode
AstNode.PositionComparator
-
Nested classes/interfaces inherited from class org.mozilla.javascript.Node
Node.NodeIterator
-
-
Field Summary
-
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, FUNCTION_PROP, GENERATOR_END_PROP, INCRDECR_PROP, ISNUMBER_PROP, JSDOC_PROP, LABEL_ID_PROP, LAST_PROP, LEFT, LOCAL_BLOCK_PROP, LOCAL_PROP, MEMBER_TYPE_PROP, NAME_PROP, NON_SPECIALCALL, OBJECT_IDS_PROP, PARENTHESIZED_PROP, POST_FLAG, PROPERTY_FLAG, REGEXP_PROP, RIGHT, SKIP_INDEXES_PROP, SPECIALCALL_EVAL, SPECIALCALL_PROP, SPECIALCALL_WITH, TARGETBLOCK_PROP, VARIABLE_PROP
-
-
Constructor Summary
Constructors Constructor Description InfixExpression()
InfixExpression(int pos)
InfixExpression(int pos, int len)
InfixExpression(int pos, int len, AstNode left, AstNode right)
InfixExpression(int operator, AstNode left, AstNode right, int operatorPos)
Constructs a newInfixExpression
.InfixExpression(AstNode left, AstNode right)
Constructs a newInfixExpression
.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description AstNode
getLeft()
Returns the left-hand side of the expressionint
getOperator()
Returns operator token – alias forNode.getType()
int
getOperatorPosition()
Returns relative offset of operator tokenAstNode
getRight()
Returns the right-hand side of the expressionboolean
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 – likeNode.setType(int)
, but throws an exception if the operator is invalid.void
setOperatorPosition(int operatorPosition)
Sets operator token's relative offsetvoid
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, codeBug, compareTo, debugPrint, depth, getAbsolutePosition, getAstRoot, getEnclosingFunction, getEnclosingScope, getLength, getLineno, getParent, getPosition, makeIndent, operatorToString, 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
-
-
-
-
Constructor Detail
-
InfixExpression
public InfixExpression()
-
InfixExpression
public InfixExpression(int pos)
-
InfixExpression
public InfixExpression(int pos, int len)
-
InfixExpression
public InfixExpression(AstNode left, AstNode right)
Constructs a newInfixExpression
. Updates bounds to include left and right nodes.
-
-
Method Detail
-
getOperator
public int getOperator()
Returns operator token – alias forNode.getType()
-
setOperator
public void setOperator(int operator)
Sets operator token – likeNode.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:
java.lang.IllegalArgumentException
- } if left isnull
-
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 aFunctionNode
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:
java.lang.IllegalArgumentException
- } if right isnull
-
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 classAstNode
-
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 thetoSource
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.
-
visit
public void visit(NodeVisitor v)
Visits this node, the left operand, and the right operand.
-
-