JsModule {
bom_token: missing (optional),
interpreter_token: missing (optional),
directives: JsDirectiveList [],
items: JsModuleItemList [
JsBlockStatement {
l_curly_token: L_CURLY@0..1 "{" [] [],
statements: JsStatementList [],
r_curly_token: R_CURLY@1..2 "}" [] [],
},
JsBlockStatement {
l_curly_token: L_CURLY@2..4 "{" [Newline("\n")] [],
statements: JsStatementList [
JsBlockStatement {
l_curly_token: L_CURLY@4..5 "{" [] [],
statements: JsStatementList [
JsBlockStatement {
l_curly_token: L_CURLY@5..6 "{" [] [],
statements: JsStatementList [
JsBlockStatement {
l_curly_token: L_CURLY@6..7 "{" [] [],
statements: JsStatementList [],
r_curly_token: R_CURLY@7..8 "}" [] [],
},
],
r_curly_token: R_CURLY@8..9 "}" [] [],
},
],
r_curly_token: R_CURLY@9..10 "}" [] [],
},
],
r_curly_token: R_CURLY@10..11 "}" [] [],
},
JsBlockStatement {
l_curly_token: L_CURLY@11..14 "{" [Newline("\n")] [Whitespace(" ")],
statements: JsStatementList [
JsExpressionStatement {
expression: JsAssignmentExpression {
left: JsIdentifierAssignment {
name_token: IDENT@14..18 "foo" [] [Whitespace(" ")],
},
operator_token: EQ@18..20 "=" [] [Whitespace(" ")],
right: JsIdentifierExpression {
name: JsReferenceIdentifier {
value_token: IDENT@20..23 "bar" [] [],
},
},
},
semicolon_token: SEMICOLON@23..25 ";" [] [Whitespace(" ")],
},
],
r_curly_token: R_CURLY@25..26 "}" [] [],
},
],
eof_token: EOF@26..27 "" [Newline("\n")] [],
}
0: JS_MODULE@0..27
0: (empty)
1: (empty)
2: JS_DIRECTIVE_LIST@0..0
3: JS_MODULE_ITEM_LIST@0..26
0: JS_BLOCK_STATEMENT@0..2
0: L_CURLY@0..1 "{" [] []
1: JS_STATEMENT_LIST@1..1
2: R_CURLY@1..2 "}" [] []
1: JS_BLOCK_STATEMENT@2..11
0: L_CURLY@2..4 "{" [Newline("\n")] []
1: JS_STATEMENT_LIST@4..10
0: JS_BLOCK_STATEMENT@4..10
0: L_CURLY@4..5 "{" [] []
1: JS_STATEMENT_LIST@5..9
0: JS_BLOCK_STATEMENT@5..9
0: L_CURLY@5..6 "{" [] []
1: JS_STATEMENT_LIST@6..8
0: JS_BLOCK_STATEMENT@6..8
0: L_CURLY@6..7 "{" [] []
1: JS_STATEMENT_LIST@7..7
2: R_CURLY@7..8 "}" [] []
2: R_CURLY@8..9 "}" [] []
2: R_CURLY@9..10 "}" [] []
2: R_CURLY@10..11 "}" [] []
2: JS_BLOCK_STATEMENT@11..26
0: L_CURLY@11..14 "{" [Newline("\n")] [Whitespace(" ")]
1: JS_STATEMENT_LIST@14..25
0: JS_EXPRESSION_STATEMENT@14..25
0: JS_ASSIGNMENT_EXPRESSION@14..23
0: JS_IDENTIFIER_ASSIGNMENT@14..18
0: IDENT@14..18 "foo" [] [Whitespace(" ")]
1: EQ@18..20 "=" [] [Whitespace(" ")]
2: JS_IDENTIFIER_EXPRESSION@20..23
0: JS_REFERENCE_IDENTIFIER@20..23
0: IDENT@20..23 "bar" [] []
1: SEMICOLON@23..25 ";" [] [Whitespace(" ")]
2: R_CURLY@25..26 "}" [] []
4: EOF@26..27 "" [Newline("\n")] []