public class Scope extends Jump
AstNode implementations that can introduce a new scope.AstNode.DebugPrintVisitor, AstNode.PositionComparatorNode.NodeIterator| Modifier and Type | Field and Description | 
|---|---|
| protected Scope | parentScope | 
| protected java.util.Map<java.lang.String,Symbol> | symbolTable | 
| protected ScriptNode | top | 
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 | 
|---|
| Scope() | 
| Scope(int pos) | 
| Scope(int pos,
     int len) | 
| Modifier and Type | Method and Description | 
|---|---|
| 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. | 
getContinue, getDefault, getFinally, getJumpStatement, getLoop, setContinue, setDefault, setFinally, setJumpStatement, setLoopaddChild, assertNotNull, codeBug, compareTo, debugPrint, depth, getAbsolutePosition, getAstRoot, getEnclosingFunction, getEnclosingScope, getLength, getLineno, getParent, getPosition, hasSideEffects, makeIndent, operatorToString, printList, setBounds, setLength, setParent, setPosition, setRelative, shortName, toSourceaddChildAfter, 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 java.util.Map<java.lang.String,Symbol> symbolTable
protected Scope parentScope
protected ScriptNode top
public Scope()
public Scope(int pos)
public Scope(int pos,
             int len)
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-nullpublic 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 upScope, 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 namenull 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.
public void visit(NodeVisitor v)
Jump