--- parser3/src/include/pa_request.h 2001/09/30 12:06:04 1.100 +++ parser3/src/include/pa_request.h 2001/10/22 08:27:44 1.105 @@ -4,7 +4,7 @@ Copyright (c) 2001 ArtLebedev Group (http://www.artlebedev.com) Author: Alexander Petrosyan (http://design.ru/paf) - $Id: pa_request.h,v 1.100 2001/09/30 12:06:04 parser Exp $ + $Id: pa_request.h,v 1.105 2001/10/22 08:27:44 parser Exp $ */ #ifndef PA_REQUEST_H @@ -141,7 +141,7 @@ public: const String& mime_type_of(const char *user_file_name_cstr); /// PCRE character tables - unsigned char *pcre_tables(); + const unsigned char *pcre_tables(); public: @@ -198,6 +198,9 @@ private: // core data /// charset->pcre_tables Hash CTYPE; + /// stack trace + Stack trace; + private: // compile.C VStateless_class& real_compile(COMPILE_PARAMS); @@ -281,12 +284,16 @@ public: return get_as(index, false, msg); } /// handy expression auto-processing to double - double as_double(int index, Request& r) { - return get_processed(index, r).as_double(); + double as_double(int index, const char *msg, Request& r) { + return get_processed(index, msg, r).as_double(); } /// handy expression auto-processing to int - int as_int(int index, Request& r) { - return get_processed(index, r).as_int(); + int as_int(int index, const char *msg, Request& r) { + return get_processed(index, msg, r).as_int(); + } + /// handy expression auto-processing to bool + bool as_bool(int index, const char *msg, Request& r) { + return get_processed(index, msg, r).as_bool(); } /// handy string ensurer const String& as_string(int index, const char *msg) { @@ -299,14 +306,15 @@ private: Value& get_as(int index, bool as_junction, const char *msg) { Value& result=get(index); if((result.get_junction()!=0) ^ as_junction) - THROW(0, 0, + throw Exception(0, 0, &fmethod_name, "%s (parameter #%d)", msg, 1+index); + return result; } - Value& get_processed(int index, Request& r) { - return r.process(get(index), + Value& get_processed(int index, const char *msg, Request& r) { + return r.process(as_junction(index, msg), 0/*no name*/, false/*don't intercept string*/); }