The output files output.hh and output.cc
declare and define the parser class in the namespace yy
. The
class name defaults to parser
, but may be changed using
‘%define parser_class_name "name"’. The interface of
this class is detailed below. It can be extended using the
%parse-param
feature: its semantics is slightly changed since
it describes an additional member of the parser class, and an
additional argument for its constructor.
The types for semantics value and locations.
A structure that contains (only) the
yytokentype
enumeration, which defines the tokens. To refer to the tokenFOO
, useyy::parser::token::FOO
. The scanner can use ‘typedef yy::parser::token token;’ to “import” the token enumeration (see Calc++ Scanner).
Build a new parser object. There are no arguments by default, unless ‘%parse-param {type1 arg1}’ was used.
Run the syntactic analysis, and return 0 on success, 1 otherwise.
The whole function is wrapped in a
try
/catch
block, so that when an exception is thrown, the%destructor
s are called to release the lookahead symbol, and the symbols pushed on the stack.
Get or set the stream used for tracing the parsing. It defaults to
std::cerr
.