ghalkes:~# command line tools

LLnextgen, an Extended LL(1) parser generator

About LLnextgen

This is the home page of LLnextgen. LLnextgen is an Extended-LL(1) parser generator. It is a rewrite of the LLgen parser generator by D. Grune and C.J.H. Jacobs which is part of the Amsterdam Compiler Kit (ACK). Like all parser generators, LLnextgen takes the description of the grammar with associated actions as input, and generates a parser routine for use in compilers and other text processing programs.

LLgen, and therefore LLnextgen, extends on the LL(1) class of parser generators by allowing FIRST/FIRST conflicts and FIRST/FOLLOW conflicts to be resolved with both static and dynamic conditions.

LLnextgen implements many features lacking in LLgen, that greatly improve its usability. Examples of such features are:

  • Tracing of conflicts – LLgen can only indicate where a conflict is detected, but not where it is caused. As the cause may be in a seemingly unrelated rule, conflicts can be very hard to find. LLnextgen can trace the cause of conflicts, making it much easier to resolve them.

  • Symbol tables – A symbol table can be auto-generated if the needed information is supplied.

  • Common code generation – Generation of code for reporting errors and wrapping the lexical analyser. This code is required by LLnextgen and LLgen, and is similar for all parsers created with LLnextgen/LLgen. The default code can also be used as a starting point for creating one's own code.

  • Return values – Return values for non-terminals.

For more information, see the documentation.

Copyright © 2005-2009,2011 G.P. Halkes
LLnextgen is licensed under the GNU General Public License version 3.