   parse: () =>
     @_gather()
     @_resolveOpts()
+    @_log(@)
 
 module.exports = Bebopt

      if fn is undefined
        self._parent.type ?= op
        self["_#{listName}"][name] = self._parent
        self["_#{listName}"][name].parent = self._parent
      else
        self["_#{listName}"][name] =
          cb: fn
          type: op
          parent: self._parent
      self._parent = self["_#{listName}"][name]
      return self))


  # that arg is added to the option's object
  # within the respective
  # option list, such as `@_long'
  _catchSpaceDelimArgs: (opt, list) =>
    if list[opt.arg].type isnt 'flag'
      if opt.optarg is undefined
        @_args.forEach((nonOpt, ind) =>
          if nonOpt.index is (opt.index + 1)
            opt.optarg = nonOpt.arg
            delete @_args[ind])
    return opt

  _catchInvalidOpt: (opt, list) =>
    if list is 'short' and @_short[opt.arg] is undefined
      console.error("#{@app}: invalid option -- '#{opt.arg}'")
      process.exit(1)
    else if list is 'long' and @_long[opt.arg] is undefined
      console.error("#{@app}: unrecognized option '--#{opt.arg}'")
      process.exit(1)

