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 Map<String,Symbol> |
symbolTable |
protected ScriptNode |
top |
inlineComment, length, parent, positionARROW_FUNCTION_PROP, ATTRIBUTE_FLAG, BOTH, CASEARRAY_PROP, CATCH_SCOPE_PROP, CONTROL_BLOCK_PROP, DECR_FLAG, DESCENDANTS_FLAG, DESTRUCTURING_ARRAY_LENGTH, DESTRUCTURING_NAMES, DESTRUCTURING_PARAMS, DIRECTCALL_PROP, END_DROPS_OFF, END_RETURNS, END_RETURNS_VALUE, END_UNREACHED, END_YIELDS, EXPRESSION_CLOSURE_PROP, first, FIRST_PROP, 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, NUMBER_OF_SPREAD, OBJECT_IDS_PROP, OBJECT_LITERAL_DESTRUCTURING, OPTIONAL_CHAINING, PARENTHESIZED_PROP, POST_FLAG, PROPERTY_FLAG, propListHead, REGEXP_PROP, RIGHT, SKIP_INDEXES_PROP, SPECIALCALL_EVAL, SPECIALCALL_PROP, SPECIALCALL_WITH, SUPER_PROPERTY_ACCESS, TARGETBLOCK_PROP, TEMPLATE_LITERAL_PROP, TRAILING_COMMA, 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.
|
List<Scope> |
getChildScopes()
Return a list of the scopes whose parent is this scope.
|
Scope |
getDefiningScope(String name)
Returns the scope in which this name is defined
|
Scope |
getParentScope() |
List<AstNode> |
getStatements()
Returns a copy of the child list, with each child cast to an
AstNode. |
Symbol |
getSymbol(String name)
Looks up a symbol in this scope.
|
Map<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(Map<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.
|
String |
toSource(int depth)
Jumps are only used directly during code generation, and do not support this interface.
|
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, getInlineComment, getLength, getLineno, getParent, getPosition, hasSideEffects, makeIndent, operatorToString, printList, setBounds, setInlineComment, setLength, setParent, setPosition, setRelative, shortName, toSourceaddChildAfter, addChildBefore, addChildrenToBack, addChildrenToFront, addChildToBack, addChildToFront, getBigInt, getChildBefore, getColumn, 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, setBigInt, setDouble, setJsDocNode, setLineColumnNumber, setScope, setString, setType, toString, toStringTreeclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitforEach, spliteratorprotected 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 List<Scope> getChildScopes()
null if nonepublic void addChildScope(Scope child)
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(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(String name)
name - the symbol namenull if not foundpublic void putSymbol(Symbol symbol)
public Map<String,Symbol> getSymbolTable()
null.public void setSymbolTable(Map<String,Symbol> table)
null.public List<AstNode> getStatements()
AstNode.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 String toSource(int depth)
Jumppublic void visit(NodeVisitor v)
JumpCopyright © 2025 HtmlUnit. All rights reserved.