Class: RDoc::RubyParser

Class | RDoc::RubyParser
In: | rdoc/parsers/parse_rb.rb
Parent: | Object

### Methods

new scan

### Included Modules

RubyToken TokenStream

### Constants

NORMAL | = | "::"
SINGLE | = | "<<"

### Public Class methods

new(top_level, file_name, content, options, stats)

[Source]

    # File rdoc/parsers/parse_rb.rb, line 1387
        def initialize(top_level, file_name, content, options, stats)
          @options = options
          @stats   = stats
          @size = 0
          @token_listeners = nil
          @input_file_name = file_name
          @scanner = RubyLex.new(content)
          @scanner.exception_on_syntax_error = false
          @top_level = top_level
          @progress = $stderr unless options.quiet
        end

### Public Instance methods

scan()

[Source]

    # File rdoc/parsers/parse_rb.rb, line 1399
        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

[Validate]