class Parser::Diagnostic::Engine

{Parser::Diagnostic::Engine} provides a basic API for dealing with diagnostics by delegating them to registered consumers.

@example

buffer      = Parser::Source::Buffer.new(__FILE__, source: 'foobar')

consumer = lambda do |diagnostic|
  puts diagnostic.message
end

engine     = Parser::Diagnostic::Engine.new(consumer)
diagnostic = Parser::Diagnostic.new(
    :warning, :unexpected_token, { :token => 'abc' }, buffer, 1..2)

engine.process(diagnostic) # => "unexpected token abc"

@api public

@!attribute [rw] consumer

@return [#call(Diagnostic)]

@!attribute [rw] all_errors_are_fatal

When set to `true` any error that is encountered will result in
{Parser::SyntaxError} being raised.
@return [Boolean]

@!attribute [rw] ignore_warnings

When set to `true` warnings will be ignored.
@return [Boolean]