+2003-08-25 Akim Demaille <akim@epita.fr>
+
+ * data/lalr1.cc (Parser::stack_print_, YY_STACK_PRINT): New.
+ Use them.
+
2003-08-25 Akim Demaille <akim@epita.fr>
* data/lalr1.cc (Parser::reduce_print_): New.
static const ]b4_int_type_for([b4_stos])[ stos_[];
static const ]b4_int_type_for([b4_toknum])[ token_number_[];
virtual void reduce_print_ (int yyrule);
+ virtual void stack_print_ ();
#endif
/* Even more tables. */
if (debug_) \
reduce_print_ (Rule); \
} while (0)
+# define YY_STACK_PRINT() \
+do { \
+ if (debug_) \
+ stack_print_ (); \
+} while (0)
#else /* !YYDEBUG */
# define YYCDEBUG if (0) cdebug_
# define YY_REDUCE_PRINT(Rule)
+# define YY_STACK_PRINT()
#endif /* !YYDEBUG */
#define YYACCEPT goto yyacceptlab
semantic_stack_.pop (len_);
location_stack_.pop (len_);
-#if YYDEBUG
- if (debug_)
- {
- YYCDEBUG << "state stack now";
- for (StateStack::ConstIterator i = state_stack_.begin ();
- i != state_stack_.end (); ++i)
- YYCDEBUG << ' ' << *i;
- YYCDEBUG << std::endl;
- }
-#endif
+ YY_STACK_PRINT ();
semantic_stack_.push (yyval);
location_stack_.push (yyloc);
semantic_stack_.pop ();
location_stack_.pop ();
state_ = state_stack_[0];
-
-#if YYDEBUG
- if (debug_)
- {
- YYCDEBUG << "Error: state stack now";
- for (StateStack::ConstIterator i = state_stack_.begin ();
- i != state_stack_.end (); ++i)
- YYCDEBUG << ' ' << *i;
- YYCDEBUG << std::endl;
- }
-#endif
+ YY_STACK_PRINT ();
}
if (n_ == final_)
]b4_rline[
};
+/** Print the state stack from its BOTTOM up to its TOP (included). */
+
+void
+yy::]b4_parser_class_name[::stack_print_ ()
+{
+ cdebug_ << "state stack now";
+ for (StateStack::ConstIterator i = state_stack_.begin ();
+ i != state_stack_.end (); ++i)
+ cdebug_ << ' ' << *i;
+ cdebug_ << std::endl;
+}
+
/** Report that the YYRULE is going to be reduced. */
void