|
|||||||||
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.Jump org.mozilla.javascript.ast.Scope
public class Scope
Represents a scope in the lexical scope chain. Base type for
all AstNode
implementations that can introduce a new scope.
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 | |
---|---|
protected Scope |
parentScope
|
protected java.util.Map<java.lang.String,Symbol> |
symbolTable
|
protected ScriptNode |
top
|
Fields inherited from class org.mozilla.javascript.ast.Jump |
---|
target |
Fields inherited from class org.mozilla.javascript.ast.AstNode |
---|
length, parent, position |
Constructor Summary | |
---|---|
Scope()
|
|
Scope(int pos)
|
|
Scope(int pos,
int len)
|
Method Summary | |
---|---|
void |
addChildScope(Scope child)
Add a scope to our list of child scopes. |
void |
clearParentScope()
Used only for code generation. |
java.util.List<Scope> |
getChildScopes()
Return a list of the scopes whose parent is this scope. |
Scope |
getDefiningScope(java.lang.String name)
Returns the scope in which this name is defined |
Scope |
getParentScope()
|
java.util.List<AstNode> |
getStatements()
Returns a copy of the child list, with each child cast to an AstNode . |
Symbol |
getSymbol(java.lang.String name)
Looks up a symbol in this scope. |
java.util.Map<java.lang.String,Symbol> |
getSymbolTable()
Returns the symbol table for this scope. |
ScriptNode |
getTop()
Returns current script or function scope |
static void |
joinScopes(Scope source,
Scope dest)
Copies all symbols from source scope to dest scope. |
void |
putSymbol(Symbol symbol)
Enters a symbol into this scope. |
void |
replaceWith(Scope newScope)
Used by the parser; not intended for typical use. |
void |
setParentScope(Scope parentScope)
Sets parent scope |
void |
setSymbolTable(java.util.Map<java.lang.String,Symbol> table)
Sets the symbol table for this scope. |
void |
setTop(ScriptNode top)
Sets top current script or function scope |
static Scope |
splitScope(Scope scope)
Creates a new scope node, moving symbol table information from "scope" to the new node, and making "scope" a nested scope contained by the new node. |
java.lang.String |
toSource(int depth)
Emits source code for this node. |
void |
visit(NodeVisitor v)
Jumps are only used directly during code generation, and do not support this interface. |
Methods inherited from class org.mozilla.javascript.ast.Jump |
---|
getContinue, getDefault, getFinally, getJumpStatement, getLoop, setContinue, setDefault, setFinally, setJumpStatement, setLoop |
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, 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 |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
protected java.util.Map<java.lang.String,Symbol> symbolTable
protected Scope parentScope
protected ScriptNode top
Constructor Detail |
---|
public Scope()
public Scope(int pos)
public Scope(int pos, int len)
Method Detail |
---|
public Scope getParentScope()
public void setParentScope(Scope parentScope)
public void clearParentScope()
public java.util.List<Scope> getChildScopes()
null
if nonepublic void addChildScope(Scope child)
java.lang.IllegalStateException
- if the child's parent scope is
non-null
public void replaceWith(Scope newScope)
newScope
- the scope that will replace this one on the
scope stack.public ScriptNode getTop()
public void setTop(ScriptNode top)
public static Scope splitScope(Scope scope)
public static void joinScopes(Scope source, Scope dest)
public Scope getDefiningScope(java.lang.String name)
name
- the symbol to look up
Scope
, one of its parent scopes, or null
if
the name is not defined any this scope chainpublic Symbol getSymbol(java.lang.String name)
name
- the symbol name
null
if not foundpublic void putSymbol(Symbol symbol)
public java.util.Map<java.lang.String,Symbol> getSymbolTable()
null
.public void setSymbolTable(java.util.Map<java.lang.String,Symbol> table)
null
.
public java.util.List<AstNode> getStatements()
AstNode
.
java.lang.ClassCastException
- if any non-AstNode
objects are
in the child list, e.g. if this method is called after the code
generator begins the tree transformation.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 Jump
depth
- the current recursion depth, typically beginning at 0
when called on the root node.public void visit(NodeVisitor v)
Jump
visit
in class Jump
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 |