biome_js_parser 0.5.7

Biome's JavaScript parser
Documentation
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..20 "f" [] [],
            },
            type_parameters: missing (optional),
            parameters: JsParameters {
                l_paren_token: L_PAREN@20..21 "(" [] [],
                items: JsParameterList [
                    JsFormalParameter {
                        decorators: JsDecoratorList [],
                        binding: JsIdentifierBinding {
                            name_token: IDENT@21..22 "x" [] [],
                        },
                        question_mark_token: missing (optional),
                        type_annotation: missing (optional),
                        initializer: missing (optional),
                    },
                    COMMA@22..24 "," [] [Whitespace(" ")],
                    JsFormalParameter {
                        decorators: JsDecoratorList [],
                        binding: JsIdentifierBinding {
                            name_token: IDENT@24..25 "o" [] [],
                        },
                        question_mark_token: missing (optional),
                        type_annotation: missing (optional),
                        initializer: missing (optional),
                    },
                ],
                r_paren_token: R_PAREN@25..27 ")" [] [Whitespace(" ")],
            },
            return_type_annotation: missing (optional),
            body: JsFunctionBody {
                l_curly_token: L_CURLY@27..28 "{" [] [],
                directives: JsDirectiveList [],
                statements: JsStatementList [
                    JsWithStatement {
                        with_token: WITH_KW@28..36 "with" [Newline("\n"), Whitespace("  ")] [Whitespace(" ")],
                        l_paren_token: L_PAREN@36..37 "(" [] [],
                        object: JsIdentifierExpression {
                            name: JsReferenceIdentifier {
                                value_token: IDENT@37..38 "o" [] [],
                            },
                        },
                        r_paren_token: R_PAREN@38..40 ")" [] [Whitespace(" ")],
                        body: JsBlockStatement {
                            l_curly_token: L_CURLY@40..41 "{" [] [],
                            statements: JsStatementList [
                                JsExpressionStatement {
                                    expression: JsCallExpression {
                                        callee: JsStaticMemberExpression {
                                            object: JsIdentifierExpression {
                                                name: JsReferenceIdentifier {
                                                    value_token: IDENT@41..53 "console" [Newline("\n"), Whitespace("    ")] [],
                                                },
                                            },
                                            operator_token: DOT@53..54 "." [] [],
                                            member: JsName {
                                                value_token: IDENT@54..57 "log" [] [],
                                            },
                                        },
                                        optional_chain_token: missing (optional),
                                        type_arguments: missing (optional),
                                        arguments: JsCallArguments {
                                            l_paren_token: L_PAREN@57..58 "(" [] [],
                                            args: JsCallArgumentList [
                                                JsIdentifierExpression {
                                                    name: JsReferenceIdentifier {
                                                        value_token: IDENT@58..59 "x" [] [],
                                                    },
                                                },
                                            ],
                                            r_paren_token: R_PAREN@59..60 ")" [] [],
                                        },
                                    },
                                    semicolon_token: SEMICOLON@60..61 ";" [] [],
                                },
                            ],
                            r_curly_token: R_CURLY@61..65 "}" [Newline("\n"), Whitespace("  ")] [],
                        },
                    },
                ],
                r_curly_token: R_CURLY@65..67 "}" [Newline("\n")] [],
            },
        },
    ],
    eof_token: EOF@67..68 "" [Newline("\n")] [],
}

0: JS_SCRIPT@0..68
  0: (empty)
  1: (empty)
  2: JS_DIRECTIVE_LIST@0..0
  3: JS_STATEMENT_LIST@0..67
    0: JS_FUNCTION_DECLARATION@0..67
      0: (empty)
      1: FUNCTION_KW@0..19 "function" [Comments("// SCRIPT"), Newline("\n")] [Whitespace(" ")]
      2: (empty)
      3: JS_IDENTIFIER_BINDING@19..20
        0: IDENT@19..20 "f" [] []
      4: (empty)
      5: JS_PARAMETERS@20..27
        0: L_PAREN@20..21 "(" [] []
        1: JS_PARAMETER_LIST@21..25
          0: JS_FORMAL_PARAMETER@21..22
            0: JS_DECORATOR_LIST@21..21
            1: JS_IDENTIFIER_BINDING@21..22
              0: IDENT@21..22 "x" [] []
            2: (empty)
            3: (empty)
            4: (empty)
          1: COMMA@22..24 "," [] [Whitespace(" ")]
          2: JS_FORMAL_PARAMETER@24..25
            0: JS_DECORATOR_LIST@24..24
            1: JS_IDENTIFIER_BINDING@24..25
              0: IDENT@24..25 "o" [] []
            2: (empty)
            3: (empty)
            4: (empty)
        2: R_PAREN@25..27 ")" [] [Whitespace(" ")]
      6: (empty)
      7: JS_FUNCTION_BODY@27..67
        0: L_CURLY@27..28 "{" [] []
        1: JS_DIRECTIVE_LIST@28..28
        2: JS_STATEMENT_LIST@28..65
          0: JS_WITH_STATEMENT@28..65
            0: WITH_KW@28..36 "with" [Newline("\n"), Whitespace("  ")] [Whitespace(" ")]
            1: L_PAREN@36..37 "(" [] []
            2: JS_IDENTIFIER_EXPRESSION@37..38
              0: JS_REFERENCE_IDENTIFIER@37..38
                0: IDENT@37..38 "o" [] []
            3: R_PAREN@38..40 ")" [] [Whitespace(" ")]
            4: JS_BLOCK_STATEMENT@40..65
              0: L_CURLY@40..41 "{" [] []
              1: JS_STATEMENT_LIST@41..61
                0: JS_EXPRESSION_STATEMENT@41..61
                  0: JS_CALL_EXPRESSION@41..60
                    0: JS_STATIC_MEMBER_EXPRESSION@41..57
                      0: JS_IDENTIFIER_EXPRESSION@41..53
                        0: JS_REFERENCE_IDENTIFIER@41..53
                          0: IDENT@41..53 "console" [Newline("\n"), Whitespace("    ")] []
                      1: DOT@53..54 "." [] []
                      2: JS_NAME@54..57
                        0: IDENT@54..57 "log" [] []
                    1: (empty)
                    2: (empty)
                    3: JS_CALL_ARGUMENTS@57..60
                      0: L_PAREN@57..58 "(" [] []
                      1: JS_CALL_ARGUMENT_LIST@58..59
                        0: JS_IDENTIFIER_EXPRESSION@58..59
                          0: JS_REFERENCE_IDENTIFIER@58..59
                            0: IDENT@58..59 "x" [] []
                      2: R_PAREN@59..60 ")" [] []
                  1: SEMICOLON@60..61 ";" [] []
              2: R_CURLY@61..65 "}" [Newline("\n"), Whitespace("  ")] []
        3: R_CURLY@65..67 "}" [Newline("\n")] []
  4: EOF@67..68 "" [Newline("\n")] []