B() is a general-purpose parser generator that converts a
grammar description for an LALR(1) context-free grammar into a bf(C++)
class to parse that grammar.  Once you are proficient with b(),
you may use it to develop a wide range of language parsers, from those
used in simple desk calculators to complex programming languages.

B() is highly comparable to the program bison++, written by Alain
Coetmeur: all properly-written bison++ grammars ought to be convertible to
b() grammars after very little or no change.  Anyone familiar with
bison++ or its precursor, bison, should be able to use b() with little
trouble.  You need to be fluent in using the bf(C++) programming in order to
use b() or to understand this manual.

This manual closely resembles bf(bison)(1)'s userguide. In fact, many sections
of that manual were copied straight into this manual. With b() distributions
(both the full source distribution and the binary tt(.deb) distributions)
bf(bison)'s orginal manual is included in both em(PostScript) and (converted
from the tt(texi) format) tt(HTML) format. Where necessary sections of the
original manual were adapted to b()'s characteristics. Some sections were
removed, some new sections were added to the current manual. Expect upgrades
of the manual to appear without further notice. Upgrades will be announced in
the manual's title.

The current manual starts with tutorial chapters that explain the basic
concepts of using b() and show three explained examples, each building on its
previous (where available).  If you don't know b(), bison++ or bison, start by
reading these chapters.  Reference chapters follow which describe specific
aspects of the program b() in detail.

B() was designed and built by url(Frank
B. Brokken)(mailto:f.b.brokken@rug.nl). The program's initial release was
constructed between November 2004 and May 2005.

