--- parser3/src/include/pa_stack.h 2003/09/26 11:23:37 1.19 +++ parser3/src/include/pa_stack.h 2005/03/16 14:37:51 1.23 @@ -1,14 +1,14 @@ /** @file Parser: stack class decl. - Copyright (c) 2001-2003 ArtLebedev Group (http://www.artlebedev.com) + Copyright (c) 2001-2004 ArtLebedev Group (http://www.artlebedev.com) Author: Alexandr Petrosian (http://paf.design.ru) */ #ifndef PA_STACK_H #define PA_STACK_H -static const char* IDENT_STACK_H="$Date: 2003/09/26 11:23:37 $"; +static const char * const IDENT_STACK_H="$Date: 2005/03/16 14:37:51 $"; #include "pa_config_includes.h" #include "pa_array.h" @@ -20,7 +20,7 @@ public: Stack(): ftop(0) {} void push(T item) { - if(ftopcount()) // cell is already allocated? put(ftop, item); // use it else *this+=item; // append it @@ -28,21 +28,21 @@ public: } T pop() { - return get(--ftop); + return this->get(--ftop); } bool is_empty() { return ftop==0; } - size_t top() { return ftop; } - void top(size_t atop) { ftop=atop; } - T upper_value() { + size_t top_index() { return ftop; } + void set_top_index(size_t atop) { ftop=atop; } + T top_value() { assert(!is_empty()); - return get(ftop-1); + return this->get(ftop-1); } /// call this prior to collecting garbage [in unused part of stack there may be pointers(unused)] void wipe_unused() { - if(size_t above_top_size=fused-ftop) - memset(&felements[ftop], 0, above_top_size*sizeof(T)); + if(size_t above_top_size=this->fused-ftop) + memset(&this->felements[ftop], 0, above_top_size*sizeof(T)); } protected: