Package com.google.javascript.rhino
Class Node
- java.lang.Object
-
- com.google.javascript.rhino.Node
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Cloneable
public class Node extends java.lang.Object implements java.lang.Cloneable, java.io.Serializable
This class implements the root of the intermediate representation.- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
Node.AncestorIterable
Iterator to go up the ancestor tree.class
Node.FileLevelJsDocBuilder
An inner class that provides back-door access to the license property of the JSDocInfo property for this node.static class
Node.SideEffectFlags
A helper class for getting and setting the side-effect flags.
-
Field Summary
Fields Modifier and Type Field Description static int
COLUMN_BITS
COLUMN_BITS represents how many of the lower-order bits of sourcePosition are reserved for storing the column number.static int
COLUMN_MASK
COLUMN_MASK stores a value where bits storing the column number are set, and bits storing the line are not set.static int
DECR_FLAG
static int
DIRECT_EVAL
static int
DIRECTIVES
static int
EMPTY_BLOCK
static int
FLAG_ARGUMENTS_UNMODIFIED
static int
FLAG_GLOBAL_STATE_UNMODIFIED
static int
FLAG_LOCAL_RESULTS
static int
FLAG_NO_THROWS
static int
FLAG_THIS_UNMODIFIED
static int
FREE_CALL
static int
INCRDECR_PROP
static int
INFERRED_FUNCTION
static int
INPUT_ID
static int
IS_CONSTANT_NAME
static int
IS_DISPATCHER
static int
IS_NAMESPACE
static int
JSDOC_INFO_PROP
static int
LAST_PROP
static int
LENGTH
static int
MAX_COLUMN_NUMBER
MAX_COLUMN_NUMBER represents the maximum column number that can be represented.static int
NO_SIDE_EFFECTS
static int
OPT_ARG_NAME
static int
ORIGINALNAME_PROP
static int
POST_FLAG
static int
QUOTED_PROP
static int
SIDE_EFFECT_FLAGS
static int
SIDE_EFFECTS_ALL
static int
SIDE_EFFECTS_FLAGS_MASK
static int
SLASH_V
static int
STATIC_SOURCE_FILE
static int
SYNTHETIC_BLOCK_PROP
static int
VAR_ARGS_NAME
-
Constructor Summary
Constructors Constructor Description Node(int nodeType)
Node(int nodeType, int lineno, int charno)
Node(int nodeType, Node child)
Node(int nodeType, Node[] children)
Node(int nodeType, Node[] children, int lineno, int charno)
Node(int nodeType, Node child, int lineno, int charno)
Node(int nodeType, Node left, Node right)
Node(int nodeType, Node left, Node right, int lineno, int charno)
Node(int nodeType, Node left, Node mid, Node right)
Node(int nodeType, Node left, Node mid, Node right, int lineno, int charno)
Node(int nodeType, Node left, Node mid, Node mid2, Node right)
Node(int nodeType, Node left, Node mid, Node mid2, Node right, int lineno, int charno)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addChildAfter(Node newChild, Node node)
Add 'child' after 'node'.void
addChildBefore(Node newChild, Node node)
Add 'child' before 'node'.void
addChildrenAfter(Node children, Node node)
Add all children after 'node'.void
addChildrenToBack(Node children)
void
addChildrenToFront(Node children)
void
addChildToBack(Node child)
void
addChildToFront(Node child)
void
addSuppression(java.lang.String warning)
Adds a warning to be suppressed.void
appendStringTree(java.lang.Appendable appendable)
java.lang.String
checkTreeEquals(Node node2)
Checks if the subtree under this node is the same as another subtree.java.lang.Iterable<Node>
children()
Return an iterable object that iterates over this node's children.Node
cloneNode()
Node
clonePropsFrom(Node other)
Clone the properties from the provided node without copying the property object.Node
cloneTree()
Node
copyInformationFrom(Node other)
Copies source file and name information from the other node given to the current node.Node
copyInformationFromForTree(Node other)
Copies source file and name information from the other node to the entire tree rooted at this node.void
detachChildren()
Removes all children from this node and isolates the children from each other.Node
detachFromParent()
Removes this node from its parent.protected static int
extractCharno(int lineCharNo)
Extracts the character number and character number from a merged line char number (seemergeLineCharNo(int, int)
).protected static int
extractLineno(int lineCharNo)
Extracts the line number and character number from a merged line char number (seemergeLineCharNo(int, int)
).Node
getAncestor(int level)
Gets the ancestor node relative to this.Node.AncestorIterable
getAncestors()
Iterates all of the node's ancestors excluding itself.boolean
getBooleanProp(int propType)
int
getCharno()
Node
getChildAtIndex(int i)
Node
getChildBefore(Node child)
int
getChildCount()
java.util.Set<java.lang.String>
getDirectives()
Returns the set of ES5 directives for this node.double
getDouble()
Can only be called when getType() == TokenStream.NUMBERint
getExistingIntProp(int propType)
Node
getFirstChild()
int
getIndexOfChild(Node child)
InputId
getInputId()
int
getIntProp(int propType)
Returns the integer value for the property, or 0 if the property is not defined.Node.FileLevelJsDocBuilder
getJsDocBuilderForNode()
JSDocInfo
getJSDocInfo()
Get theJSDocInfo
attached to this node.JSType
getJSType()
Node
getLastChild()
Node
getLastSibling()
int
getLength()
int
getLineno()
Node
getNext()
Node
getParent()
java.lang.Object
getProp(int propType)
java.lang.String
getQualifiedName()
This function takes a set of GETPROP nodes and produces a string that is each property separated by dots.int
getSideEffectFlags()
Returns the side effects flags for this node.java.lang.String
getSourceFileName()
int
getSourceOffset()
int
getSourcePosition()
StaticSourceFile
getStaticSourceFile()
Returns the source file associated with this input.java.lang.String
getString()
Can only be called when node has String context.int
getType()
boolean
hasChild(Node child)
boolean
hasChildren()
boolean
hasMoreThanOneChild()
Check for more than one child more efficiently than by iterating over all the children as is done with Node.getChildCount().boolean
hasOneChild()
Check for one child more efficiently than by iterating over all the children as is done with Node.getChildCount().boolean
isAdd()
AST type check methodsboolean
isAnd()
boolean
isArrayLit()
boolean
isAssign()
boolean
isAssignAdd()
boolean
isBlock()
boolean
isBreak()
boolean
isCall()
boolean
isCase()
boolean
isCast()
boolean
isCatch()
boolean
isComma()
boolean
isContinue()
boolean
isDebugger()
boolean
isDec()
boolean
isDefaultCase()
boolean
isDelProp()
boolean
isDo()
boolean
isEmpty()
boolean
isEquivalentTo(Node node)
Returns true if this node is equivalent semantically to anotherboolean
isEquivalentToTyped(Node node)
Returns true if this node is equivalent semantically to another and the types are equivalent.boolean
isExprResult()
boolean
isFalse()
boolean
isFor()
boolean
isFromExterns()
boolean
isFunction()
boolean
isGetElem()
boolean
isGetProp()
boolean
isGetterDef()
boolean
isHook()
boolean
isIf()
boolean
isIn()
boolean
isInc()
boolean
isInstanceOf()
boolean
isLabel()
boolean
isLabelName()
boolean
isLocalResultCall()
Returns true if this node is a function or constructor call that returns a primitive or a local object (an object that has no other references).boolean
isName()
boolean
isNE()
boolean
isNew()
boolean
isNoSideEffectsCall()
Returns true if this node is a function or constructor call that has no side effects.boolean
isNot()
boolean
isNull()
boolean
isNumber()
boolean
isObjectLit()
boolean
isOnlyModifiesThisCall()
boolean
isOptionalArg()
Returns whether this node is an optional argument node.boolean
isOr()
boolean
isParamList()
boolean
isQualifiedName()
Returns whether a node corresponds to a simple or a qualified name, such asx
ora.b.c
orthis.a
.boolean
isQuotedString()
This should only be called for STRING nodes children of OBJECTLIT.boolean
isRegExp()
boolean
isReturn()
boolean
isScript()
boolean
isSetterDef()
boolean
isString()
boolean
isStringKey()
boolean
isSwitch()
boolean
isSyntheticBlock()
Returns whether this is a synthetic block that should not be considered a real source block.boolean
isThis()
boolean
isThrow()
boolean
isTrue()
boolean
isTry()
boolean
isTypeOf()
boolean
isUnscopedQualifiedName()
Returns whether a node corresponds to a simple or a qualified name without a "this" reference, such asa.b.c
, but notthis.a
.boolean
isVar()
boolean
isVarArgs()
Returns whether this node is a variable length argument node.boolean
isVoid()
boolean
isWhile()
boolean
isWith()
protected static int
mergeLineCharNo(int lineno, int charno)
Merges the line number and character number in one integer.static Node
newNumber(double number)
static Node
newNumber(double number, int lineno, int charno)
static Node
newString(int type, java.lang.String str)
static Node
newString(int type, java.lang.String str, int lineno, int charno)
static Node
newString(java.lang.String str)
static Node
newString(java.lang.String str, int lineno, int charno)
void
putBooleanProp(int propType, boolean value)
void
putIntProp(int propType, int value)
void
putProp(int propType, java.lang.Object value)
void
removeChild(Node child)
Detach a child from its parent and siblings.Node
removeChildAfter(Node prev)
Node
removeChildren()
Node
removeFirstChild()
Removes the first child of Node.void
removeProp(int propType)
void
replaceChild(Node child, Node newChild)
Detaches child from Node and replaces it with newChild.void
replaceChildAfter(Node prevChild, Node newChild)
void
setCharno(int charno)
void
setDirectives(java.util.Set<java.lang.String> val)
Sets the ES5 directives on this node.void
setDouble(double value)
Can only be called when getType() == Token.NUMBERvoid
setInputId(InputId inputId)
void
setIsSyntheticBlock(boolean val)
Sets whether this is a synthetic block that should not be considered a real source block.Node
setJSDocInfo(JSDocInfo info)
Sets theJSDocInfo
attached to this node.void
setJSType(JSType jsType)
void
setLength(int length)
void
setLineno(int lineno)
void
setOptionalArg(boolean optionalArg)
Sets whether this node is an optional argument node.void
setQuotedString()
This should only be called for STRING nodes children of OBJECTLIT.void
setSideEffectFlags(int flags)
Marks this function or constructor call's side effect flags.void
setSideEffectFlags(Node.SideEffectFlags flags)
void
setSourceEncodedPosition(int sourcePosition)
void
setSourceEncodedPositionForTree(int sourcePosition)
void
setSourceFileForTesting(java.lang.String name)
Sets the source file to a non-extern file of the given name.void
setStaticSourceFile(StaticSourceFile file)
void
setString(java.lang.String value)
Can only be called for a Token.STRING or Token.NAME.void
setType(int type)
void
setVarArgs(boolean varArgs)
Sets whether this node is a variable length argument node.void
setWasEmptyNode(boolean val)
Sets whether this is a synthetic block that should not be considered a real source block.java.lang.Iterable<Node>
siblings()
Return an iterable object that iterates over this node's siblings.Node
srcref(Node other)
Node
srcrefTree(Node other)
java.lang.String
toString()
java.lang.String
toString(boolean printSource, boolean printAnnotations, boolean printType)
java.lang.String
toStringTree()
Node
useSourceInfoFrom(Node other)
Overwrite all the source information in this node with that ofother
.Node
useSourceInfoFromForTree(Node other)
Overwrite all the source information in this node and its subtree with that ofother
.Node
useSourceInfoIfMissingFrom(Node other)
Overwrite all the source information in this node with that ofother
iff the source info is missing.Node
useSourceInfoIfMissingFromForTree(Node other)
Overwrite all the source information in this node and its subtree with that ofother
iff the source info is missing.boolean
wasEmptyNode()
Returns whether this is a synthetic block that should not be considered a real source block.
-
-
-
Field Detail
-
JSDOC_INFO_PROP
public static final int JSDOC_INFO_PROP
- See Also:
- Constant Field Values
-
VAR_ARGS_NAME
public static final int VAR_ARGS_NAME
- See Also:
- Constant Field Values
-
INCRDECR_PROP
public static final int INCRDECR_PROP
- See Also:
- Constant Field Values
-
QUOTED_PROP
public static final int QUOTED_PROP
- See Also:
- Constant Field Values
-
OPT_ARG_NAME
public static final int OPT_ARG_NAME
- See Also:
- Constant Field Values
-
SYNTHETIC_BLOCK_PROP
public static final int SYNTHETIC_BLOCK_PROP
- See Also:
- Constant Field Values
-
EMPTY_BLOCK
public static final int EMPTY_BLOCK
- See Also:
- Constant Field Values
-
ORIGINALNAME_PROP
public static final int ORIGINALNAME_PROP
- See Also:
- Constant Field Values
-
SIDE_EFFECT_FLAGS
public static final int SIDE_EFFECT_FLAGS
- See Also:
- Constant Field Values
-
IS_CONSTANT_NAME
public static final int IS_CONSTANT_NAME
- See Also:
- Constant Field Values
-
IS_NAMESPACE
public static final int IS_NAMESPACE
- See Also:
- Constant Field Values
-
IS_DISPATCHER
public static final int IS_DISPATCHER
- See Also:
- Constant Field Values
-
DIRECTIVES
public static final int DIRECTIVES
- See Also:
- Constant Field Values
-
DIRECT_EVAL
public static final int DIRECT_EVAL
- See Also:
- Constant Field Values
-
FREE_CALL
public static final int FREE_CALL
- See Also:
- Constant Field Values
-
STATIC_SOURCE_FILE
public static final int STATIC_SOURCE_FILE
- See Also:
- Constant Field Values
-
LENGTH
public static final int LENGTH
- See Also:
- Constant Field Values
-
INPUT_ID
public static final int INPUT_ID
- See Also:
- Constant Field Values
-
SLASH_V
public static final int SLASH_V
- See Also:
- Constant Field Values
-
INFERRED_FUNCTION
public static final int INFERRED_FUNCTION
- See Also:
- Constant Field Values
-
LAST_PROP
public static final int LAST_PROP
- See Also:
- Constant Field Values
-
DECR_FLAG
public static final int DECR_FLAG
- See Also:
- Constant Field Values
-
POST_FLAG
public static final int POST_FLAG
- See Also:
- Constant Field Values
-
COLUMN_BITS
public static final int COLUMN_BITS
COLUMN_BITS represents how many of the lower-order bits of sourcePosition are reserved for storing the column number. Bits above these store the line number. This gives us decent position information for everything except files already passed through a minimizer, where lines might be longer than 4096 characters.- See Also:
- Constant Field Values
-
MAX_COLUMN_NUMBER
public static final int MAX_COLUMN_NUMBER
MAX_COLUMN_NUMBER represents the maximum column number that can be represented. JSCompiler's modifications to Rhino cause all tokens located beyond the maximum column to MAX_COLUMN_NUMBER.- See Also:
- Constant Field Values
-
COLUMN_MASK
public static final int COLUMN_MASK
COLUMN_MASK stores a value where bits storing the column number are set, and bits storing the line are not set. It's handy for separating column number from line number.- See Also:
- Constant Field Values
-
FLAG_GLOBAL_STATE_UNMODIFIED
public static final int FLAG_GLOBAL_STATE_UNMODIFIED
- See Also:
- Constant Field Values
-
FLAG_THIS_UNMODIFIED
public static final int FLAG_THIS_UNMODIFIED
- See Also:
- Constant Field Values
-
FLAG_ARGUMENTS_UNMODIFIED
public static final int FLAG_ARGUMENTS_UNMODIFIED
- See Also:
- Constant Field Values
-
FLAG_NO_THROWS
public static final int FLAG_NO_THROWS
- See Also:
- Constant Field Values
-
FLAG_LOCAL_RESULTS
public static final int FLAG_LOCAL_RESULTS
- See Also:
- Constant Field Values
-
SIDE_EFFECTS_FLAGS_MASK
public static final int SIDE_EFFECTS_FLAGS_MASK
- See Also:
- Constant Field Values
-
SIDE_EFFECTS_ALL
public static final int SIDE_EFFECTS_ALL
- See Also:
- Constant Field Values
-
NO_SIDE_EFFECTS
public static final int NO_SIDE_EFFECTS
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
Node
public Node(int nodeType)
-
Node
public Node(int nodeType, Node child)
-
Node
public Node(int nodeType, int lineno, int charno)
-
Node
public Node(int nodeType, Node child, int lineno, int charno)
-
Node
public Node(int nodeType, Node[] children, int lineno, int charno)
-
Node
public Node(int nodeType, Node[] children)
-
-
Method Detail
-
newNumber
public static Node newNumber(double number)
-
newNumber
public static Node newNumber(double number, int lineno, int charno)
-
newString
public static Node newString(java.lang.String str)
-
newString
public static Node newString(int type, java.lang.String str)
-
newString
public static Node newString(java.lang.String str, int lineno, int charno)
-
newString
public static Node newString(int type, java.lang.String str, int lineno, int charno)
-
getType
public int getType()
-
setType
public void setType(int type)
-
hasChildren
public boolean hasChildren()
-
getFirstChild
public Node getFirstChild()
-
getLastChild
public Node getLastChild()
-
getNext
public Node getNext()
-
getChildAtIndex
public Node getChildAtIndex(int i)
-
getIndexOfChild
public int getIndexOfChild(Node child)
-
getLastSibling
public Node getLastSibling()
-
addChildToFront
public void addChildToFront(Node child)
-
addChildToBack
public void addChildToBack(Node child)
-
addChildrenToFront
public void addChildrenToFront(Node children)
-
addChildrenToBack
public void addChildrenToBack(Node children)
-
addChildrenAfter
public void addChildrenAfter(Node children, Node node)
Add all children after 'node'.
-
removeChild
public void removeChild(Node child)
Detach a child from its parent and siblings.
-
replaceChild
public void replaceChild(Node child, Node newChild)
Detaches child from Node and replaces it with newChild.
-
clonePropsFrom
public Node clonePropsFrom(Node other)
Clone the properties from the provided node without copying the property object. The receiving node may not have any existing properties.- Parameters:
other
- The node to clone properties from.- Returns:
- this node.
-
removeProp
public void removeProp(int propType)
-
getProp
public java.lang.Object getProp(int propType)
-
getBooleanProp
public boolean getBooleanProp(int propType)
-
getIntProp
public int getIntProp(int propType)
Returns the integer value for the property, or 0 if the property is not defined.
-
getExistingIntProp
public int getExistingIntProp(int propType)
-
putProp
public void putProp(int propType, java.lang.Object value)
-
putBooleanProp
public void putBooleanProp(int propType, boolean value)
-
putIntProp
public void putIntProp(int propType, int value)
-
getDouble
public double getDouble() throws java.lang.UnsupportedOperationException
Can only be called when getType() == TokenStream.NUMBER- Throws:
java.lang.UnsupportedOperationException
-
setDouble
public void setDouble(double value) throws java.lang.UnsupportedOperationException
Can only be called when getType() == Token.NUMBER- Parameters:
value
- value to set.- Throws:
java.lang.UnsupportedOperationException
-
getString
public java.lang.String getString() throws java.lang.UnsupportedOperationException
Can only be called when node has String context.- Throws:
java.lang.UnsupportedOperationException
-
setString
public void setString(java.lang.String value) throws java.lang.UnsupportedOperationException
Can only be called for a Token.STRING or Token.NAME.- Parameters:
value
- the value to set.- Throws:
java.lang.UnsupportedOperationException
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
toString
public java.lang.String toString(boolean printSource, boolean printAnnotations, boolean printType)
-
toStringTree
public java.lang.String toStringTree()
-
appendStringTree
public void appendStringTree(java.lang.Appendable appendable) throws java.io.IOException
- Throws:
java.io.IOException
-
setStaticSourceFile
public void setStaticSourceFile(StaticSourceFile file)
-
setSourceFileForTesting
public void setSourceFileForTesting(java.lang.String name)
Sets the source file to a non-extern file of the given name.
-
getSourceFileName
public java.lang.String getSourceFileName()
-
getStaticSourceFile
public StaticSourceFile getStaticSourceFile()
Returns the source file associated with this input. May be null
-
setInputId
public void setInputId(InputId inputId)
- Parameters:
inputId
-
-
getInputId
public InputId getInputId()
- Returns:
- The Id of the CompilerInput associated with this Node.
-
isFromExterns
public boolean isFromExterns()
-
getLength
public int getLength()
-
setLength
public void setLength(int length)
-
getLineno
public int getLineno()
-
getCharno
public int getCharno()
-
getSourceOffset
public int getSourceOffset()
-
getSourcePosition
public int getSourcePosition()
-
setLineno
public void setLineno(int lineno)
-
setCharno
public void setCharno(int charno)
-
setSourceEncodedPosition
public void setSourceEncodedPosition(int sourcePosition)
-
setSourceEncodedPositionForTree
public void setSourceEncodedPositionForTree(int sourcePosition)
-
mergeLineCharNo
protected static int mergeLineCharNo(int lineno, int charno)
Merges the line number and character number in one integer. The Character number takes the first 12 bits and the line number takes the rest. If the character number is greater than212-1
it is adjusted to212-1
.
-
extractLineno
protected static int extractLineno(int lineCharNo)
Extracts the line number and character number from a merged line char number (seemergeLineCharNo(int, int)
).
-
extractCharno
protected static int extractCharno(int lineCharNo)
Extracts the character number and character number from a merged line char number (seemergeLineCharNo(int, int)
).
-
children
public java.lang.Iterable<Node> children()
Return an iterable object that iterates over this node's children. The iterator does not support the optional operation
Iterator.remove()
.To iterate over a node's siblings, one can write
Node n = ...; for (Node child : n.children()) { ...
-
siblings
public java.lang.Iterable<Node> siblings()
Return an iterable object that iterates over this node's siblings. The iterator does not support the optional operation
Iterator.remove()
.To iterate over a node's siblings, one can write
Node n = ...; for (Node sibling : n.siblings()) { ...
-
getParent
public Node getParent()
-
getAncestor
public Node getAncestor(int level)
Gets the ancestor node relative to this.- Parameters:
level
- 0 = this, 1 = the parent, etc.
-
getAncestors
public Node.AncestorIterable getAncestors()
Iterates all of the node's ancestors excluding itself.
-
hasOneChild
public boolean hasOneChild()
Check for one child more efficiently than by iterating over all the children as is done with Node.getChildCount().- Returns:
- Whether the node has exactly one child.
-
hasMoreThanOneChild
public boolean hasMoreThanOneChild()
Check for more than one child more efficiently than by iterating over all the children as is done with Node.getChildCount().- Returns:
- Whether the node more than one child.
-
getChildCount
public int getChildCount()
-
hasChild
public boolean hasChild(Node child)
-
checkTreeEquals
public java.lang.String checkTreeEquals(Node node2)
Checks if the subtree under this node is the same as another subtree. Returns null if it's equal, or a message describing the differences.
-
isEquivalentTo
public boolean isEquivalentTo(Node node)
Returns true if this node is equivalent semantically to another
-
isEquivalentToTyped
public boolean isEquivalentToTyped(Node node)
Returns true if this node is equivalent semantically to another and the types are equivalent.
-
getQualifiedName
public java.lang.String getQualifiedName()
This function takes a set of GETPROP nodes and produces a string that is each property separated by dots. If the node ultimately under the left sub-tree is not a simple name, this is not a valid qualified name.- Returns:
- a null if this is not a qualified name, or a dot-separated string of the name and properties.
-
isQualifiedName
public boolean isQualifiedName()
Returns whether a node corresponds to a simple or a qualified name, such asx
ora.b.c
orthis.a
.
-
isUnscopedQualifiedName
public boolean isUnscopedQualifiedName()
Returns whether a node corresponds to a simple or a qualified name without a "this" reference, such asa.b.c
, but notthis.a
.
-
detachFromParent
public Node detachFromParent()
Removes this node from its parent. Equivalent to: node.getParent().removeChild();
-
removeFirstChild
public Node removeFirstChild()
Removes the first child of Node. Equivalent to: node.removeChild(node.getFirstChild());- Returns:
- The removed Node.
-
removeChildren
public Node removeChildren()
- Returns:
- A Node that is the head of the list of children.
-
detachChildren
public void detachChildren()
Removes all children from this node and isolates the children from each other.
-
cloneNode
public Node cloneNode()
- Returns:
- A detached clone of the Node, specifically excluding its children.
-
cloneTree
public Node cloneTree()
- Returns:
- A detached clone of the Node and all its children.
-
copyInformationFrom
public Node copyInformationFrom(Node other)
Copies source file and name information from the other node given to the current node. Used for maintaining debug information across node append and remove operations.- Returns:
- this
-
copyInformationFromForTree
public Node copyInformationFromForTree(Node other)
Copies source file and name information from the other node to the entire tree rooted at this node.- Returns:
- this
-
useSourceInfoFrom
public Node useSourceInfoFrom(Node other)
Overwrite all the source information in this node with that ofother
.
-
useSourceInfoFromForTree
public Node useSourceInfoFromForTree(Node other)
Overwrite all the source information in this node and its subtree with that ofother
.
-
useSourceInfoIfMissingFrom
public Node useSourceInfoIfMissingFrom(Node other)
Overwrite all the source information in this node with that ofother
iff the source info is missing.
-
useSourceInfoIfMissingFromForTree
public Node useSourceInfoIfMissingFromForTree(Node other)
Overwrite all the source information in this node and its subtree with that ofother
iff the source info is missing.
-
getJSType
public JSType getJSType()
-
setJSType
public void setJSType(JSType jsType)
-
getJsDocBuilderForNode
public Node.FileLevelJsDocBuilder getJsDocBuilderForNode()
-
getJSDocInfo
public JSDocInfo getJSDocInfo()
Get theJSDocInfo
attached to this node.- Returns:
- the information or
null
if no JSDoc is attached to this node
-
setVarArgs
public void setVarArgs(boolean varArgs)
Sets whether this node is a variable length argument node. This method is meaningful only onToken.NAME
nodes used to define aToken.FUNCTION
's argument list.
-
isVarArgs
public boolean isVarArgs()
Returns whether this node is a variable length argument node. This method's return value is meaningful only onToken.NAME
nodes used to define aToken.FUNCTION
's argument list.
-
setOptionalArg
public void setOptionalArg(boolean optionalArg)
Sets whether this node is an optional argument node. This method is meaningful only onToken.NAME
nodes used to define aToken.FUNCTION
's argument list.
-
isOptionalArg
public boolean isOptionalArg()
Returns whether this node is an optional argument node. This method's return value is meaningful only onToken.NAME
nodes used to define aToken.FUNCTION
's argument list.
-
setIsSyntheticBlock
public void setIsSyntheticBlock(boolean val)
Sets whether this is a synthetic block that should not be considered a real source block.
-
isSyntheticBlock
public boolean isSyntheticBlock()
Returns whether this is a synthetic block that should not be considered a real source block.
-
setDirectives
public void setDirectives(java.util.Set<java.lang.String> val)
Sets the ES5 directives on this node.
-
getDirectives
public java.util.Set<java.lang.String> getDirectives()
Returns the set of ES5 directives for this node.
-
addSuppression
public void addSuppression(java.lang.String warning)
Adds a warning to be suppressed. This is indistinguishable from having a@suppress
tag in the code.
-
setWasEmptyNode
public void setWasEmptyNode(boolean val)
Sets whether this is a synthetic block that should not be considered a real source block.
-
wasEmptyNode
public boolean wasEmptyNode()
Returns whether this is a synthetic block that should not be considered a real source block.
-
setSideEffectFlags
public void setSideEffectFlags(int flags)
Marks this function or constructor call's side effect flags. This property is only meaningful forToken.CALL
andToken.NEW
nodes.
-
setSideEffectFlags
public void setSideEffectFlags(Node.SideEffectFlags flags)
-
getSideEffectFlags
public int getSideEffectFlags()
Returns the side effects flags for this node.
-
isOnlyModifiesThisCall
public boolean isOnlyModifiesThisCall()
- Returns:
- Whether the only side-effect is "modifies this"
-
isNoSideEffectsCall
public boolean isNoSideEffectsCall()
Returns true if this node is a function or constructor call that has no side effects.
-
isLocalResultCall
public boolean isLocalResultCall()
Returns true if this node is a function or constructor call that returns a primitive or a local object (an object that has no other references).
-
isQuotedString
public boolean isQuotedString()
This should only be called for STRING nodes children of OBJECTLIT.
-
setQuotedString
public void setQuotedString()
This should only be called for STRING nodes children of OBJECTLIT.
-
isAdd
public boolean isAdd()
AST type check methods
-
isAnd
public boolean isAnd()
-
isArrayLit
public boolean isArrayLit()
-
isAssign
public boolean isAssign()
-
isAssignAdd
public boolean isAssignAdd()
-
isBlock
public boolean isBlock()
-
isBreak
public boolean isBreak()
-
isCall
public boolean isCall()
-
isCase
public boolean isCase()
-
isCast
public boolean isCast()
-
isCatch
public boolean isCatch()
-
isComma
public boolean isComma()
-
isContinue
public boolean isContinue()
-
isDebugger
public boolean isDebugger()
-
isDec
public boolean isDec()
-
isDefaultCase
public boolean isDefaultCase()
-
isDelProp
public boolean isDelProp()
-
isDo
public boolean isDo()
-
isEmpty
public boolean isEmpty()
-
isExprResult
public boolean isExprResult()
-
isFalse
public boolean isFalse()
-
isFor
public boolean isFor()
-
isFunction
public boolean isFunction()
-
isGetterDef
public boolean isGetterDef()
-
isGetElem
public boolean isGetElem()
-
isGetProp
public boolean isGetProp()
-
isHook
public boolean isHook()
-
isIf
public boolean isIf()
-
isIn
public boolean isIn()
-
isInc
public boolean isInc()
-
isInstanceOf
public boolean isInstanceOf()
-
isLabel
public boolean isLabel()
-
isLabelName
public boolean isLabelName()
-
isName
public boolean isName()
-
isNE
public boolean isNE()
-
isNew
public boolean isNew()
-
isNot
public boolean isNot()
-
isNull
public boolean isNull()
-
isNumber
public boolean isNumber()
-
isObjectLit
public boolean isObjectLit()
-
isOr
public boolean isOr()
-
isParamList
public boolean isParamList()
-
isRegExp
public boolean isRegExp()
-
isReturn
public boolean isReturn()
-
isScript
public boolean isScript()
-
isSetterDef
public boolean isSetterDef()
-
isString
public boolean isString()
-
isStringKey
public boolean isStringKey()
-
isSwitch
public boolean isSwitch()
-
isThis
public boolean isThis()
-
isThrow
public boolean isThrow()
-
isTrue
public boolean isTrue()
-
isTry
public boolean isTry()
-
isTypeOf
public boolean isTypeOf()
-
isVar
public boolean isVar()
-
isVoid
public boolean isVoid()
-
isWhile
public boolean isWhile()
-
isWith
public boolean isWith()
-
-