public class ElementGet extends AstNode
foo['bar']
or
foo[2]
. This is sometimes called an "element-get" operation, hence
the name of the node.
Node type is Token.GETELEM
.
The node bounds extend from the beginning position of the target through the closing right-bracket. In the presence of a syntax error, the right bracket position is -1, and the node ends at the end of the element expression.
AstNode.PositionComparator
Node.NodeIterator
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, FUNCTION_PROP, GENERATOR_END_PROP, INCRDECR_PROP, ISNUMBER_PROP, JSDOC_PROP, LABEL_ID_PROP, LAST_PROP, LEFT, LOCAL_BLOCK_PROP, LOCAL_PROP, MEMBER_TYPE_PROP, NAME_PROP, NON_SPECIALCALL, OBJECT_IDS_PROP, PARENTHESIZED_PROP, POST_FLAG, PROPERTY_FLAG, REGEXP_PROP, RIGHT, SKIP_INDEXES_PROP, SPECIALCALL_EVAL, SPECIALCALL_PROP, SPECIALCALL_WITH, TARGETBLOCK_PROP, VARIABLE_PROP
Constructor and Description |
---|
ElementGet() |
ElementGet(AstNode target,
AstNode element) |
ElementGet(int pos) |
ElementGet(int pos,
int len) |
Modifier and Type | Method and Description |
---|---|
AstNode |
getElement()
Returns the element being accessed
|
int |
getLb()
Returns left bracket position
|
int |
getRb()
Returns right bracket position, -1 if missing
|
AstNode |
getTarget()
Returns the object on which the element is being fetched.
|
void |
setElement(AstNode element)
Sets the element being accessed, and sets its parent to this node.
|
void |
setLb(int lb)
Sets left bracket position
|
void |
setParens(int lb,
int rb) |
void |
setRb(int rb)
Sets right bracket position, -1 if not present
|
void |
setTarget(AstNode target)
Sets target object, 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 target, and the index expression.
|
addChild, codeBug, compareTo, debugPrint, depth, getAbsolutePosition, getAstRoot, getEnclosingFunction, getEnclosingScope, getLength, getLineno, getParent, getPosition, hasSideEffects, makeIndent, operatorToString, 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
public ElementGet()
public ElementGet(int pos)
public ElementGet(int pos, int len)
public AstNode getTarget()
public void setTarget(AstNode target)
target
- expression evaluating to the object upon which
to do the element lookupjava.lang.IllegalArgumentException
- if target is null
public AstNode getElement()
public void setElement(AstNode element)
java.lang.IllegalArgumentException
- if element is null
public int getLb()
public void setLb(int lb)
public int getRb()
public void setRb(int rb)
public void setParens(int lb, int rb)
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)
Copyright © 2010 - 2020 Adobe. All Rights Reserved