- Install
- Javadoc (updates daily) / Mirror (might need loading)
- User Guide
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
Examples:
The latest version of this document is available online at https://github.com/norswap/autumn/blob/master/README.md
Versions are M.m.p
- 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.
If you were looking for older Autumn releases (such as those described in one of my papers), see the autumn_archive repository.
If you were looking for the Whimsy compiler framework, see here. The Uranium semantic analysis library lives on in this repository.