# File lib/cri/option_parser.rb, line 162
    def run
      @running = true

      while running?
        # Get next item
        e = @unprocessed_arguments_and_options.shift
        break if e.nil?

        if e == '--'
          handle_dashdash(e)
        elsif e =~ /^--./ and !@no_more_options
          handle_dashdash_option(e)
        elsif e =~ /^-./ and !@no_more_options
          handle_dash_option(e)
        else
          add_argument(e)
        end
      end
      self
    ensure
      @running = false
    end