Package org.mozilla.javascript.ast
Class InfixExpression
java.lang.Object
org.mozilla.javascript.Node
org.mozilla.javascript.ast.AstNode
org.mozilla.javascript.ast.InfixExpression
- All Implemented Interfaces:
Comparable<AstNode>
,Iterable<Node>
- Direct Known Subclasses:
Assignment
,ObjectProperty
,PropertyGet
,XmlDotQuery
,XmlMemberGet
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
Fields inherited from class org.mozilla.javascript.ast.AstNode
inlineComment, length, parent, position
Fields inherited from class org.mozilla.javascript.Node
ARROW_FUNCTION_PROP, ATTRIBUTE_FLAG, BOTH, CASEARRAY_PROP, CATCH_SCOPE_PROP, CONTROL_BLOCK_PROP, DECR_FLAG, DESCENDANTS_FLAG, DESTRUCTURING_ARRAY_LENGTH, DESTRUCTURING_NAMES, DESTRUCTURING_PARAMS, 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, OBJECT_LITERAL_DESTRUCTURING, OPTIONAL_CHAINING, PARENTHESIZED_PROP, POST_FLAG, PROPERTY_FLAG, propListHead, REGEXP_PROP, RIGHT, SKIP_INDEXES_PROP, SPECIALCALL_EVAL, SPECIALCALL_PROP, SPECIALCALL_WITH, TARGETBLOCK_PROP, TEMPLATE_LITERAL_PROP, TRAILING_COMMA, type, VARIABLE_PROP
-
Constructor Summary
ConstructorDescriptionInfixExpression
(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
Modifier and TypeMethodDescriptiongetLeft()
Returns the left-hand side of the expressionint
Returns operator token – alias forNode.getType()
int
Returns relative offset of operator tokengetRight()
Returns the right-hand side of the expressionboolean
void
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
Sets the right-hand side of the expression, and sets its parent to this node.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, getInlineComment, getLength, getLineno, getParent, getPosition, makeIndent, operatorToString, printList, setBounds, setInlineComment, setLength, setParent, setPosition, setRelative, shortName, toSource
Methods inherited from class org.mozilla.javascript.Node
addChildAfter, addChildBefore, addChildrenToBack, addChildrenToFront, addChildToBack, addChildToFront, getBigInt, getChildBefore, getColumn, 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, setBigInt, setDouble, setJsDocNode, setLineColumnNumber, setScope, setString, setType, toString, toStringTree
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
Field Details
-
left
-
right
-
operatorPosition
protected int operatorPosition
-
-
Constructor Details
-
InfixExpression
public InfixExpression() -
InfixExpression
public InfixExpression(int pos) -
InfixExpression
public InfixExpression(int pos, int len) -
InfixExpression
-
InfixExpression
Constructs a newInfixExpression
. Updates bounds to include left and right nodes. -
InfixExpression
Constructs a newInfixExpression
.- Parameters:
operatorPos
- the absolute position of the operator
-
-
Method Details
-
setLeftAndRight
-
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:
IllegalArgumentException
- if operator is not a valid token code
-
getLeft
Returns the left-hand side of the expression -
setLeft
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 isnull
-
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
Sets the right-hand side of the expression, and sets its parent to this node.- Throws:
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
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
Visits this node, the left operand, and the right operand.
-