Autumn is a Java (8+) parser combinator library written with an unmatched feature set:
- Bundles pre-defined parsers and combinators for most common use cases
- Write your own parsers with regular Java code
- Support for both scannerless parsing and a separate lexing/tokenization step
- Support for parsing both text strings and lists of objects
- Associativity support for operators
- Left-recursion support
- Context-sensitive parsing (exclusive !!)
- Reasonably fast (5x slower than (the very fast) ANTLR)
- Thoroughly documented
- Small & clean codebase
The latest version of this document is available online at https://github.com/norswap/autumn/blob/master/README.md
- Major (
M) is incremented when significant changes are made to the library. It might take non-trivial time to migrate.
- Minor (
m) is incremented when new features are added, or existing features are modified. The main contract here is that migration should be quick, and a clear migration path exists.
- Patch (
p) is incremented for hotfixes, or tiny / quality-of-life improvements. Patch never introduce breaking changes, excepted under the guise of bug-fixes.