Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/norswap/autumn
A Java parser combinator library written with an unmatched feature set.
https://github.com/norswap/autumn
grammar grammars parse-trees parser parser-combinator parser-combinators parser-framework parser-library parsers parsing parsing-combinators parsing-expression-grammar
Last synced: 6 days ago
JSON representation
A Java parser combinator library written with an unmatched feature set.
- Host: GitHub
- URL: https://github.com/norswap/autumn
- Owner: norswap
- License: bsd-3-clause
- Created: 2016-11-22T15:12:16.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2021-10-30T13:37:02.000Z (about 3 years ago)
- Last Synced: 2024-04-13T22:04:25.376Z (7 months ago)
- Topics: grammar, grammars, parse-trees, parser, parser-combinator, parser-combinators, parser-framework, parser-library, parsers, parsing, parsing-combinators, parsing-expression-grammar
- Language: Java
- Homepage:
- Size: 1.15 MB
- Stars: 119
- Watchers: 8
- Forks: 15
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Autumn
- [Install](/doc/INSTALL.md)
- [Javadoc] (updates daily) / [Mirror] (might need loading)
- [User Guide](/doc/README.md)[Javadoc]: https://javadoc.io/doc/com.norswap/autumn/
[Mirror]: https://jitpack.io/com/github/norswap/autumn/-SNAPSHOT/javadoc/---
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 codebaseExamples:
- [JSON Grammar](/examples/norswap/lang/json/JSON.java)
- [Java Grammar](/examples/norswap/lang/java/JavaGrammar.java)The latest version of this document is available online at
https://github.com/norswap/autumn/blob/master/README.md## Versioning
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.## Legacy
If you were looking for older Autumn releases (such as those described in one of my [papers]), see
the [autumn_archive repository][archive].If you were looking for the Whimsy compiler framework, see [here][whimsy]. The Uranium
semantic analysis library lives on [in this repository][uranium].[papers]: https://norswap.com/publications/
[archive]: https://github.com/ncellar/autumn_archive
[whimsy]: https://github.com/ncellar/whimsy
[uranium]: https://github.com/norswap/uranium