autumn

A parser combinator library

License

License

GroupId

GroupId

com.norswap
ArtifactId

ArtifactId

autumn
Last Version

Last Version

1.2.0
Release Date

Release Date

Type

Type

pom.sha512
Description

Description

autumn
A parser combinator library
Project URL

Project URL

https://github.com/norswap/autumn
Source Code Management

Source Code Management

https://github.com/norswap/autumn

Download autumn

Dependencies

runtime (1)

Group / Artifact Type Version
com.norswap : utils jar 2.1.8

Project Modules

There are no modules declared in this project.

Autumn


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

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.

If you were looking for the Whimsy compiler framework, see here. The Uranium semantic analysis library lives on in this repository.

Versions

Version
1.2.0
1.1.0