biome_js_parser 0.5.7

Biome's JavaScript parser
Documentation
JsModule {
    bom_token: missing (optional),
    interpreter_token: missing (optional),
    directives: JsDirectiveList [],
    items: JsModuleItemList [
        JsVariableStatement {
            declaration: JsVariableDeclaration {
                await_token: missing (optional),
                kind: LET_KW@0..4 "let" [] [Whitespace(" ")],
                declarators: JsVariableDeclaratorList [
                    JsVariableDeclarator {
                        id: JsIdentifierBinding {
                            name_token: IDENT@4..6 "b" [] [Whitespace(" ")],
                        },
                        variable_annotation: missing (optional),
                        initializer: JsInitializerClause {
                            eq_token: EQ@6..8 "=" [] [Whitespace(" ")],
                            expression: JsObjectExpression {
                                l_curly_token: L_CURLY@8..9 "{" [] [],
                                members: JsObjectMemberList [
                                    JsMethodObjectMember {
                                        async_token: missing (optional),
                                        star_token: missing (optional),
                                        name: JsLiteralMemberName {
                                            value: IDENT@9..15 "foo" [Newline("\n"), Whitespace("  ")] [],
                                        },
                                        type_parameters: missing (optional),
                                        parameters: JsParameters {
                                            l_paren_token: L_PAREN@15..16 "(" [] [],
                                            items: JsParameterList [],
                                            r_paren_token: R_PAREN@16..18 ")" [] [Whitespace(" ")],
                                        },
                                        return_type_annotation: missing (optional),
                                        body: JsFunctionBody {
                                            l_curly_token: L_CURLY@18..19 "{" [] [],
                                            directives: JsDirectiveList [],
                                            statements: JsStatementList [],
                                            r_curly_token: R_CURLY@19..20 "}" [] [],
                                        },
                                    },
                                    COMMA@20..21 "," [] [],
                                    JsMethodObjectMember {
                                        async_token: missing (optional),
                                        star_token: missing (optional),
                                        name: JsLiteralMemberName {
                                            value: JS_STRING_LITERAL@21..29 "\"bar\"" [Newline("\n"), Whitespace("  ")] [],
                                        },
                                        type_parameters: missing (optional),
                                        parameters: JsParameters {
                                            l_paren_token: L_PAREN@29..30 "(" [] [],
                                            items: JsParameterList [
                                                JsFormalParameter {
                                                    decorators: JsDecoratorList [],
                                                    binding: JsIdentifierBinding {
                                                        name_token: IDENT@30..31 "a" [] [],
                                                    },
                                                    question_mark_token: missing (optional),
                                                    type_annotation: missing (optional),
                                                    initializer: missing (optional),
                                                },
                                                COMMA@31..33 "," [] [Whitespace(" ")],
                                                JsFormalParameter {
                                                    decorators: JsDecoratorList [],
                                                    binding: JsIdentifierBinding {
                                                        name_token: IDENT@33..34 "b" [] [],
                                                    },
                                                    question_mark_token: missing (optional),
                                                    type_annotation: missing (optional),
                                                    initializer: missing (optional),
                                                },
                                                COMMA@34..36 "," [] [Whitespace(" ")],
                                                JsFormalParameter {
                                                    decorators: JsDecoratorList [],
                                                    binding: JsIdentifierBinding {
                                                        name_token: IDENT@36..37 "c" [] [],
                                                    },
                                                    question_mark_token: missing (optional),
                                                    type_annotation: missing (optional),
                                                    initializer: missing (optional),
                                                },
                                            ],
                                            r_paren_token: R_PAREN@37..39 ")" [] [Whitespace(" ")],
                                        },
                                        return_type_annotation: missing (optional),
                                        body: JsFunctionBody {
                                            l_curly_token: L_CURLY@39..40 "{" [] [],
                                            directives: JsDirectiveList [],
                                            statements: JsStatementList [],
                                            r_curly_token: R_CURLY@40..41 "}" [] [],
                                        },
                                    },
                                    COMMA@41..42 "," [] [],
                                    JsMethodObjectMember {
                                        async_token: missing (optional),
                                        star_token: missing (optional),
                                        name: JsComputedMemberName {
                                            l_brack_token: L_BRACK@42..46 "[" [Newline("\n"), Whitespace("  ")] [],
                                            expression: JsBinaryExpression {
                                                left: JsStringLiteralExpression {
                                                    value_token: JS_STRING_LITERAL@46..52 "\"foo\"" [] [Whitespace(" ")],
                                                },
                                                operator_token: PLUS@52..54 "+" [] [Whitespace(" ")],
                                                right: JsStringLiteralExpression {
                                                    value_token: JS_STRING_LITERAL@54..59 "\"bar\"" [] [],
                                                },
                                            },
                                            r_brack_token: R_BRACK@59..60 "]" [] [],
                                        },
                                        type_parameters: missing (optional),
                                        parameters: JsParameters {
                                            l_paren_token: L_PAREN@60..61 "(" [] [],
                                            items: JsParameterList [
                                                JsFormalParameter {
                                                    decorators: JsDecoratorList [],
                                                    binding: JsIdentifierBinding {
                                                        name_token: IDENT@61..62 "a" [] [],
                                                    },
                                                    question_mark_token: missing (optional),
                                                    type_annotation: missing (optional),
                                                    initializer: missing (optional),
                                                },
                                            ],
                                            r_paren_token: R_PAREN@62..64 ")" [] [Whitespace(" ")],
                                        },
                                        return_type_annotation: missing (optional),
                                        body: JsFunctionBody {
                                            l_curly_token: L_CURLY@64..65 "{" [] [],
                                            directives: JsDirectiveList [],
                                            statements: JsStatementList [],
                                            r_curly_token: R_CURLY@65..66 "}" [] [],
                                        },
                                    },
                                    COMMA@66..67 "," [] [],
                                    JsMethodObjectMember {
                                        async_token: missing (optional),
                                        star_token: missing (optional),
                                        name: JsLiteralMemberName {
                                            value: JS_NUMBER_LITERAL@67..71 "5" [Newline("\n"), Whitespace("  ")] [],
                                        },
                                        type_parameters: missing (optional),
                                        parameters: JsParameters {
                                            l_paren_token: L_PAREN@71..72 "(" [] [],
                                            items: JsParameterList [
                                                JsRestParameter {
                                                    decorators: JsDecoratorList [],
                                                    dotdotdot_token: DOT3@72..75 "..." [] [],
                                                    binding: JsIdentifierBinding {
                                                        name_token: IDENT@75..79 "rest" [] [],
                                                    },
                                                    type_annotation: missing (optional),
                                                },
                                            ],
                                            r_paren_token: R_PAREN@79..81 ")" [] [Whitespace(" ")],
                                        },
                                        return_type_annotation: missing (optional),
                                        body: JsFunctionBody {
                                            l_curly_token: L_CURLY@81..82 "{" [] [],
                                            directives: JsDirectiveList [],
                                            statements: JsStatementList [],
                                            r_curly_token: R_CURLY@82..83 "}" [] [],
                                        },
                                    },
                                ],
                                r_curly_token: R_CURLY@83..85 "}" [Newline("\n")] [],
                            },
                        },
                    },
                ],
            },
            semicolon_token: missing (optional),
        },
    ],
    eof_token: EOF@85..86 "" [Newline("\n")] [],
}

0: JS_MODULE@0..86
  0: (empty)
  1: (empty)
  2: JS_DIRECTIVE_LIST@0..0
  3: JS_MODULE_ITEM_LIST@0..85
    0: JS_VARIABLE_STATEMENT@0..85
      0: JS_VARIABLE_DECLARATION@0..85
        0: (empty)
        1: LET_KW@0..4 "let" [] [Whitespace(" ")]
        2: JS_VARIABLE_DECLARATOR_LIST@4..85
          0: JS_VARIABLE_DECLARATOR@4..85
            0: JS_IDENTIFIER_BINDING@4..6
              0: IDENT@4..6 "b" [] [Whitespace(" ")]
            1: (empty)
            2: JS_INITIALIZER_CLAUSE@6..85
              0: EQ@6..8 "=" [] [Whitespace(" ")]
              1: JS_OBJECT_EXPRESSION@8..85
                0: L_CURLY@8..9 "{" [] []
                1: JS_OBJECT_MEMBER_LIST@9..83
                  0: JS_METHOD_OBJECT_MEMBER@9..20
                    0: (empty)
                    1: (empty)
                    2: JS_LITERAL_MEMBER_NAME@9..15
                      0: IDENT@9..15 "foo" [Newline("\n"), Whitespace("  ")] []
                    3: (empty)
                    4: JS_PARAMETERS@15..18
                      0: L_PAREN@15..16 "(" [] []
                      1: JS_PARAMETER_LIST@16..16
                      2: R_PAREN@16..18 ")" [] [Whitespace(" ")]
                    5: (empty)
                    6: JS_FUNCTION_BODY@18..20
                      0: L_CURLY@18..19 "{" [] []
                      1: JS_DIRECTIVE_LIST@19..19
                      2: JS_STATEMENT_LIST@19..19
                      3: R_CURLY@19..20 "}" [] []
                  1: COMMA@20..21 "," [] []
                  2: JS_METHOD_OBJECT_MEMBER@21..41
                    0: (empty)
                    1: (empty)
                    2: JS_LITERAL_MEMBER_NAME@21..29
                      0: JS_STRING_LITERAL@21..29 "\"bar\"" [Newline("\n"), Whitespace("  ")] []
                    3: (empty)
                    4: JS_PARAMETERS@29..39
                      0: L_PAREN@29..30 "(" [] []
                      1: JS_PARAMETER_LIST@30..37
                        0: JS_FORMAL_PARAMETER@30..31
                          0: JS_DECORATOR_LIST@30..30
                          1: JS_IDENTIFIER_BINDING@30..31
                            0: IDENT@30..31 "a" [] []
                          2: (empty)
                          3: (empty)
                          4: (empty)
                        1: COMMA@31..33 "," [] [Whitespace(" ")]
                        2: JS_FORMAL_PARAMETER@33..34
                          0: JS_DECORATOR_LIST@33..33
                          1: JS_IDENTIFIER_BINDING@33..34
                            0: IDENT@33..34 "b" [] []
                          2: (empty)
                          3: (empty)
                          4: (empty)
                        3: COMMA@34..36 "," [] [Whitespace(" ")]
                        4: JS_FORMAL_PARAMETER@36..37
                          0: JS_DECORATOR_LIST@36..36
                          1: JS_IDENTIFIER_BINDING@36..37
                            0: IDENT@36..37 "c" [] []
                          2: (empty)
                          3: (empty)
                          4: (empty)
                      2: R_PAREN@37..39 ")" [] [Whitespace(" ")]
                    5: (empty)
                    6: JS_FUNCTION_BODY@39..41
                      0: L_CURLY@39..40 "{" [] []
                      1: JS_DIRECTIVE_LIST@40..40
                      2: JS_STATEMENT_LIST@40..40
                      3: R_CURLY@40..41 "}" [] []
                  3: COMMA@41..42 "," [] []
                  4: JS_METHOD_OBJECT_MEMBER@42..66
                    0: (empty)
                    1: (empty)
                    2: JS_COMPUTED_MEMBER_NAME@42..60
                      0: L_BRACK@42..46 "[" [Newline("\n"), Whitespace("  ")] []
                      1: JS_BINARY_EXPRESSION@46..59
                        0: JS_STRING_LITERAL_EXPRESSION@46..52
                          0: JS_STRING_LITERAL@46..52 "\"foo\"" [] [Whitespace(" ")]
                        1: PLUS@52..54 "+" [] [Whitespace(" ")]
                        2: JS_STRING_LITERAL_EXPRESSION@54..59
                          0: JS_STRING_LITERAL@54..59 "\"bar\"" [] []
                      2: R_BRACK@59..60 "]" [] []
                    3: (empty)
                    4: JS_PARAMETERS@60..64
                      0: L_PAREN@60..61 "(" [] []
                      1: JS_PARAMETER_LIST@61..62
                        0: JS_FORMAL_PARAMETER@61..62
                          0: JS_DECORATOR_LIST@61..61
                          1: JS_IDENTIFIER_BINDING@61..62
                            0: IDENT@61..62 "a" [] []
                          2: (empty)
                          3: (empty)
                          4: (empty)
                      2: R_PAREN@62..64 ")" [] [Whitespace(" ")]
                    5: (empty)
                    6: JS_FUNCTION_BODY@64..66
                      0: L_CURLY@64..65 "{" [] []
                      1: JS_DIRECTIVE_LIST@65..65
                      2: JS_STATEMENT_LIST@65..65
                      3: R_CURLY@65..66 "}" [] []
                  5: COMMA@66..67 "," [] []
                  6: JS_METHOD_OBJECT_MEMBER@67..83
                    0: (empty)
                    1: (empty)
                    2: JS_LITERAL_MEMBER_NAME@67..71
                      0: JS_NUMBER_LITERAL@67..71 "5" [Newline("\n"), Whitespace("  ")] []
                    3: (empty)
                    4: JS_PARAMETERS@71..81
                      0: L_PAREN@71..72 "(" [] []
                      1: JS_PARAMETER_LIST@72..79
                        0: JS_REST_PARAMETER@72..79
                          0: JS_DECORATOR_LIST@72..72
                          1: DOT3@72..75 "..." [] []
                          2: JS_IDENTIFIER_BINDING@75..79
                            0: IDENT@75..79 "rest" [] []
                          3: (empty)
                      2: R_PAREN@79..81 ")" [] [Whitespace(" ")]
                    5: (empty)
                    6: JS_FUNCTION_BODY@81..83
                      0: L_CURLY@81..82 "{" [] []
                      1: JS_DIRECTIVE_LIST@82..82
                      2: JS_STATEMENT_LIST@82..82
                      3: R_CURLY@82..83 "}" [] []
                2: R_CURLY@83..85 "}" [Newline("\n")] []
      1: (empty)
  4: EOF@85..86 "" [Newline("\n")] []