biome_js_parser 0.5.7

Biome's JavaScript parser
Documentation
JsModule {
    bom_token: missing (optional),
    interpreter_token: missing (optional),
    directives: JsDirectiveList [],
    items: JsModuleItemList [
        JsBogusStatement {
            items: [
                DECLARE_KW@0..8 "declare" [] [Whitespace(" ")],
                JsBogusStatement {
                    items: [
                        JsDecorator {
                            at_token: AT@8..9 "@" [] [],
                            expression: JsIdentifierExpression {
                                name: JsReferenceIdentifier {
                                    value_token: IDENT@9..19 "decorator" [] [Whitespace(" ")],
                                },
                            },
                        },
                    ],
                },
                JsClassDeclaration {
                    decorators: JsDecoratorList [],
                    abstract_token: missing (optional),
                    class_token: CLASS_KW@19..25 "class" [] [Whitespace(" ")],
                    id: JsIdentifierBinding {
                        name_token: IDENT@25..27 "D" [] [Whitespace(" ")],
                    },
                    type_parameters: missing (optional),
                    extends_clause: missing (optional),
                    implements_clause: missing (optional),
                    l_curly_token: L_CURLY@27..28 "{" [] [],
                    members: JsClassMemberList [],
                    r_curly_token: R_CURLY@28..29 "}" [] [],
                },
            ],
        },
        JsBogusStatement {
            items: [
                DECLARE_KW@29..38 "declare" [Newline("\n")] [Whitespace(" ")],
                JsBogusStatement {
                    items: [
                        JsDecorator {
                            at_token: AT@38..39 "@" [] [],
                            expression: JsIdentifierExpression {
                                name: JsReferenceIdentifier {
                                    value_token: IDENT@39..49 "decorator" [] [Whitespace(" ")],
                                },
                            },
                        },
                    ],
                },
                JsClassDeclaration {
                    decorators: JsDecoratorList [],
                    abstract_token: ABSTRACT_KW@49..58 "abstract" [] [Whitespace(" ")],
                    class_token: CLASS_KW@58..64 "class" [] [Whitespace(" ")],
                    id: JsIdentifierBinding {
                        name_token: IDENT@64..66 "D" [] [Whitespace(" ")],
                    },
                    type_parameters: missing (optional),
                    extends_clause: missing (optional),
                    implements_clause: missing (optional),
                    l_curly_token: L_CURLY@66..67 "{" [] [],
                    members: JsClassMemberList [],
                    r_curly_token: R_CURLY@67..68 "}" [] [],
                },
            ],
        },
    ],
    eof_token: EOF@68..69 "" [Newline("\n")] [],
}

0: JS_MODULE@0..69
  0: (empty)
  1: (empty)
  2: JS_DIRECTIVE_LIST@0..0
  3: JS_MODULE_ITEM_LIST@0..68
    0: JS_BOGUS_STATEMENT@0..29
      0: DECLARE_KW@0..8 "declare" [] [Whitespace(" ")]
      1: JS_BOGUS_STATEMENT@8..19
        0: JS_DECORATOR@8..19
          0: AT@8..9 "@" [] []
          1: JS_IDENTIFIER_EXPRESSION@9..19
            0: JS_REFERENCE_IDENTIFIER@9..19
              0: IDENT@9..19 "decorator" [] [Whitespace(" ")]
      2: JS_CLASS_DECLARATION@19..29
        0: JS_DECORATOR_LIST@19..19
        1: (empty)
        2: CLASS_KW@19..25 "class" [] [Whitespace(" ")]
        3: JS_IDENTIFIER_BINDING@25..27
          0: IDENT@25..27 "D" [] [Whitespace(" ")]
        4: (empty)
        5: (empty)
        6: (empty)
        7: L_CURLY@27..28 "{" [] []
        8: JS_CLASS_MEMBER_LIST@28..28
        9: R_CURLY@28..29 "}" [] []
    1: JS_BOGUS_STATEMENT@29..68
      0: DECLARE_KW@29..38 "declare" [Newline("\n")] [Whitespace(" ")]
      1: JS_BOGUS_STATEMENT@38..49
        0: JS_DECORATOR@38..49
          0: AT@38..39 "@" [] []
          1: JS_IDENTIFIER_EXPRESSION@39..49
            0: JS_REFERENCE_IDENTIFIER@39..49
              0: IDENT@39..49 "decorator" [] [Whitespace(" ")]
      2: JS_CLASS_DECLARATION@49..68
        0: JS_DECORATOR_LIST@49..49
        1: ABSTRACT_KW@49..58 "abstract" [] [Whitespace(" ")]
        2: CLASS_KW@58..64 "class" [] [Whitespace(" ")]
        3: JS_IDENTIFIER_BINDING@64..66
          0: IDENT@64..66 "D" [] [Whitespace(" ")]
        4: (empty)
        5: (empty)
        6: (empty)
        7: L_CURLY@66..67 "{" [] []
        8: JS_CLASS_MEMBER_LIST@67..67
        9: R_CURLY@67..68 "}" [] []
  4: EOF@68..69 "" [Newline("\n")] []
--
ts_declare_const_initializer.ts:1:9 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  × Decorators are not valid here.
  
  > 1 │ declare @decorator class D {}
      │         ^^^^^^^^^^
    2 │ declare @decorator abstract class D {}
    3 │ 
  
  i Decorators are only valid on class declarations, class expressions, and class methods.
  
--
ts_declare_const_initializer.ts:2:9 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  × Decorators are not valid here.
  
    1 │ declare @decorator class D {}
  > 2 │ declare @decorator abstract class D {}
      │         ^^^^^^^^^^
    3 │ 
  
  i Decorators are only valid on class declarations, class expressions, and class methods.
  
--
declare @decorator class D {}
declare @decorator abstract class D {}