3 releases
new 0.0.3 | May 16, 2024 |
---|---|
0.0.2 | May 16, 2024 |
0.0.1 | May 10, 2024 |
#3 in #zero-dependency
382 downloads per month
Used in shrimple
45KB
646 lines
Zero-dependency library for writing parsers in a concise functional style & with exhaustive error-reporting.
Kinds of errors are distinguished via a user-defined Reason
type, which signals what did
a parser expect.
A ParsingError
can also have no reason, which will mean that the error is recoverable.
Some built-in parsers can have std::convert::Infallible
as their error reason,
which means that any error the parser may ever return is recoverable.
The distinction between recoverable & fatal errors is important for parsers that need to try
multiple options.
Error reporting with precise location in the source is facilitated by
constructing a FullParsingError
with methods such as
Parser::with_full_error
, ParsingError::with_src_loc