# File lib/rdoc/parsers/parse_rb.rb, line 1385
  def scan
    @tokens = []
    @unget_read = []
    @read = []
    catch(:eof) do
      catch(:enddoc) do
        begin
          parse_toplevel_statements(@top_level)
        rescue Exception => e
          $stderr.puts "\n\n"
          $stderr.puts "RDoc failure in #@input_file_name at or around " +
                       "line #{@scanner.line_no} column #{@scanner.char_no}"
          $stderr.puts
          $stderr.puts "Before reporting this, could you check that the file"
          $stderr.puts "you're documenting compiles cleanly--RDoc is not a"
          $stderr.puts "full Ruby parser, and gets confused easily if fed"
          $stderr.puts "invalid programs."
          $stderr.puts
          $stderr.puts "The internal error was:\n\n"

          e.set_backtrace(e.backtrace[0,4])
          raise
        end
      end
    end
    @top_level
  end