2 releases

0.0.1 Jun 23, 2021
0.0.0 Jun 13, 2021

#47 in #parse-tree

MIT/Apache

58KB
870 lines

version downloads docs license

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.

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!

License: MIT OR Apache-2.0

Dependencies

~5–12MB
~152K SLoC