def _execute(self, logger: Logger, options: Dict[str, Dict[str, Any]]) -> T:
if isinstance(self.parser, _BaseParser):<EOL><INDENT>if (not self.is_singlefile) and self.parser.supports_multifile():<EOL><INDENT>return self.parser._parse_multifile(self.obj_type, self.obj_on_fs_to_parse,<EOL>self._get_children_parsing_plan(), logger, options)<EOL><DEDENT>elif self.is_singlefile and self.parser.supports_singlefile():<EOL><INDENT>return self.parser._parse_singlefile(self.obj_type, self.get_singlefile_path(),<EOL>self.get_singlefile_encoding(), logger, options)<EOL><DEDENT>else:<EOL><INDENT>raise _InvalidParserException.create(self.parser, self.obj_on_fs_to_parse)<EOL><DEDENT><DEDENT>else:<EOL><INDENT>raise TypeError('<STR_LIT>' + str(_BaseParser))<EOL><DEDENT>
Implementation of the parent class method.
Checks that self.parser is a _BaseParser, and calls the appropriate parsing method.

:param logger:
:param options:
:return: