Class Scope
java.lang.Object
org.mozilla.javascript.Node
org.mozilla.javascript.ast.AstNode
org.mozilla.javascript.ast.Jump
org.mozilla.javascript.ast.Scope
- All Implemented Interfaces:
Comparable<AstNode>, Iterable<Node>
- Direct Known Subclasses:
ArrayComprehension, GeneratorExpression, LetNode, Loop, ScriptNode
-
Nested Class Summary
Nested classes/interfaces inherited from class AstNode
AstNode.DebugPrintVisitor, AstNode.PositionComparator
Nested classes/interfaces inherited from class Node
Node.NodeIterator
-
Field Summary
FieldsFields inherited from class AstNode
inlineComment, length, parent, position
Fields inherited from class Node
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, 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, SHORTHAND_PROPERTY_NAME, SKIP_INDEXES_PROP, SPECIALCALL_EVAL, SPECIALCALL_PROP, SPECIALCALL_WITH, TARGETBLOCK_PROP, TEMPLATE_LITERAL_PROP, type, VARIABLE_PROP
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
addChildScope
(Scope child) Add a scope to our list of child scopes.void
Used only for code generation.Return a list of the scopes whose parent is this scope.getDefiningScope
(String name) Returns the scope in which this name is definedReturns a copy of the child list, with each child cast to anAstNode
.Looks up a symbol in this scope.Returns the symbol table for this scope.getTop()
Returns current script or function scopestatic void
joinScopes
(Scope source, Scope dest) Copies all symbols from source scope to dest scope.void
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 scopevoid
setSymbolTable
(Map<String, Symbol> table) Sets the symbol table for this scope.void
setTop
(ScriptNode top) Sets top current script or function scopestatic 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.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 Jump
getContinue, getDefault, getFinally, getJumpStatement, getLoop, setContinue, setDefault, setFinally, setJumpStatement, setLoop
Methods inherited from class AstNode
addChild, 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, toSource
Methods inherited from class Node
addChildAfter, addChildBefore, addChildrenToBack, addChildrenToFront, addChildToBack, addChildToFront, getBigInt, 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, setBigInt, setDouble, setJsDocNode, setLineno, setScope, setString, setType, toString, toStringTree
Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface Iterable
forEach, spliterator
-
Field Details
-
symbolTable
-
parentScope
-
top
-
childScopes
-
-
Constructor Details
-
Scope
public Scope() -
Scope
public Scope(int pos) -
Scope
public Scope(int pos, int len)
-
-
Method Details
-
getParentScope
-
setParentScope
Sets parent scope -
clearParentScope
public void clearParentScope()Used only for code generation. -
getChildScopes
-
addChildScope
Add a scope to our list of child scopes. Sets the child's parent scope to this scope.- Throws:
IllegalStateException
- if the child's parent scope is non-null
-
replaceWith
Used by the parser; not intended for typical use. Changes the parent-scope links for this scope's child scopes to the specified new scope. Copies symbols from this scope into new scope.- Parameters:
newScope
- the scope that will replace this one on the scope stack.
-
getTop
Returns current script or function scope -
setTop
Sets top current script or function scope -
splitScope
-
joinScopes
-
getDefiningScope
-
getSymbol
-
putSymbol
Enters a symbol into this scope. -
getSymbolTable
-
setSymbolTable
-
ensureSymbolTable
-
getStatements
Returns a copy of the child list, with each child cast to anAstNode
.- Throws:
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.
-
toSource
Description copied from class:AstNode
Emits source code for this node. Callee is responsible for calling this function recursively on children, incrementing indent as appropriate.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 thetoSource
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. -
visit
Description copied from class:Jump
Jumps are only used directly during code generation, and do not support this interface.
-