           SPELL=llnextgen
         VERSION=0.5.5
          SOURCE="LLnextgen-$VERSION.tgz"
   SOURCE_URL[0]=http://os.ghalkes.nl/LLnextgen/releases/$SOURCE
     SOURCE_HASH=sha512:21e5ad5cc9c70eceac0be122e8698e62bfd700cb17da5dc88ff1ca798624b1202ac83654cb4f48963fa6295963c251d18a051503d71d771afd34de9fbf4f2b24
SOURCE_DIRECTORY="$BUILD_DIRECTORY/LLnextgen-$VERSION"
     GATHER_DOCS=off
        WEB_SITE="http://os.ghalkes.nl/LLnextgen/"
      LICENSE[0]="GPLv3"
         ENTERED=20160121
        KEYWORDS=""
           SHORT="an Extended LL(1) parser generator"
cat << EOF
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.
EOF
