JsScript { bom_token: missing (optional), interpreter_token: missing (optional), directives: JsDirectiveList [], statements: JsStatementList [ JsFunctionDeclaration { async_token: missing (optional), function_token: FUNCTION_KW@0..19 "function" [Comments("// SCRIPT"), Newline("\n")] [Whitespace(" ")], star_token: missing (optional), id: JsIdentifierBinding { name_token: IDENT@19..23 "test" [] [], }, type_parameters: missing (optional), parameters: JsParameters { l_paren_token: L_PAREN@23..24 "(" [] [], items: JsParameterList [], r_paren_token: R_PAREN@24..26 ")" [] [Whitespace(" ")], }, return_type_annotation: missing (optional), body: JsFunctionBody { l_curly_token: L_CURLY@26..27 "{" [] [], directives: JsDirectiveList [ JsDirective { value_token: JS_STRING_LITERAL@27..42 "\"use strict\"" [Newline("\n"), Whitespace(" ")] [], semicolon_token: SEMICOLON@42..43 ";" [] [], }, ], statements: JsStatementList [ JsFunctionDeclaration { async_token: missing (optional), function_token: FUNCTION_KW@43..55 "function" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")], star_token: missing (optional), id: JsIdentifierBinding { name_token: IDENT@55..62 "inner_a" [] [], }, type_parameters: missing (optional), parameters: JsParameters { l_paren_token: L_PAREN@62..63 "(" [] [], items: JsParameterList [], r_paren_token: R_PAREN@63..65 ")" [] [Whitespace(" ")], }, return_type_annotation: missing (optional), body: JsFunctionBody { l_curly_token: L_CURLY@65..66 "{" [] [], directives: JsDirectiveList [ JsDirective { value_token: JS_STRING_LITERAL@66..83 "\"use strict\"" [Newline("\n"), Whitespace(" ")] [], semicolon_token: SEMICOLON@83..84 ";" [] [], }, ], statements: JsStatementList [], r_curly_token: R_CURLY@84..88 "}" [Newline("\n"), Whitespace(" ")] [], }, }, JsFunctionDeclaration { async_token: missing (optional), function_token: FUNCTION_KW@88..100 "function" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")], star_token: missing (optional), id: JsIdentifierBinding { name_token: IDENT@100..107 "inner_b" [] [], }, type_parameters: missing (optional), parameters: JsParameters { l_paren_token: L_PAREN@107..108 "(" [] [], items: JsParameterList [], r_paren_token: R_PAREN@108..110 ")" [] [Whitespace(" ")], }, return_type_annotation: missing (optional), body: JsFunctionBody { l_curly_token: L_CURLY@110..111 "{" [] [], directives: JsDirectiveList [], statements: JsStatementList [ JsFunctionDeclaration { async_token: missing (optional), function_token: FUNCTION_KW@111..125 "function" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")], star_token: missing (optional), id: JsIdentifierBinding { name_token: IDENT@125..136 "inner_inner" [] [], }, type_parameters: missing (optional), parameters: JsParameters { l_paren_token: L_PAREN@136..137 "(" [] [], items: JsParameterList [], r_paren_token: R_PAREN@137..139 ")" [] [Whitespace(" ")], }, return_type_annotation: missing (optional), body: JsFunctionBody { l_curly_token: L_CURLY@139..140 "{" [] [], directives: JsDirectiveList [ JsDirective { value_token: JS_STRING_LITERAL@140..159 "\"use strict\"" [Newline("\n"), Whitespace(" ")] [], semicolon_token: SEMICOLON@159..160 ";" [] [], }, ], statements: JsStatementList [], r_curly_token: R_CURLY@160..166 "}" [Newline("\n"), Whitespace(" ")] [], }, }, ], r_curly_token: R_CURLY@166..170 "}" [Newline("\n"), Whitespace(" ")] [], }, }, ], r_curly_token: R_CURLY@170..172 "}" [Newline("\n")] [], }, }, ], eof_token: EOF@172..173 "" [Newline("\n")] [], } 0: JS_SCRIPT@0..173 0: (empty) 1: (empty) 2: JS_DIRECTIVE_LIST@0..0 3: JS_STATEMENT_LIST@0..172 0: JS_FUNCTION_DECLARATION@0..172 0: (empty) 1: FUNCTION_KW@0..19 "function" [Comments("// SCRIPT"), Newline("\n")] [Whitespace(" ")] 2: (empty) 3: JS_IDENTIFIER_BINDING@19..23 0: IDENT@19..23 "test" [] [] 4: (empty) 5: JS_PARAMETERS@23..26 0: L_PAREN@23..24 "(" [] [] 1: JS_PARAMETER_LIST@24..24 2: R_PAREN@24..26 ")" [] [Whitespace(" ")] 6: (empty) 7: JS_FUNCTION_BODY@26..172 0: L_CURLY@26..27 "{" [] [] 1: JS_DIRECTIVE_LIST@27..43 0: JS_DIRECTIVE@27..43 0: JS_STRING_LITERAL@27..42 "\"use strict\"" [Newline("\n"), Whitespace(" ")] [] 1: SEMICOLON@42..43 ";" [] [] 2: JS_STATEMENT_LIST@43..170 0: JS_FUNCTION_DECLARATION@43..88 0: (empty) 1: FUNCTION_KW@43..55 "function" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")] 2: (empty) 3: JS_IDENTIFIER_BINDING@55..62 0: IDENT@55..62 "inner_a" [] [] 4: (empty) 5: JS_PARAMETERS@62..65 0: L_PAREN@62..63 "(" [] [] 1: JS_PARAMETER_LIST@63..63 2: R_PAREN@63..65 ")" [] [Whitespace(" ")] 6: (empty) 7: JS_FUNCTION_BODY@65..88 0: L_CURLY@65..66 "{" [] [] 1: JS_DIRECTIVE_LIST@66..84 0: JS_DIRECTIVE@66..84 0: JS_STRING_LITERAL@66..83 "\"use strict\"" [Newline("\n"), Whitespace(" ")] [] 1: SEMICOLON@83..84 ";" [] [] 2: JS_STATEMENT_LIST@84..84 3: R_CURLY@84..88 "}" [Newline("\n"), Whitespace(" ")] [] 1: JS_FUNCTION_DECLARATION@88..170 0: (empty) 1: FUNCTION_KW@88..100 "function" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")] 2: (empty) 3: JS_IDENTIFIER_BINDING@100..107 0: IDENT@100..107 "inner_b" [] [] 4: (empty) 5: JS_PARAMETERS@107..110 0: L_PAREN@107..108 "(" [] [] 1: JS_PARAMETER_LIST@108..108 2: R_PAREN@108..110 ")" [] [Whitespace(" ")] 6: (empty) 7: JS_FUNCTION_BODY@110..170 0: L_CURLY@110..111 "{" [] [] 1: JS_DIRECTIVE_LIST@111..111 2: JS_STATEMENT_LIST@111..166 0: JS_FUNCTION_DECLARATION@111..166 0: (empty) 1: FUNCTION_KW@111..125 "function" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")] 2: (empty) 3: JS_IDENTIFIER_BINDING@125..136 0: IDENT@125..136 "inner_inner" [] [] 4: (empty) 5: JS_PARAMETERS@136..139 0: L_PAREN@136..137 "(" [] [] 1: JS_PARAMETER_LIST@137..137 2: R_PAREN@137..139 ")" [] [Whitespace(" ")] 6: (empty) 7: JS_FUNCTION_BODY@139..166 0: L_CURLY@139..140 "{" [] [] 1: JS_DIRECTIVE_LIST@140..160 0: JS_DIRECTIVE@140..160 0: JS_STRING_LITERAL@140..159 "\"use strict\"" [Newline("\n"), Whitespace(" ")] [] 1: SEMICOLON@159..160 ";" [] [] 2: JS_STATEMENT_LIST@160..160 3: R_CURLY@160..166 "}" [Newline("\n"), Whitespace(" ")] [] 3: R_CURLY@166..170 "}" [Newline("\n"), Whitespace(" ")] [] 3: R_CURLY@170..172 "}" [Newline("\n")] [] 4: EOF@172..173 "" [Newline("\n")] []