public abstract class XmlRef extends AstNode
@Name) and double-colonName or a bracketed [expression]ns::name, @name)
are represented as XmlPropRef nodes. The bracketed-expression
versions (examples: ns::[name], @[name]) become
XmlElemRef nodes.
This node type (or more specifically, its subclasses) will
sometimes be the right-hand child of a PropertyGet node or
an XmlMemberGet node. The XmlRef node may also
be a standalone primary expression with no explicit target, which
is valid in certain expression contexts such as
company..employee.(@id < 100) - in this case, the @id
is an XmlRef that is part of an infix '<' expression
whose parent is an XmlDotQuery node.
AstNode.DebugPrintVisitor, AstNode.PositionComparatorNode.NodeIterator| Modifier and Type | Field and Description |
|---|---|
protected int |
atPos |
protected int |
colonPos |
protected Name |
namespace |
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, 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 |
|---|
XmlRef() |
XmlRef(int pos) |
XmlRef(int pos,
int len) |
| Modifier and Type | Method and Description |
|---|---|
int |
getAtPos()
Returns position of
@-token, or -1 if this is not
an attribute-access expression. |
int |
getColonPos()
Returns position of
:: token, or -1 if not present. |
Name |
getNamespace()
Return the namespace.
|
boolean |
isAttributeAccess()
Returns
true if this expression began with an @-token. |
void |
setAtPos(int atPos)
Sets position of
@-token, or -1 |
void |
setColonPos(int colonPos)
Sets position of
:: token, or -1 if not present |
void |
setNamespace(Name namespace)
Sets namespace, and sets its parent to this node.
|
addChild, assertNotNull, codeBug, compareTo, debugPrint, depth, getAbsolutePosition, getAstRoot, getEnclosingFunction, getEnclosingScope, getLength, getLineno, getParent, getPosition, hasSideEffects, makeIndent, operatorToString, printList, setBounds, setLength, setParent, setPosition, setRelative, shortName, toSource, toSource, visitaddChildAfter, 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, toStringTreeprotected Name namespace
protected int atPos
protected int colonPos
public XmlRef()
public XmlRef(int pos)
public XmlRef(int pos,
int len)
public Name getNamespace()
@null.public void setNamespace(Name namespace)
null.public boolean isAttributeAccess()
true if this expression began with an @-token.public int getAtPos()
@-token, or -1 if this is not
an attribute-access expression.public void setAtPos(int atPos)
@-token, or -1public int getColonPos()
:: token, or -1 if not present.
It will only be present if the namespace node is non-null.public void setColonPos(int colonPos)
:: token, or -1 if not present