All Projects → norswap → autumn

norswap / autumn

Licence: BSD-3-Clause license
A Java parser combinator library written with an unmatched feature set.

Programming Languages

java
68154 projects - #9 most used programming language
kotlin
9241 projects

Projects that are alternatives of or similar to autumn

leftry
Leftry - A left-recursion enabled recursive-descent parser combinator library for Lua.
Stars: ✭ 32 (-71.43%)
Mutual labels:  parser-combinators, parser-library, parsers
arborist
Arborist is a PEG parser that supports left-associative left recursion
Stars: ✭ 17 (-84.82%)
Mutual labels:  parsing, parsing-expression-grammar, parser-combinator
metal
A Java library for parsing binary data formats, using declarative descriptions.
Stars: ✭ 13 (-88.39%)
Mutual labels:  parsing, parser-combinators, parser-library
Covfefe
A parser for nondeterministic context free languages
Stars: ✭ 49 (-56.25%)
Mutual labels:  parsing, parser-library, parser-framework
parser-lang
A parser combinator library with declarative superpowers
Stars: ✭ 25 (-77.68%)
Mutual labels:  parsing, parser-combinators, parser-combinator
Chevrotain
Parser Building Toolkit for JavaScript
Stars: ✭ 1,795 (+1502.68%)
Mutual labels:  grammars, parsing, parser-library
Pidgin
C#'s fastest parser combinator library
Stars: ✭ 469 (+318.75%)
Mutual labels:  parsing, parser-combinators
Scala Parser Combinators
simple combinator-based parsing for Scala. formerly part of the Scala standard library, now a separate community-maintained module
Stars: ✭ 523 (+366.96%)
Mutual labels:  parsing, parser-combinators
left-recursion
Quick explanation of eliminating left recursion in Haskell parsers
Stars: ✭ 36 (-67.86%)
Mutual labels:  grammars, parsing
Parser Combinators From Scratch
Code that accompanies the series
Stars: ✭ 56 (-50%)
Mutual labels:  parsing, parser-combinators
cs-resources
Curated Computer Science and Programming Resource Guide
Stars: ✭ 42 (-62.5%)
Mutual labels:  parsing, parsers
Lug
Parsing expression grammar (PEG) embedded domain specific language and parsing machine for C++17
Stars: ✭ 44 (-60.71%)
Mutual labels:  parsing, parser-combinators
Ohm
A library and language for building parsers, interpreters, compilers, etc.
Stars: ✭ 3,938 (+3416.07%)
Mutual labels:  grammars, parsing
Angstrom
Parser combinators built for speed and memory efficiency
Stars: ✭ 434 (+287.5%)
Mutual labels:  parsing, parser-combinators
Kgt
BNF wrangling and railroad diagrams
Stars: ✭ 312 (+178.57%)
Mutual labels:  parsing, parser-library
Comby
A tool for structural code search and replace that supports ~every language.
Stars: ✭ 912 (+714.29%)
Mutual labels:  parsing, parser-combinators
Pom
PEG parser combinators using operator overloading without macros.
Stars: ✭ 310 (+176.79%)
Mutual labels:  parsing, parser-combinators
Pyparsing
Python library for creating PEG parsers
Stars: ✭ 1,052 (+839.29%)
Mutual labels:  parsing, parser-combinators
Parjs
JavaScript parser-combinator library
Stars: ✭ 145 (+29.46%)
Mutual labels:  parsing, parser-combinators
Pegtl
Parsing Expression Grammar Template Library
Stars: ✭ 1,295 (+1056.25%)
Mutual labels:  parsing, parser-combinators

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].