biome_js_parser 0.5.7

Biome's JavaScript parser
Documentation
JsModule {
    bom_token: missing (optional),
    interpreter_token: missing (optional),
    directives: JsDirectiveList [],
    items: JsModuleItemList [
        JsFunctionDeclaration {
            async_token: missing (optional),
            function_token: FUNCTION_KW@0..9 "function" [] [Whitespace(" ")],
            star_token: missing (optional),
            id: JsIdentifierBinding {
                name_token: IDENT@9..12 "foo" [] [],
            },
            type_parameters: missing (optional),
            parameters: JsParameters {
                l_paren_token: L_PAREN@12..13 "(" [] [],
                items: JsParameterList [
                    JsRestParameter {
                        decorators: JsDecoratorList [],
                        dotdotdot_token: DOT3@13..16 "..." [] [],
                        binding: JsIdentifierBinding {
                            name_token: IDENT@16..20 "args" [] [],
                        },
                        type_annotation: missing (optional),
                    },
                ],
                r_paren_token: R_PAREN@20..22 ")" [] [Whitespace(" ")],
            },
            return_type_annotation: missing (optional),
            body: JsFunctionBody {
                l_curly_token: L_CURLY@22..23 "{" [] [],
                directives: JsDirectiveList [],
                statements: JsStatementList [],
                r_curly_token: R_CURLY@23..24 "}" [] [],
            },
        },
        JsVariableStatement {
            declaration: JsVariableDeclaration {
                await_token: missing (optional),
                kind: LET_KW@24..29 "let" [Newline("\n")] [Whitespace(" ")],
                declarators: JsVariableDeclaratorList [
                    JsVariableDeclarator {
                        id: JsIdentifierBinding {
                            name_token: IDENT@29..30 "a" [] [],
                        },
                        variable_annotation: missing (optional),
                        initializer: missing (optional),
                    },
                    COMMA@30..32 "," [] [Whitespace(" ")],
                    JsVariableDeclarator {
                        id: JsIdentifierBinding {
                            name_token: IDENT@32..33 "b" [] [],
                        },
                        variable_annotation: missing (optional),
                        initializer: missing (optional),
                    },
                    COMMA@33..35 "," [] [Whitespace(" ")],
                    JsVariableDeclarator {
                        id: JsIdentifierBinding {
                            name_token: IDENT@35..36 "c" [] [],
                        },
                        variable_annotation: missing (optional),
                        initializer: missing (optional),
                    },
                    COMMA@36..38 "," [] [Whitespace(" ")],
                    JsVariableDeclarator {
                        id: JsIdentifierBinding {
                            name_token: IDENT@38..39 "d" [] [],
                        },
                        variable_annotation: missing (optional),
                        initializer: missing (optional),
                    },
                ],
            },
            semicolon_token: SEMICOLON@39..40 ";" [] [],
        },
        JsExpressionStatement {
            expression: JsCallExpression {
                callee: JsIdentifierExpression {
                    name: JsReferenceIdentifier {
                        value_token: IDENT@40..44 "foo" [Newline("\n")] [],
                    },
                },
                optional_chain_token: missing (optional),
                type_arguments: missing (optional),
                arguments: JsCallArguments {
                    l_paren_token: L_PAREN@44..45 "(" [] [],
                    args: JsCallArgumentList [
                        JsIdentifierExpression {
                            name: JsReferenceIdentifier {
                                value_token: IDENT@45..46 "a" [] [],
                            },
                        },
                    ],
                    r_paren_token: R_PAREN@46..47 ")" [] [],
                },
            },
            semicolon_token: SEMICOLON@47..48 ";" [] [],
        },
        JsExpressionStatement {
            expression: JsCallExpression {
                callee: JsIdentifierExpression {
                    name: JsReferenceIdentifier {
                        value_token: IDENT@48..52 "foo" [Newline("\n")] [],
                    },
                },
                optional_chain_token: missing (optional),
                type_arguments: missing (optional),
                arguments: JsCallArguments {
                    l_paren_token: L_PAREN@52..53 "(" [] [],
                    args: JsCallArgumentList [
                        JsIdentifierExpression {
                            name: JsReferenceIdentifier {
                                value_token: IDENT@53..54 "a" [] [],
                            },
                        },
                        COMMA@54..56 "," [] [Whitespace(" ")],
                        JsIdentifierExpression {
                            name: JsReferenceIdentifier {
                                value_token: IDENT@56..57 "b" [] [],
                            },
                        },
                        COMMA@57..58 "," [] [],
                    ],
                    r_paren_token: R_PAREN@58..59 ")" [] [],
                },
            },
            semicolon_token: SEMICOLON@59..60 ";" [] [],
        },
        JsExpressionStatement {
            expression: JsCallExpression {
                callee: JsIdentifierExpression {
                    name: JsReferenceIdentifier {
                        value_token: IDENT@60..64 "foo" [Newline("\n")] [],
                    },
                },
                optional_chain_token: missing (optional),
                type_arguments: missing (optional),
                arguments: JsCallArguments {
                    l_paren_token: L_PAREN@64..65 "(" [] [],
                    args: JsCallArgumentList [
                        JsIdentifierExpression {
                            name: JsReferenceIdentifier {
                                value_token: IDENT@65..66 "a" [] [],
                            },
                        },
                        COMMA@66..68 "," [] [Whitespace(" ")],
                        JsIdentifierExpression {
                            name: JsReferenceIdentifier {
                                value_token: IDENT@68..69 "b" [] [],
                            },
                        },
                        COMMA@69..71 "," [] [Whitespace(" ")],
                        JsSpread {
                            dotdotdot_token: DOT3@71..74 "..." [] [],
                            argument: JsIdentifierExpression {
                                name: JsReferenceIdentifier {
                                    value_token: IDENT@74..75 "c" [] [],
                                },
                            },
                        },
                    ],
                    r_paren_token: R_PAREN@75..76 ")" [] [],
                },
            },
            semicolon_token: SEMICOLON@76..77 ";" [] [],
        },
        JsExpressionStatement {
            expression: JsCallExpression {
                callee: JsIdentifierExpression {
                    name: JsReferenceIdentifier {
                        value_token: IDENT@77..81 "foo" [Newline("\n")] [],
                    },
                },
                optional_chain_token: missing (optional),
                type_arguments: missing (optional),
                arguments: JsCallArguments {
                    l_paren_token: L_PAREN@81..82 "(" [] [],
                    args: JsCallArgumentList [
                        JsSpread {
                            dotdotdot_token: DOT3@82..85 "..." [] [],
                            argument: JsIdentifierExpression {
                                name: JsReferenceIdentifier {
                                    value_token: IDENT@85..86 "a" [] [],
                                },
                            },
                        },
                        COMMA@86..88 "," [] [Whitespace(" ")],
                        JsSpread {
                            dotdotdot_token: DOT3@88..91 "..." [] [],
                            argument: JsIdentifierExpression {
                                name: JsReferenceIdentifier {
                                    value_token: IDENT@91..92 "b" [] [],
                                },
                            },
                        },
                        COMMA@92..94 "," [] [Whitespace(" ")],
                        JsIdentifierExpression {
                            name: JsReferenceIdentifier {
                                value_token: IDENT@94..95 "c" [] [],
                            },
                        },
                        COMMA@95..97 "," [] [Whitespace(" ")],
                        JsSpread {
                            dotdotdot_token: DOT3@97..100 "..." [] [],
                            argument: JsIdentifierExpression {
                                name: JsReferenceIdentifier {
                                    value_token: IDENT@100..101 "d" [] [],
                                },
                            },
                        },
                        COMMA@101..102 "," [] [],
                    ],
                    r_paren_token: R_PAREN@102..103 ")" [] [],
                },
            },
            semicolon_token: SEMICOLON@103..104 ";" [] [],
        },
    ],
    eof_token: EOF@104..105 "" [Newline("\n")] [],
}

0: JS_MODULE@0..105
  0: (empty)
  1: (empty)
  2: JS_DIRECTIVE_LIST@0..0
  3: JS_MODULE_ITEM_LIST@0..104
    0: JS_FUNCTION_DECLARATION@0..24
      0: (empty)
      1: FUNCTION_KW@0..9 "function" [] [Whitespace(" ")]
      2: (empty)
      3: JS_IDENTIFIER_BINDING@9..12
        0: IDENT@9..12 "foo" [] []
      4: (empty)
      5: JS_PARAMETERS@12..22
        0: L_PAREN@12..13 "(" [] []
        1: JS_PARAMETER_LIST@13..20
          0: JS_REST_PARAMETER@13..20
            0: JS_DECORATOR_LIST@13..13
            1: DOT3@13..16 "..." [] []
            2: JS_IDENTIFIER_BINDING@16..20
              0: IDENT@16..20 "args" [] []
            3: (empty)
        2: R_PAREN@20..22 ")" [] [Whitespace(" ")]
      6: (empty)
      7: JS_FUNCTION_BODY@22..24
        0: L_CURLY@22..23 "{" [] []
        1: JS_DIRECTIVE_LIST@23..23
        2: JS_STATEMENT_LIST@23..23
        3: R_CURLY@23..24 "}" [] []
    1: JS_VARIABLE_STATEMENT@24..40
      0: JS_VARIABLE_DECLARATION@24..39
        0: (empty)
        1: LET_KW@24..29 "let" [Newline("\n")] [Whitespace(" ")]
        2: JS_VARIABLE_DECLARATOR_LIST@29..39
          0: JS_VARIABLE_DECLARATOR@29..30
            0: JS_IDENTIFIER_BINDING@29..30
              0: IDENT@29..30 "a" [] []
            1: (empty)
            2: (empty)
          1: COMMA@30..32 "," [] [Whitespace(" ")]
          2: JS_VARIABLE_DECLARATOR@32..33
            0: JS_IDENTIFIER_BINDING@32..33
              0: IDENT@32..33 "b" [] []
            1: (empty)
            2: (empty)
          3: COMMA@33..35 "," [] [Whitespace(" ")]
          4: JS_VARIABLE_DECLARATOR@35..36
            0: JS_IDENTIFIER_BINDING@35..36
              0: IDENT@35..36 "c" [] []
            1: (empty)
            2: (empty)
          5: COMMA@36..38 "," [] [Whitespace(" ")]
          6: JS_VARIABLE_DECLARATOR@38..39
            0: JS_IDENTIFIER_BINDING@38..39
              0: IDENT@38..39 "d" [] []
            1: (empty)
            2: (empty)
      1: SEMICOLON@39..40 ";" [] []
    2: JS_EXPRESSION_STATEMENT@40..48
      0: JS_CALL_EXPRESSION@40..47
        0: JS_IDENTIFIER_EXPRESSION@40..44
          0: JS_REFERENCE_IDENTIFIER@40..44
            0: IDENT@40..44 "foo" [Newline("\n")] []
        1: (empty)
        2: (empty)
        3: JS_CALL_ARGUMENTS@44..47
          0: L_PAREN@44..45 "(" [] []
          1: JS_CALL_ARGUMENT_LIST@45..46
            0: JS_IDENTIFIER_EXPRESSION@45..46
              0: JS_REFERENCE_IDENTIFIER@45..46
                0: IDENT@45..46 "a" [] []
          2: R_PAREN@46..47 ")" [] []
      1: SEMICOLON@47..48 ";" [] []
    3: JS_EXPRESSION_STATEMENT@48..60
      0: JS_CALL_EXPRESSION@48..59
        0: JS_IDENTIFIER_EXPRESSION@48..52
          0: JS_REFERENCE_IDENTIFIER@48..52
            0: IDENT@48..52 "foo" [Newline("\n")] []
        1: (empty)
        2: (empty)
        3: JS_CALL_ARGUMENTS@52..59
          0: L_PAREN@52..53 "(" [] []
          1: JS_CALL_ARGUMENT_LIST@53..58
            0: JS_IDENTIFIER_EXPRESSION@53..54
              0: JS_REFERENCE_IDENTIFIER@53..54
                0: IDENT@53..54 "a" [] []
            1: COMMA@54..56 "," [] [Whitespace(" ")]
            2: JS_IDENTIFIER_EXPRESSION@56..57
              0: JS_REFERENCE_IDENTIFIER@56..57
                0: IDENT@56..57 "b" [] []
            3: COMMA@57..58 "," [] []
          2: R_PAREN@58..59 ")" [] []
      1: SEMICOLON@59..60 ";" [] []
    4: JS_EXPRESSION_STATEMENT@60..77
      0: JS_CALL_EXPRESSION@60..76
        0: JS_IDENTIFIER_EXPRESSION@60..64
          0: JS_REFERENCE_IDENTIFIER@60..64
            0: IDENT@60..64 "foo" [Newline("\n")] []
        1: (empty)
        2: (empty)
        3: JS_CALL_ARGUMENTS@64..76
          0: L_PAREN@64..65 "(" [] []
          1: JS_CALL_ARGUMENT_LIST@65..75
            0: JS_IDENTIFIER_EXPRESSION@65..66
              0: JS_REFERENCE_IDENTIFIER@65..66
                0: IDENT@65..66 "a" [] []
            1: COMMA@66..68 "," [] [Whitespace(" ")]
            2: JS_IDENTIFIER_EXPRESSION@68..69
              0: JS_REFERENCE_IDENTIFIER@68..69
                0: IDENT@68..69 "b" [] []
            3: COMMA@69..71 "," [] [Whitespace(" ")]
            4: JS_SPREAD@71..75
              0: DOT3@71..74 "..." [] []
              1: JS_IDENTIFIER_EXPRESSION@74..75
                0: JS_REFERENCE_IDENTIFIER@74..75
                  0: IDENT@74..75 "c" [] []
          2: R_PAREN@75..76 ")" [] []
      1: SEMICOLON@76..77 ";" [] []
    5: JS_EXPRESSION_STATEMENT@77..104
      0: JS_CALL_EXPRESSION@77..103
        0: JS_IDENTIFIER_EXPRESSION@77..81
          0: JS_REFERENCE_IDENTIFIER@77..81
            0: IDENT@77..81 "foo" [Newline("\n")] []
        1: (empty)
        2: (empty)
        3: JS_CALL_ARGUMENTS@81..103
          0: L_PAREN@81..82 "(" [] []
          1: JS_CALL_ARGUMENT_LIST@82..102
            0: JS_SPREAD@82..86
              0: DOT3@82..85 "..." [] []
              1: JS_IDENTIFIER_EXPRESSION@85..86
                0: JS_REFERENCE_IDENTIFIER@85..86
                  0: IDENT@85..86 "a" [] []
            1: COMMA@86..88 "," [] [Whitespace(" ")]
            2: JS_SPREAD@88..92
              0: DOT3@88..91 "..." [] []
              1: JS_IDENTIFIER_EXPRESSION@91..92
                0: JS_REFERENCE_IDENTIFIER@91..92
                  0: IDENT@91..92 "b" [] []
            3: COMMA@92..94 "," [] [Whitespace(" ")]
            4: JS_IDENTIFIER_EXPRESSION@94..95
              0: JS_REFERENCE_IDENTIFIER@94..95
                0: IDENT@94..95 "c" [] []
            5: COMMA@95..97 "," [] [Whitespace(" ")]
            6: JS_SPREAD@97..101
              0: DOT3@97..100 "..." [] []
              1: JS_IDENTIFIER_EXPRESSION@100..101
                0: JS_REFERENCE_IDENTIFIER@100..101
                  0: IDENT@100..101 "d" [] []
            7: COMMA@101..102 "," [] []
          2: R_PAREN@102..103 ")" [] []
      1: SEMICOLON@103..104 ";" [] []
  4: EOF@104..105 "" [Newline("\n")] []