X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/5de5b9875193d1ae08f238052243b08ecf71ed69..f6df83b4e80b2a53c08b5dc654e247076a3b9b03:/data/stack.hh diff --git a/data/stack.hh b/data/stack.hh index bd94eb2d..22d89fbb 100644 --- a/data/stack.hh +++ b/data/stack.hh @@ -21,7 +21,7 @@ m4_pushdef([b4_copyright_years], # b4_stack_define # --------------- m4_define([b4_stack_define], -[[ template > +[[ template > class stack { public: @@ -43,21 +43,21 @@ m4_define([b4_stack_define], T& operator [] (unsigned int i) { - return seq_[i]; + return seq_[seq_.size () - 1 - i]; } inline const T& operator [] (unsigned int i) const { - return seq_[i]; + return seq_[seq_.size () - 1 - i]; } inline void push (const T& t) { - seq_.push_front (t); + seq_.push_back (t); } inline @@ -65,7 +65,7 @@ m4_define([b4_stack_define], pop (unsigned int n = 1) { for (; n; --n) - seq_.pop_front (); + seq_.pop_back (); } inline @@ -119,10 +119,7 @@ m4_define([b4_stack_define], ]]) b4_defines_if( -[# We do want M4 expansion after # for CPP macros. -m4_changecom() -m4_divert_push(0)dnl -@output(b4_dir_prefix[]stack.hh@)@ +[b4_output_begin([b4_dir_prefix[]stack.hh]) b4_copyright([Stack handling for Bison parsers in C++])[ /** @@ -132,14 +129,14 @@ b4_copyright([Stack handling for Bison parsers in C++])[ ]b4_cpp_guard_open([b4_dir_prefix[]stack.hh])[ -# include +# include ]b4_namespace_open[ ]b4_stack_define[ ]b4_namespace_close[ ]b4_cpp_guard_close([b4_dir_prefix[]stack.hh]) -m4_divert_pop(0) -m4_popdef([b4_copyright_years])dnl -m4_changecom([#]) +b4_output_end() ]) + +m4_popdef([b4_copyright_years])