Package org.mozilla.javascript.ast
Class AstRoot
-
- All Implemented Interfaces:
Comparable<AstNode>
,Iterable<Node>
public class AstRoot extends ScriptNode
Node for the root of a parse tree. It contains the statements and functions in the script, and a list ofComment
nodes associated with the script as a whole. Node type isToken.SCRIPT
.Note that the tree itself does not store errors. To collect the parse errors and warnings, pass an
ErrorReporter
to theParser
via theCompilerEnvirons
.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.mozilla.javascript.ast.AstNode
AstNode.PositionComparator
-
Nested classes/interfaces inherited from class org.mozilla.javascript.Node
Node.NodeIterator
-
-
Field Summary
-
Fields inherited from class org.mozilla.javascript.Node
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, FUNCTION_PROP, GENERATOR_END_PROP, INCRDECR_PROP, ISNUMBER_PROP, JSDOC_PROP, LABEL_ID_PROP, LAST_PROP, LEFT, LOCAL_BLOCK_PROP, LOCAL_PROP, MEMBER_TYPE_PROP, NAME_PROP, NON_SPECIALCALL, OBJECT_IDS_PROP, PARENTHESIZED_PROP, POST_FLAG, PROPERTY_FLAG, REGEXP_PROP, RIGHT, SKIP_INDEXES_PROP, SPECIALCALL_EVAL, SPECIALCALL_PROP, SPECIALCALL_WITH, TARGETBLOCK_PROP, VARIABLE_PROP
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addComment(Comment comment)
Add a comment to the comment set.void
checkParentLinks()
Debugging function to check that the parser has set the parent link for every node in the tree.String
debugPrint()
A debug-printer that includes comments (at the end).SortedSet<Comment>
getComments()
Returns comment setboolean
isInStrictMode()
void
setComments(SortedSet<Comment> comments)
Sets comment list, and updates the parent of each entry to point to this node.void
setInStrictMode(boolean inStrictMode)
String
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, flattenSymbolTable, getBaseLineno, getCompilerData, getEncodedSource, getEncodedSourceEnd, getEncodedSourceStart, getEndLineno, getFunctionCount, getFunctionNode, getFunctions, getIndexForNameNode, getNextTempName, getParamAndVarConst, getParamAndVarCount, getParamAndVarNames, getParamCount, getParamOrVarName, getRegexpCount, getRegexpFlags, getRegexpString, getSourceName, getSymbols, setBaseLineno, setCompilerData, setEncodedSource, setEncodedSourceBounds, setEncodedSourceEnd, setEncodedSourceStart, setEndLineno, 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, codeBug, compareTo, depth, getAbsolutePosition, getAstRoot, getEnclosingFunction, getEnclosingScope, getLength, getLineno, getParent, getPosition, hasSideEffects, makeIndent, operatorToString, 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
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
-
-
-
Method Detail
-
getComments
public SortedSet<Comment> getComments()
Returns comment set- Returns:
- comment set, sorted by start position. Can be
null
.
-
setComments
public void setComments(SortedSet<Comment> comments)
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
public void addComment(Comment comment)
Add a comment to the comment set.- Parameters:
comment
- the comment node.- Throws:
IllegalArgumentException
- if comment isnull
-
setInStrictMode
public void setInStrictMode(boolean inStrictMode)
-
isInStrictMode
public boolean isInStrictMode()
-
visitComments
public void visitComments(NodeVisitor visitor)
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
public void visitAll(NodeVisitor visitor)
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
public String toSource(int depth)
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
public String 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
-
-