/// A Bison parser.
class ]b4_parser_class_name[
{
- public:
- /// Internal symbol numbers.
- typedef traits<]b4_parser_class_name[>::token_number_type token_number_type;
- /// A type to store symbol numbers and -1.
- typedef traits<]b4_parser_class_name[>::rhs_number_type rhs_number_type;
- /// State numbers.
- typedef traits<]b4_parser_class_name[>::state_type state_type;
/// Symbol semantic values.
- typedef traits<]b4_parser_class_name[>::semantic_type semantic_type;
+ typedef traits<]b4_parser_class_name[>::semantic_type semantic_type;
/// Symbol locations.
- typedef traits<]b4_parser_class_name[>::location_type location_type;
-
- /// State stack type.
- typedef stack<state_type> state_stack;
- /// Semantic value stack type.
- typedef stack<semantic_type> semantic_stack;
- /// location stack type.
- typedef stack<location_type> location_stack;
+ typedef traits<]b4_parser_class_name[>::location_type location_type;
+ public:
/// Build a parser object.
]b4_parser_class_name[ (]b4_parse_param_decl[) :
yydebug_ (false),
#endif /* ! YYDEBUG */
+ /// State numbers.
+ typedef traits<]b4_parser_class_name[>::state_type state_type;
+ /// State stack type.
+ typedef stack<state_type> state_stack_type;
+ /// Semantic value stack type.
+ typedef stack<semantic_type> semantic_stack_type;
+ /// location stack type.
+ typedef stack<location_type> location_stack_type;
+
/// The state stack.
- state_stack yystate_stack_;
+ state_stack_type yystate_stack_;
/// The semantic value stack.
- semantic_stack yysemantic_stack_;
+ semantic_stack_type yysemantic_stack_;
/// The location stack.
- location_stack yylocation_stack_;
+ location_stack_type yylocation_stack_;
+ /// Internal symbol numbers.
+ typedef traits<]b4_parser_class_name[>::token_number_type token_number_type;
/* Tables. */
/// For a state, the index in \a yytable_ of its portion.
static const ]b4_int_type_for([b4_pact])[ yypact_[];
#endif
#if YYDEBUG
+ /// A type to store symbol numbers and -1.
+ typedef traits<]b4_parser_class_name[>::rhs_number_type rhs_number_type;
/// A `-1'-separated list of the rules' RHS.
static const rhs_number_type yyrhs_[];
/// For each rule, the index of the first RHS symbol in \a yyrhs_.
int yytype, semantic_type* yyvaluep, location_type* yylocationp)
{
/* Pacify ``unused variable'' warnings. */
+ (void) yymsg;
(void) yyvaluep;
(void) yylocationp;
yynewstate, since the latter expects the semantical and the
location values to have been already stored, initialize these
stacks with a primary value. */
- yystate_stack_ = state_stack (0);
- yysemantic_stack_ = semantic_stack (0);
- yylocation_stack_ = location_stack (0);
+ yystate_stack_ = state_stack_type (0);
+ yysemantic_stack_ = semantic_stack_type (0);
+ yylocation_stack_ = location_stack_type (0);
yysemantic_stack_.push (yylval);
yylocation_stack_.push (yylloc);
yyval = yysemantic_stack_[0];
{
- slice<location_type, location_stack> slice (yylocation_stack_, yylen_);
+ slice<location_type, location_stack_type> slice (yylocation_stack_, yylen_);
YYLLOC_DEFAULT (yyloc, slice, yylen_);
}
YY_REDUCE_PRINT (yyn_);
yy::]b4_parser_class_name[::yystack_print_ ()
{
*yycdebug_ << "Stack now";
- for (state_stack::const_iterator i = yystate_stack_.begin ();
+ for (state_stack_type::const_iterator i = yystate_stack_.begin ();
i != yystate_stack_.end (); ++i)
*yycdebug_ << ' ' << *i;
*yycdebug_ << std::endl;
S seq_;
};
+ /// Present a slice of the top of a stack.
template <class T, class S = stack<T> >
class slice
{
** \{ */
public:
/// Construct a location.
- location (void) :
+ location () :
begin (),
end ()
{
** \{ */
public:
/// Reset initial location to final location.
- inline void step (void)
+ inline void step ()
{
begin = end;
}