code: public function parse()
      {
          list($opt_str, $long_opts, $mapping) = $this->getOptString();
          $opts = \getopt($opt_str, $long_opts);
          $options = $this->mapOptions($opts, $mapping);
          return new Dictionary($options);
      }
docs: Parse the provided arguments and options.
  
  @param $arguments array The list of arguments to parse
  @return array Associative array of option => argument pairs. For option without an argument, the argument === false
  @codeCoverageIgnore We cannot fool getopt to modify the arguments, so this cannot be unit tested