Class | YARD::Parser::Base
In: | lib/yard/parser/base.rb
Parent: | Object

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}

@abstract @see parse @see tokenize @see enumerator @since 0.5.6

### Methods

enumerator new parse parse tokenize

### Public Class methods

new(source, filename)

This default constructor does nothing. The subclass is responsible for storing the source contents and filename if they are required. @param [String] source the source contents @param [String] filename the name of the file if from disk

parse(source, filename = nil)

Convenience method to create a new parser and {parse}

### Public Instance methods

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.

@abstract @return [Array] a list of semantic tokens representing the source code

      to be post-processed

@return [nil] if no post-processing should be done

parse()

This method should be implemented to parse the source and return itself. @abstract @return [Base] this method should return itself

tokenize()

This method should be implemented to tokenize given source @abstract @return [Array] a list/tree of lexical tokens

[Validate]