|
|
| version 1.11, 2001/02/24 08:28:35 | version 1.27, 2001/03/10 14:05:35 |
|---|---|
| Line 11 | Line 11 |
| #include "pa_wcontext.h" | #include "pa_wcontext.h" |
| #include "pa_value.h" | #include "pa_value.h" |
| #include "pa_stack.h" | #include "pa_stack.h" |
| #include "pa_vclass.h" | |
| #define MAIN_METHOD_NAME "main" | #define MAIN_METHOD_NAME "main" |
| #define SELF_NAME "self" | #define AUTO_METHOD_NAME "auto" |
| #define RUN_NAME "RUN" | |
| #define ROOT_NAME "ROOT" | |
| #define ENV_NAME "ENV" | |
| #ifndef NO_STRING_ORIGIN | #ifndef NO_STRING_ORIGIN |
| # define COMPILE_PARAMS char *source, char *file | # define COMPILE_PARAMS char *source, String *name, char *file |
| # define COMPILE(source, file) real_compile(source, file) | # define COMPILE(source, name, file) real_compile(source, name, file) |
| #else | #else |
| # define COMPILE_PARAMS char *source | # define COMPILE_PARAMS char *source, String *name |
| # define COMPILE(source, file) real_compile(source) | # define COMPILE(source, name, file) real_compile(source, name) |
| #endif | #endif |
| class Local_request_exception; | class Local_request_exception; |
| Line 28 class Local_request_exception; | Line 33 class Local_request_exception; |
| class Request : public Pooled { | class Request : public Pooled { |
| public: | public: |
| Request(Pool& apool) : Pooled(apool), | Request(Pool& apool); |
| stack(apool), | |
| fclasses(apool) | |
| { | |
| } | |
| ~Request() {} | ~Request() {} |
| // global classes | // global classes |
| Hash& classes() { return fclasses; } | Hash& classes() { return fclasses; } |
| Array& classes_array() { return fclasses_array; } | |
| // core request processing | // core request processing |
| void core(); | void core(); |
| private: // core data | void use(char *file, String *alias); // core.C |
| Value& autocalc(Value& value, const String *name=0, bool make_string=true); // execute.C | |
| // classes | void write(Value& avalue) { |
| Hash fclasses; | // appending possible string, assigning untaint language |
| wcontext->write(avalue, lang); | |
| } | |
| public: | |
| // default base | |
| VClass root_class; | |
| // $ENV:fields here | |
| VClass env_class; | |
| // contexts | // contexts |
| Value *self, *root, *rcontext; | Value *self, *root, *rcontext; |
| WContext *wcontext; | WContext *wcontext; |
| private: // core data | |
| // classes | |
| Hash fclasses; | |
| Array fclasses_array; | |
| // execution stack | // execution stack |
| Stack stack; | Stack stack; |
| private: // core.C | private: // core.C |
| Array& load_and_compile_RUN(); | char *execute_MAIN(); |
| VClass *construct_class(String& name, Array& compiled_methods); | |
| char *execute_MAIN(VClass *class_RUN); | |
| private: // compile.C | private: // compile.C |
| Array& real_compile(COMPILE_PARAMS); | VClass& real_compile(COMPILE_PARAMS); |
| private: // execute.C | private: // execute.C |
| char *execute_static(VClass& vclass, String& method_name, bool return_cstr); | |
| void execute(const Array& ops); | void execute(const Array& ops); |
| Value *get_element(); | Value *get_element(); |
| }; | private: // lang&raw |
| String::Untaint_lang lang; | |
| // core func | private: // lang&raw manipulation |
| void core(); | |
| // TODO | |
| }; | |
| #endif | #endif |