--- parser3/src/include/pa_request.h 2015/04/08 18:08:52 1.217 +++ parser3/src/include/pa_request.h 2016/04/04 21:28:11 1.223 @@ -1,14 +1,14 @@ /** @file Parser: request class decl. - Copyright (c) 2001-2012 Art. Lebedev Studio (http://www.artlebedev.com) + Copyright (c) 2001-2015 Art. Lebedev Studio (http://www.artlebedev.com) Author: Alexandr Petrosian (http://paf.design.ru) */ #ifndef PA_REQUEST_H #define PA_REQUEST_H -#define IDENT_PA_REQUEST_H "$Id: pa_request.h,v 1.217 2015/04/08 18:08:52 moko Exp $" +#define IDENT_PA_REQUEST_H "$Id: pa_request.h,v 1.223 2016/04/04 21:28:11 moko Exp $" #include "pa_pool.h" #include "pa_hash.h" @@ -52,7 +52,6 @@ public: public: Trace(): fname(0) {} void clear() { fname=0; } - operator bool() const { return fname!=0; } Trace(const String* aname, const Operation::Origin aorigin): fname(aname), forigin(aorigin) {} @@ -108,8 +107,6 @@ private: bool is_empty() { return fused==fbottom; } - - const element_type extract_origin(const String*& problem_source); }; ///@{ core data @@ -158,14 +155,10 @@ public: uint register_file(String::Body file_spec); struct Exception_details { - const Trace trace; + const Operation::Origin origin; const String* problem_source; VHash& vhash; - - Exception_details( - const Trace atrace, - const String* aproblem_source, - VHash& avhash): trace(atrace), problem_source(aproblem_source), vhash(avhash) {} + Exception_details(const Operation::Origin aorigin, const String* aproblem_source, VHash& avhash): origin(aorigin), problem_source(aproblem_source), vhash(avhash) {} }; Exception_details get_details(const Exception& e); const char* get_exception_cstr(const Exception& e, Exception_details& details); @@ -189,6 +182,7 @@ public: /// global classes HashString& classes() { return fclasses; } Value* get_class(const String& name); + void put_class(Value *aclass){ classes().put(aclass->type(), aclass); } /** core request processing @@ -226,9 +220,8 @@ public: bool fail_on_file_absence=true); /// compiles the file, maybe forcing it's class @a name and @a base_class. - void use_file(VStateless_class& aclass, - const String& file_name, - const String* use_filespec); + void use_file(VStateless_class& aclass, const String& file_name, const String* use_filespec); + void use_file(VStateless_class& aclass, const String& file_name, const String* use_filespec, Operation::Origin origin); /// compiles a @a source buffer void use_buf(VStateless_class& aclass, @@ -421,6 +414,9 @@ private: // compile.C private: // execute.C Value& get_element(Value& ncontext, const String& name); +#ifdef FEATURE_GET_ELEMENT4CALL + Value& get_element4call(Value& ncontext, const String& name); +#endif private: // defaults @@ -572,7 +568,6 @@ public: extern const String main_method_name; extern const String auto_method_name; -extern const String body_name; extern const String exception_type_part_name; extern const String exception_source_part_name;