From 717be1971f71b8a61f8243e8e7dacd3b448f7dc8 Mon Sep 17 00:00:00 2001 From: Akim Demaille <akim@epita.fr> Date: Tue, 28 May 2002 12:09:02 +0000 Subject: [PATCH] * data/bison.c++: Use C++ ostreams. (cdebug_): New member. --- ChangeLog | 5 ++++ data/bison.c++ | 72 ++++++++++++++++++++++++++------------------------ 2 files changed, 43 insertions(+), 34 deletions(-) diff --git a/ChangeLog b/ChangeLog index 3989dc88..0f7c6a1e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2002-05-28 Akim Demaille <akim@epita.fr> + + * data/bison.c++: Use C++ ostreams. + (cdebug_): New member. + 2002-05-28 Akim Demaille <akim@epita.fr> * src/output.c (output_skeleton): Be sure to allocate enough room diff --git a/data/bison.c++ b/data/bison.c++ index 8b58e08d..0878770b 100644 --- a/data/bison.c++ +++ b/data/bison.c++ @@ -137,6 +137,7 @@ b4_copyright #include "location.hh" #include <string> +#include <iostream> /* Using locations. */ #define YYLSP_NEEDED b4_locations_flag @@ -228,10 +229,12 @@ namespace yy b4_name (bool debug, LocationType initlocation[]b4_param) : b4_constructor[]debug_ (debug), + cdebug_ (std::cerr), initlocation_ (initlocation) #else b4_name (bool debug[]b4_param) : - b4_constructor[]debug_ (debug) + b4_constructor[]debug_ (debug), + cdebug_ (std::cerr) #endif { } @@ -297,9 +300,12 @@ namespace yy /* State. */ int n_; int len_; - int debug_; int state_; + /* Debugging. */ + int debug_; + std::ostream &cdebug_; + /* Lookahead and lookahead in internal form. */ int looka_; int ilooka_; @@ -329,15 +335,9 @@ b4_copyright /* Enable debugging if requested. */ #if YYDEBUG -# include <cstdio> -# define YYFPRINTF std::fprintf -# define YYDPRINTF(Args) \ -do { \ - if (debug_) \ - YYFPRINTF Args; \ -} while (0) +# define YYCDEBUG if (debug_) cdebug_ #else /* !YYDEBUG */ -# define YYDPRINTF(Args) +# define YYCDEBUG if (0) cdebug_ #endif /* !YYDEBUG */ int @@ -357,12 +357,12 @@ yy::b4_name::parse () #if YYLSP_NEEDED location = initlocation_; #endif - YYDPRINTF ((stderr, "Starting parse\n")); + YYCDEBUG << "Starting parse" << std::endl; /* New state. */ yynewstate: state_stack_.push (state_); - YYDPRINTF ((stderr, "Entering state %d\n", state_)); + YYCDEBUG << "Entering state " << state_ << std::endl; goto yybackup; /* Backup. */ @@ -376,7 +376,7 @@ yy::b4_name::parse () /* Read a lookahead token. */ if (looka_ == empty_) { - YYDPRINTF ((stderr, "Reading a token: ")); + YYCDEBUG << "Reading a token: "; lex_ (); } @@ -385,7 +385,7 @@ yy::b4_name::parse () { looka_ = eof_; ilooka_ = 0; - YYDPRINTF ((stderr, "Now at end of input.\n")); + YYCDEBUG << "Now at end of input." << std::endl; } else { @@ -393,9 +393,10 @@ yy::b4_name::parse () #if YYDEBUG if (debug_) { - YYFPRINTF (stderr, "Next token is %d (%s", looka_, name_[[ilooka_]]); + YYCDEBUG << "Next token is " << looka_ + << " (" << name_[[ilooka_]]; print_ (); - YYFPRINTF (stderr, ")\n"); + YYCDEBUG << ')' << std::endl; } #endif } @@ -424,7 +425,8 @@ yy::b4_name::parse () goto yyacceptlab; /* Shift the lookahead token. */ - YYDPRINTF ((stderr, "Shifting token %d (%s), ", looka_, name_[[ilooka_]])); + YYCDEBUG << "Shifting token " << looka_ + << " (" << name_[[ilooka_]] << "), "; /* Discard the token being shifted unless it is eof. */ if (looka_ != eof_) @@ -465,11 +467,12 @@ yy::b4_name::parse () #if YYDEBUG if (debug_) { - YYFPRINTF (stderr, "Reducing via rule %d (line %d), ", n_ - 1, rline_[[n_]]); + YYCDEBUG << "Reducing via rule " << n_ - 1 + << " (line " << rline_[[n_]] << "), "; for (b4_uint_type(b4_prhs_max) i = prhs_[[n_]]; rhs_[[i]] >= 0; ++i) - YYFPRINTF (stderr, "%s ", name_[[rhs_[i]]]); - YYFPRINTF (stderr, "-> %s\n", name_[[r1_[n_]]]); + YYCDEBUG << name_[[rhs_[i]]] << ' '; + YYCDEBUG << "-> " << name_[[r1_[n_]]] << std::endl; } #endif @@ -494,11 +497,11 @@ yy::b4_name::parse () #if YYDEBUG if (debug_) { - YYFPRINTF (stderr, "state stack now"); + YYCDEBUG << "state stack now"; for (StateStack::ConstIterator i = state_stack_.begin (); i != state_stack_.end (); ++i) - YYFPRINTF (stderr, " %d", *i); - YYFPRINTF (stderr, "\n"); + YYCDEBUG << ' ' << *i; + YYCDEBUG << std::endl; } #endif @@ -561,7 +564,8 @@ yy::b4_name::parse () /* Return failure if at end of input. */ if (looka_ == eof_) goto yyabortlab; - YYDPRINTF ((stderr, "Discarding token %d (%s).\n", looka_, name_[[ilooka_]])); + YYCDEBUG << "Discarding token " << looka_ + << " (" << name_[[ilooka_]] << ")." << std::endl; looka_ = empty_; } @@ -593,19 +597,19 @@ yy::b4_name::parse () { if (stos_[[state_]] < ntokens_) { - YYFPRINTF (stderr, "Error: popping token %d (%s", - token_number_[[stos_[state_]]], - name_[[stos_[state_]]]); + YYCDEBUG << "Error: popping token " + << token_number_[[stos_[state_]]] + << " (" << name_[[stos_[state_]]]; # ifdef YYPRINT YYPRINT (stderr, token_number_[[stos_[state_]]], semantic_stack_.top ()); # endif - YYFPRINTF (stderr, ")\n"); + YYCDEBUG << ')' << std::endl; } else { - YYFPRINTF (stderr, "Error: popping nonterminal (%s)\n", - name_[[stos_[state_]]]); + YYCDEBUG << "Error: popping nonterminal (" + << name_[[stos_[state_]]] << ')' << std::endl; } } #endif @@ -617,11 +621,11 @@ yy::b4_name::parse () #if YYDEBUG if (debug_) { - YYFPRINTF (stderr, "Error: state stack now"); + YYCDEBUG << "Error: state stack now"; for (StateStack::ConstIterator i = state_stack_.begin (); i != state_stack_.end (); ++i) - YYFPRINTF (stderr, " %d", *i); - YYFPRINTF (stderr, "\n"); + YYCDEBUG << ' ' << *i; + YYCDEBUG << std::endl; } #endif } @@ -629,7 +633,7 @@ yy::b4_name::parse () if (n_ == final_) goto yyacceptlab; - YYDPRINTF ((stderr, "Shifting error token, ")); + YYCDEBUG << "Shifting error token, "; semantic_stack_.push (value); location_stack_.push (location); -- 2.47.2