Filewatcher File Search File Search
Content Search
» » » » »


Bison-style parser generator for C++

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++.

Package version:2.7.0-2


This hierarchy defines the header and the implementation dependencies among
the classes. The topmost class is not dependent on any class. Lines should be
read down-to-up to finde the the lowest class in the hierarchy on which a
given class depends (e.g., LookaheadSet depends on Rules, and possibly uses
the classes used by Rules; RmReduction does not depend on any other class).



                          About the lexical scanner

Bisonc++ uses a lexical scanner generated by flex.

The file bisonc++/scanner/ depends on a file FlexLexer.h having
different contents over different `flex' versions.

Bisonc++ therefore also depends on flex being installed, callable as the
program `flex'. 

Starting with Bisonc++ versi


This file describes the lookahead-propagation procedure as used by Bisonc++
A more extensive description is found in documentation/manual/algorithm.yo

Start with the following simple grammar:

    1   run$:   run
    2   run:    one
    3   run:    two X
    4   one:  

    5   two:    one

This grammar produces the following states:

    S0:     run$:   .   run     (kernel)    



Bisonc++ 2.0.0 uses a grammar specification file (parser/grammar) defining the
input language that i


This file contains a short description about the way states and look-aheads
(LA's) are constructed. 


        Run `build clean' to cleanup, `build demo' to create the program.


Most examples available before version 1.00 are now in the ../regression
directory, where they are m


This is the same example as given in ../bison++Example.ORG, but this time it's
adapted to bisonc++


Browse inside bisonc++-doc_2.7.0-2_all.deb

         [DIR]DEBIAN/ (2)  65535+ mirrors
         [DIR]usr/ (1)  65535+ mirrors

Download bisonc++-doc_2.7.0-2_all.deb

Results 1 - 1 of 1
Help - FTP Sites List - Software Dir.
Search over 15 billion files
© 1997-2017