[](https://crates.io/crates/parce)
[](https://crates.io/crates/parce)
[](https://docs.rs/parce/)

# parce
Parce is a parser and lexer generator, where the grammar and the parse tree are the same
data structure. It is similar to ANTLR, but the grammar is written in Rust code, not a
special DSL.
## Links
- [crates.io](https://crates.io/crates/parce)
- [docs.rs](https://docs.rs/parce/)
## Features
### Lexer Features
- Regex-like repetition operators
- The usual `*`, `+`, and `?`
- And also `{n}` (exactly n), `{n,}` (n or more), and `{n,m}` (between n and m inclusive) <- ANTLR doesn't have those :)
- Lexeme nesting
- Regex-like character classes
- Skipped lexemes
- Fragment lexemes
- Modal lexers
- unlike ANTLR, lexemes can be active in multiple modes
### Parser Features
## Future plans
- Semantic predicates
- left-recursive grammar re-writing like ANTLR, using semantic predicates
- Data post-processors
- multi-threaded lexing and parsing.
## Contributing
If you find a bug or want a new feature, please create an issue or pull request on [GitHub](https://github.com/JoelCourtney/parce)!
License: MIT OR Apache-2.0