- Make all non-captured parsers use
.ignore()
to drop their outputs- This makes it possible to do things such as
#(a | b)
wherea
andb
have different types. Since the overall output is ignored, both their outputs will be ignored and the parsers do not have to have the same output type.
- This makes it possible to do things such as
- Added character literals like
'"'
- Fix issue with incomplete parses sometimes not generating any errors
- Write tutorial
- Fixed some strange error messages
- Made AppendCell crate-private
- Overhaul of error handling internals
- ~20% improvement in parser performance
- Improve errors for missing delimiters
- Add some missing documentation
- Implement automatic error recovery
- Enabled with
recover = true
in your parser's configuration block - Automatically recovers to the delimiters of delimited lists and of wrapped named rules
- Wrapped named rules like
parens: "(" parens* ")" -> MyType { ... }
- Wrapped named rules like
- Enabled with
- Remove all runtime dependencies
- Implement lookahead optimization
- Automatically generates a match statement at compiletime for choice patterns
- Looks ahead by one character only
- ~25% improvement in parser performance
- Add tests
- Improve docs
- Add parser_repl function for easy testing of a simple parser
- Only intended for debugging, very minimal REPL without scrolling
- Prettier, more informative errors
- Error ranges, which point out an error's origin / context as well
- Implementation of proof of concept parsers
- Initial working release