File: parser.rb [rdoc: Ruby Standard Library Documentation]

Last Modified
  2019-05-06 17:15:12 -0500
Requires
  - rdoc/parser/simple
  - rdoc/parser/c
  - rdoc/parser/changelog
  - rdoc/parser/markdown
  - rdoc/parser/rd
  - rdoc/parser/ruby

## Description

A parser is simple a class that subclasses RDoc::Parser and implements scan to fill in an RDoc::TopLevel with parsed data.

The initialize method takes an RDoc::TopLevel to fill with parsed content, the name of the file to be parsed, the content of the file, an RDoc::Options object and an RDoc::Stats object to inform the user of parsed items. The scan method is then called to parse the file and must return the RDoc::TopLevel object. By calling super these items will be set for you.

In order to be used by RDoc the parser needs to register the file extensions it can parse. Use ::parse_files_matching to register extensions.

    require 'rdoc'

    class RDoc::Parser::Xyz < RDoc::Parser
      parse_files_matching /\.xyz$/

      def initialize top_level, file_name, content, options, stats
        super

        # extra initialization if needed
      end

      def scan
        # parse file and fill in @top_level
      end
    end