Code view:

A painting is a person's account of this edit as text, recorded independently of the node mapping - a rendering often has several equally defensible answers where the mapping has one. Deletions and insertions carry no position on the opposite side in a painting, so that panel draws no caret for them.

Before

…lines 1–1410 unchanged (1410 lines)
1411 static boolean mayBeString(Node n) {
1412 return mayBeString(n, true);
1413 }
1414
1415 static boolean mayBeString(Node n, boolean recurse) {
1416 if (recurse) {
1417 return allResultsMatch(n, MAY_BE_STRING_PREDICATE);
1418 } else {
1419 return mayBeStringHelper(n);
1420 }
1421 }
1422
1423 static boolean mayBeStringHelper(Node n) {
…lines 1424–3230 unchanged (1807 lines)

After

…lines 1–1410 unchanged (1410 lines)
1411 static boolean mayBeString(Node n) {
1412 return mayBeString(n, true);
1413 }
1414
1415 static boolean mayBeString(Node n, boolean recurse) {
1416 if (recurse) {
1417 return anyResultsMatch(n, MAY_BE_STRING_PREDICATE);
1418 } else {
1419 return mayBeStringHelper(n);
1420 }
1421 }
1422
1423 static boolean mayBeStringHelper(Node n) {
…lines 1424–3230 unchanged (1807 lines)

Before

program
block_comment "/*\n * Copyright 2004 The Closure Compiler Authors.\n *\n * Lic"...
package_declaration
package "package"
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "jscomp"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "common"
. "."
identifier "base"
. "."
identifier "Preconditions"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "common"
. "."
identifier "base"
. "."
identifier "Predicate"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "common"
. "."
identifier "base"
. "."
identifier "Predicates"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "common"
. "."
identifier "collect"
. "."
identifier "ImmutableSet"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "common"
. "."
identifier "collect"
. "."
identifier "Maps"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "rhino"
. "."
identifier "IR"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "rhino"
. "."
identifier "InputId"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "rhino"
. "."
identifier "JSDocInfo"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "rhino"
. "."
identifier "Node"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "rhino"
. "."
identifier "Token"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "rhino"
. "."
identifier "TokenStream"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "rhino"
. "."
identifier "jstype"
. "."
identifier "FunctionType"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "rhino"
. "."
identifier "jstype"
. "."
identifier "JSType"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "rhino"
. "."
identifier "jstype"
. "."
identifier "StaticSourceFile"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "rhino"
. "."
identifier "jstype"
. "."
identifier "TernaryValue"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "Arrays"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "Collection"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "Collections"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "HashSet"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "Map"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "Set"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "javax"
. "."
identifier "annotation"
. "."
identifier "Nullable"
; ";"
block_comment "/**\n * NodeUtil contains generally useful AST utilities.\n *\n"...
class_declaration
modifiers
public "public"
final "final"
class "class"
identifier "NodeUtil"
class_body
{ "{"
field_declaration (+25 nodes collapsed)
field_declaration
modifiers
static "static"
final "final"
type_identifier "String"
variable_declarator
identifier "JSC_PROPERTY_NAME_FN"
= "="
string_literal
" "\""
string_fragment "JSCompiler_renameProperty"
" "\""
; ";"
field_declaration
modifiers
static "static"
final "final"
integral_type
char "char"
variable_declarator
identifier "LARGEST_BASIC_LATIN"
= "="
hex_integer_literal "0x7f"
; ";"
block_comment "/** the set of builtin constructors that don't have side eff"...
field_declaration (+62 nodes collapsed)
line_comment "// Utility class; do not instantiate."
constructor_declaration
modifiers
private "private"
identifier "NodeUtil"
formal_parameters
( "("
) ")"
constructor_body
{ "{"
} "}"
block_comment "/**\n * Gets the boolean value of a node that represents a "...
method_declaration (+349 nodes collapsed)
block_comment "/**\n * Gets the boolean value of a node that represents a "...
method_declaration (+347 nodes collapsed)
block_comment "/**\n * Gets the value of a node as a String, or null if it"...
method_declaration (+315 nodes collapsed)
method_declaration (+67 nodes collapsed)
block_comment "/**\n * When converting arrays to string using Array.protot"...
method_declaration (+49 nodes collapsed)
method_declaration (+159 nodes collapsed)
block_comment "/**\n * Gets the value of a node as a Number, or null if it"...
method_declaration (+436 nodes collapsed)
method_declaration (+363 nodes collapsed)
method_declaration (+128 nodes collapsed)
block_comment "/**\n * Copied from Rhino's ScriptRuntime\n */"
method_declaration (+135 nodes collapsed)
block_comment "/**\n * Gets the function's name. This method recognizes fi"...
method_declaration (+132 nodes collapsed)
block_comment "/**\n * Gets the function's name. This method recognizes th"...
method_declaration (+149 nodes collapsed)
block_comment "/**\n * Returns true if this is an immutable value.\n */"
method_declaration (+194 nodes collapsed)
block_comment "/**\n * Returns true if the operator on this node is symmet"...
method_declaration (+83 nodes collapsed)
block_comment "/**\n * Returns true if the operator on this node is relati"...
method_declaration (+73 nodes collapsed)
block_comment "/**\n * Returns the inverse of an operator if it is inverti"...
method_declaration (+92 nodes collapsed)
block_comment "/**\n * Returns true if this is a literal value. We define "...
method_declaration (+299 nodes collapsed)
block_comment "/**\n * Determines whether the given value may be assigned "...
method_declaration (+363 nodes collapsed)
block_comment "/**\n * Returns whether this a BLOCK node with no children."...
method_declaration (+95 nodes collapsed)
method_declaration (+29 nodes collapsed)
block_comment "/**\n * A \"simple\" operator is one whose children are expre"...
method_declaration (+268 nodes collapsed)
block_comment "/**\n * Creates an EXPR_RESULT.\n *\n * @param child The "...
method_declaration (+32 nodes collapsed)
block_comment "/**\n * Returns true if the node may create new mutable sta"...
method_declaration (+25 nodes collapsed)
method_declaration (+31 nodes collapsed)
block_comment "/**\n * Returns true if the node which may have side effect"...
method_declaration (+25 nodes collapsed)
method_declaration (+31 nodes collapsed)
block_comment "/**\n * Returns true if some node in n's subtree changes ap"...
method_declaration (+767 nodes collapsed)
block_comment "/**\n * Do calls to this constructor have side effects?\n "...
method_declaration (+25 nodes collapsed)
method_declaration (+135 nodes collapsed)
line_comment "// A list of built-in object creation or primitive type cast"...
line_comment "// can also be called as constructors but lack side-effects."
line_comment "// TODO(johnlenz): consider adding an extern annotation for "...
field_declaration (+56 nodes collapsed)
field_declaration (+31 nodes collapsed)
field_declaration (+31 nodes collapsed)
field_declaration (+41 nodes collapsed)
block_comment "/**\n * Returns true if calls to this function have side ef"...
method_declaration (+25 nodes collapsed)
block_comment "/**\n * Returns true if calls to this function have side ef"...
method_declaration (+460 nodes collapsed)
block_comment "/**\n * @return Whether the call has a local result.\n */"
method_declaration (+52 nodes collapsed)
block_comment "/**\n * @return Whether the new has a local result.\n */"
method_declaration (+40 nodes collapsed)
block_comment "/**\n * Returns true if the current node's type implies sid"...
method_declaration (+25 nodes collapsed)
method_declaration (+156 nodes collapsed)
block_comment "/**\n * @return Whether the tree can be affected by side-ef"...
method_declaration (+43 nodes collapsed)
block_comment "/**\n * @param knownConstants A set of names known to be co"...
method_declaration (+208 nodes collapsed)
block_comment "/*\n * 0 comma ,\n * 1 assignment = += -= *= /= %= <<= >"...
method_declaration (+634 nodes collapsed)
method_declaration (+73 nodes collapsed)
method_declaration (+32 nodes collapsed)
block_comment "/**\n * Apply the supplied predicate against\n * all possi"...
method_declaration (+182 nodes collapsed)
block_comment "/**\n * Apply the supplied predicate against\n * all possi"...
method_declaration (+182 nodes collapsed)
class_declaration (+43 nodes collapsed)
field_declaration
modifiers
static "static"
final "final"
type_identifier "NumbericResultPredicate"
variable_declarator
identifier "NUMBERIC_RESULT_PREDICATE"
= "="
object_creation_expression
new "new"
type_identifier "NumbericResultPredicate"
argument_list
( "("
) ")"
; ";"
block_comment "/**\n * Returns true if the result of node evaluation is al"...
method_declaration (+25 nodes collapsed)
method_declaration (+281 nodes collapsed)
class_declaration (+43 nodes collapsed)
field_declaration
modifiers
static "static"
final "final"
type_identifier "BooleanResultPredicate"
variable_declarator
identifier "BOOLEAN_RESULT_PREDICATE"
= "="
object_creation_expression
new "new"
type_identifier "BooleanResultPredicate"
argument_list
( "("
) ")"
; ";"
block_comment "/**\n * @return Whether the result of node evaluation is al"...
method_declaration (+25 nodes collapsed)
method_declaration (+158 nodes collapsed)
class_declaration (+43 nodes collapsed)
field_declaration
modifiers
static "static"
final "final"
type_identifier "MayBeStringResultPredicate"
variable_declarator
identifier "MAY_BE_STRING_PREDICATE"
= "="
object_creation_expression
new "new"
type_identifier "MayBeStringResultPredicate"
argument_list
( "("
) ")"
; ";"
block_comment "/**\n * @returns Whether the results is possibly a string.\n"...
method_declaration (+25 nodes collapsed)
method_declaration
modifiers
static "static"
boolean_type "boolean"
identifier "mayBeString"
formal_parameters
( "("
formal_parameter
type_identifier "Node"
identifier "n"
, ","
formal_parameter
boolean_type "boolean"
identifier "recurse"
) ")"
block
{ "{"
if_statement
if "if"
parenthesized_expression
( "("
identifier "recurse"
) ")"
block
{ "{"
return_statement
return "return"
method_invocation
identifier "allResultsMatch"
argument_list
( "("
identifier "n"
, ","
identifier "MAY_BE_STRING_PREDICATE"
) ")"
; ";"
} "}"
else "else"
block
{ "{"
return_statement
return "return"
method_invocation
identifier "mayBeStringHelper"
argument_list
( "("
identifier "n"
) ")"
; ";"
} "}"
} "}"
method_declaration (+56 nodes collapsed)
block_comment "/**\n * Returns true if the operator is associative.\n * e"...
method_declaration (+84 nodes collapsed)
block_comment "/**\n * Returns true if the operator is commutative.\n * e"...
method_declaration (+68 nodes collapsed)
method_declaration (+133 nodes collapsed)
method_declaration (+211 nodes collapsed)
block_comment "/**\n * Determines if the given node contains a function st"...
method_declaration (+28 nodes collapsed)
block_comment "/**\n * Returns true if the shallow scope contains referenc"...
method_declaration (+57 nodes collapsed)
block_comment "/**\n * Is this a GETPROP or GETELEM node?\n */"
method_declaration (+33 nodes collapsed)
block_comment "/**\n * Is this node the name of a variable being declared?"...
method_declaration (+41 nodes collapsed)
block_comment "/**\n * For an assignment or variable declaration get the a"...
method_declaration (+114 nodes collapsed)
block_comment "/**\n * Is this node an assignment expression statement?\n "...
method_declaration (+39 nodes collapsed)
block_comment "/**\n * Is this node a call expression statement?\n *\n *"...
method_declaration (+39 nodes collapsed)
block_comment "/**\n * @return Whether the node represents a FOR-IN loop.\n"...
method_declaration (+36 nodes collapsed)
block_comment "/**\n * Determines whether the given node is a FOR, DO, or "...
method_declaration (+65 nodes collapsed)
block_comment "/**\n * @param n The node to inspect.\n * @return If the n"...
method_declaration (+81 nodes collapsed)
block_comment "/**\n * @return Whether the specified node has a loop paren"...
method_declaration (+73 nodes collapsed)
block_comment "/**\n * Determines whether the given node is a FOR, DO, WHI"...
method_declaration (+129 nodes collapsed)
block_comment "/**\n * Determines whether the given node is code node for "...
method_declaration (+238 nodes collapsed)
block_comment "/**\n * Gets the condition of an ON_TRUE / ON_FALSE CFG edg"...
method_declaration (+170 nodes collapsed)
block_comment "/**\n * @return Whether the node is of a type that contain "...
method_declaration (+33 nodes collapsed)
block_comment "/**\n * @return Whether the node is used as a statement.\n "...
method_declaration (+29 nodes collapsed)
method_declaration (+81 nodes collapsed)
block_comment "/** Whether the node is part of a switch statement. */"
method_declaration (+33 nodes collapsed)
block_comment "/**\n * @return Whether the name is a reference to a variab"...
method_declaration (+41 nodes collapsed)
block_comment "/** Whether the child node is the FINALLY block of a try. */"
method_declaration (+52 nodes collapsed)
block_comment "/** Whether the node is a CATCH container BLOCK. */"
method_declaration (+55 nodes collapsed)
block_comment "/** Safely remove children while maintaining a valid node st"...
method_declaration (+478 nodes collapsed)
block_comment "/**\n * Add a finally block if one does not exist.\n */"
method_declaration (+71 nodes collapsed)
block_comment "/**\n * Merge a block with its parent block.\n * @return W"...
method_declaration (+134 nodes collapsed)
block_comment "/**\n * @param node A node\n * @return Whether the call is"...
method_declaration (+33 nodes collapsed)
block_comment "/**\n * Return a BLOCK node for the given FUNCTION node.\n "...
method_declaration (+40 nodes collapsed)
block_comment "/**\n * Is this node a function declaration? A function dec"...
method_declaration (+32 nodes collapsed)
block_comment "/**\n * Is this node a hoisted function declaration? A func"...
method_declaration (+62 nodes collapsed)
block_comment "/**\n * Is a FUNCTION node an function expression? An funct"...
method_declaration (+34 nodes collapsed)
block_comment "/**\n * Returns whether this is a bleeding function (an ano"...
method_declaration (+55 nodes collapsed)
block_comment "/**\n * Determines if a node is a function expression that "...
method_declaration (+37 nodes collapsed)
block_comment "/**\n * Determines if a function takes a variable number of"...
method_declaration (+53 nodes collapsed)
block_comment "/**\n * @return Whether node is a call to methodName.\n * "...
method_declaration (+125 nodes collapsed)
block_comment "/**\n * @return Whether the callNode represents an expressi"...
method_declaration (+28 nodes collapsed)
block_comment "/**\n * @return Whether the callNode represents an expressi"...
method_declaration (+28 nodes collapsed)
block_comment "/**\n * Determines whether this node is strictly on the lef"...
method_declaration (+52 nodes collapsed)
block_comment "/**\n * Determines whether this node is used as an L-value."...
method_declaration (+198 nodes collapsed)
block_comment "/**\n * Determines whether a node represents an object lite"...
method_declaration (+65 nodes collapsed)
block_comment "/**\n * Get the name of an object literal key.\n *\n * @p"...
method_declaration (+79 nodes collapsed)
block_comment "/**\n * @param key A OBJECTLIT key node.\n * @return The t"...
method_declaration (+189 nodes collapsed)
block_comment "/**\n * Determines whether a node represents an object lite"...
method_declaration (+53 nodes collapsed)
block_comment "/**\n * Converts an operator's token value (see {@link Toke"...
method_declaration (+647 nodes collapsed)
block_comment "/**\n * Converts an operator's token value (see {@link Toke"...
method_declaration (+75 nodes collapsed)
block_comment "/**\n * @return true if n or any of its children are of the"...
method_declaration (+47 nodes collapsed)
block_comment "/**\n * @return true if n or any of its children are of the"...
method_declaration (+42 nodes collapsed)
block_comment "/**\n * Given a node tree, finds all the VAR declarations i"...
method_declaration (+139 nodes collapsed)
block_comment "/**\n * Copy any annotations that follow a named value.\n "...
method_declaration (+52 nodes collapsed)
block_comment "/**\n * Gets a Node at the top of the current scope where w"...
method_declaration (+188 nodes collapsed)
block_comment "/**\n * Creates a node representing a qualified name.\n *\n"...
method_declaration (+228 nodes collapsed)
block_comment "/**\n * Creates a node representing a qualified name, copyi"...
method_declaration (+56 nodes collapsed)
block_comment "/**\n * Gets the root node of a qualified name. Must be eit"...
method_declaration (+84 nodes collapsed)
block_comment "/**\n * Sets the debug information (source file info and or"...
method_declaration (+47 nodes collapsed)
method_declaration (+68 nodes collapsed)
block_comment "/**\n * Creates a new node representing an *existing* name,"...
method_declaration (+40 nodes collapsed)
block_comment "/**\n * Creates a new node representing an *existing* name,"...
method_declaration (+61 nodes collapsed)
block_comment "/** Test if all characters in the string are in the Basic La"...
method_declaration (+86 nodes collapsed)
block_comment "/**\n * Determines whether the given name is a valid variab"...
method_declaration (+51 nodes collapsed)
block_comment "/**\n * Determines whether the given name is a valid qualif"...
line_comment "// TODO(nicksantos): This should be moved into a \"Language\" "...
line_comment "// so that the results are different for es5 and es3."
method_declaration (+108 nodes collapsed)
block_comment "/**\n * Determines whether the given name can appear on the"...
method_declaration (+23 nodes collapsed)
class_declaration (+144 nodes collapsed)
block_comment "/**\n * Retrieves vars declared in the current node tree, e"...
method_declaration (+56 nodes collapsed)
block_comment "/**\n * @return {@code true} if the node an assignment to a"...
method_declaration (+55 nodes collapsed)
block_comment "/**\n * @return Whether the node represents a qualified pro"...
method_declaration (+70 nodes collapsed)
block_comment "/**\n * @return The class name part of a qualified prototyp"...
method_declaration (+97 nodes collapsed)
block_comment "/**\n * @return The string property name part of a qualifie"...
method_declaration (+79 nodes collapsed)
block_comment "/**\n * Create a node for an empty result expression:\n * "...
method_declaration (+61 nodes collapsed)
block_comment "/**\n * Create a VAR node containing the given name and ini"...
method_declaration (+108 nodes collapsed)
block_comment "/**\n * A predicate for matching name nodes with the specif"...
class_declaration (+88 nodes collapsed)
block_comment "/**\n * A predicate for matching nodes with the specified t"...
class_declaration (+76 nodes collapsed)
block_comment "/**\n * A predicate for matching var or function declaratio"...
class_declaration (+52 nodes collapsed)
block_comment "/**\n * A predicate for matching anything except function n"...
class_declaration (+47 nodes collapsed)
field_declaration
modifiers
static "static"
final "final"
generic_type
type_identifier "Predicate"
type_arguments
< "<"
type_identifier "Node"
> ">"
variable_declarator
identifier "MATCH_NOT_FUNCTION"
= "="
object_creation_expression
new "new"
type_identifier "MatchNotFunction"
argument_list
( "("
) ")"
; ";"
block_comment "/**\n * A predicate for matching statements without exiting"...
class_declaration (+96 nodes collapsed)
block_comment "/**\n * Finds the number of times a type is referenced with"...
method_declaration (+48 nodes collapsed)
block_comment "/**\n * Whether a simple name is referenced within the node"...
method_declaration (+46 nodes collapsed)
block_comment "/**\n * Whether a simple name is referenced within the node"...
method_declaration (+41 nodes collapsed)
block_comment "/**\n * Finds the number of times a simple name is referenc"...
method_declaration (+48 nodes collapsed)
block_comment "/**\n * @return Whether the predicate is true for the node "...
method_declaration (+135 nodes collapsed)
block_comment "/**\n * @return The number of times the the predicate is tr"...
method_declaration (+132 nodes collapsed)
block_comment "/**\n * Interface for use with the visit method.\n * @see "...
interface_declaration
modifiers
static "static"
interface "interface"
identifier "Visitor"
interface_body
{ "{"
method_declaration
void_type "void"
identifier "visit"
formal_parameters
( "("
formal_parameter
type_identifier "Node"
identifier "node"
) ")"
; ";"
} "}"
block_comment "/**\n * A pre-order traversal, calling Visitor.visit for ea"...
method_declaration (+100 nodes collapsed)
block_comment "/**\n * A post-order traversal, calling Visitor.visit for e"...
method_declaration (+100 nodes collapsed)
block_comment "/**\n * @return Whether a TRY node has a finally block.\n "...
method_declaration (+43 nodes collapsed)
block_comment "/**\n * @return The BLOCK node containing the CATCH node (i"...
method_declaration (+46 nodes collapsed)
block_comment "/**\n * @return Whether BLOCK (from a TRY node) contains a "...
method_declaration (+55 nodes collapsed)
block_comment "/**\n * @param fnNode The function.\n * @return The Node"...
method_declaration (+48 nodes collapsed)
block_comment "/**\n * Returns true if a name node represents a constant v"...
method_declaration (+28 nodes collapsed)
block_comment "/** Whether the given name is constant by coding convention."...
method_declaration (+116 nodes collapsed)
block_comment "/**\n * Get the JSDocInfo for a function.\n */"
method_declaration (+147 nodes collapsed)
block_comment "/**\n * @param n The node.\n * @return The source name pro"...
method_declaration (+68 nodes collapsed)
block_comment "/**\n * @param n The node.\n * @return The source name pro"...
method_declaration (+68 nodes collapsed)
block_comment "/**\n * @param n The node.\n * @return The InputId propert"...
method_declaration (+80 nodes collapsed)
block_comment "/**\n * A new CALL node with the \"FREE_CALL\" set based on c"...
method_declaration (+88 nodes collapsed)
block_comment "/**\n * @return Whether the node is known to be a value tha"...
method_declaration (+35 nodes collapsed)
block_comment "/**\n * @param locals A predicate to apply to unknown local"...
method_declaration (+543 nodes collapsed)
block_comment "/**\n * Given the first sibling, this returns the nth\n * "...
method_declaration (+66 nodes collapsed)
block_comment "/**\n * Given the function, this returns the nth\n * argum"...
method_declaration (+64 nodes collapsed)
block_comment "/**\n * Given the new or call, this returns the nth\n * ar"...
method_declaration (+57 nodes collapsed)
method_declaration (+88 nodes collapsed)
block_comment "/** Find the best JSDoc for the given node. */"
method_declaration (+298 nodes collapsed)
block_comment "/** Find the l-value that the given r-value is being assigne"...
method_declaration (+217 nodes collapsed)
block_comment "/** Gets the r-value of a node returned by getBestLValue. */"
method_declaration (+94 nodes collapsed)
block_comment "/** Get the owner of the given l-value node. */"
method_declaration (+112 nodes collapsed)
block_comment "/** Get the name of the given l-value node. */"
method_declaration (+154 nodes collapsed)
block_comment "/**\n * @returns false iff the result of the expression is "...
method_declaration (+317 nodes collapsed)
block_comment "/**\n * @param n The expression to check.\n * @return Whet"...
method_declaration (+318 nodes collapsed)
block_comment "/**\n * @return An appropriate AST node for the boolean val"...
method_declaration (+35 nodes collapsed)
block_comment "/**\n * @return An appropriate AST node for the double valu"...
method_declaration (+170 nodes collapsed)
} "}"

After

program
block_comment "/*\n * Copyright 2004 The Closure Compiler Authors.\n *\n * Lic"...
package_declaration
package "package"
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "jscomp"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "common"
. "."
identifier "base"
. "."
identifier "Preconditions"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "common"
. "."
identifier "base"
. "."
identifier "Predicate"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "common"
. "."
identifier "base"
. "."
identifier "Predicates"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "common"
. "."
identifier "collect"
. "."
identifier "ImmutableSet"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "common"
. "."
identifier "collect"
. "."
identifier "Maps"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "rhino"
. "."
identifier "IR"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "rhino"
. "."
identifier "InputId"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "rhino"
. "."
identifier "JSDocInfo"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "rhino"
. "."
identifier "Node"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "rhino"
. "."
identifier "Token"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "rhino"
. "."
identifier "TokenStream"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "rhino"
. "."
identifier "jstype"
. "."
identifier "FunctionType"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "rhino"
. "."
identifier "jstype"
. "."
identifier "JSType"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "rhino"
. "."
identifier "jstype"
. "."
identifier "StaticSourceFile"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "rhino"
. "."
identifier "jstype"
. "."
identifier "TernaryValue"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "Arrays"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "Collection"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "Collections"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "HashSet"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "Map"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "Set"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
identifier "javax"
. "."
identifier "annotation"
. "."
identifier "Nullable"
; ";"
block_comment "/**\n * NodeUtil contains generally useful AST utilities.\n *\n"...
class_declaration
modifiers
public "public"
final "final"
class "class"
identifier "NodeUtil"
class_body
{ "{"
field_declaration (+25 nodes collapsed)
field_declaration
modifiers
static "static"
final "final"
type_identifier "String"
variable_declarator
identifier "JSC_PROPERTY_NAME_FN"
= "="
string_literal
" "\""
string_fragment "JSCompiler_renameProperty"
" "\""
; ";"
field_declaration
modifiers
static "static"
final "final"
integral_type
char "char"
variable_declarator
identifier "LARGEST_BASIC_LATIN"
= "="
hex_integer_literal "0x7f"
; ";"
block_comment "/** the set of builtin constructors that don't have side eff"...
field_declaration (+62 nodes collapsed)
line_comment "// Utility class; do not instantiate."
constructor_declaration
modifiers
private "private"
identifier "NodeUtil"
formal_parameters
( "("
) ")"
constructor_body
{ "{"
} "}"
block_comment "/**\n * Gets the boolean value of a node that represents a "...
method_declaration (+349 nodes collapsed)
block_comment "/**\n * Gets the boolean value of a node that represents a "...
method_declaration (+347 nodes collapsed)
block_comment "/**\n * Gets the value of a node as a String, or null if it"...
method_declaration (+315 nodes collapsed)
method_declaration (+67 nodes collapsed)
block_comment "/**\n * When converting arrays to string using Array.protot"...
method_declaration (+49 nodes collapsed)
method_declaration (+159 nodes collapsed)
block_comment "/**\n * Gets the value of a node as a Number, or null if it"...
method_declaration (+436 nodes collapsed)
method_declaration (+363 nodes collapsed)
method_declaration (+128 nodes collapsed)
block_comment "/**\n * Copied from Rhino's ScriptRuntime\n */"
method_declaration (+135 nodes collapsed)
block_comment "/**\n * Gets the function's name. This method recognizes fi"...
method_declaration (+132 nodes collapsed)
block_comment "/**\n * Gets the function's name. This method recognizes th"...
method_declaration (+149 nodes collapsed)
block_comment "/**\n * Returns true if this is an immutable value.\n */"
method_declaration (+194 nodes collapsed)
block_comment "/**\n * Returns true if the operator on this node is symmet"...
method_declaration (+83 nodes collapsed)
block_comment "/**\n * Returns true if the operator on this node is relati"...
method_declaration (+73 nodes collapsed)
block_comment "/**\n * Returns the inverse of an operator if it is inverti"...
method_declaration (+92 nodes collapsed)
block_comment "/**\n * Returns true if this is a literal value. We define "...
method_declaration (+299 nodes collapsed)
block_comment "/**\n * Determines whether the given value may be assigned "...
method_declaration (+363 nodes collapsed)
block_comment "/**\n * Returns whether this a BLOCK node with no children."...
method_declaration (+95 nodes collapsed)
method_declaration (+29 nodes collapsed)
block_comment "/**\n * A \"simple\" operator is one whose children are expre"...
method_declaration (+268 nodes collapsed)
block_comment "/**\n * Creates an EXPR_RESULT.\n *\n * @param child The "...
method_declaration (+32 nodes collapsed)
block_comment "/**\n * Returns true if the node may create new mutable sta"...
method_declaration (+25 nodes collapsed)
method_declaration (+31 nodes collapsed)
block_comment "/**\n * Returns true if the node which may have side effect"...
method_declaration (+25 nodes collapsed)
method_declaration (+31 nodes collapsed)
block_comment "/**\n * Returns true if some node in n's subtree changes ap"...
method_declaration (+767 nodes collapsed)
block_comment "/**\n * Do calls to this constructor have side effects?\n "...
method_declaration (+25 nodes collapsed)
method_declaration (+135 nodes collapsed)
line_comment "// A list of built-in object creation or primitive type cast"...
line_comment "// can also be called as constructors but lack side-effects."
line_comment "// TODO(johnlenz): consider adding an extern annotation for "...
field_declaration (+56 nodes collapsed)
field_declaration (+31 nodes collapsed)
field_declaration (+31 nodes collapsed)
field_declaration (+41 nodes collapsed)
block_comment "/**\n * Returns true if calls to this function have side ef"...
method_declaration (+25 nodes collapsed)
block_comment "/**\n * Returns true if calls to this function have side ef"...
method_declaration (+460 nodes collapsed)
block_comment "/**\n * @return Whether the call has a local result.\n */"
method_declaration (+52 nodes collapsed)
block_comment "/**\n * @return Whether the new has a local result.\n */"
method_declaration (+40 nodes collapsed)
block_comment "/**\n * Returns true if the current node's type implies sid"...
method_declaration (+25 nodes collapsed)
method_declaration (+156 nodes collapsed)
block_comment "/**\n * @return Whether the tree can be affected by side-ef"...
method_declaration (+43 nodes collapsed)
block_comment "/**\n * @param knownConstants A set of names known to be co"...
method_declaration (+208 nodes collapsed)
block_comment "/*\n * 0 comma ,\n * 1 assignment = += -= *= /= %= <<= >"...
method_declaration (+634 nodes collapsed)
method_declaration (+73 nodes collapsed)
method_declaration (+32 nodes collapsed)
block_comment "/**\n * Apply the supplied predicate against\n * all possi"...
method_declaration (+182 nodes collapsed)
block_comment "/**\n * Apply the supplied predicate against\n * all possi"...
method_declaration (+182 nodes collapsed)
class_declaration (+43 nodes collapsed)
field_declaration
modifiers
static "static"
final "final"
type_identifier "NumbericResultPredicate"
variable_declarator
identifier "NUMBERIC_RESULT_PREDICATE"
= "="
object_creation_expression
new "new"
type_identifier "NumbericResultPredicate"
argument_list
( "("
) ")"
; ";"
block_comment "/**\n * Returns true if the result of node evaluation is al"...
method_declaration (+25 nodes collapsed)
method_declaration (+281 nodes collapsed)
class_declaration (+43 nodes collapsed)
field_declaration
modifiers
static "static"
final "final"
type_identifier "BooleanResultPredicate"
variable_declarator
identifier "BOOLEAN_RESULT_PREDICATE"
= "="
object_creation_expression
new "new"
type_identifier "BooleanResultPredicate"
argument_list
( "("
) ")"
; ";"
block_comment "/**\n * @return Whether the result of node evaluation is al"...
method_declaration (+25 nodes collapsed)
method_declaration (+158 nodes collapsed)
class_declaration (+43 nodes collapsed)
field_declaration
modifiers
static "static"
final "final"
type_identifier "MayBeStringResultPredicate"
variable_declarator
identifier "MAY_BE_STRING_PREDICATE"
= "="
object_creation_expression
new "new"
type_identifier "MayBeStringResultPredicate"
argument_list
( "("
) ")"
; ";"
block_comment "/**\n * @returns Whether the results is possibly a string.\n"...
method_declaration (+25 nodes collapsed)
method_declaration
modifiers
static "static"
boolean_type "boolean"
identifier "mayBeString"
formal_parameters
( "("
formal_parameter
type_identifier "Node"
identifier "n"
, ","
formal_parameter
boolean_type "boolean"
identifier "recurse"
) ")"
block
{ "{"
if_statement
if "if"
parenthesized_expression
( "("
identifier "recurse"
) ")"
block
{ "{"
return_statement
return "return"
method_invocation
identifier "anyResultsMatch"
argument_list
( "("
identifier "n"
, ","
identifier "MAY_BE_STRING_PREDICATE"
) ")"
; ";"
} "}"
else "else"
block
{ "{"
return_statement
return "return"
method_invocation
identifier "mayBeStringHelper"
argument_list
( "("
identifier "n"
) ")"
; ";"
} "}"
} "}"
method_declaration (+56 nodes collapsed)
block_comment "/**\n * Returns true if the operator is associative.\n * e"...
method_declaration (+84 nodes collapsed)
block_comment "/**\n * Returns true if the operator is commutative.\n * e"...
method_declaration (+68 nodes collapsed)
method_declaration (+133 nodes collapsed)
method_declaration (+211 nodes collapsed)
block_comment "/**\n * Determines if the given node contains a function st"...
method_declaration (+28 nodes collapsed)
block_comment "/**\n * Returns true if the shallow scope contains referenc"...
method_declaration (+57 nodes collapsed)
block_comment "/**\n * Is this a GETPROP or GETELEM node?\n */"
method_declaration (+33 nodes collapsed)
block_comment "/**\n * Is this node the name of a variable being declared?"...
method_declaration (+41 nodes collapsed)
block_comment "/**\n * For an assignment or variable declaration get the a"...
method_declaration (+114 nodes collapsed)
block_comment "/**\n * Is this node an assignment expression statement?\n "...
method_declaration (+39 nodes collapsed)
block_comment "/**\n * Is this node a call expression statement?\n *\n *"...
method_declaration (+39 nodes collapsed)
block_comment "/**\n * @return Whether the node represents a FOR-IN loop.\n"...
method_declaration (+36 nodes collapsed)
block_comment "/**\n * Determines whether the given node is a FOR, DO, or "...
method_declaration (+65 nodes collapsed)
block_comment "/**\n * @param n The node to inspect.\n * @return If the n"...
method_declaration (+81 nodes collapsed)
block_comment "/**\n * @return Whether the specified node has a loop paren"...
method_declaration (+73 nodes collapsed)
block_comment "/**\n * Determines whether the given node is a FOR, DO, WHI"...
method_declaration (+129 nodes collapsed)
block_comment "/**\n * Determines whether the given node is code node for "...
method_declaration (+238 nodes collapsed)
block_comment "/**\n * Gets the condition of an ON_TRUE / ON_FALSE CFG edg"...
method_declaration (+170 nodes collapsed)
block_comment "/**\n * @return Whether the node is of a type that contain "...
method_declaration (+33 nodes collapsed)
block_comment "/**\n * @return Whether the node is used as a statement.\n "...
method_declaration (+29 nodes collapsed)
method_declaration (+81 nodes collapsed)
block_comment "/** Whether the node is part of a switch statement. */"
method_declaration (+33 nodes collapsed)
block_comment "/**\n * @return Whether the name is a reference to a variab"...
method_declaration (+41 nodes collapsed)
block_comment "/** Whether the child node is the FINALLY block of a try. */"
method_declaration (+52 nodes collapsed)
block_comment "/** Whether the node is a CATCH container BLOCK. */"
method_declaration (+55 nodes collapsed)
block_comment "/** Safely remove children while maintaining a valid node st"...
method_declaration (+478 nodes collapsed)
block_comment "/**\n * Add a finally block if one does not exist.\n */"
method_declaration (+71 nodes collapsed)
block_comment "/**\n * Merge a block with its parent block.\n * @return W"...
method_declaration (+134 nodes collapsed)
block_comment "/**\n * @param node A node\n * @return Whether the call is"...
method_declaration (+33 nodes collapsed)
block_comment "/**\n * Return a BLOCK node for the given FUNCTION node.\n "...
method_declaration (+40 nodes collapsed)
block_comment "/**\n * Is this node a function declaration? A function dec"...
method_declaration (+32 nodes collapsed)
block_comment "/**\n * Is this node a hoisted function declaration? A func"...
method_declaration (+62 nodes collapsed)
block_comment "/**\n * Is a FUNCTION node an function expression? An funct"...
method_declaration (+34 nodes collapsed)
block_comment "/**\n * Returns whether this is a bleeding function (an ano"...
method_declaration (+55 nodes collapsed)
block_comment "/**\n * Determines if a node is a function expression that "...
method_declaration (+37 nodes collapsed)
block_comment "/**\n * Determines if a function takes a variable number of"...
method_declaration (+53 nodes collapsed)
block_comment "/**\n * @return Whether node is a call to methodName.\n * "...
method_declaration (+125 nodes collapsed)
block_comment "/**\n * @return Whether the callNode represents an expressi"...
method_declaration (+28 nodes collapsed)
block_comment "/**\n * @return Whether the callNode represents an expressi"...
method_declaration (+28 nodes collapsed)
block_comment "/**\n * Determines whether this node is strictly on the lef"...
method_declaration (+52 nodes collapsed)
block_comment "/**\n * Determines whether this node is used as an L-value."...
method_declaration (+198 nodes collapsed)
block_comment "/**\n * Determines whether a node represents an object lite"...
method_declaration (+65 nodes collapsed)
block_comment "/**\n * Get the name of an object literal key.\n *\n * @p"...
method_declaration (+79 nodes collapsed)
block_comment "/**\n * @param key A OBJECTLIT key node.\n * @return The t"...
method_declaration (+189 nodes collapsed)
block_comment "/**\n * Determines whether a node represents an object lite"...
method_declaration (+53 nodes collapsed)
block_comment "/**\n * Converts an operator's token value (see {@link Toke"...
method_declaration (+647 nodes collapsed)
block_comment "/**\n * Converts an operator's token value (see {@link Toke"...
method_declaration (+75 nodes collapsed)
block_comment "/**\n * @return true if n or any of its children are of the"...
method_declaration (+47 nodes collapsed)
block_comment "/**\n * @return true if n or any of its children are of the"...
method_declaration (+42 nodes collapsed)
block_comment "/**\n * Given a node tree, finds all the VAR declarations i"...
method_declaration (+139 nodes collapsed)
block_comment "/**\n * Copy any annotations that follow a named value.\n "...
method_declaration (+52 nodes collapsed)
block_comment "/**\n * Gets a Node at the top of the current scope where w"...
method_declaration (+188 nodes collapsed)
block_comment "/**\n * Creates a node representing a qualified name.\n *\n"...
method_declaration (+228 nodes collapsed)
block_comment "/**\n * Creates a node representing a qualified name, copyi"...
method_declaration (+56 nodes collapsed)
block_comment "/**\n * Gets the root node of a qualified name. Must be eit"...
method_declaration (+84 nodes collapsed)
block_comment "/**\n * Sets the debug information (source file info and or"...
method_declaration (+47 nodes collapsed)
method_declaration (+68 nodes collapsed)
block_comment "/**\n * Creates a new node representing an *existing* name,"...
method_declaration (+40 nodes collapsed)
block_comment "/**\n * Creates a new node representing an *existing* name,"...
method_declaration (+61 nodes collapsed)
block_comment "/** Test if all characters in the string are in the Basic La"...
method_declaration (+86 nodes collapsed)
block_comment "/**\n * Determines whether the given name is a valid variab"...
method_declaration (+51 nodes collapsed)
block_comment "/**\n * Determines whether the given name is a valid qualif"...
line_comment "// TODO(nicksantos): This should be moved into a \"Language\" "...
line_comment "// so that the results are different for es5 and es3."
method_declaration (+108 nodes collapsed)
block_comment "/**\n * Determines whether the given name can appear on the"...
method_declaration (+23 nodes collapsed)
class_declaration (+144 nodes collapsed)
block_comment "/**\n * Retrieves vars declared in the current node tree, e"...
method_declaration (+56 nodes collapsed)
block_comment "/**\n * @return {@code true} if the node an assignment to a"...
method_declaration (+55 nodes collapsed)
block_comment "/**\n * @return Whether the node represents a qualified pro"...
method_declaration (+70 nodes collapsed)
block_comment "/**\n * @return The class name part of a qualified prototyp"...
method_declaration (+97 nodes collapsed)
block_comment "/**\n * @return The string property name part of a qualifie"...
method_declaration (+79 nodes collapsed)
block_comment "/**\n * Create a node for an empty result expression:\n * "...
method_declaration (+61 nodes collapsed)
block_comment "/**\n * Create a VAR node containing the given name and ini"...
method_declaration (+108 nodes collapsed)
block_comment "/**\n * A predicate for matching name nodes with the specif"...
class_declaration (+88 nodes collapsed)
block_comment "/**\n * A predicate for matching nodes with the specified t"...
class_declaration (+76 nodes collapsed)
block_comment "/**\n * A predicate for matching var or function declaratio"...
class_declaration (+52 nodes collapsed)
block_comment "/**\n * A predicate for matching anything except function n"...
class_declaration (+47 nodes collapsed)
field_declaration
modifiers
static "static"
final "final"
generic_type
type_identifier "Predicate"
type_arguments
< "<"
type_identifier "Node"
> ">"
variable_declarator
identifier "MATCH_NOT_FUNCTION"
= "="
object_creation_expression
new "new"
type_identifier "MatchNotFunction"
argument_list
( "("
) ")"
; ";"
block_comment "/**\n * A predicate for matching statements without exiting"...
class_declaration (+96 nodes collapsed)
block_comment "/**\n * Finds the number of times a type is referenced with"...
method_declaration (+48 nodes collapsed)
block_comment "/**\n * Whether a simple name is referenced within the node"...
method_declaration (+46 nodes collapsed)
block_comment "/**\n * Whether a simple name is referenced within the node"...
method_declaration (+41 nodes collapsed)
block_comment "/**\n * Finds the number of times a simple name is referenc"...
method_declaration (+48 nodes collapsed)
block_comment "/**\n * @return Whether the predicate is true for the node "...
method_declaration (+135 nodes collapsed)
block_comment "/**\n * @return The number of times the the predicate is tr"...
method_declaration (+132 nodes collapsed)
block_comment "/**\n * Interface for use with the visit method.\n * @see "...
interface_declaration
modifiers
static "static"
interface "interface"
identifier "Visitor"
interface_body
{ "{"
method_declaration
void_type "void"
identifier "visit"
formal_parameters
( "("
formal_parameter
type_identifier "Node"
identifier "node"
) ")"
; ";"
} "}"
block_comment "/**\n * A pre-order traversal, calling Visitor.visit for ea"...
method_declaration (+100 nodes collapsed)
block_comment "/**\n * A post-order traversal, calling Visitor.visit for e"...
method_declaration (+100 nodes collapsed)
block_comment "/**\n * @return Whether a TRY node has a finally block.\n "...
method_declaration (+43 nodes collapsed)
block_comment "/**\n * @return The BLOCK node containing the CATCH node (i"...
method_declaration (+46 nodes collapsed)
block_comment "/**\n * @return Whether BLOCK (from a TRY node) contains a "...
method_declaration (+55 nodes collapsed)
block_comment "/**\n * @param fnNode The function.\n * @return The Node"...
method_declaration (+48 nodes collapsed)
block_comment "/**\n * Returns true if a name node represents a constant v"...
method_declaration (+28 nodes collapsed)
block_comment "/** Whether the given name is constant by coding convention."...
method_declaration (+116 nodes collapsed)
block_comment "/**\n * Get the JSDocInfo for a function.\n */"
method_declaration (+147 nodes collapsed)
block_comment "/**\n * @param n The node.\n * @return The source name pro"...
method_declaration (+68 nodes collapsed)
block_comment "/**\n * @param n The node.\n * @return The source name pro"...
method_declaration (+68 nodes collapsed)
block_comment "/**\n * @param n The node.\n * @return The InputId propert"...
method_declaration (+80 nodes collapsed)
block_comment "/**\n * A new CALL node with the \"FREE_CALL\" set based on c"...
method_declaration (+88 nodes collapsed)
block_comment "/**\n * @return Whether the node is known to be a value tha"...
method_declaration (+35 nodes collapsed)
block_comment "/**\n * @param locals A predicate to apply to unknown local"...
method_declaration (+543 nodes collapsed)
block_comment "/**\n * Given the first sibling, this returns the nth\n * "...
method_declaration (+66 nodes collapsed)
block_comment "/**\n * Given the function, this returns the nth\n * argum"...
method_declaration (+64 nodes collapsed)
block_comment "/**\n * Given the new or call, this returns the nth\n * ar"...
method_declaration (+57 nodes collapsed)
method_declaration (+88 nodes collapsed)
block_comment "/** Find the best JSDoc for the given node. */"
method_declaration (+298 nodes collapsed)
block_comment "/** Find the l-value that the given r-value is being assigne"...
method_declaration (+217 nodes collapsed)
block_comment "/** Gets the r-value of a node returned by getBestLValue. */"
method_declaration (+94 nodes collapsed)
block_comment "/** Get the owner of the given l-value node. */"
method_declaration (+112 nodes collapsed)
block_comment "/** Get the name of the given l-value node. */"
method_declaration (+154 nodes collapsed)
block_comment "/**\n * @returns false iff the result of the expression is "...
method_declaration (+317 nodes collapsed)
block_comment "/**\n * @param n The expression to check.\n * @return Whet"...
method_declaration (+318 nodes collapsed)
block_comment "/**\n * @return An appropriate AST node for the boolean val"...
method_declaration (+35 nodes collapsed)
block_comment "/**\n * @return An appropriate AST node for the double valu"...
method_declaration (+170 nodes collapsed)
} "}"