Expand description
Error management
Errors are designed with multiple needs in mind:
- Accumulate more context as the error goes up the parser chain
- Distinguish between recoverable errors, unrecoverable errors, and more data is needed
- Have a very low overhead, as errors are often discarded by the calling parser (examples:
many0
,alt
) - Can be modified according to the user’s needs, because some languages need a lot more information
- Help thread-through the stream
To abstract these needs away from the user, generally winnow
parsers use the IResult
alias, rather than Result
. finish
is
provided for top-level parsers to integrate with your application’s error reporting.
Error types include:
()
Error
VerboseError
- [Custom errors][crate::_topic::error]
Structs
Default error type, only contains the error’ location and kind
Accumulates error information while backtracking
Enums
The
Err
enum indicates the parser was not successfulProvide some minor debug context for errors
Contains information on needed data if a parser returned
Incomplete
Error context for
VerboseError
Traits
Used by
Parser::context
to add custom data to error while backtrackingEquivalent of
From
implementation to avoid orphan rules in bits parsersFinishIResultDeprecated
Extension trait to convert a parser’s
IResult
to a more manageable typeCreate a new error with an external error, from
std::str::FromStr
The basic
Parser
trait for errorsFunctions
Transforms a
VerboseError
into a trace with input position information