Class: YARD::Parser::Base Abstract
- Inherits:
-
Object
- Object
- YARD::Parser::Base
- Defined in:
- lib/yard/parser/base.rb
Overview
Represents the abstract base parser class that parses source code in a specific way. A parser should implement #parse, #tokenize and #enumerator.
Registering a Custom Parser
To register a parser, see SourceParser.register_parser_type
Direct Known Subclasses
Class Method Summary (collapse)
-
+ (Object) parse(source, filename = nil)
Convenience method to create a new parser and #parse.
Instance Method Summary (collapse)
-
- (Array?) enumerator
abstract
This method should be implemented to return a list of semantic tokens representing the source code to be post-processed.
-
- (Base) initialize(source, filename)
constructor
This default constructor does nothing.
-
- (Base) parse
abstract
This method should be implemented to parse the source and return itself.
-
- (Array) tokenize
abstract
This method should be implemented to tokenize given source.
Constructor Details
- (Base) initialize(source, filename)
This default constructor does nothing. The subclass is responsible for storing the source contents and filename if they are required.
25 26 27 |
# File 'lib/yard/parser/base.rb', line 25 def initialize(source, filename) raise NotImplementedError, "invalid parser implementation" end |
Class Method Details
+ (Object) parse(source, filename = nil)
Convenience method to create a new parser and #parse
17 18 19 |
# File 'lib/yard/parser/base.rb', line 17 def self.parse(source, filename = nil) new(source, filename).parse end |
Instance Method Details
- (Array?) enumerator
This method should be implemented to return a list of semantic tokens representing the source code to be post-processed. Otherwise the method should return nil.
51 52 53 |
# File 'lib/yard/parser/base.rb', line 51 def enumerator nil end |
- (Base) parse
This method should be implemented to parse the source and return itself.
32 33 34 |
# File 'lib/yard/parser/base.rb', line 32 def parse raise NotImplementedError, "#{self.class} must implement #parse" end |
- (Array) tokenize
This method should be implemented to tokenize given source
39 40 41 |
# File 'lib/yard/parser/base.rb', line 39 def tokenize raise NotImplementedError, "#{self.class} does not support tokenization" end |