Squatted crate for a [Modern Parser Generator](https://matklad.github.io/2018/06/06/modern-parser-generator.html). Contact @CAD97 if you want to collaborate on development of this tool. Solo development will happen when they find time and motivation concurrently. Until then, check out [tree-sitter](https://github.com/tree-sitter/tree-sitter). Namely, inspired by matklad's post, mpg will provide ## UX Tooling designed IDE-first. - Interactive development. Provide example inputs while editing the grammar and immediately see the resulting syntax trees. - Inline snapshot tests. Example productions listed next to the defining rules are automatically tested with the resulting syntax trees tracked in version control. - Full LSP support. ## API - Designed to be used on top of a separate lexer. - Supports pull-lexing with principled lexical feedback. - Prefers pre-lexing with replayable incremental reparsing. - Produces a homogeneous literal syntax tree. - Provides an optional typed view of the literal syntax tree. - Embeddable anywhere via a C API. ## Parsing Techniques - Specify operator precedence and associativity directly. - Strong error tolerance/recovery via follow sets and explicit recovery points. - Choose your tradeoffs: - Guaranteed determinism at a cost of generality. - Full generality at the cost of ambiguity. Quality of incorrect syntax error messages is a non-priority left to the user.