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: JsObjectBindingPattern {
                            l_curly_token: L_CURLY@4..6 "{" [] [Whitespace(" ")],
                            properties: JsObjectBindingPatternPropertyList [
                                JsObjectBindingPatternProperty {
                                    member: JsLiteralMemberName {
                                        value: IDENT@6..9 "foo" [] [],
                                    },
                                    colon_token: COLON@9..11 ":" [] [Whitespace(" ")],
                                    pattern: JsIdentifierBinding {
                                        name_token: IDENT@11..16 "bar" [] [Whitespace("  ")],
                                    },
                                    init: missing (optional),
                                },
                            ],
                            r_curly_token: R_CURLY@16..18 "}" [] [Whitespace(" ")],
                        },
                        variable_annotation: missing (optional),
                        initializer: JsInitializerClause {
                            eq_token: EQ@18..20 "=" [] [Whitespace(" ")],
                            expression: JsObjectExpression {
                                l_curly_token: L_CURLY@20..21 "{" [] [],
                                members: JsObjectMemberList [],
                                r_curly_token: R_CURLY@21..22 "}" [] [],
                            },
                        },
                    },
                ],
            },
            semicolon_token: missing (optional),
        },
        JsVariableStatement {
            declaration: JsVariableDeclaration {
                await_token: missing (optional),
                kind: LET_KW@22..27 "let" [Newline("\n")] [Whitespace(" ")],
                declarators: JsVariableDeclaratorList [
                    JsVariableDeclarator {
                        id: JsObjectBindingPattern {
                            l_curly_token: L_CURLY@27..29 "{" [] [Whitespace(" ")],
                            properties: JsObjectBindingPatternPropertyList [
                                JsObjectBindingPatternProperty {
                                    member: JsLiteralMemberName {
                                        value: IDENT@29..32 "foo" [] [],
                                    },
                                    colon_token: COLON@32..34 ":" [] [Whitespace(" ")],
                                    pattern: JsIdentifierBinding {
                                        name_token: IDENT@34..42 "bar_bar" [] [Whitespace(" ")],
                                    },
                                    init: JsInitializerClause {
                                        eq_token: EQ@42..44 "=" [] [Whitespace(" ")],
                                        expression: JsIdentifierExpression {
                                            name: JsReferenceIdentifier {
                                                value_token: IDENT@44..48 "baz" [] [Whitespace(" ")],
                                            },
                                        },
                                    },
                                },
                            ],
                            r_curly_token: R_CURLY@48..50 "}" [] [Whitespace(" ")],
                        },
                        variable_annotation: missing (optional),
                        initializer: JsInitializerClause {
                            eq_token: EQ@50..52 "=" [] [Whitespace(" ")],
                            expression: JsObjectExpression {
                                l_curly_token: L_CURLY@52..53 "{" [] [],
                                members: JsObjectMemberList [],
                                r_curly_token: R_CURLY@53..54 "}" [] [],
                            },
                        },
                    },
                ],
            },
            semicolon_token: missing (optional),
        },
    ],
    eof_token: EOF@54..55 "" [Newline("\n")] [],
}

0: JS_MODULE@0..55
  0: (empty)
  1: (empty)
  2: JS_DIRECTIVE_LIST@0..0
  3: JS_MODULE_ITEM_LIST@0..54
    0: JS_VARIABLE_STATEMENT@0..22
      0: JS_VARIABLE_DECLARATION@0..22
        0: (empty)
        1: LET_KW@0..4 "let" [] [Whitespace(" ")]
        2: JS_VARIABLE_DECLARATOR_LIST@4..22
          0: JS_VARIABLE_DECLARATOR@4..22
            0: JS_OBJECT_BINDING_PATTERN@4..18
              0: L_CURLY@4..6 "{" [] [Whitespace(" ")]
              1: JS_OBJECT_BINDING_PATTERN_PROPERTY_LIST@6..16
                0: JS_OBJECT_BINDING_PATTERN_PROPERTY@6..16
                  0: JS_LITERAL_MEMBER_NAME@6..9
                    0: IDENT@6..9 "foo" [] []
                  1: COLON@9..11 ":" [] [Whitespace(" ")]
                  2: JS_IDENTIFIER_BINDING@11..16
                    0: IDENT@11..16 "bar" [] [Whitespace("  ")]
                  3: (empty)
              2: R_CURLY@16..18 "}" [] [Whitespace(" ")]
            1: (empty)
            2: JS_INITIALIZER_CLAUSE@18..22
              0: EQ@18..20 "=" [] [Whitespace(" ")]
              1: JS_OBJECT_EXPRESSION@20..22
                0: L_CURLY@20..21 "{" [] []
                1: JS_OBJECT_MEMBER_LIST@21..21
                2: R_CURLY@21..22 "}" [] []
      1: (empty)
    1: JS_VARIABLE_STATEMENT@22..54
      0: JS_VARIABLE_DECLARATION@22..54
        0: (empty)
        1: LET_KW@22..27 "let" [Newline("\n")] [Whitespace(" ")]
        2: JS_VARIABLE_DECLARATOR_LIST@27..54
          0: JS_VARIABLE_DECLARATOR@27..54
            0: JS_OBJECT_BINDING_PATTERN@27..50
              0: L_CURLY@27..29 "{" [] [Whitespace(" ")]
              1: JS_OBJECT_BINDING_PATTERN_PROPERTY_LIST@29..48
                0: JS_OBJECT_BINDING_PATTERN_PROPERTY@29..48
                  0: JS_LITERAL_MEMBER_NAME@29..32
                    0: IDENT@29..32 "foo" [] []
                  1: COLON@32..34 ":" [] [Whitespace(" ")]
                  2: JS_IDENTIFIER_BINDING@34..42
                    0: IDENT@34..42 "bar_bar" [] [Whitespace(" ")]
                  3: JS_INITIALIZER_CLAUSE@42..48
                    0: EQ@42..44 "=" [] [Whitespace(" ")]
                    1: JS_IDENTIFIER_EXPRESSION@44..48
                      0: JS_REFERENCE_IDENTIFIER@44..48
                        0: IDENT@44..48 "baz" [] [Whitespace(" ")]
              2: R_CURLY@48..50 "}" [] [Whitespace(" ")]
            1: (empty)
            2: JS_INITIALIZER_CLAUSE@50..54
              0: EQ@50..52 "=" [] [Whitespace(" ")]
              1: JS_OBJECT_EXPRESSION@52..54
                0: L_CURLY@52..53 "{" [] []
                1: JS_OBJECT_MEMBER_LIST@53..53
                2: R_CURLY@53..54 "}" [] []
      1: (empty)
  4: EOF@54..55 "" [Newline("\n")] []