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 "a" [] [Whitespace(" ")],
                        },
                        variable_annotation: missing (optional),
                        initializer: JsInitializerClause {
                            eq_token: EQ@6..8 "=" [] [Whitespace(" ")],
                            expression: JsClassExpression {
                                decorators: JsDecoratorList [],
                                class_token: CLASS_KW@8..14 "class" [] [Whitespace(" ")],
                                id: missing (optional),
                                type_parameters: missing (optional),
                                extends_clause: missing (optional),
                                implements_clause: missing (optional),
                                l_curly_token: L_CURLY@14..15 "{" [] [],
                                members: JsClassMemberList [],
                                r_curly_token: R_CURLY@15..16 "}" [] [],
                            },
                        },
                    },
                ],
            },
            semicolon_token: SEMICOLON@16..17 ";" [] [],
        },
        JsVariableStatement {
            declaration: JsVariableDeclaration {
                await_token: missing (optional),
                kind: LET_KW@17..22 "let" [Newline("\n")] [Whitespace(" ")],
                declarators: JsVariableDeclaratorList [
                    JsVariableDeclarator {
                        id: JsIdentifierBinding {
                            name_token: IDENT@22..24 "b" [] [Whitespace(" ")],
                        },
                        variable_annotation: missing (optional),
                        initializer: JsInitializerClause {
                            eq_token: EQ@24..26 "=" [] [Whitespace(" ")],
                            expression: JsClassExpression {
                                decorators: JsDecoratorList [],
                                class_token: CLASS_KW@26..32 "class" [] [Whitespace(" ")],
                                id: JsIdentifierBinding {
                                    name_token: IDENT@32..36 "foo" [] [Whitespace(" ")],
                                },
                                type_parameters: missing (optional),
                                extends_clause: missing (optional),
                                implements_clause: missing (optional),
                                l_curly_token: L_CURLY@36..37 "{" [] [],
                                members: JsClassMemberList [
                                    JsConstructorClassMember {
                                        modifiers: JsConstructorModifierList [],
                                        name: JsLiteralMemberName {
                                            value: IDENT@37..50 "constructor" [Newline("\n"), Whitespace(" ")] [],
                                        },
                                        parameters: JsConstructorParameters {
                                            l_paren_token: L_PAREN@50..51 "(" [] [],
                                            parameters: JsConstructorParameterList [],
                                            r_paren_token: R_PAREN@51..53 ")" [] [Whitespace(" ")],
                                        },
                                        body: JsFunctionBody {
                                            l_curly_token: L_CURLY@53..54 "{" [] [],
                                            directives: JsDirectiveList [],
                                            statements: JsStatementList [],
                                            r_curly_token: R_CURLY@54..55 "}" [] [],
                                        },
                                    },
                                ],
                                r_curly_token: R_CURLY@55..57 "}" [Newline("\n")] [],
                            },
                        },
                    },
                ],
            },
            semicolon_token: missing (optional),
        },
        JsExpressionStatement {
            expression: JsComputedMemberExpression {
                object: JsIdentifierExpression {
                    name: JsReferenceIdentifier {
                        value_token: IDENT@57..61 "foo" [Newline("\n")] [],
                    },
                },
                optional_chain_token: missing (optional),
                l_brack_token: L_BRACK@61..62 "[" [] [],
                member: JsClassExpression {
                    decorators: JsDecoratorList [],
                    class_token: CLASS_KW@62..68 "class" [] [Whitespace(" ")],
                    id: missing (optional),
                    type_parameters: missing (optional),
                    extends_clause: missing (optional),
                    implements_clause: missing (optional),
                    l_curly_token: L_CURLY@68..69 "{" [] [],
                    members: JsClassMemberList [],
                    r_curly_token: R_CURLY@69..70 "}" [] [],
                },
                r_brack_token: R_BRACK@70..71 "]" [] [],
            },
            semicolon_token: missing (optional),
        },
    ],
    eof_token: EOF@71..72 "" [Newline("\n")] [],
}

0: JS_MODULE@0..72
  0: (empty)
  1: (empty)
  2: JS_DIRECTIVE_LIST@0..0
  3: JS_MODULE_ITEM_LIST@0..71
    0: JS_VARIABLE_STATEMENT@0..17
      0: JS_VARIABLE_DECLARATION@0..16
        0: (empty)
        1: LET_KW@0..4 "let" [] [Whitespace(" ")]
        2: JS_VARIABLE_DECLARATOR_LIST@4..16
          0: JS_VARIABLE_DECLARATOR@4..16
            0: JS_IDENTIFIER_BINDING@4..6
              0: IDENT@4..6 "a" [] [Whitespace(" ")]
            1: (empty)
            2: JS_INITIALIZER_CLAUSE@6..16
              0: EQ@6..8 "=" [] [Whitespace(" ")]
              1: JS_CLASS_EXPRESSION@8..16
                0: JS_DECORATOR_LIST@8..8
                1: CLASS_KW@8..14 "class" [] [Whitespace(" ")]
                2: (empty)
                3: (empty)
                4: (empty)
                5: (empty)
                6: L_CURLY@14..15 "{" [] []
                7: JS_CLASS_MEMBER_LIST@15..15
                8: R_CURLY@15..16 "}" [] []
      1: SEMICOLON@16..17 ";" [] []
    1: JS_VARIABLE_STATEMENT@17..57
      0: JS_VARIABLE_DECLARATION@17..57
        0: (empty)
        1: LET_KW@17..22 "let" [Newline("\n")] [Whitespace(" ")]
        2: JS_VARIABLE_DECLARATOR_LIST@22..57
          0: JS_VARIABLE_DECLARATOR@22..57
            0: JS_IDENTIFIER_BINDING@22..24
              0: IDENT@22..24 "b" [] [Whitespace(" ")]
            1: (empty)
            2: JS_INITIALIZER_CLAUSE@24..57
              0: EQ@24..26 "=" [] [Whitespace(" ")]
              1: JS_CLASS_EXPRESSION@26..57
                0: JS_DECORATOR_LIST@26..26
                1: CLASS_KW@26..32 "class" [] [Whitespace(" ")]
                2: JS_IDENTIFIER_BINDING@32..36
                  0: IDENT@32..36 "foo" [] [Whitespace(" ")]
                3: (empty)
                4: (empty)
                5: (empty)
                6: L_CURLY@36..37 "{" [] []
                7: JS_CLASS_MEMBER_LIST@37..55
                  0: JS_CONSTRUCTOR_CLASS_MEMBER@37..55
                    0: JS_CONSTRUCTOR_MODIFIER_LIST@37..37
                    1: JS_LITERAL_MEMBER_NAME@37..50
                      0: IDENT@37..50 "constructor" [Newline("\n"), Whitespace(" ")] []
                    2: JS_CONSTRUCTOR_PARAMETERS@50..53
                      0: L_PAREN@50..51 "(" [] []
                      1: JS_CONSTRUCTOR_PARAMETER_LIST@51..51
                      2: R_PAREN@51..53 ")" [] [Whitespace(" ")]
                    3: JS_FUNCTION_BODY@53..55
                      0: L_CURLY@53..54 "{" [] []
                      1: JS_DIRECTIVE_LIST@54..54
                      2: JS_STATEMENT_LIST@54..54
                      3: R_CURLY@54..55 "}" [] []
                8: R_CURLY@55..57 "}" [Newline("\n")] []
      1: (empty)
    2: JS_EXPRESSION_STATEMENT@57..71
      0: JS_COMPUTED_MEMBER_EXPRESSION@57..71
        0: JS_IDENTIFIER_EXPRESSION@57..61
          0: JS_REFERENCE_IDENTIFIER@57..61
            0: IDENT@57..61 "foo" [Newline("\n")] []
        1: (empty)
        2: L_BRACK@61..62 "[" [] []
        3: JS_CLASS_EXPRESSION@62..70
          0: JS_DECORATOR_LIST@62..62
          1: CLASS_KW@62..68 "class" [] [Whitespace(" ")]
          2: (empty)
          3: (empty)
          4: (empty)
          5: (empty)
          6: L_CURLY@68..69 "{" [] []
          7: JS_CLASS_MEMBER_LIST@69..69
          8: R_CURLY@69..70 "}" [] []
        4: R_BRACK@70..71 "]" [] []
      1: (empty)
  4: EOF@71..72 "" [Newline("\n")] []