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..11 "Base" [] [Whitespace(" ")], }, type_parameters: missing (optional), extends_clause: missing (optional), implements_clause: missing (optional), l_curly_token: L_CURLY@11..13 "{" [] [Whitespace(" ")], members: JsClassMemberList [ JsPropertyClassMember { modifiers: JsPropertyModifierList [], name: JsLiteralMemberName { value: IDENT@13..17 "name" [] [], }, property_annotation: TsDefinitePropertyAnnotation { excl_token: BANG@17..18 "!" [] [], type_annotation: TsTypeAnnotation { colon_token: COLON@18..20 ":" [] [Whitespace(" ")], ty: TsStringType { string_token: STRING_KW@20..26 "string" [] [], }, }, }, value: missing (optional), semicolon_token: SEMICOLON@26..28 ";" [] [Whitespace(" ")], }, JsPropertyClassMember { modifiers: JsPropertyModifierList [], name: JsLiteralMemberName { value: IDENT@28..33 "other" [] [], }, property_annotation: TsDefinitePropertyAnnotation { excl_token: BANG@33..34 "!" [] [], type_annotation: TsTypeAnnotation { colon_token: COLON@34..36 ":" [] [Whitespace(" ")], ty: TsStringType { string_token: STRING_KW@36..43 "string" [] [Whitespace(" ")], }, }, }, value: missing (optional), semicolon_token: missing (optional), }, ], r_curly_token: R_CURLY@43..44 "}" [] [], }, JsClassDeclaration { decorators: JsDecoratorList [], abstract_token: missing (optional), class_token: CLASS_KW@44..51 "class" [Newline("\n")] [Whitespace(" ")], id: JsIdentifierBinding { name_token: IDENT@51..55 "Sub" [] [Whitespace(" ")], }, type_parameters: missing (optional), extends_clause: JsExtendsClause { extends_token: EXTENDS_KW@55..63 "extends" [] [Whitespace(" ")], super_class: JsIdentifierExpression { name: JsReferenceIdentifier { value_token: IDENT@63..68 "Base" [] [Whitespace(" ")], }, }, type_arguments: missing (optional), }, implements_clause: missing (optional), l_curly_token: L_CURLY@68..69 "{" [] [], members: JsClassMemberList [ JsConstructorClassMember { modifiers: JsConstructorModifierList [], name: JsLiteralMemberName { value: IDENT@69..82 "constructor" [Newline("\n"), Whitespace(" ")] [], }, parameters: JsConstructorParameters { l_paren_token: L_PAREN@82..83 "(" [] [], parameters: JsConstructorParameterList [ TsPropertyParameter { decorators: JsDecoratorList [], modifiers: TsPropertyParameterModifierList [ TsAccessibilityModifier { modifier_token: PRIVATE_KW@83..91 "private" [] [Whitespace(" ")], }, ], formal_parameter: JsFormalParameter { decorators: JsDecoratorList [], binding: JsIdentifierBinding { name_token: IDENT@91..95 "priv" [] [], }, question_mark_token: missing (optional), type_annotation: TsTypeAnnotation { colon_token: COLON@95..97 ":" [] [Whitespace(" ")], ty: TsStringType { string_token: STRING_KW@97..103 "string" [] [], }, }, initializer: missing (optional), }, }, COMMA@103..105 "," [] [Whitespace(" ")], TsPropertyParameter { decorators: JsDecoratorList [], modifiers: TsPropertyParameterModifierList [ TsAccessibilityModifier { modifier_token: PROTECTED_KW@105..115 "protected" [] [Whitespace(" ")], }, ], formal_parameter: JsFormalParameter { decorators: JsDecoratorList [], binding: JsIdentifierBinding { name_token: IDENT@115..119 "prot" [] [], }, question_mark_token: missing (optional), type_annotation: TsTypeAnnotation { colon_token: COLON@119..121 ":" [] [Whitespace(" ")], ty: TsStringType { string_token: STRING_KW@121..127 "string" [] [], }, }, initializer: missing (optional), }, }, COMMA@127..129 "," [] [Whitespace(" ")], TsPropertyParameter { decorators: JsDecoratorList [], modifiers: TsPropertyParameterModifierList [ TsAccessibilityModifier { modifier_token: PUBLIC_KW@129..136 "public" [] [Whitespace(" ")], }, ], formal_parameter: JsFormalParameter { decorators: JsDecoratorList [], binding: JsIdentifierBinding { name_token: IDENT@136..139 "pub" [] [], }, question_mark_token: missing (optional), type_annotation: TsTypeAnnotation { colon_token: COLON@139..141 ":" [] [Whitespace(" ")], ty: TsStringType { string_token: STRING_KW@141..147 "string" [] [], }, }, initializer: missing (optional), }, }, COMMA@147..149 "," [] [Whitespace(" ")], TsPropertyParameter { decorators: JsDecoratorList [], modifiers: TsPropertyParameterModifierList [ TsOverrideModifier { modifier_token: OVERRIDE_KW@149..158 "override" [] [Whitespace(" ")], }, ], formal_parameter: JsFormalParameter { decorators: JsDecoratorList [], binding: JsIdentifierBinding { name_token: IDENT@158..162 "name" [] [], }, question_mark_token: missing (optional), type_annotation: TsTypeAnnotation { colon_token: COLON@162..164 ":" [] [Whitespace(" ")], ty: TsStringType { string_token: STRING_KW@164..170 "string" [] [], }, }, initializer: missing (optional), }, }, COMMA@170..172 "," [] [Whitespace(" ")], TsPropertyParameter { decorators: JsDecoratorList [], modifiers: TsPropertyParameterModifierList [ TsReadonlyModifier { modifier_token: READONLY_KW@172..181 "readonly" [] [Whitespace(" ")], }, ], formal_parameter: JsFormalParameter { decorators: JsDecoratorList [], binding: JsIdentifierBinding { name_token: IDENT@181..185 "read" [] [], }, question_mark_token: missing (optional), type_annotation: TsTypeAnnotation { colon_token: COLON@185..187 ":" [] [Whitespace(" ")], ty: TsStringType { string_token: STRING_KW@187..193 "string" [] [], }, }, initializer: missing (optional), }, }, COMMA@193..195 "," [] [Whitespace(" ")], TsPropertyParameter { decorators: JsDecoratorList [], modifiers: TsPropertyParameterModifierList [ TsAccessibilityModifier { modifier_token: PROTECTED_KW@195..205 "protected" [] [Whitespace(" ")], }, TsOverrideModifier { modifier_token: OVERRIDE_KW@205..214 "override" [] [Whitespace(" ")], }, TsReadonlyModifier { modifier_token: READONLY_KW@214..223 "readonly" [] [Whitespace(" ")], }, ], formal_parameter: JsFormalParameter { decorators: JsDecoratorList [], binding: JsIdentifierBinding { name_token: IDENT@223..228 "other" [] [], }, question_mark_token: missing (optional), type_annotation: TsTypeAnnotation { colon_token: COLON@228..230 ":" [] [Whitespace(" ")], ty: TsStringType { string_token: STRING_KW@230..236 "string" [] [], }, }, initializer: missing (optional), }, }, ], r_paren_token: R_PAREN@236..238 ")" [] [Whitespace(" ")], }, body: JsFunctionBody { l_curly_token: L_CURLY@238..239 "{" [] [], directives: JsDirectiveList [], statements: JsStatementList [ JsExpressionStatement { expression: JsCallExpression { callee: JsSuperExpression { super_token: SUPER_KW@239..250 "super" [Newline("\n"), Whitespace(" ")] [], }, optional_chain_token: missing (optional), type_arguments: missing (optional), arguments: JsCallArguments { l_paren_token: L_PAREN@250..251 "(" [] [], args: JsCallArgumentList [], r_paren_token: R_PAREN@251..252 ")" [] [], }, }, semicolon_token: SEMICOLON@252..253 ";" [] [], }, ], r_curly_token: R_CURLY@253..256 "}" [Newline("\n"), Whitespace(" ")] [], }, }, ], r_curly_token: R_CURLY@256..258 "}" [Newline("\n")] [], }, ], eof_token: EOF@258..259 "" [Newline("\n")] [], } 0: JS_MODULE@0..259 0: (empty) 1: (empty) 2: JS_DIRECTIVE_LIST@0..0 3: JS_MODULE_ITEM_LIST@0..258 0: JS_CLASS_DECLARATION@0..44 0: JS_DECORATOR_LIST@0..0 1: (empty) 2: CLASS_KW@0..6 "class" [] [Whitespace(" ")] 3: JS_IDENTIFIER_BINDING@6..11 0: IDENT@6..11 "Base" [] [Whitespace(" ")] 4: (empty) 5: (empty) 6: (empty) 7: L_CURLY@11..13 "{" [] [Whitespace(" ")] 8: JS_CLASS_MEMBER_LIST@13..43 0: JS_PROPERTY_CLASS_MEMBER@13..28 0: JS_PROPERTY_MODIFIER_LIST@13..13 1: JS_LITERAL_MEMBER_NAME@13..17 0: IDENT@13..17 "name" [] [] 2: TS_DEFINITE_PROPERTY_ANNOTATION@17..26 0: BANG@17..18 "!" [] [] 1: TS_TYPE_ANNOTATION@18..26 0: COLON@18..20 ":" [] [Whitespace(" ")] 1: TS_STRING_TYPE@20..26 0: STRING_KW@20..26 "string" [] [] 3: (empty) 4: SEMICOLON@26..28 ";" [] [Whitespace(" ")] 1: JS_PROPERTY_CLASS_MEMBER@28..43 0: JS_PROPERTY_MODIFIER_LIST@28..28 1: JS_LITERAL_MEMBER_NAME@28..33 0: IDENT@28..33 "other" [] [] 2: TS_DEFINITE_PROPERTY_ANNOTATION@33..43 0: BANG@33..34 "!" [] [] 1: TS_TYPE_ANNOTATION@34..43 0: COLON@34..36 ":" [] [Whitespace(" ")] 1: TS_STRING_TYPE@36..43 0: STRING_KW@36..43 "string" [] [Whitespace(" ")] 3: (empty) 4: (empty) 9: R_CURLY@43..44 "}" [] [] 1: JS_CLASS_DECLARATION@44..258 0: JS_DECORATOR_LIST@44..44 1: (empty) 2: CLASS_KW@44..51 "class" [Newline("\n")] [Whitespace(" ")] 3: JS_IDENTIFIER_BINDING@51..55 0: IDENT@51..55 "Sub" [] [Whitespace(" ")] 4: (empty) 5: JS_EXTENDS_CLAUSE@55..68 0: EXTENDS_KW@55..63 "extends" [] [Whitespace(" ")] 1: JS_IDENTIFIER_EXPRESSION@63..68 0: JS_REFERENCE_IDENTIFIER@63..68 0: IDENT@63..68 "Base" [] [Whitespace(" ")] 2: (empty) 6: (empty) 7: L_CURLY@68..69 "{" [] [] 8: JS_CLASS_MEMBER_LIST@69..256 0: JS_CONSTRUCTOR_CLASS_MEMBER@69..256 0: JS_CONSTRUCTOR_MODIFIER_LIST@69..69 1: JS_LITERAL_MEMBER_NAME@69..82 0: IDENT@69..82 "constructor" [Newline("\n"), Whitespace(" ")] [] 2: JS_CONSTRUCTOR_PARAMETERS@82..238 0: L_PAREN@82..83 "(" [] [] 1: JS_CONSTRUCTOR_PARAMETER_LIST@83..236 0: TS_PROPERTY_PARAMETER@83..103 0: JS_DECORATOR_LIST@83..83 1: TS_PROPERTY_PARAMETER_MODIFIER_LIST@83..91 0: TS_ACCESSIBILITY_MODIFIER@83..91 0: PRIVATE_KW@83..91 "private" [] [Whitespace(" ")] 2: JS_FORMAL_PARAMETER@91..103 0: JS_DECORATOR_LIST@91..91 1: JS_IDENTIFIER_BINDING@91..95 0: IDENT@91..95 "priv" [] [] 2: (empty) 3: TS_TYPE_ANNOTATION@95..103 0: COLON@95..97 ":" [] [Whitespace(" ")] 1: TS_STRING_TYPE@97..103 0: STRING_KW@97..103 "string" [] [] 4: (empty) 1: COMMA@103..105 "," [] [Whitespace(" ")] 2: TS_PROPERTY_PARAMETER@105..127 0: JS_DECORATOR_LIST@105..105 1: TS_PROPERTY_PARAMETER_MODIFIER_LIST@105..115 0: TS_ACCESSIBILITY_MODIFIER@105..115 0: PROTECTED_KW@105..115 "protected" [] [Whitespace(" ")] 2: JS_FORMAL_PARAMETER@115..127 0: JS_DECORATOR_LIST@115..115 1: JS_IDENTIFIER_BINDING@115..119 0: IDENT@115..119 "prot" [] [] 2: (empty) 3: TS_TYPE_ANNOTATION@119..127 0: COLON@119..121 ":" [] [Whitespace(" ")] 1: TS_STRING_TYPE@121..127 0: STRING_KW@121..127 "string" [] [] 4: (empty) 3: COMMA@127..129 "," [] [Whitespace(" ")] 4: TS_PROPERTY_PARAMETER@129..147 0: JS_DECORATOR_LIST@129..129 1: TS_PROPERTY_PARAMETER_MODIFIER_LIST@129..136 0: TS_ACCESSIBILITY_MODIFIER@129..136 0: PUBLIC_KW@129..136 "public" [] [Whitespace(" ")] 2: JS_FORMAL_PARAMETER@136..147 0: JS_DECORATOR_LIST@136..136 1: JS_IDENTIFIER_BINDING@136..139 0: IDENT@136..139 "pub" [] [] 2: (empty) 3: TS_TYPE_ANNOTATION@139..147 0: COLON@139..141 ":" [] [Whitespace(" ")] 1: TS_STRING_TYPE@141..147 0: STRING_KW@141..147 "string" [] [] 4: (empty) 5: COMMA@147..149 "," [] [Whitespace(" ")] 6: TS_PROPERTY_PARAMETER@149..170 0: JS_DECORATOR_LIST@149..149 1: TS_PROPERTY_PARAMETER_MODIFIER_LIST@149..158 0: TS_OVERRIDE_MODIFIER@149..158 0: OVERRIDE_KW@149..158 "override" [] [Whitespace(" ")] 2: JS_FORMAL_PARAMETER@158..170 0: JS_DECORATOR_LIST@158..158 1: JS_IDENTIFIER_BINDING@158..162 0: IDENT@158..162 "name" [] [] 2: (empty) 3: TS_TYPE_ANNOTATION@162..170 0: COLON@162..164 ":" [] [Whitespace(" ")] 1: TS_STRING_TYPE@164..170 0: STRING_KW@164..170 "string" [] [] 4: (empty) 7: COMMA@170..172 "," [] [Whitespace(" ")] 8: TS_PROPERTY_PARAMETER@172..193 0: JS_DECORATOR_LIST@172..172 1: TS_PROPERTY_PARAMETER_MODIFIER_LIST@172..181 0: TS_READONLY_MODIFIER@172..181 0: READONLY_KW@172..181 "readonly" [] [Whitespace(" ")] 2: JS_FORMAL_PARAMETER@181..193 0: JS_DECORATOR_LIST@181..181 1: JS_IDENTIFIER_BINDING@181..185 0: IDENT@181..185 "read" [] [] 2: (empty) 3: TS_TYPE_ANNOTATION@185..193 0: COLON@185..187 ":" [] [Whitespace(" ")] 1: TS_STRING_TYPE@187..193 0: STRING_KW@187..193 "string" [] [] 4: (empty) 9: COMMA@193..195 "," [] [Whitespace(" ")] 10: TS_PROPERTY_PARAMETER@195..236 0: JS_DECORATOR_LIST@195..195 1: TS_PROPERTY_PARAMETER_MODIFIER_LIST@195..223 0: TS_ACCESSIBILITY_MODIFIER@195..205 0: PROTECTED_KW@195..205 "protected" [] [Whitespace(" ")] 1: TS_OVERRIDE_MODIFIER@205..214 0: OVERRIDE_KW@205..214 "override" [] [Whitespace(" ")] 2: TS_READONLY_MODIFIER@214..223 0: READONLY_KW@214..223 "readonly" [] [Whitespace(" ")] 2: JS_FORMAL_PARAMETER@223..236 0: JS_DECORATOR_LIST@223..223 1: JS_IDENTIFIER_BINDING@223..228 0: IDENT@223..228 "other" [] [] 2: (empty) 3: TS_TYPE_ANNOTATION@228..236 0: COLON@228..230 ":" [] [Whitespace(" ")] 1: TS_STRING_TYPE@230..236 0: STRING_KW@230..236 "string" [] [] 4: (empty) 2: R_PAREN@236..238 ")" [] [Whitespace(" ")] 3: JS_FUNCTION_BODY@238..256 0: L_CURLY@238..239 "{" [] [] 1: JS_DIRECTIVE_LIST@239..239 2: JS_STATEMENT_LIST@239..253 0: JS_EXPRESSION_STATEMENT@239..253 0: JS_CALL_EXPRESSION@239..252 0: JS_SUPER_EXPRESSION@239..250 0: SUPER_KW@239..250 "super" [Newline("\n"), Whitespace(" ")] [] 1: (empty) 2: (empty) 3: JS_CALL_ARGUMENTS@250..252 0: L_PAREN@250..251 "(" [] [] 1: JS_CALL_ARGUMENT_LIST@251..251 2: R_PAREN@251..252 ")" [] [] 1: SEMICOLON@252..253 ";" [] [] 3: R_CURLY@253..256 "}" [Newline("\n"), Whitespace(" ")] [] 9: R_CURLY@256..258 "}" [Newline("\n")] [] 4: EOF@258..259 "" [Newline("\n")] []