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.PositionComparatorNested classes/interfaces inherited from class org.mozilla.javascript.Node
Node.NodeIterator -
Field Summary
FieldsFields inherited from class org.mozilla.javascript.ast.AstNode
inlineComment, length, parent, positionFields 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
ConstructorsConstructorDescriptionInfixExpression(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 expressionintReturns operator token – alias forNode.getType()intReturns relative offset of operator tokengetRight()Returns the right-hand side of the expressionbooleanvoidSets the left-hand side of the expression, and sets its parent to this node.voidsetLeftAndRight(AstNode left, AstNode right) voidsetOperator(int operator) Sets operator token – likeNode.setType(int), but throws an exception if the operator is invalid.voidsetOperatorPosition(int operatorPosition) Sets operator token's relative offsetvoidSets the right-hand side of the expression, and sets its parent to this node.toSource(int depth) Emits source code for this node.voidvisit(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, toSourceMethods 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, toStringTreeMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods 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
AstNodenode, but can also be aFunctionNoderepresenting 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:
hasSideEffectsin classAstNode
-
toSource
Description copied from class:AstNodeEmits 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
nullchildren that are expected to be non-nullwhen no errors are present. In this situation, the behavior of thetoSourcemethod is undefined:toSourceimplementations 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.
-