This mapping has 7 all-to-all groups: every node on one side corresponds to every node on the other, and none is deleted or inserted. Each member carries an all N:M badge; selecting one highlights all of its counterparts, in the tree and in the code view alike.

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–245 unchanged (245 lines)
246 }
247
248 /**
249 * Check to see if the given block comment looks like it should be JSDoc.
250 */
251 private void handleBlockComment(Comment comment) {
252 if (comment.getValue().indexOf("/* @") != -1 || comment.getValue().indexOf("\n * @") != -1) {
253 errorReporter.warning(
254 SUSPICIOUS_COMMENT_WARNING,
255 sourceName,
256 comment.getLineno(), "", 0);
257 }
258 }
259
260 /**
261 * @return true if the jsDocParser represents a fileoverview.
262 */
263 private boolean handlePossibleFileOverviewJsDoc(
…lines 264–1526 unchanged (1263 lines)

After

…lines 1–245 unchanged (245 lines)
246 }
247
248 /**
249 * Check to see if the given block comment looks like it should be JSDoc.
250 */
251 private void handleBlockComment(Comment comment) {
252 Pattern p = Pattern.compile("(/|(\n[ \t]*))\\*[ \t]*@[a-zA-Z]");
253 if (p.matcher(comment.getValue()).find()) {
254 errorReporter.warning(
255 SUSPICIOUS_COMMENT_WARNING,
256 sourceName,
257 comment.getLineno(), "", 0);
258 }
259 }
260
261 /**
262 * @return true if the jsDocParser represents a fileoverview.
263 */
264 private boolean handlePossibleFileOverviewJsDoc(
…lines 265–1527 unchanged (1263 lines)

Before

program
block_comment "/*\n * Copyright 2009 The Closure Compiler Authors.\n *\n * Lic"...
package_declaration
package "package"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "jscomp"
. "."
identifier "parsing"
; ";"
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 "collect"
. "."
identifier "ImmutableSet"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "common"
. "."
identifier "collect"
. "."
identifier "Sets"
; ";"
import_declaration (+22 nodes collapsed)
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 "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 "head"
. "."
identifier "ErrorReporter"
; ";"
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
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
identifier "java"
. "."
identifier "util"
. "."
identifier "Set"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "regex"
. "."
identifier "Pattern"
; ";"
block_comment "/**\n * IRFactory transforms the new AST to the old AST.\n *\n "...
class_declaration
class "class"
identifier "IRFactory"
class_body
{ "{"
field_declaration (+25 nodes collapsed)
field_declaration (+25 nodes collapsed)
field_declaration
modifiers
static "static"
final "final"
type_identifier "String"
variable_declarator
identifier "SUSPICIOUS_COMMENT_WARNING"
= "="
binary_expression
string_literal
" "\""
string_fragment "Non-JSDoc comment has annotations. "
" "\""
+ "+"
string_literal
" "\""
string_fragment "Did you mean to start it with '/**'?"
" "\""
; ";"
field_declaration
modifiers
static "static"
final "final"
type_identifier "String"
variable_declarator
identifier "MISPLACED_TYPE_ANNOTATION"
= "="
string_literal
" "\""
string_fragment "Type annotations are not allowed here. Are you missing paren"...
" "\""
; ";"
field_declaration (+31 nodes collapsed)
field_declaration
modifiers
private "private"
final "final"
type_identifier "String"
variable_declarator
identifier "sourceString"
; ";"
field_declaration
modifiers
private "private"
final "final"
type_identifier "StaticSourceFile"
variable_declarator
identifier "sourceFile"
; ";"
field_declaration
modifiers
private "private"
final "final"
type_identifier "String"
variable_declarator
identifier "sourceName"
; ";"
field_declaration
modifiers
private "private"
final "final"
type_identifier "Config"
variable_declarator
identifier "config"
; ";"
field_declaration
modifiers
private "private"
final "final"
type_identifier "ErrorReporter"
variable_declarator
identifier "errorReporter"
; ";"
field_declaration
modifiers
private "private"
final "final"
type_identifier "TransformDispatcher"
variable_declarator
identifier "transformDispatcher"
; ";"
field_declaration (+26 nodes collapsed)
field_declaration (+57 nodes collapsed)
field_declaration (+102 nodes collapsed)
field_declaration
modifiers
private "private"
final "final"
generic_type
type_identifier "Set"
type_arguments
< "<"
type_identifier "String"
> ">"
variable_declarator
identifier "reservedKeywords"
; ";"
field_declaration (+21 nodes collapsed)
line_comment "// @license text gets appended onto the fileLevelJsDocBuilde"...
line_comment "// and stored in JSDocInfo for placeholder node."
field_declaration
type_identifier "Node"
variable_declarator
identifier "rootNodeJsDocHolder"
= "="
object_creation_expression
new "new"
type_identifier "Node"
argument_list
( "("
field_access
identifier "Token"
. "."
identifier "SCRIPT"
) ")"
; ";"
field_declaration
scoped_type_identifier
type_identifier "Node"
. "."
type_identifier "FileLevelJsDocBuilder"
variable_declarator
identifier "fileLevelJsDocBuilder"
= "="
method_invocation
identifier "rootNodeJsDocHolder"
. "."
identifier "getJsDocBuilderForNode"
argument_list
( "("
) ")"
; ";"
field_declaration
type_identifier "JSDocInfo"
variable_declarator
identifier "fileOverviewInfo"
= "="
null_literal "null"
; ";"
line_comment "// Use a template node for properties set on all nodes to mi"...
line_comment "// memory footprint associated with these."
field_declaration
modifiers
private "private"
final "final"
type_identifier "Node"
variable_declarator
identifier "templateNode"
; ";"
line_comment "// TODO(johnlenz): Consider creating a template pool for ORI"...
constructor_declaration (+185 nodes collapsed)
line_comment "// Create a template node to use as a source of common attri"...
line_comment "// the prop structure to be shared among all the node from t"...
line_comment "// This reduces the cost of these properties to O(nodes) to "...
method_declaration (+42 nodes collapsed)
method_declaration (+193 nodes collapsed)
method_declaration (+158 nodes collapsed)
method_declaration (+154 nodes collapsed)
block_comment "/**\n * Check to see if the given block comment looks like "...
method_declaration
modifiers
private "private"
void_type "void"
identifier "handleBlockComment"
formal_parameters
( "("
formal_parameter
type_identifier "Comment"
identifier "comment"
) ")"
block
{ "{"
if_statement
if "if"
parenthesized_expression
( "("
binary_expression
binary_expression
method_invocation
method_invocation all 2:1
identifier "comment" all 2:1
. "." all 2:1
identifier "getValue" all 2:1
argument_list all 2:1
( "(" all 2:1
) ")" all 2:1
. "."
identifier "indexOf"
argument_list
( "("
string_literal
" "\""
string_fragment "/* @"
" "\""
) ")"
!= "!="
unary_expression
- "-"
decimal_integer_literal "1"
|| "||"
binary_expression
method_invocation
method_invocation all 2:1
identifier "comment" all 2:1
. "." all 2:1
identifier "getValue" all 2:1
argument_list all 2:1
( "(" all 2:1
) ")" all 2:1
. "."
identifier "indexOf"
argument_list
( "("
string_literal
" "\""
escape_sequence "\\n"
string_fragment " * @"
" "\""
) ")"
!= "!="
unary_expression
- "-"
decimal_integer_literal "1"
) ")"
block (+29 nodes collapsed)
} "}"
block_comment "/**\n * @return true if the jsDocParser represents a fileov"...
method_declaration (+52 nodes collapsed)
method_declaration (+50 nodes collapsed)
method_declaration (+126 nodes collapsed)
method_declaration (+600 nodes collapsed)
method_declaration (+75 nodes collapsed)
method_declaration (+75 nodes collapsed)
method_declaration (+91 nodes collapsed)
method_declaration (+93 nodes collapsed)
block_comment "/**\n * Parameter NAMEs are special, because they can have "...
method_declaration (+101 nodes collapsed)
method_declaration (+80 nodes collapsed)
method_declaration (+87 nodes collapsed)
method_declaration (+68 nodes collapsed)
method_declaration (+104 nodes collapsed)
block_comment "/**\n * Creates a JsDocInfoParser and parses the JsDoc stri"...
method_declaration (+147 nodes collapsed)
block_comment "/**\n * Parses inline type info.\n */"
method_declaration (+124 nodes collapsed)
line_comment "// Set the length on the node if we're in IDE mode."
method_declaration (+46 nodes collapsed)
method_declaration (+66 nodes collapsed)
method_declaration (+25 nodes collapsed)
class_declaration (+6077 nodes collapsed)
method_declaration (+2648 nodes collapsed)
line_comment "// Simple helper to create nodes and set the initial node pr"...
method_declaration (+32 nodes collapsed)
method_declaration (+38 nodes collapsed)
method_declaration (+44 nodes collapsed)
method_declaration (+50 nodes collapsed)
method_declaration (+32 nodes collapsed)
method_declaration (+39 nodes collapsed)
method_declaration (+32 nodes collapsed)
} "}"

After

program
block_comment "/*\n * Copyright 2009 The Closure Compiler Authors.\n *\n * Lic"...
package_declaration
package "package"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "javascript"
. "."
identifier "jscomp"
. "."
identifier "parsing"
; ";"
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 "collect"
. "."
identifier "ImmutableSet"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
scoped_identifier
identifier "com"
. "."
identifier "google"
. "."
identifier "common"
. "."
identifier "collect"
. "."
identifier "Sets"
; ";"
import_declaration (+22 nodes collapsed)
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 "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 "head"
. "."
identifier "ErrorReporter"
; ";"
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
import_declaration (+22 nodes collapsed)
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
identifier "java"
. "."
identifier "util"
. "."
identifier "Set"
; ";"
import_declaration
import "import"
scoped_identifier
scoped_identifier
scoped_identifier
identifier "java"
. "."
identifier "util"
. "."
identifier "regex"
. "."
identifier "Pattern"
; ";"
block_comment "/**\n * IRFactory transforms the new AST to the old AST.\n *\n "...
class_declaration
class "class"
identifier "IRFactory"
class_body
{ "{"
field_declaration (+25 nodes collapsed)
field_declaration (+25 nodes collapsed)
field_declaration
modifiers
static "static"
final "final"
type_identifier "String"
variable_declarator
identifier "SUSPICIOUS_COMMENT_WARNING"
= "="
binary_expression
string_literal
" "\""
string_fragment "Non-JSDoc comment has annotations. "
" "\""
+ "+"
string_literal
" "\""
string_fragment "Did you mean to start it with '/**'?"
" "\""
; ";"
field_declaration
modifiers
static "static"
final "final"
type_identifier "String"
variable_declarator
identifier "MISPLACED_TYPE_ANNOTATION"
= "="
string_literal
" "\""
string_fragment "Type annotations are not allowed here. Are you missing paren"...
" "\""
; ";"
field_declaration (+31 nodes collapsed)
field_declaration
modifiers
private "private"
final "final"
type_identifier "String"
variable_declarator
identifier "sourceString"
; ";"
field_declaration
modifiers
private "private"
final "final"
type_identifier "StaticSourceFile"
variable_declarator
identifier "sourceFile"
; ";"
field_declaration
modifiers
private "private"
final "final"
type_identifier "String"
variable_declarator
identifier "sourceName"
; ";"
field_declaration
modifiers
private "private"
final "final"
type_identifier "Config"
variable_declarator
identifier "config"
; ";"
field_declaration
modifiers
private "private"
final "final"
type_identifier "ErrorReporter"
variable_declarator
identifier "errorReporter"
; ";"
field_declaration
modifiers
private "private"
final "final"
type_identifier "TransformDispatcher"
variable_declarator
identifier "transformDispatcher"
; ";"
field_declaration (+26 nodes collapsed)
field_declaration (+57 nodes collapsed)
field_declaration (+102 nodes collapsed)
field_declaration
modifiers
private "private"
final "final"
generic_type
type_identifier "Set"
type_arguments
< "<"
type_identifier "String"
> ">"
variable_declarator
identifier "reservedKeywords"
; ";"
field_declaration (+21 nodes collapsed)
line_comment "// @license text gets appended onto the fileLevelJsDocBuilde"...
line_comment "// and stored in JSDocInfo for placeholder node."
field_declaration
type_identifier "Node"
variable_declarator
identifier "rootNodeJsDocHolder"
= "="
object_creation_expression
new "new"
type_identifier "Node"
argument_list
( "("
field_access
identifier "Token"
. "."
identifier "SCRIPT"
) ")"
; ";"
field_declaration
scoped_type_identifier
type_identifier "Node"
. "."
type_identifier "FileLevelJsDocBuilder"
variable_declarator
identifier "fileLevelJsDocBuilder"
= "="
method_invocation
identifier "rootNodeJsDocHolder"
. "."
identifier "getJsDocBuilderForNode"
argument_list
( "("
) ")"
; ";"
field_declaration
type_identifier "JSDocInfo"
variable_declarator
identifier "fileOverviewInfo"
= "="
null_literal "null"
; ";"
line_comment "// Use a template node for properties set on all nodes to mi"...
line_comment "// memory footprint associated with these."
field_declaration
modifiers
private "private"
final "final"
type_identifier "Node"
variable_declarator
identifier "templateNode"
; ";"
line_comment "// TODO(johnlenz): Consider creating a template pool for ORI"...
constructor_declaration (+185 nodes collapsed)
line_comment "// Create a template node to use as a source of common attri"...
line_comment "// the prop structure to be shared among all the node from t"...
line_comment "// This reduces the cost of these properties to O(nodes) to "...
method_declaration (+42 nodes collapsed)
method_declaration (+193 nodes collapsed)
method_declaration (+158 nodes collapsed)
method_declaration (+154 nodes collapsed)
block_comment "/**\n * Check to see if the given block comment looks like "...
method_declaration
modifiers
private "private"
void_type "void"
identifier "handleBlockComment"
formal_parameters
( "("
formal_parameter
type_identifier "Comment"
identifier "comment"
) ")"
block
{ "{"
local_variable_declaration
type_identifier "Pattern"
variable_declarator
identifier "p"
= "="
method_invocation
identifier "Pattern"
. "."
identifier "compile"
argument_list
( "("
string_literal
" "\""
string_fragment "(/|("
escape_sequence "\\n"
string_fragment "[ "
escape_sequence "\\t"
string_fragment "]*))"
escape_sequence "\\\\"
string_fragment "*[ "
escape_sequence "\\t"
string_fragment "]*@[a-zA-Z]"
" "\""
) ")"
; ";"
if_statement
if "if"
parenthesized_expression
( "("
method_invocation
method_invocation
identifier "p"
. "."
identifier "matcher"
argument_list
( "("
method_invocation all 2:1
identifier "comment" all 2:1
. "." all 2:1
identifier "getValue" all 2:1
argument_list all 2:1
( "(" all 2:1
) ")" all 2:1
) ")"
. "."
identifier "find"
argument_list
( "("
) ")"
) ")"
block (+29 nodes collapsed)
} "}"
block_comment "/**\n * @return true if the jsDocParser represents a fileov"...
method_declaration (+52 nodes collapsed)
method_declaration (+50 nodes collapsed)
method_declaration (+126 nodes collapsed)
method_declaration (+600 nodes collapsed)
method_declaration (+75 nodes collapsed)
method_declaration (+75 nodes collapsed)
method_declaration (+91 nodes collapsed)
method_declaration (+93 nodes collapsed)
block_comment "/**\n * Parameter NAMEs are special, because they can have "...
method_declaration (+101 nodes collapsed)
method_declaration (+80 nodes collapsed)
method_declaration (+87 nodes collapsed)
method_declaration (+68 nodes collapsed)
method_declaration (+104 nodes collapsed)
block_comment "/**\n * Creates a JsDocInfoParser and parses the JsDoc stri"...
method_declaration (+147 nodes collapsed)
block_comment "/**\n * Parses inline type info.\n */"
method_declaration (+124 nodes collapsed)
line_comment "// Set the length on the node if we're in IDE mode."
method_declaration (+46 nodes collapsed)
method_declaration (+66 nodes collapsed)
method_declaration (+25 nodes collapsed)
class_declaration (+6077 nodes collapsed)
method_declaration (+2648 nodes collapsed)
line_comment "// Simple helper to create nodes and set the initial node pr"...
method_declaration (+32 nodes collapsed)
method_declaration (+38 nodes collapsed)
method_declaration (+44 nodes collapsed)
method_declaration (+50 nodes collapsed)
method_declaration (+32 nodes collapsed)
method_declaration (+39 nodes collapsed)
method_declaration (+32 nodes collapsed)
} "}"