--- parser3/src/include/pa_pool.h 2001/02/25 16:36:11 1.25 +++ parser3/src/include/pa_pool.h 2001/03/13 16:38:22 1.32 @@ -1,5 +1,9 @@ /* - $Id: pa_pool.h,v 1.25 2001/02/25 16:36:11 paf Exp $ + Parser + Copyright (c) 2001 ArtLebedev Group (http://www.artlebedev.com) + Author: Alexander Petrosyan (http://design.ru/paf) + + $Id: pa_pool.h,v 1.32 2001/03/13 16:38:22 paf Exp $ */ #ifndef PA_POOL_H @@ -7,7 +11,6 @@ #include -//class String; class Exception; class Temp_exception; @@ -92,15 +95,15 @@ public: #define NEW new(pool()) class Temp_exception { - Pool pool; + Pool& fpool; Exception *saved_exception; public: Temp_exception(Pool& apool, Exception& exception) : - pool(apool), + fpool(apool), saved_exception(apool.set_exception(&exception)) { } ~Temp_exception() { - pool.restore_exception(saved_exception); + fpool.restore_exception(saved_exception); } }; @@ -111,6 +114,8 @@ public: if(setjmp(temp_exception.mark)==0) #define THROW exception()._throw +#define PTHROW pool.exception()._throw +#define RTHROW r.pool().exception()._throw #define CATCH(e) \ else{ \ Exception& e=temp_exception;