Next: C++ Scanner Interface, Previous: C++ Location Values, Up: C++ Parsers [Contents][Index]
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 token FOO
,
use yy::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
.
Get or set the tracing level. Currently its value is either 0, no trace, or nonzero, full tracing.
The definition for this member function must be supplied by the user: the parser uses it to report a parser error occurring at l, described by m.
Next: C++ Scanner Interface, Previous: C++ Location Values, Up: C++ Parsers [Contents][Index]