Package org.mozilla.javascript.ast
Class AstRoot
- All Implemented Interfaces:
Comparable<AstNode>
,Iterable<Node>
Node for the root of a parse tree. It contains the statements and functions in the script, and a
list of
Comment
nodes associated with the script as a whole. Node type is Token.SCRIPT
.
Note that the tree itself does not store errors. To collect the parse errors and warnings,
pass an ErrorReporter
to the Parser
via the CompilerEnvirons
.
-
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.Scope
parentScope, symbolTable, top
Fields inherited from class org.mozilla.javascript.ast.AstNode
inlineComment, length, parent, position
Fields inherited from class org.mozilla.javascript.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, OBJECT_LITERAL_DESTRUCTURING, OPTIONAL_CHAINING, PARENTHESIZED_PROP, POST_FLAG, PROPERTY_FLAG, propListHead, REGEXP_PROP, RIGHT, SKIP_INDEXES_PROP, SPECIALCALL_EVAL, SPECIALCALL_PROP, SPECIALCALL_WITH, TARGETBLOCK_PROP, TEMPLATE_LITERAL_PROP, TRAILING_COMMA, type, VARIABLE_PROP
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addComment
(Comment comment) Add a comment to the comment set.void
Debugging function to check that the parser has set the parent link for every node in the tree.A debug-printer that includes comments (at the end).Returns comment setvoid
setComments
(SortedSet<Comment> comments) Sets comment list, and updates the parent of each entry to point to this node.toSource
(int depth) Emits source code for this node.void
visitAll
(NodeVisitor visitor) Visits the AST nodes, then the comment nodes.void
visitComments
(NodeVisitor visitor) Visits the comment nodes in the order they appear in the source code.Methods inherited from class org.mozilla.javascript.ast.ScriptNode
addFunction, addRegExp, addTemplateLiteral, flattenSymbolTable, getBaseLineno, getCompilerData, getDefaultParams, getDestructuringRvalues, getEndLineno, getFunctionCount, getFunctionNode, getFunctions, getIndexForNameNode, getNextTempName, getParamAndVarConst, getParamAndVarCount, getParamAndVarNames, getParamCount, getParamOrVarName, getRawSource, getRawSourceEnd, getRawSourceStart, getRegexpCount, getRegexpFlags, getRegexpString, getSourceName, getSymbols, getTemplateLiteralCount, getTemplateLiteralStrings, hasRestParameter, isInStrictMode, putDestructuringRvalues, setBaseLineno, setCompilerData, setEndLineno, setInStrictMode, setRawSource, setRawSourceBounds, setRawSourceEnd, setRawSourceStart, setSourceName, setSymbols, visit
Methods inherited from class org.mozilla.javascript.ast.Scope
addChildScope, clearParentScope, getChildScopes, getDefiningScope, getParentScope, getStatements, getSymbol, getSymbolTable, getTop, joinScopes, putSymbol, replaceWith, setParentScope, setSymbolTable, setTop, splitScope
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, 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 org.mozilla.javascript.Node
addChildAfter, 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, toStringTree
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
Constructor Details
-
AstRoot
public AstRoot() -
AstRoot
public AstRoot(int pos)
-
-
Method Details
-
getComments
Returns comment set- Returns:
- comment set, sorted by start position. Can be
null
.
-
setComments
Sets comment list, and updates the parent of each entry to point to this node. Replaces any existing comments.- Parameters:
comments
- comment list. can benull
.
-
addComment
Add a comment to the comment set.- Parameters:
comment
- the comment node.- Throws:
IllegalArgumentException
- if comment isnull
-
visitComments
Visits the comment nodes in the order they appear in the source code. The comments are not visited by theScriptNode.visit(org.mozilla.javascript.ast.NodeVisitor)
function - you must use this function to visit them.- Parameters:
visitor
- the callback object. It is passed each comment node. The return value is ignored.
-
visitAll
Visits the AST nodes, then the comment nodes. This method is equivalent to callingScriptNode.visit(org.mozilla.javascript.ast.NodeVisitor)
, thenvisitComments(org.mozilla.javascript.ast.NodeVisitor)
. The return value is ignored while visiting comment nodes.- Parameters:
visitor
- the callback object.
-
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. -
debugPrint
A debug-printer that includes comments (at the end).- Overrides:
debugPrint
in classAstNode
- Returns:
- a very verbose indented printout of the tree. The format of each line is: abs-pos name position length [identifier]
-
checkParentLinks
public void checkParentLinks()Debugging function to check that the parser has set the parent link for every node in the tree.- Throws:
IllegalStateException
- if a parent link is missing
-