]> git.saurik.com Git - bison.git/commitdiff
* data/bison.c++: Use C++ ostreams.
authorAkim Demaille <akim@epita.fr>
Tue, 28 May 2002 12:09:02 +0000 (12:09 +0000)
committerAkim Demaille <akim@epita.fr>
Tue, 28 May 2002 12:09:02 +0000 (12:09 +0000)
(cdebug_): New member.

ChangeLog
data/bison.c++

index 3989dc884759409ad8c4b045224d26d79a6e26b5..0f7c6a1ea72ab9db4ed2546ba5271b7f52e723af 100644 (file)
--- 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
index 8b58e08db24100ede46e596e00623cc9106d5b07..0878770b4fc08db14388e594f3a6eac1fd130c26 100644 (file)
@@ -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);