public class InfixExpression extends AstNode
Token
type.AstNode.DebugPrintVisitor, AstNode.PositionComparator
Node.NodeIterator
Modifier and Type | Field and Description |
---|---|
protected AstNode |
left |
protected int |
operatorPosition |
protected AstNode |
right |
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 and Description |
---|
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) |
Modifier and Type | Method and Description |
---|---|
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.
|
addChild, assertNotNull, codeBug, compareTo, debugPrint, depth, getAbsolutePosition, getAstRoot, getEnclosingFunction, getEnclosingScope, getLength, getLineno, getParent, getPosition, makeIndent, operatorToString, printList, setBounds, setLength, setParent, setPosition, setRelative, shortName, toSource
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
protected AstNode left
protected AstNode right
protected int operatorPosition
public InfixExpression()
public InfixExpression(int pos)
public InfixExpression(int pos, int len)
public InfixExpression(AstNode left, AstNode right)
InfixExpression
. Updates bounds to include
left and right nodes.public int getOperator()
Node.getType()
public void setOperator(int operator)
Node.setType(int)
, but throws
an exception if the operator is invalid.java.lang.IllegalArgumentException
- if operator is not a valid token
codepublic AstNode getLeft()
public void setLeft(AstNode left)
left
- the left-hand side of the expressionIllegalArgumentException}
- if left is null
public AstNode getRight()
AstNode
node, but can also be a FunctionNode
representing Function expressions.public void setRight(AstNode right)
IllegalArgumentException}
- if right is null
public int getOperatorPosition()
public void setOperatorPosition(int operatorPosition)
operatorPosition
- offset in parent of operator tokenpublic boolean hasSideEffects()
hasSideEffects
in class AstNode
public java.lang.String toSource(int depth)
AstNode
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.
public void visit(NodeVisitor v)