|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.mozilla.javascript.Node org.mozilla.javascript.ast.AstNode org.mozilla.javascript.ast.Name
public class Name
AST node for a simple name. A simple name is an identifier that is
not a keyword. Node type is Token.NAME
.
This node type is also used to represent certain non-identifier names that are part of the language syntax. It's used for the "get" and "set" pseudo-keywords for object-initializer getter/setter properties, and it's also used for the "*" wildcard in E4X XML namespace and name expressions.
Nested Class Summary |
---|
Nested classes/interfaces inherited from class org.mozilla.javascript.ast.AstNode |
---|
AstNode.DebugPrintVisitor, AstNode.PositionComparator |
Nested classes/interfaces inherited from class org.mozilla.javascript.Node |
---|
Node.NodeIterator |
Field Summary |
---|
Fields inherited from class org.mozilla.javascript.ast.AstNode |
---|
length, parent, position |
Constructor Summary | |
---|---|
Name()
|
|
Name(int pos)
|
|
Name(int pos,
int len)
|
|
Name(int pos,
int len,
java.lang.String name)
Constructs a new Name |
|
Name(int pos,
java.lang.String name)
|
Method Summary | |
---|---|
Scope |
getDefiningScope()
Returns the Scope in which this Name is defined. |
java.lang.String |
getIdentifier()
Returns the node's identifier |
Scope |
getScope()
Return the Scope associated with this node. |
boolean |
isLocalName()
Return true if this node is known to be defined as a symbol in a lexical scope other than the top-level (global) scope. |
int |
length()
Return the length of this node's identifier, to let you pretend it's a String . |
void |
setIdentifier(java.lang.String identifier)
Sets the node's identifier |
void |
setScope(Scope s)
Set the Scope associated with this node. |
java.lang.String |
toSource(int depth)
Emits source code for this node. |
void |
visit(NodeVisitor v)
Visits this node. |
Methods inherited from class org.mozilla.javascript.ast.AstNode |
---|
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 |
Methods inherited from class org.mozilla.javascript.Node |
---|
addChildAfter, addChildBefore, addChildrenToBack, addChildrenToFront, addChildToBack, addChildToFront, getChildBefore, getDouble, getExistingIntProp, getFirstChild, getIntProp, getJsDoc, getJsDocNode, getLastChild, getLastSibling, getNext, getProp, getString, getType, hasChildren, hasConsistentReturnUsage, iterator, labelId, labelId, newNumber, newString, newString, newTarget, putIntProp, putProp, removeChild, removeChildren, removeProp, replaceChild, replaceChildAfter, resetTargets, setDouble, setJsDocNode, setLineno, setString, setType, toString, toStringTree |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public Name()
public Name(int pos)
public Name(int pos, int len)
public Name(int pos, int len, java.lang.String name)
Name
pos
- node start positionlen
- node lengthname
- the identifier associated with this Name
nodepublic Name(int pos, java.lang.String name)
Method Detail |
---|
public java.lang.String getIdentifier()
public void setIdentifier(java.lang.String identifier)
java.lang.IllegalArgumentException
- if identifier is nullpublic void setScope(Scope s)
Scope
associated with this node. This method does not
set the scope's ast-node field to this node. The field exists only
for temporary storage by the code generator. Not every name has an
associated scope - typically only function and variable names (but not
property names) are registered in a scope.
setScope
in class Node
s
- the scope. Can be null. Doesn't set any fields in the
scope.public Scope getScope()
Scope
associated with this node. This is
only used for (and set by) the code generator, so it will always
be null in frontend AST-processing code. Use getDefiningScope()
to find the lexical Scope
in which this Name
is defined,
if any.
getScope
in class Node
public Scope getDefiningScope()
Scope
in which this Name
is defined.
null
if it's not defined in the current lexical scope chainpublic boolean isLocalName()
true
if this name appears as local variable, a let-bound
variable not in the global scope, a function parameter, a loop
variable, the property named in a PropertyGet
, or in any other
context where the node is known not to resolve to the global scope.
Returns false
if the node is defined in the top-level scope
(i.e., its defining scope is an AstRoot
object), or if its
name is not defined as a symbol in the symbol table, in which case it
may be an external or built-in name (or just an error of some sort.)public int length()
String
. Don't confuse this method with the
AstNode.getLength()
method, which returns the range of
characters that this node overlaps in the source input.
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.
toSource
in class AstNode
depth
- the current recursion depth, typically beginning at 0
when called on the root node.public void visit(NodeVisitor v)
visit
in class AstNode
v
- the object to call with this node and its children
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |