Class Parslet::ErrorReporter::Deepest
In: lib/parslet/error_reporter/deepest.rb
Parent: Object

Instead of reporting the latest error that happens like {Tree} does, this class reports the deepest error. Depth is defined here as how advanced into the input an error happens. The errors close to the greatest depth tend to be more relevant to the end user, since they specify what could be done to make them go away.

More specifically, errors produced by this reporter won‘t be related to the structure of the grammar at all. The positions of the errors will be advanced and convey at every grammar level what the deepest rule was to fail.

Methods

deepest   err   err_at   new  

Attributes

deepest_cause  [R]  Returns the cause that is currently deepest. Mainly for specs.

Public Class methods

Public Instance methods

Checks to see if the lineage of the cause given includes a cause with an error position deeper than the current deepest cause stored. If yes, it passes the cause through to the caller. If no, it returns the current deepest error that was saved as a reference.

Produces an error cause that combines the message at the current level with the errors that happened at a level below (children).

@param atom [Parslet::Atoms::Base] parslet that failed @param source [Source] Source that we‘re using for this parse. (line

  number information...)

@param message [String, Array] Error message at this level. @param children [Array] A list of errors from a deeper level (or nil). @return [Cause] An error tree combining children with message.

Produces an error cause that combines the message at the current level with the errors that happened at a level below (children).

@param atom [Parslet::Atoms::Base] parslet that failed @param source [Source] Source that we‘re using for this parse. (line

  number information...)

@param message [String, Array] Error message at this level. @param pos [Fixnum] The real position of the error. @param children [Array] A list of errors from a deeper level (or nil). @return [Cause] An error tree combining children with message.

[Validate]