diff options
Diffstat (limited to 'ruby_1_8_6/lib/rdoc/parsers/parse_simple.rb')
-rw-r--r-- | ruby_1_8_6/lib/rdoc/parsers/parse_simple.rb | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/ruby_1_8_6/lib/rdoc/parsers/parse_simple.rb b/ruby_1_8_6/lib/rdoc/parsers/parse_simple.rb new file mode 100644 index 0000000000..3f1a546964 --- /dev/null +++ b/ruby_1_8_6/lib/rdoc/parsers/parse_simple.rb @@ -0,0 +1,41 @@ +# Parse a non-source file. We basically take the whole thing +# as one big comment. If the first character in the file +# is '#', we strip leading pound signs. + + +require "rdoc/code_objects" +require "rdoc/markup/simple_markup/preprocess" + +module RDoc + # See rdoc/parsers/parse_c.rb + + class SimpleParser + + # prepare to parse a plain file + def initialize(top_level, file_name, body, options, stats) + + preprocess = SM::PreProcess.new(file_name, options.rdoc_include) + + preprocess.handle(body) do |directive, param| + $stderr.puts "Unrecognized directive '#{directive}' in #{file_name}" + end + + @body = body + @options = options + @top_level = top_level + end + + # Extract the file contents and attach them to the toplevel as a + # comment + + def scan + # @body.gsub(/^(\s\n)+/, '') + @top_level.comment = remove_private_comments(@body) + @top_level + end + + def remove_private_comments(comment) + comment.gsub(/^--.*?^\+\+/m, '').sub(/^--.*/m, '') + end + end +end |