Ausführliche Beschreibung | Bisonc++ was designed after `bison++', created by Alain Coetmeur. Bisonc++
adds to bison++ a cleaner class-design, using a base-class to communicate
lexical tokens to a lexical scanner.
.
Since bisonc++ generates the parser class as well as the parsing
function. The class can easily be provided with additional members without
needing polymorphic functions. Consequently, classes generated by bisonc++
have no virtual members and actually have but one public member: parse(),
replacing the old-style bison and bison++ yyparse() function.
.
Bisonc++ offers many options, among which an option to define classes
generated by bisonc++ in a separate namespace. This allows developers to
define additional symbols, even outside of the class generated by bisonc++,
without encountering name-collision problems. With bisonc++, artificial means
to prevent name-collisions, like bison and bison++'s yy-convention are not
required anymore when using bisonc++. Bisonc++ merely generates C++ code. If
C code is required, bison should be used. Bisonc++'s grammar requirements are
highly compatible with bison's requirements, so converting a bison grammar
into a bisonc++ grammar should be fairly simple.
.
In addition to the bisonc++ parser generator itself and several skeleton
files, the package contains an extensive man-page, a full manual rewritten
after the original bison manual, and several examples.
.
Some history: Bisonc++ versions 0.98 is a complete rewrite of an LALR(1)
parser generator, as described in Aho, Sethi and Ullman's (1986) book
`Compilers' (a.k.a. the `Dragon Book'). Version 0.98 was completed in May
2005. Another major rewrite was completed one year later, May 2006, resulting
in version 1.00.
.
This package provides the supplemental documentation for Bisonc++.
|