biome_js_parser 0.5.7

Biome's JavaScript parser
Documentation
JsModule {
    bom_token: missing (optional),
    interpreter_token: missing (optional),
    directives: JsDirectiveList [],
    items: JsModuleItemList [
        TsEnumDeclaration {
            const_token: missing (optional),
            enum_token: ENUM_KW@0..5 "enum" [] [Whitespace(" ")],
            id: missing (required),
            l_curly_token: L_CURLY@5..6 "{" [] [],
            members: TsEnumMemberList [
                TsEnumMember {
                    name: JsLiteralMemberName {
                        value: IDENT@6..7 "A" [] [],
                    },
                    initializer: missing (optional),
                },
                COMMA@7..8 "," [] [],
                TsEnumMember {
                    name: JsLiteralMemberName {
                        value: IDENT@8..9 "B" [] [],
                    },
                    initializer: missing (optional),
                },
                COMMA@9..10 "," [] [],
                TsEnumMember {
                    name: JsLiteralMemberName {
                        value: IDENT@10..11 "C" [] [],
                    },
                    initializer: missing (optional),
                },
            ],
            r_curly_token: R_CURLY@11..12 "}" [] [],
        },
        TsEnumDeclaration {
            const_token: missing (optional),
            enum_token: ENUM_KW@12..18 "enum" [Newline("\n")] [Whitespace(" ")],
            id: JsBogusBinding {
                items: [
                    JS_NUMBER_LITERAL@18..20 "1" [] [Whitespace(" ")],
                ],
            },
            l_curly_token: L_CURLY@20..21 "{" [] [],
            members: TsEnumMemberList [
                TsEnumMember {
                    name: JsLiteralMemberName {
                        value: IDENT@21..22 "A" [] [],
                    },
                    initializer: missing (optional),
                },
                COMMA@22..23 "," [] [],
                TsEnumMember {
                    name: JsLiteralMemberName {
                        value: IDENT@23..24 "B" [] [],
                    },
                    initializer: missing (optional),
                },
                COMMA@24..25 "," [] [],
                TsEnumMember {
                    name: JsLiteralMemberName {
                        value: IDENT@25..26 "C" [] [],
                    },
                    initializer: missing (optional),
                },
            ],
            r_curly_token: R_CURLY@26..27 "}" [] [],
        },
    ],
    eof_token: EOF@27..28 "" [Newline("\n")] [],
}

0: JS_MODULE@0..28
  0: (empty)
  1: (empty)
  2: JS_DIRECTIVE_LIST@0..0
  3: JS_MODULE_ITEM_LIST@0..27
    0: TS_ENUM_DECLARATION@0..12
      0: (empty)
      1: ENUM_KW@0..5 "enum" [] [Whitespace(" ")]
      2: (empty)
      3: L_CURLY@5..6 "{" [] []
      4: TS_ENUM_MEMBER_LIST@6..11
        0: TS_ENUM_MEMBER@6..7
          0: JS_LITERAL_MEMBER_NAME@6..7
            0: IDENT@6..7 "A" [] []
          1: (empty)
        1: COMMA@7..8 "," [] []
        2: TS_ENUM_MEMBER@8..9
          0: JS_LITERAL_MEMBER_NAME@8..9
            0: IDENT@8..9 "B" [] []
          1: (empty)
        3: COMMA@9..10 "," [] []
        4: TS_ENUM_MEMBER@10..11
          0: JS_LITERAL_MEMBER_NAME@10..11
            0: IDENT@10..11 "C" [] []
          1: (empty)
      5: R_CURLY@11..12 "}" [] []
    1: TS_ENUM_DECLARATION@12..27
      0: (empty)
      1: ENUM_KW@12..18 "enum" [Newline("\n")] [Whitespace(" ")]
      2: JS_BOGUS_BINDING@18..20
        0: JS_NUMBER_LITERAL@18..20 "1" [] [Whitespace(" ")]
      3: L_CURLY@20..21 "{" [] []
      4: TS_ENUM_MEMBER_LIST@21..26
        0: TS_ENUM_MEMBER@21..22
          0: JS_LITERAL_MEMBER_NAME@21..22
            0: IDENT@21..22 "A" [] []
          1: (empty)
        1: COMMA@22..23 "," [] []
        2: TS_ENUM_MEMBER@23..24
          0: JS_LITERAL_MEMBER_NAME@23..24
            0: IDENT@23..24 "B" [] []
          1: (empty)
        3: COMMA@24..25 "," [] []
        4: TS_ENUM_MEMBER@25..26
          0: JS_LITERAL_MEMBER_NAME@25..26
            0: IDENT@25..26 "C" [] []
          1: (empty)
      5: R_CURLY@26..27 "}" [] []
  4: EOF@27..28 "" [Newline("\n")] []
--
enum_decl_no_id.ts:1:1 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  × `enum` statements must have a name
  
  > 1 │ enum {A,B,C}
      │ ^^^^^
    2 │ enum 1 {A,B,C}
    3 │ 
  
--
enum_decl_no_id.ts:2:6 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  × invalid `enum` name
  
    1 │ enum {A,B,C}
  > 2 │ enum 1 {A,B,C}
      │      ^
    3 │ 
  
--
enum {A,B,C}
enum 1 {A,B,C}