AustenX (sometimes just called "Austen") is a parser generator that uses Parsing Expression Grammars (PEGs), and a Packrat Parsing derived algorithm. Unlike other PEG parsers Austen currently uses an initial tokenisation step to convert the input into tokens, which are then handled by the grammar parser. This tokenisation can be done as part of the Austen package, and allows a particular token to be a member of more than one token class.
In essence, Austen is a tool for generating program code that can be used to parse text files based on a specialised language describing the syntax and grammar of the text to be read. Currently, on Java code can be generated.
AustenX has a number of significant features. These can be summarised as follows:
- Tokenisation, allowing possible gains in memory efficiency.
- The ability to exclude memorisation for particular PEG rules, and even to avoid full memorisation completely.
- A strong functioning support for rules with direct and indirect left-recursion, that works with or without memorisation.
- A better implementation for handling left-recursion that makes sense of the order of options, and allows complex parse trees with precedence to be easily created and specified.
- The specification language is not linked to any specific target language (though only Java is supported as a target currently).
- Extensions to the PEG framework that allow some semantic parsing, and potentially parsing of a greater class of input.
For version 1.1
- Some support for right to left languages
- Support functions for indentation sensitive languages
- More extensions to the PEG framework
- Some new features for better error handling
Version 1.1 (29 October 2014)
- AustenX 1.1 binary (including app binary, runtime library, and example)
- AustenX Runtime 1.1 library binary (minus Solar)
- AustenX Runtime 1.1 library binary (including Solar)
- AustenX 1.1 source only
- AustenX runtime 1.1 source only
- Examples source and binary
- Austen 1.0 binary (including runtime library, and example)
- Runtime library 1.0 binary (including Solar)
- Runtime library 1.0 binary (minus Solar)
- Austen 1.0 source only
- Austen 1.0 runtime source only
Please see also, the common libraries