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")] []