| Class | Parser::Diagnostic::Engine |
| In: |
lib/parser/diagnostic/engine.rb
|
| Parent: | Object |
{Parser::Diagnostic::Engine} provides a basic API for dealing with diagnostics by delegating them to registered consumers.
@example
buffer = Parser::Source::Buffer.new(__FILE__)
buffer.code = '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]
| all_errors_are_fatal | [RW] | |
| consumer | [RW] | |
| ignore_warnings | [RW] |
Processes a `diagnostic`:
* Passes the diagnostic to the consumer, if it's not a warning when
`ignore_warnings` is set.
* After that, raises {Parser::SyntaxError} when `all_errors_are_fatal`
is set to true.
@param [Parser::Diagnostic] diagnostic @return [Parser::Diagnostic::Engine] @see ignore? @see raise?
Checks whether `diagnostic` should be ignored.
@param [Parser::Diagnostic] diagnostic @return [Boolean]
Checks whether `diagnostic` should be raised as an exception.
@param [Parser::Diagnostic] diagnostic @return [Boolean]