def parse_hit!(lineno, *paths)
      # If +LINENO+ isn't a series of digits, something has gone wrong. Add
      # +@files+ to the exception in order to propagate the existing coverage
      # data back to the {Bashcov::Runner} instance.
      if /\A\d+\z/.match?(lineno)
        lineno = lineno.to_i
      else
        raise XtraceError.new(
          "expected integer for LINENO, got #{lineno.inspect}", @files
        )
      end

      # The next three fields will be $BASH_SOURCE, $PWD, $OLDPWD, and $LINENO
      bash_source, pwd, oldpwd = paths.map { |p| Pathname.new(p) }

      update_wd_stacks!(pwd, oldpwd)

      script = find_script(bash_source)

      # For one-liners, +LINENO+ == 0. Do this to avoid an +IndexError+;
      # one-liners will be culled from the coverage results later on.
      index = (lineno > 1 ? lineno - 1 : 0)

      @files[script] ||= []
      @files[script][index] ||= 0
      @files[script][index] += 1
    end
def parse_hit!(lineno, *paths)
      # If +LINENO+ isn't a series of digits, something has gone wrong. Add
      # +@files+ to the exception in order to propagate the existing coverage
      # data back to the {Bashcov::Runner} instance.
      if /\A\d+\z/.match?(lineno)
        lineno = lineno.to_i
      else
        raise XtraceError.new(
          "expected integer for LINENO, got #{lineno.inspect}", @files
        )
      end

      # The next three fields will be $BASH_SOURCE, $PWD, $OLDPWD, and $LINENO
      bash_source, pwd, oldpwd = paths.map { |p| Pathname.new(p) }

      update_wd_stacks!(pwd, oldpwd)

      script = find_script(bash_source)

      # For one-liners, +LINENO+ == 0. Do this to avoid an +IndexError+;
      # one-liners will be culled from the coverage results later on.
      index = (lineno > 1 ? lineno - 1 : 0)

      @files[script] ||= []
      @files[script][index] ||= 0
      @files[script][index] += 1
    end
Parses the expanded {ps4} fields and updates the coverage-tracking
 {@files} hash
 @overload parse_hit!(lineno, bash_source, pwd, oldpwd)
   @param [String]  lineno       expanded +LINENO+
   @param [Pathname] bash_source expanded +BASH_SOURCE+
   @param [Pathname] pwd         expanded +PWD+
   @param [Pathname] oldpwd      expanded +OLDPWD+
 @return [void]
 @raise [XtraceError] when +lineno+ is not composed solely of digits,
   indicating that something has gone wrong with parsing the +PS4+ fields