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}