#parser-combinator #error #error-reporting #next-gen #flexible #location #zero-dependency

shrimple-parser

Zero-dependency next-gen parsing combinator library with flexible error reporting

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

Download history 114/week @ 2024-05-05 268/week @ 2024-05-12

382 downloads per month
Used in shrimple

MIT license

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

No runtime deps

Features