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..5 "a" [] [],
},
variable_annotation: TsTypeAnnotation {
colon_token: COLON@5..7 ":" [] [Whitespace(" ")],
ty: TsAnyType {
any_token: ANY_KW@7..10 "any" [] [],
},
},
initializer: missing (optional),
},
],
},
semicolon_token: SEMICOLON@10..11 ";" [] [],
},
TsTypeAliasDeclaration {
type_token: TYPE_KW@11..17 "type" [Newline("\n")] [Whitespace(" ")],
binding_identifier: TsIdentifierBinding {
name_token: IDENT@17..18 "B" [] [],
},
type_parameters: TsTypeParameters {
l_angle_token: L_ANGLE@18..19 "<" [] [],
items: TsTypeParameterList [
TsTypeParameter {
modifiers: TsTypeParameterModifierList [],
name: TsTypeParameterName {
ident_token: IDENT@19..20 "A" [] [],
},
constraint: missing (optional),
default: missing (optional),
},
],
r_angle_token: R_ANGLE@20..22 ">" [] [Whitespace(" ")],
},
eq_token: EQ@22..24 "=" [] [Whitespace(" ")],
ty: TsObjectType {
l_curly_token: L_CURLY@24..26 "{" [] [Whitespace(" ")],
members: TsTypeMemberList [
TsPropertySignatureTypeMember {
readonly_token: missing (optional),
name: JsLiteralMemberName {
value: IDENT@26..27 "a" [] [],
},
optional_token: missing (optional),
type_annotation: TsTypeAnnotation {
colon_token: COLON@27..29 ":" [] [Whitespace(" ")],
ty: TsReferenceType {
name: JsReferenceIdentifier {
value_token: IDENT@29..31 "A" [] [Whitespace(" ")],
},
type_arguments: missing (optional),
},
},
separator_token: missing (optional),
},
],
r_curly_token: R_CURLY@31..32 "}" [] [],
},
semicolon_token: SEMICOLON@32..33 ";" [] [],
},
JsExpressionStatement {
expression: JsAssignmentExpression {
left: JsParenthesizedAssignment {
l_paren_token: L_PAREN@33..35 "(" [Newline("\n")] [],
assignment: TsSatisfiesAssignment {
assignment: JsIdentifierAssignment {
name_token: IDENT@35..37 "a" [] [Whitespace(" ")],
},
satisfies_token: SATISFIES_KW@37..47 "satisfies" [] [Whitespace(" ")],
ty: TsStringType {
string_token: STRING_KW@47..53 "string" [] [],
},
},
r_paren_token: R_PAREN@53..55 ")" [] [Whitespace(" ")],
},
operator_token: EQ@55..57 "=" [] [Whitespace(" ")],
right: JsStringLiteralExpression {
value_token: JS_STRING_LITERAL@57..65 "\"string\"" [] [],
},
},
semicolon_token: SEMICOLON@65..66 ";" [] [],
},
JsExpressionStatement {
expression: JsAssignmentExpression {
left: JsParenthesizedAssignment {
l_paren_token: L_PAREN@66..68 "(" [Newline("\n")] [],
assignment: TsSatisfiesAssignment {
assignment: JsParenthesizedAssignment {
l_paren_token: L_PAREN@68..69 "(" [] [],
assignment: TsSatisfiesAssignment {
assignment: JsIdentifierAssignment {
name_token: IDENT@69..71 "a" [] [Whitespace(" ")],
},
satisfies_token: SATISFIES_KW@71..81 "satisfies" [] [Whitespace(" ")],
ty: TsAnyType {
any_token: ANY_KW@81..84 "any" [] [],
},
},
r_paren_token: R_PAREN@84..86 ")" [] [Whitespace(" ")],
},
satisfies_token: SATISFIES_KW@86..96 "satisfies" [] [Whitespace(" ")],
ty: TsStringType {
string_token: STRING_KW@96..102 "string" [] [],
},
},
r_paren_token: R_PAREN@102..104 ")" [] [Whitespace(" ")],
},
operator_token: EQ@104..106 "=" [] [Whitespace(" ")],
right: JsNullLiteralExpression {
value_token: NULL_KW@106..110 "null" [] [],
},
},
semicolon_token: SEMICOLON@110..111 ";" [] [],
},
JsExpressionStatement {
expression: JsParenthesizedExpression {
l_paren_token: L_PAREN@111..113 "(" [Newline("\n")] [],
expression: JsAssignmentExpression {
left: JsObjectAssignmentPattern {
l_curly_token: L_CURLY@113..115 "{" [] [Whitespace(" ")],
properties: JsObjectAssignmentPatternPropertyList [
JsObjectAssignmentPatternProperty {
member: JsLiteralMemberName {
value: IDENT@115..116 "b" [] [],
},
colon_token: COLON@116..118 ":" [] [Whitespace(" ")],
pattern: TsSatisfiesAssignment {
assignment: JsIdentifierAssignment {
name_token: IDENT@118..120 "a" [] [Whitespace(" ")],
},
satisfies_token: SATISFIES_KW@120..130 "satisfies" [] [Whitespace(" ")],
ty: TsStringType {
string_token: STRING_KW@130..137 "string" [] [Whitespace(" ")],
},
},
init: missing (optional),
},
],
r_curly_token: R_CURLY@137..139 "}" [] [Whitespace(" ")],
},
operator_token: EQ@139..141 "=" [] [Whitespace(" ")],
right: JsObjectExpression {
l_curly_token: L_CURLY@141..143 "{" [] [Whitespace(" ")],
members: JsObjectMemberList [
JsPropertyObjectMember {
name: JsLiteralMemberName {
value: IDENT@143..144 "b" [] [],
},
colon_token: COLON@144..146 ":" [] [Whitespace(" ")],
value: JsStringLiteralExpression {
value_token: JS_STRING_LITERAL@146..153 "\"test\"" [] [Whitespace(" ")],
},
},
],
r_curly_token: R_CURLY@153..154 "}" [] [],
},
},
r_paren_token: R_PAREN@154..155 ")" [] [],
},
semicolon_token: SEMICOLON@155..156 ";" [] [],
},
JsExpressionStatement {
expression: JsParenthesizedExpression {
l_paren_token: L_PAREN@156..158 "(" [Newline("\n")] [],
expression: JsAssignmentExpression {
left: JsArrayAssignmentPattern {
l_brack_token: L_BRACK@158..160 "[" [] [Whitespace(" ")],
elements: JsArrayAssignmentPatternElementList [
JsArrayAssignmentPatternElement {
pattern: TsSatisfiesAssignment {
assignment: JsIdentifierAssignment {
name_token: IDENT@160..162 "a" [] [Whitespace(" ")],
},
satisfies_token: SATISFIES_KW@162..172 "satisfies" [] [Whitespace(" ")],
ty: TsStringType {
string_token: STRING_KW@172..179 "string" [] [Whitespace(" ")],
},
},
init: missing (optional),
},
],
r_brack_token: R_BRACK@179..181 "]" [] [Whitespace(" ")],
},
operator_token: EQ@181..183 "=" [] [Whitespace(" ")],
right: JsArrayExpression {
l_brack_token: L_BRACK@183..185 "[" [] [Whitespace(" ")],
elements: JsArrayElementList [
JsStringLiteralExpression {
value_token: JS_STRING_LITERAL@185..192 "\"test\"" [] [Whitespace(" ")],
},
],
r_brack_token: R_BRACK@192..193 "]" [] [],
},
},
r_paren_token: R_PAREN@193..194 ")" [] [],
},
semicolon_token: SEMICOLON@194..195 ";" [] [],
},
JsForInStatement {
for_token: FOR_KW@195..200 "for" [Newline("\n")] [Whitespace(" ")],
l_paren_token: L_PAREN@200..201 "(" [] [],
initializer: TsSatisfiesAssignment {
assignment: JsIdentifierAssignment {
name_token: IDENT@201..203 "a" [] [Whitespace(" ")],
},
satisfies_token: SATISFIES_KW@203..213 "satisfies" [] [Whitespace(" ")],
ty: TsStringType {
string_token: STRING_KW@213..220 "string" [] [Whitespace(" ")],
},
},
in_token: IN_KW@220..223 "in" [] [Whitespace(" ")],
expression: JsArrayExpression {
l_brack_token: L_BRACK@223..224 "[" [] [],
elements: JsArrayElementList [],
r_brack_token: R_BRACK@224..225 "]" [] [],
},
r_paren_token: R_PAREN@225..227 ")" [] [Whitespace(" ")],
body: JsBlockStatement {
l_curly_token: L_CURLY@227..228 "{" [] [],
statements: JsStatementList [],
r_curly_token: R_CURLY@228..229 "}" [] [],
},
},
JsExpressionStatement {
expression: JsAssignmentExpression {
left: JsParenthesizedAssignment {
l_paren_token: L_PAREN@229..231 "(" [Newline("\n")] [],
assignment: TsSatisfiesAssignment {
assignment: JsIdentifierAssignment {
name_token: IDENT@231..233 "a" [] [Whitespace(" ")],
},
satisfies_token: SATISFIES_KW@233..243 "satisfies" [] [Whitespace(" ")],
ty: TsReferenceType {
name: JsReferenceIdentifier {
value_token: IDENT@243..244 "B" [] [],
},
type_arguments: TsTypeArguments {
l_angle_token: L_ANGLE@244..245 "<" [] [],
ts_type_argument_list: TsTypeArgumentList [
TsStringType {
string_token: STRING_KW@245..251 "string" [] [],
},
],
r_angle_token: R_ANGLE@251..252 ">" [] [],
},
},
},
r_paren_token: R_PAREN@252..254 ")" [] [Whitespace(" ")],
},
operator_token: EQ@254..256 "=" [] [Whitespace(" ")],
right: JsObjectExpression {
l_curly_token: L_CURLY@256..258 "{" [] [Whitespace(" ")],
members: JsObjectMemberList [
JsPropertyObjectMember {
name: JsLiteralMemberName {
value: IDENT@258..259 "a" [] [],
},
colon_token: COLON@259..261 ":" [] [Whitespace(" ")],
value: JsStringLiteralExpression {
value_token: JS_STRING_LITERAL@261..268 "\"test\"" [] [Whitespace(" ")],
},
},
],
r_curly_token: R_CURLY@268..269 "}" [] [],
},
},
semicolon_token: SEMICOLON@269..270 ";" [] [],
},
],
eof_token: EOF@270..271 "" [Newline("\n")] [],
}
0: JS_MODULE@0..271
0: (empty)
1: (empty)
2: JS_DIRECTIVE_LIST@0..0
3: JS_MODULE_ITEM_LIST@0..270
0: JS_VARIABLE_STATEMENT@0..11
0: JS_VARIABLE_DECLARATION@0..10
0: (empty)
1: LET_KW@0..4 "let" [] [Whitespace(" ")]
2: JS_VARIABLE_DECLARATOR_LIST@4..10
0: JS_VARIABLE_DECLARATOR@4..10
0: JS_IDENTIFIER_BINDING@4..5
0: IDENT@4..5 "a" [] []
1: TS_TYPE_ANNOTATION@5..10
0: COLON@5..7 ":" [] [Whitespace(" ")]
1: TS_ANY_TYPE@7..10
0: ANY_KW@7..10 "any" [] []
2: (empty)
1: SEMICOLON@10..11 ";" [] []
1: TS_TYPE_ALIAS_DECLARATION@11..33
0: TYPE_KW@11..17 "type" [Newline("\n")] [Whitespace(" ")]
1: TS_IDENTIFIER_BINDING@17..18
0: IDENT@17..18 "B" [] []
2: TS_TYPE_PARAMETERS@18..22
0: L_ANGLE@18..19 "<" [] []
1: TS_TYPE_PARAMETER_LIST@19..20
0: TS_TYPE_PARAMETER@19..20
0: TS_TYPE_PARAMETER_MODIFIER_LIST@19..19
1: TS_TYPE_PARAMETER_NAME@19..20
0: IDENT@19..20 "A" [] []
2: (empty)
3: (empty)
2: R_ANGLE@20..22 ">" [] [Whitespace(" ")]
3: EQ@22..24 "=" [] [Whitespace(" ")]
4: TS_OBJECT_TYPE@24..32
0: L_CURLY@24..26 "{" [] [Whitespace(" ")]
1: TS_TYPE_MEMBER_LIST@26..31
0: TS_PROPERTY_SIGNATURE_TYPE_MEMBER@26..31
0: (empty)
1: JS_LITERAL_MEMBER_NAME@26..27
0: IDENT@26..27 "a" [] []
2: (empty)
3: TS_TYPE_ANNOTATION@27..31
0: COLON@27..29 ":" [] [Whitespace(" ")]
1: TS_REFERENCE_TYPE@29..31
0: JS_REFERENCE_IDENTIFIER@29..31
0: IDENT@29..31 "A" [] [Whitespace(" ")]
1: (empty)
4: (empty)
2: R_CURLY@31..32 "}" [] []
5: SEMICOLON@32..33 ";" [] []
2: JS_EXPRESSION_STATEMENT@33..66
0: JS_ASSIGNMENT_EXPRESSION@33..65
0: JS_PARENTHESIZED_ASSIGNMENT@33..55
0: L_PAREN@33..35 "(" [Newline("\n")] []
1: TS_SATISFIES_ASSIGNMENT@35..53
0: JS_IDENTIFIER_ASSIGNMENT@35..37
0: IDENT@35..37 "a" [] [Whitespace(" ")]
1: SATISFIES_KW@37..47 "satisfies" [] [Whitespace(" ")]
2: TS_STRING_TYPE@47..53
0: STRING_KW@47..53 "string" [] []
2: R_PAREN@53..55 ")" [] [Whitespace(" ")]
1: EQ@55..57 "=" [] [Whitespace(" ")]
2: JS_STRING_LITERAL_EXPRESSION@57..65
0: JS_STRING_LITERAL@57..65 "\"string\"" [] []
1: SEMICOLON@65..66 ";" [] []
3: JS_EXPRESSION_STATEMENT@66..111
0: JS_ASSIGNMENT_EXPRESSION@66..110
0: JS_PARENTHESIZED_ASSIGNMENT@66..104
0: L_PAREN@66..68 "(" [Newline("\n")] []
1: TS_SATISFIES_ASSIGNMENT@68..102
0: JS_PARENTHESIZED_ASSIGNMENT@68..86
0: L_PAREN@68..69 "(" [] []
1: TS_SATISFIES_ASSIGNMENT@69..84
0: JS_IDENTIFIER_ASSIGNMENT@69..71
0: IDENT@69..71 "a" [] [Whitespace(" ")]
1: SATISFIES_KW@71..81 "satisfies" [] [Whitespace(" ")]
2: TS_ANY_TYPE@81..84
0: ANY_KW@81..84 "any" [] []
2: R_PAREN@84..86 ")" [] [Whitespace(" ")]
1: SATISFIES_KW@86..96 "satisfies" [] [Whitespace(" ")]
2: TS_STRING_TYPE@96..102
0: STRING_KW@96..102 "string" [] []
2: R_PAREN@102..104 ")" [] [Whitespace(" ")]
1: EQ@104..106 "=" [] [Whitespace(" ")]
2: JS_NULL_LITERAL_EXPRESSION@106..110
0: NULL_KW@106..110 "null" [] []
1: SEMICOLON@110..111 ";" [] []
4: JS_EXPRESSION_STATEMENT@111..156
0: JS_PARENTHESIZED_EXPRESSION@111..155
0: L_PAREN@111..113 "(" [Newline("\n")] []
1: JS_ASSIGNMENT_EXPRESSION@113..154
0: JS_OBJECT_ASSIGNMENT_PATTERN@113..139
0: L_CURLY@113..115 "{" [] [Whitespace(" ")]
1: JS_OBJECT_ASSIGNMENT_PATTERN_PROPERTY_LIST@115..137
0: JS_OBJECT_ASSIGNMENT_PATTERN_PROPERTY@115..137
0: JS_LITERAL_MEMBER_NAME@115..116
0: IDENT@115..116 "b" [] []
1: COLON@116..118 ":" [] [Whitespace(" ")]
2: TS_SATISFIES_ASSIGNMENT@118..137
0: JS_IDENTIFIER_ASSIGNMENT@118..120
0: IDENT@118..120 "a" [] [Whitespace(" ")]
1: SATISFIES_KW@120..130 "satisfies" [] [Whitespace(" ")]
2: TS_STRING_TYPE@130..137
0: STRING_KW@130..137 "string" [] [Whitespace(" ")]
3: (empty)
2: R_CURLY@137..139 "}" [] [Whitespace(" ")]
1: EQ@139..141 "=" [] [Whitespace(" ")]
2: JS_OBJECT_EXPRESSION@141..154
0: L_CURLY@141..143 "{" [] [Whitespace(" ")]
1: JS_OBJECT_MEMBER_LIST@143..153
0: JS_PROPERTY_OBJECT_MEMBER@143..153
0: JS_LITERAL_MEMBER_NAME@143..144
0: IDENT@143..144 "b" [] []
1: COLON@144..146 ":" [] [Whitespace(" ")]
2: JS_STRING_LITERAL_EXPRESSION@146..153
0: JS_STRING_LITERAL@146..153 "\"test\"" [] [Whitespace(" ")]
2: R_CURLY@153..154 "}" [] []
2: R_PAREN@154..155 ")" [] []
1: SEMICOLON@155..156 ";" [] []
5: JS_EXPRESSION_STATEMENT@156..195
0: JS_PARENTHESIZED_EXPRESSION@156..194
0: L_PAREN@156..158 "(" [Newline("\n")] []
1: JS_ASSIGNMENT_EXPRESSION@158..193
0: JS_ARRAY_ASSIGNMENT_PATTERN@158..181
0: L_BRACK@158..160 "[" [] [Whitespace(" ")]
1: JS_ARRAY_ASSIGNMENT_PATTERN_ELEMENT_LIST@160..179
0: JS_ARRAY_ASSIGNMENT_PATTERN_ELEMENT@160..179
0: TS_SATISFIES_ASSIGNMENT@160..179
0: JS_IDENTIFIER_ASSIGNMENT@160..162
0: IDENT@160..162 "a" [] [Whitespace(" ")]
1: SATISFIES_KW@162..172 "satisfies" [] [Whitespace(" ")]
2: TS_STRING_TYPE@172..179
0: STRING_KW@172..179 "string" [] [Whitespace(" ")]
1: (empty)
2: R_BRACK@179..181 "]" [] [Whitespace(" ")]
1: EQ@181..183 "=" [] [Whitespace(" ")]
2: JS_ARRAY_EXPRESSION@183..193
0: L_BRACK@183..185 "[" [] [Whitespace(" ")]
1: JS_ARRAY_ELEMENT_LIST@185..192
0: JS_STRING_LITERAL_EXPRESSION@185..192
0: JS_STRING_LITERAL@185..192 "\"test\"" [] [Whitespace(" ")]
2: R_BRACK@192..193 "]" [] []
2: R_PAREN@193..194 ")" [] []
1: SEMICOLON@194..195 ";" [] []
6: JS_FOR_IN_STATEMENT@195..229
0: FOR_KW@195..200 "for" [Newline("\n")] [Whitespace(" ")]
1: L_PAREN@200..201 "(" [] []
2: TS_SATISFIES_ASSIGNMENT@201..220
0: JS_IDENTIFIER_ASSIGNMENT@201..203
0: IDENT@201..203 "a" [] [Whitespace(" ")]
1: SATISFIES_KW@203..213 "satisfies" [] [Whitespace(" ")]
2: TS_STRING_TYPE@213..220
0: STRING_KW@213..220 "string" [] [Whitespace(" ")]
3: IN_KW@220..223 "in" [] [Whitespace(" ")]
4: JS_ARRAY_EXPRESSION@223..225
0: L_BRACK@223..224 "[" [] []
1: JS_ARRAY_ELEMENT_LIST@224..224
2: R_BRACK@224..225 "]" [] []
5: R_PAREN@225..227 ")" [] [Whitespace(" ")]
6: JS_BLOCK_STATEMENT@227..229
0: L_CURLY@227..228 "{" [] []
1: JS_STATEMENT_LIST@228..228
2: R_CURLY@228..229 "}" [] []
7: JS_EXPRESSION_STATEMENT@229..270
0: JS_ASSIGNMENT_EXPRESSION@229..269
0: JS_PARENTHESIZED_ASSIGNMENT@229..254
0: L_PAREN@229..231 "(" [Newline("\n")] []
1: TS_SATISFIES_ASSIGNMENT@231..252
0: JS_IDENTIFIER_ASSIGNMENT@231..233
0: IDENT@231..233 "a" [] [Whitespace(" ")]
1: SATISFIES_KW@233..243 "satisfies" [] [Whitespace(" ")]
2: TS_REFERENCE_TYPE@243..252
0: JS_REFERENCE_IDENTIFIER@243..244
0: IDENT@243..244 "B" [] []
1: TS_TYPE_ARGUMENTS@244..252
0: L_ANGLE@244..245 "<" [] []
1: TS_TYPE_ARGUMENT_LIST@245..251
0: TS_STRING_TYPE@245..251
0: STRING_KW@245..251 "string" [] []
2: R_ANGLE@251..252 ">" [] []
2: R_PAREN@252..254 ")" [] [Whitespace(" ")]
1: EQ@254..256 "=" [] [Whitespace(" ")]
2: JS_OBJECT_EXPRESSION@256..269
0: L_CURLY@256..258 "{" [] [Whitespace(" ")]
1: JS_OBJECT_MEMBER_LIST@258..268
0: JS_PROPERTY_OBJECT_MEMBER@258..268
0: JS_LITERAL_MEMBER_NAME@258..259
0: IDENT@258..259 "a" [] []
1: COLON@259..261 ":" [] [Whitespace(" ")]
2: JS_STRING_LITERAL_EXPRESSION@261..268
0: JS_STRING_LITERAL@261..268 "\"test\"" [] [Whitespace(" ")]
2: R_CURLY@268..269 "}" [] []
1: SEMICOLON@269..270 ";" [] []
4: EOF@270..271 "" [Newline("\n")] []