[Top][All Lists]
[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:
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- FYI: lalr1.cc: Stack_print_ adjustments,
Akim Demaille <=