Next: C++ Semantic Values, Up: C++ Parsers [Contents][Index]
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:
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.
An auxiliary class stack
used by the parser.
(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.