class Sequitur::Formatter::BaseFormatter

Superclass for grammar formatters.

Attributes

output[RW]

The IO output stream in which the formatter’s result will be sent.

Public Class Methods

new(anIO) click to toggle source

Constructor. @param anIO [IO] an output IO where the formatter’s result will be placed.

# File lib/sequitur/formatter/base_formatter.rb, line 14
def initialize(anIO)
  @output = anIO
end

Public Instance Methods

render(aGrmOrVisitor) click to toggle source

Given a grammar or a grammar visitor, perform the visit and render the visit events in the output stream. @param aGrmOrVisitor [DynamicGrammar, GrammarVisitor]

# File lib/sequitur/formatter/base_formatter.rb, line 21
def render(aGrmOrVisitor)
  a_visitor = if aGrmOrVisitor.is_a?(GrammarVisitor)
                aGrmOrVisitor
              else
                aGrmOrVisitor.visitor
              end

  a_visitor.subscribe(self)
  a_visitor.start
  a_visitor.unsubscribe(self)
end