Class: RDocF95::RubyParser
- Inherits:
-
Object
- Object
- RDocF95::RubyParser
- Extended by:
- ParserFactory
- Includes:
- TokenStream, RubyToken
- Defined in:
- lib/rdoc-f95/parsers/parse_rb.rb
Overview
Extract code elements from a source file, returning a TopLevel object containing the constituent file elements.
This file is based on rtags
Constant Summary
Constants included from RubyToken
RubyToken::EXPR_ARG, RubyToken::EXPR_BEG, RubyToken::EXPR_CLASS, RubyToken::EXPR_DOT, RubyToken::EXPR_END, RubyToken::EXPR_FNAME, RubyToken::EXPR_MID, RubyToken::NEWLINE_TOKEN, RubyToken::TkReading2Token, RubyToken::TkSymbol2Token, RubyToken::TokenDefinitions
Instance Method Summary collapse
-
#initialize(top_level, file_name, content, options, stats) ⇒ RubyParser
constructor
A new instance of RubyParser.
- #scan ⇒ Object
Methods included from ParserFactory
alias_extension, can_parse, parse_files_matching, parser_for
Methods included from TokenStream
#add_token, #add_tokens, #pop_token, #start_collecting_tokens, #token_stream
Methods included from RubyToken
#Token, def_token, #set_token_position
Constructor Details
#initialize(top_level, file_name, content, options, stats) ⇒ RubyParser
Returns a new instance of RubyParser.
1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 |
# File 'lib/rdoc-f95/parsers/parse_rb.rb', line 1376 def initialize(top_level, file_name, content, , stats) @options = @stats = stats @size = 0 @token_listeners = nil @input_file_name = file_name @scanner = RubyLex.new content, @options @scanner.exception_on_syntax_error = false @top_level = top_level @progress = $stderr unless .quiet end |
Instance Method Details
#scan ⇒ Object
1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 |
# File 'lib/rdoc-f95/parsers/parse_rb.rb', line 1388 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 |