10.1.1 C++ Bison Interface

The C++ deterministic parser is selected using the skeleton directive,
‘%skeleton "lalr1.cc"’, or the synonymous command-line option
--skeleton=lalr1.cc.
See Decl Summary.

When run, bison will create several entities in the ‘yy’
namespace.
Use the ‘%define api.namespace’ directive to change the namespace name,
see api.namespace. The various classes are generated
in the following files:

position.hh

location.hh

The definition of the classes position and location, used for
location tracking when enabled. These files are not generated if the
%define variable api.location.type is defined. See C++ Location Values.

stack.hh

An auxiliary class stack used by the parser.

file.hh

file.cc

(Assuming the extension of the grammar file was ‘.yy’.) The
declaration and implementation of the C++ parser class. The basename
and extension of these two files follow the same rules as with regular C
parsers (see Invocation).

The header is mandatory; you must either pass
-d/--defines to bison, or use the
‘%defines’ directive.

All these files are documented using Doxygen; run doxygen
for a complete and accurate documentation.