Absimpa is a Java class library that provides a recursive decent parser. It is an experiment in abstraction and Java generics. It tries to include only the essentials of what makes out a parser and to leave out, or rather leave free for specification, what is not relevant for the parsing process.
|Tags||Software Development Compilers Text Processing General|
Release Notes: Grammars can no longer have lookahead conflicts. Instead, possible reductions are automatically prioritized according to the order in which they were added to the grammar. The design is much more streamlined in that every type of sub grammar can have a node factory. Each Grammar now provides the operators star(), plus(), and opt() to make incremental grammar building easier. A means to write grammars in a BNF like fashion instead of using the GrammarBuilder was added. A simple lexer is provided for non-performance-critical uses.
Release Notes: A slight change in the architecture allowed the removal of one generic parameter while maintaining the overall generality of the approach. The benefit is that using the package is much easier. Furthermore, the recursive decent of the parser was conceptually different before for a choice and a sequence element, resulting in a hidden bug. By improving the conceptual integrity of how the recursive steps are performed, the bug could be fixed. In addition, the code is much more readable now.
Release Notes: While the interface has nearly no changes, the package underwent major refactoring. In particular, an example package was extracted from the tests to serve as a hint of how the parser can be used. The documentation was extended.
No changes have been submitted for this release.