code: def ParseOptions(cls, options, configuration_object):
      
      if not isinstance(configuration_object, tools.CLITool):
        raise errors.BadConfigObject(
            'Configuration object is not an instance of CLITool')
  
      analysis_plugins = cls._ParseStringOption(options, 'analysis_plugins')
  
      if analysis_plugins and analysis_plugins.lower() != 'list':
        plugin_names = analysis_manager.AnalysisPluginManager.GetPluginNames()
        analysis_plugins = [name.strip() for name in analysis_plugins.split(',')]
  
        difference = set(analysis_plugins).difference(plugin_names)
        if difference:
          raise errors.BadConfigOption(
              'Non-existent analysis plugins specified: {0:s}'.format(
                  ' '.join(difference)))
  
      setattr(configuration_object, '_analysis_plugins', analysis_plugins)
docs: Parses and validates options.
  
      Args:
        options (argparse.Namespace): parser options.
        configuration_object (CLITool): object to be configured by the argument
            helper.
  
      Raises:
        BadConfigObject: when the configuration object is of the wrong type.