JsModule {
bom_token: missing (optional),
interpreter_token: missing (optional),
directives: JsDirectiveList [],
items: JsModuleItemList [
JsClassDeclaration {
decorators: JsDecoratorList [],
abstract_token: missing (optional),
class_token: CLASS_KW@0..6 "class" [] [Whitespace(" ")],
id: JsIdentifierBinding {
name_token: IDENT@6..8 "A" [] [Whitespace(" ")],
},
type_parameters: missing (optional),
extends_clause: missing (optional),
implements_clause: missing (optional),
l_curly_token: L_CURLY@8..10 "{" [] [Whitespace(" ")],
members: JsClassMemberList [
JsConstructorClassMember {
modifiers: JsConstructorModifierList [],
name: JsLiteralMemberName {
value: IDENT@10..21 "constructor" [] [],
},
parameters: JsConstructorParameters {
l_paren_token: L_PAREN@21..22 "(" [] [],
parameters: JsConstructorParameterList [
TsPropertyParameter {
decorators: JsDecoratorList [],
modifiers: TsPropertyParameterModifierList [
TsAccessibilityModifier {
modifier_token: PRIVATE_KW@22..30 "private" [] [Whitespace(" ")],
},
],
formal_parameter: JsFormalParameter {
decorators: JsDecoratorList [],
binding: JsIdentifierBinding {
name_token: IDENT@30..31 "x" [] [],
},
question_mark_token: missing (optional),
type_annotation: missing (optional),
initializer: missing (optional),
},
},
COMMA@31..33 "," [] [Whitespace(" ")],
TsPropertyParameter {
decorators: JsDecoratorList [],
modifiers: TsPropertyParameterModifierList [
TsAccessibilityModifier {
modifier_token: PROTECTED_KW@33..43 "protected" [] [Whitespace(" ")],
},
],
formal_parameter: JsFormalParameter {
decorators: JsDecoratorList [],
binding: JsIdentifierBinding {
name_token: IDENT@43..44 "y" [] [],
},
question_mark_token: missing (optional),
type_annotation: missing (optional),
initializer: missing (optional),
},
},
COMMA@44..46 "," [] [Whitespace(" ")],
TsPropertyParameter {
decorators: JsDecoratorList [],
modifiers: TsPropertyParameterModifierList [
TsAccessibilityModifier {
modifier_token: PUBLIC_KW@46..53 "public" [] [Whitespace(" ")],
},
],
formal_parameter: JsFormalParameter {
decorators: JsDecoratorList [],
binding: JsIdentifierBinding {
name_token: IDENT@53..54 "z" [] [],
},
question_mark_token: missing (optional),
type_annotation: missing (optional),
initializer: missing (optional),
},
},
],
r_paren_token: R_PAREN@54..56 ")" [] [Whitespace(" ")],
},
body: JsFunctionBody {
l_curly_token: L_CURLY@56..57 "{" [] [],
directives: JsDirectiveList [],
statements: JsStatementList [],
r_curly_token: R_CURLY@57..59 "}" [] [Whitespace(" ")],
},
},
],
r_curly_token: R_CURLY@59..60 "}" [] [],
},
JsClassDeclaration {
decorators: JsDecoratorList [],
abstract_token: missing (optional),
class_token: CLASS_KW@60..67 "class" [Newline("\n")] [Whitespace(" ")],
id: JsIdentifierBinding {
name_token: IDENT@67..69 "B" [] [Whitespace(" ")],
},
type_parameters: missing (optional),
extends_clause: missing (optional),
implements_clause: missing (optional),
l_curly_token: L_CURLY@69..71 "{" [] [Whitespace(" ")],
members: JsClassMemberList [
JsConstructorClassMember {
modifiers: JsConstructorModifierList [],
name: JsLiteralMemberName {
value: IDENT@71..82 "constructor" [] [],
},
parameters: JsConstructorParameters {
l_paren_token: L_PAREN@82..83 "(" [] [],
parameters: JsConstructorParameterList [
TsPropertyParameter {
decorators: JsDecoratorList [],
modifiers: TsPropertyParameterModifierList [
TsReadonlyModifier {
modifier_token: READONLY_KW@83..92 "readonly" [] [Whitespace(" ")],
},
],
formal_parameter: JsFormalParameter {
decorators: JsDecoratorList [],
binding: JsIdentifierBinding {
name_token: IDENT@92..93 "w" [] [],
},
question_mark_token: missing (optional),
type_annotation: missing (optional),
initializer: missing (optional),
},
},
COMMA@93..95 "," [] [Whitespace(" ")],
TsPropertyParameter {
decorators: JsDecoratorList [],
modifiers: TsPropertyParameterModifierList [
TsAccessibilityModifier {
modifier_token: PRIVATE_KW@95..103 "private" [] [Whitespace(" ")],
},
TsReadonlyModifier {
modifier_token: READONLY_KW@103..112 "readonly" [] [Whitespace(" ")],
},
],
formal_parameter: JsFormalParameter {
decorators: JsDecoratorList [],
binding: JsIdentifierBinding {
name_token: IDENT@112..113 "x" [] [],
},
question_mark_token: missing (optional),
type_annotation: missing (optional),
initializer: missing (optional),
},
},
COMMA@113..115 "," [] [Whitespace(" ")],
TsPropertyParameter {
decorators: JsDecoratorList [],
modifiers: TsPropertyParameterModifierList [
TsAccessibilityModifier {
modifier_token: PROTECTED_KW@115..125 "protected" [] [Whitespace(" ")],
},
TsReadonlyModifier {
modifier_token: READONLY_KW@125..134 "readonly" [] [Whitespace(" ")],
},
],
formal_parameter: JsFormalParameter {
decorators: JsDecoratorList [],
binding: JsIdentifierBinding {
name_token: IDENT@134..135 "y" [] [],
},
question_mark_token: missing (optional),
type_annotation: missing (optional),
initializer: missing (optional),
},
},
COMMA@135..137 "," [] [Whitespace(" ")],
TsPropertyParameter {
decorators: JsDecoratorList [],
modifiers: TsPropertyParameterModifierList [
TsAccessibilityModifier {
modifier_token: PUBLIC_KW@137..144 "public" [] [Whitespace(" ")],
},
TsReadonlyModifier {
modifier_token: READONLY_KW@144..153 "readonly" [] [Whitespace(" ")],
},
],
formal_parameter: JsFormalParameter {
decorators: JsDecoratorList [],
binding: JsIdentifierBinding {
name_token: IDENT@153..154 "z" [] [],
},
question_mark_token: missing (optional),
type_annotation: missing (optional),
initializer: missing (optional),
},
},
],
r_paren_token: R_PAREN@154..156 ")" [] [Whitespace(" ")],
},
body: JsFunctionBody {
l_curly_token: L_CURLY@156..157 "{" [] [],
directives: JsDirectiveList [],
statements: JsStatementList [],
r_curly_token: R_CURLY@157..159 "}" [] [Whitespace(" ")],
},
},
],
r_curly_token: R_CURLY@159..160 "}" [] [],
},
JsClassDeclaration {
decorators: JsDecoratorList [],
abstract_token: missing (optional),
class_token: CLASS_KW@160..167 "class" [Newline("\n")] [Whitespace(" ")],
id: JsIdentifierBinding {
name_token: IDENT@167..169 "C" [] [Whitespace(" ")],
},
type_parameters: missing (optional),
extends_clause: missing (optional),
implements_clause: missing (optional),
l_curly_token: L_CURLY@169..171 "{" [] [Whitespace(" ")],
members: JsClassMemberList [
JsConstructorClassMember {
modifiers: JsConstructorModifierList [],
name: JsLiteralMemberName {
value: IDENT@171..182 "constructor" [] [],
},
parameters: JsConstructorParameters {
l_paren_token: L_PAREN@182..183 "(" [] [],
parameters: JsConstructorParameterList [
TsPropertyParameter {
decorators: JsDecoratorList [],
modifiers: TsPropertyParameterModifierList [
TsAccessibilityModifier {
modifier_token: PRIVATE_KW@183..191 "private" [] [Whitespace(" ")],
},
],
formal_parameter: JsFormalParameter {
decorators: JsDecoratorList [],
binding: JsIdentifierBinding {
name_token: IDENT@191..192 "x" [] [],
},
question_mark_token: missing (optional),
type_annotation: TsTypeAnnotation {
colon_token: COLON@192..194 ":" [] [Whitespace(" ")],
ty: TsStringType {
string_token: STRING_KW@194..200 "string" [] [],
},
},
initializer: missing (optional),
},
},
COMMA@200..202 "," [] [Whitespace(" ")],
TsPropertyParameter {
decorators: JsDecoratorList [],
modifiers: TsPropertyParameterModifierList [
TsReadonlyModifier {
modifier_token: READONLY_KW@202..211 "readonly" [] [Whitespace(" ")],
},
],
formal_parameter: JsFormalParameter {
decorators: JsDecoratorList [],
binding: JsIdentifierBinding {
name_token: IDENT@211..212 "y" [] [],
},
question_mark_token: QUESTION@212..213 "?" [] [],
type_annotation: missing (optional),
initializer: missing (optional),
},
},
COMMA@213..215 "," [] [Whitespace(" ")],
JsFormalParameter {
decorators: JsDecoratorList [],
binding: JsIdentifierBinding {
name_token: IDENT@215..217 "z" [] [Whitespace(" ")],
},
question_mark_token: missing (optional),
type_annotation: missing (optional),
initializer: JsInitializerClause {
eq_token: EQ@217..219 "=" [] [Whitespace(" ")],
expression: JsStringLiteralExpression {
value_token: JS_STRING_LITERAL@219..228 "\"default\"" [] [],
},
},
},
COMMA@228..230 "," [] [Whitespace(" ")],
JsRestParameter {
decorators: JsDecoratorList [],
dotdotdot_token: DOT3@230..233 "..." [] [],
binding: JsIdentifierBinding {
name_token: IDENT@233..237 "rest" [] [],
},
type_annotation: missing (optional),
},
],
r_paren_token: R_PAREN@237..239 ")" [] [Whitespace(" ")],
},
body: JsFunctionBody {
l_curly_token: L_CURLY@239..240 "{" [] [],
directives: JsDirectiveList [],
statements: JsStatementList [],
r_curly_token: R_CURLY@240..242 "}" [] [Whitespace(" ")],
},
},
],
r_curly_token: R_CURLY@242..243 "}" [] [],
},
],
eof_token: EOF@243..244 "" [Newline("\n")] [],
}
0: JS_MODULE@0..244
0: (empty)
1: (empty)
2: JS_DIRECTIVE_LIST@0..0
3: JS_MODULE_ITEM_LIST@0..243
0: JS_CLASS_DECLARATION@0..60
0: JS_DECORATOR_LIST@0..0
1: (empty)
2: CLASS_KW@0..6 "class" [] [Whitespace(" ")]
3: JS_IDENTIFIER_BINDING@6..8
0: IDENT@6..8 "A" [] [Whitespace(" ")]
4: (empty)
5: (empty)
6: (empty)
7: L_CURLY@8..10 "{" [] [Whitespace(" ")]
8: JS_CLASS_MEMBER_LIST@10..59
0: JS_CONSTRUCTOR_CLASS_MEMBER@10..59
0: JS_CONSTRUCTOR_MODIFIER_LIST@10..10
1: JS_LITERAL_MEMBER_NAME@10..21
0: IDENT@10..21 "constructor" [] []
2: JS_CONSTRUCTOR_PARAMETERS@21..56
0: L_PAREN@21..22 "(" [] []
1: JS_CONSTRUCTOR_PARAMETER_LIST@22..54
0: TS_PROPERTY_PARAMETER@22..31
0: JS_DECORATOR_LIST@22..22
1: TS_PROPERTY_PARAMETER_MODIFIER_LIST@22..30
0: TS_ACCESSIBILITY_MODIFIER@22..30
0: PRIVATE_KW@22..30 "private" [] [Whitespace(" ")]
2: JS_FORMAL_PARAMETER@30..31
0: JS_DECORATOR_LIST@30..30
1: JS_IDENTIFIER_BINDING@30..31
0: IDENT@30..31 "x" [] []
2: (empty)
3: (empty)
4: (empty)
1: COMMA@31..33 "," [] [Whitespace(" ")]
2: TS_PROPERTY_PARAMETER@33..44
0: JS_DECORATOR_LIST@33..33
1: TS_PROPERTY_PARAMETER_MODIFIER_LIST@33..43
0: TS_ACCESSIBILITY_MODIFIER@33..43
0: PROTECTED_KW@33..43 "protected" [] [Whitespace(" ")]
2: JS_FORMAL_PARAMETER@43..44
0: JS_DECORATOR_LIST@43..43
1: JS_IDENTIFIER_BINDING@43..44
0: IDENT@43..44 "y" [] []
2: (empty)
3: (empty)
4: (empty)
3: COMMA@44..46 "," [] [Whitespace(" ")]
4: TS_PROPERTY_PARAMETER@46..54
0: JS_DECORATOR_LIST@46..46
1: TS_PROPERTY_PARAMETER_MODIFIER_LIST@46..53
0: TS_ACCESSIBILITY_MODIFIER@46..53
0: PUBLIC_KW@46..53 "public" [] [Whitespace(" ")]
2: JS_FORMAL_PARAMETER@53..54
0: JS_DECORATOR_LIST@53..53
1: JS_IDENTIFIER_BINDING@53..54
0: IDENT@53..54 "z" [] []
2: (empty)
3: (empty)
4: (empty)
2: R_PAREN@54..56 ")" [] [Whitespace(" ")]
3: JS_FUNCTION_BODY@56..59
0: L_CURLY@56..57 "{" [] []
1: JS_DIRECTIVE_LIST@57..57
2: JS_STATEMENT_LIST@57..57
3: R_CURLY@57..59 "}" [] [Whitespace(" ")]
9: R_CURLY@59..60 "}" [] []
1: JS_CLASS_DECLARATION@60..160
0: JS_DECORATOR_LIST@60..60
1: (empty)
2: CLASS_KW@60..67 "class" [Newline("\n")] [Whitespace(" ")]
3: JS_IDENTIFIER_BINDING@67..69
0: IDENT@67..69 "B" [] [Whitespace(" ")]
4: (empty)
5: (empty)
6: (empty)
7: L_CURLY@69..71 "{" [] [Whitespace(" ")]
8: JS_CLASS_MEMBER_LIST@71..159
0: JS_CONSTRUCTOR_CLASS_MEMBER@71..159
0: JS_CONSTRUCTOR_MODIFIER_LIST@71..71
1: JS_LITERAL_MEMBER_NAME@71..82
0: IDENT@71..82 "constructor" [] []
2: JS_CONSTRUCTOR_PARAMETERS@82..156
0: L_PAREN@82..83 "(" [] []
1: JS_CONSTRUCTOR_PARAMETER_LIST@83..154
0: TS_PROPERTY_PARAMETER@83..93
0: JS_DECORATOR_LIST@83..83
1: TS_PROPERTY_PARAMETER_MODIFIER_LIST@83..92
0: TS_READONLY_MODIFIER@83..92
0: READONLY_KW@83..92 "readonly" [] [Whitespace(" ")]
2: JS_FORMAL_PARAMETER@92..93
0: JS_DECORATOR_LIST@92..92
1: JS_IDENTIFIER_BINDING@92..93
0: IDENT@92..93 "w" [] []
2: (empty)
3: (empty)
4: (empty)
1: COMMA@93..95 "," [] [Whitespace(" ")]
2: TS_PROPERTY_PARAMETER@95..113
0: JS_DECORATOR_LIST@95..95
1: TS_PROPERTY_PARAMETER_MODIFIER_LIST@95..112
0: TS_ACCESSIBILITY_MODIFIER@95..103
0: PRIVATE_KW@95..103 "private" [] [Whitespace(" ")]
1: TS_READONLY_MODIFIER@103..112
0: READONLY_KW@103..112 "readonly" [] [Whitespace(" ")]
2: JS_FORMAL_PARAMETER@112..113
0: JS_DECORATOR_LIST@112..112
1: JS_IDENTIFIER_BINDING@112..113
0: IDENT@112..113 "x" [] []
2: (empty)
3: (empty)
4: (empty)
3: COMMA@113..115 "," [] [Whitespace(" ")]
4: TS_PROPERTY_PARAMETER@115..135
0: JS_DECORATOR_LIST@115..115
1: TS_PROPERTY_PARAMETER_MODIFIER_LIST@115..134
0: TS_ACCESSIBILITY_MODIFIER@115..125
0: PROTECTED_KW@115..125 "protected" [] [Whitespace(" ")]
1: TS_READONLY_MODIFIER@125..134
0: READONLY_KW@125..134 "readonly" [] [Whitespace(" ")]
2: JS_FORMAL_PARAMETER@134..135
0: JS_DECORATOR_LIST@134..134
1: JS_IDENTIFIER_BINDING@134..135
0: IDENT@134..135 "y" [] []
2: (empty)
3: (empty)
4: (empty)
5: COMMA@135..137 "," [] [Whitespace(" ")]
6: TS_PROPERTY_PARAMETER@137..154
0: JS_DECORATOR_LIST@137..137
1: TS_PROPERTY_PARAMETER_MODIFIER_LIST@137..153
0: TS_ACCESSIBILITY_MODIFIER@137..144
0: PUBLIC_KW@137..144 "public" [] [Whitespace(" ")]
1: TS_READONLY_MODIFIER@144..153
0: READONLY_KW@144..153 "readonly" [] [Whitespace(" ")]
2: JS_FORMAL_PARAMETER@153..154
0: JS_DECORATOR_LIST@153..153
1: JS_IDENTIFIER_BINDING@153..154
0: IDENT@153..154 "z" [] []
2: (empty)
3: (empty)
4: (empty)
2: R_PAREN@154..156 ")" [] [Whitespace(" ")]
3: JS_FUNCTION_BODY@156..159
0: L_CURLY@156..157 "{" [] []
1: JS_DIRECTIVE_LIST@157..157
2: JS_STATEMENT_LIST@157..157
3: R_CURLY@157..159 "}" [] [Whitespace(" ")]
9: R_CURLY@159..160 "}" [] []
2: JS_CLASS_DECLARATION@160..243
0: JS_DECORATOR_LIST@160..160
1: (empty)
2: CLASS_KW@160..167 "class" [Newline("\n")] [Whitespace(" ")]
3: JS_IDENTIFIER_BINDING@167..169
0: IDENT@167..169 "C" [] [Whitespace(" ")]
4: (empty)
5: (empty)
6: (empty)
7: L_CURLY@169..171 "{" [] [Whitespace(" ")]
8: JS_CLASS_MEMBER_LIST@171..242
0: JS_CONSTRUCTOR_CLASS_MEMBER@171..242
0: JS_CONSTRUCTOR_MODIFIER_LIST@171..171
1: JS_LITERAL_MEMBER_NAME@171..182
0: IDENT@171..182 "constructor" [] []
2: JS_CONSTRUCTOR_PARAMETERS@182..239
0: L_PAREN@182..183 "(" [] []
1: JS_CONSTRUCTOR_PARAMETER_LIST@183..237
0: TS_PROPERTY_PARAMETER@183..200
0: JS_DECORATOR_LIST@183..183
1: TS_PROPERTY_PARAMETER_MODIFIER_LIST@183..191
0: TS_ACCESSIBILITY_MODIFIER@183..191
0: PRIVATE_KW@183..191 "private" [] [Whitespace(" ")]
2: JS_FORMAL_PARAMETER@191..200
0: JS_DECORATOR_LIST@191..191
1: JS_IDENTIFIER_BINDING@191..192
0: IDENT@191..192 "x" [] []
2: (empty)
3: TS_TYPE_ANNOTATION@192..200
0: COLON@192..194 ":" [] [Whitespace(" ")]
1: TS_STRING_TYPE@194..200
0: STRING_KW@194..200 "string" [] []
4: (empty)
1: COMMA@200..202 "," [] [Whitespace(" ")]
2: TS_PROPERTY_PARAMETER@202..213
0: JS_DECORATOR_LIST@202..202
1: TS_PROPERTY_PARAMETER_MODIFIER_LIST@202..211
0: TS_READONLY_MODIFIER@202..211
0: READONLY_KW@202..211 "readonly" [] [Whitespace(" ")]
2: JS_FORMAL_PARAMETER@211..213
0: JS_DECORATOR_LIST@211..211
1: JS_IDENTIFIER_BINDING@211..212
0: IDENT@211..212 "y" [] []
2: QUESTION@212..213 "?" [] []
3: (empty)
4: (empty)
3: COMMA@213..215 "," [] [Whitespace(" ")]
4: JS_FORMAL_PARAMETER@215..228
0: JS_DECORATOR_LIST@215..215
1: JS_IDENTIFIER_BINDING@215..217
0: IDENT@215..217 "z" [] [Whitespace(" ")]
2: (empty)
3: (empty)
4: JS_INITIALIZER_CLAUSE@217..228
0: EQ@217..219 "=" [] [Whitespace(" ")]
1: JS_STRING_LITERAL_EXPRESSION@219..228
0: JS_STRING_LITERAL@219..228 "\"default\"" [] []
5: COMMA@228..230 "," [] [Whitespace(" ")]
6: JS_REST_PARAMETER@230..237
0: JS_DECORATOR_LIST@230..230
1: DOT3@230..233 "..." [] []
2: JS_IDENTIFIER_BINDING@233..237
0: IDENT@233..237 "rest" [] []
3: (empty)
2: R_PAREN@237..239 ")" [] [Whitespace(" ")]
3: JS_FUNCTION_BODY@239..242
0: L_CURLY@239..240 "{" [] []
1: JS_DIRECTIVE_LIST@240..240
2: JS_STATEMENT_LIST@240..240
3: R_CURLY@240..242 "}" [] [Whitespace(" ")]
9: R_CURLY@242..243 "}" [] []
4: EOF@243..244 "" [Newline("\n")] []