bison-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

FYI: lalr1.cc: Stack_print_ adjustments


From: Akim Demaille
Subject: FYI: lalr1.cc: Stack_print_ adjustments
Date: Thu, 16 Sep 2004 16:41:23 +0200
User-agent: Gnus/5.1006 (Gnus v5.10.6) Emacs/21.3 (gnu/linux)

Index: ChangeLog
from  Akim Demaille  <address@hidden>

        * data/lalr1.cc (Stack::Iterator, Stack::ConstIterator): Rename as...
        (iterator, const_iterator): these, to be more in the C++ spirit.
        Also, return reverse iterators so that when displaying the stack
        we display its bottom first.
        (Parser::stack_print_, Parser::reduce_print_): Match the messages
        from yacc.c.
        We should probably use vector here though.

Index: data/lalr1.cc
===================================================================
RCS file: /cvsroot/bison/bison/data/lalr1.cc,v
retrieving revision 1.54
diff -u -u -r1.54 lalr1.cc
--- data/lalr1.cc 16 Sep 2004 14:14:27 -0000 1.54
+++ data/lalr1.cc 16 Sep 2004 14:40:18 -0000
@@ -889,8 +889,8 @@
 void
 yy::]b4_parser_class_name[::stack_print_ ()
 {
-  cdebug_ << "state stack now";
-  for (StateStack::ConstIterator i = state_stack_.begin ();
+  cdebug_ << "Stack now";
+  for (StateStack::const_iterator i = state_stack_.begin ();
        i != state_stack_.end (); ++i)
     cdebug_ << ' ' << *i;
   cdebug_ << std::endl;
@@ -903,7 +903,7 @@
 {
   unsigned int yylno = rline_[yyrule];
   /* Print the symbols being reduced, and their result.  */
-  cdebug_ << "Reducing via rule " << n_ - 1 << " (line " << yylno << "), ";
+  cdebug_ << "Reducing stack by rule " << n_ - 1 << " (line " << yylno << "), 
";
   for (]b4_int_type_for([b4_prhs])[ i = prhs_[n_];
        0 <= rhs_[i]; ++i)
     cdebug_ << name_[rhs_[i]] << ' ';
@@ -956,8 +956,9 @@
   {
   public:
 
-    typedef typename S::iterator Iterator;
-    typedef typename S::const_iterator ConstIterator;
+    // Hide our reversed order.
+    typedef typename S::reverse_iterator iterator;
+    typedef typename S::const_reverse_iterator const_iterator;
 
     Stack () : seq_ ()
     {
@@ -1003,8 +1004,8 @@
       return seq_.size ();
     }
 
-    inline ConstIterator begin () const { return seq_.begin (); }
-    inline ConstIterator end () const { return seq_.end (); }
+    inline const_iterator begin () const { return seq_.rbegin (); }
+    inline const_iterator end () const { return seq_.rend (); }
 
   private:
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]