LRX: LR(*) parser generator for C++ A.M.D.G.
About License Download
and Setup
LRX DFA Release

About LRX

LRX is the new name for an older product, called LRSTAR, which was available from 2010 to 2020. LRX has the new improved LR(*) lookahead algorithm and other improvements.

1. New for 2020. LRX reads YACC/Bison and ANTLR grammars. For YACC grammars, it's mostly about deleting %token stuff from the top and code from the bottom. For ANTLR grammars, it's mostly about deleting the lexical rules at the bottom. However, the ANTLR grammars have a tendency to be "ambiguous" and may have to be "unambiguated".

2. New for 2020. LRX has improved LR(*) parsing, comparable to ANTLR's LL(*) parsing, but it looks like ANTLR has the advantage, based a few tests. YACC/Bison has no LR(*) or LL(*), but it does have GLR parsing which has more memory overhead.

3. New for YACC/Bison users. LRX gives you (1) EBNF grammar notation, (2) Symbol-table builder, (3) automatic AST construction, (4) AST traversal calling your AST actions, (5) LR(*) parsing for "unlimited" lookahead, (6) separation between code and grammar.

4. New for ANTLR users. LRX gives you (1) small parser engines (1/10th size of ANTLR parsers), (2) faster parsers (100x faster than ANTLR with C++ target), (3) a report of ambiguities in your grammar (something you may not care about, however). Data is based on testing of a C language parser.

(c) Copyright Paul B Mann 2020.  All rights reserved.