Class XmlDotQuery
- All Implemented Interfaces:
Comparable<AstNode>, Iterable<Node>
foo.(bar)
query expression.
The node type (operator) is Token.DOTQUERY
.
Its getLeft
node is the target ("foo" in the example),
and the getRight
node is the filter expression node.
This class exists separately from InfixExpression
largely because it
has different printing needs. The position of the left paren is just after
the dot (operator) position, and the right paren is the final position in the
bounds of the node. If the right paren is missing, the node ends at the end
of the filter expression.
-
Nested Class Summary
Nested classes/interfaces inherited from class AstNode
AstNode.DebugPrintVisitor, AstNode.PositionComparator
Nested classes/interfaces inherited from class Node
Node.NodeIterator
-
Field Summary
FieldsFields inherited from class InfixExpression
left, operatorPosition, right
Fields inherited from class AstNode
inlineComment, length, parent, position
Fields inherited from class 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, PARENTHESIZED_PROP, POST_FLAG, PROPERTY_FLAG, propListHead, REGEXP_PROP, RIGHT, SHORTHAND_PROPERTY_NAME, SKIP_INDEXES_PROP, SPECIALCALL_EVAL, SPECIALCALL_PROP, SPECIALCALL_WITH, TARGETBLOCK_PROP, TEMPLATE_LITERAL_PROP, type, VARIABLE_PROP
-
Constructor Summary
Constructors -
Method Summary
Methods inherited from class InfixExpression
getLeft, getOperator, getOperatorPosition, getRight, hasSideEffects, setLeft, setLeftAndRight, setOperator, setOperatorPosition, setRight, visit
Methods inherited from class 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 Node
addChildAfter, addChildBefore, addChildrenToBack, addChildrenToFront, addChildToBack, addChildToFront, getBigInt, 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, setBigInt, setDouble, setJsDocNode, setLineno, setScope, setString, setType, toString, toStringTree
Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface Iterable
forEach, spliterator
-
Field Details
-
rp
private int rp
-
-
Constructor Details
-
XmlDotQuery
public XmlDotQuery() -
XmlDotQuery
public XmlDotQuery(int pos) -
XmlDotQuery
public XmlDotQuery(int pos, int len)
-
-
Method Details
-
getRp
public int getRp()Returns right-paren position, -1 if missing.Note that the left-paren is automatically the character immediately after the "." in the operator - no whitespace is permitted between the dot and lp by the scanner.
-
setRp
public void setRp(int rp) Sets right-paren position -
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.- Overrides:
toSource
in classInfixExpression
- Parameters:
depth
- the current recursion depth, typically beginning at 0 when called on the root node.
-