--- parser3/src/main/execute.C 2001/03/19 19:17:44 1.119 +++ parser3/src/main/execute.C 2001/03/24 19:12:19 1.125 @@ -5,9 +5,10 @@ Author: Alexander Petrosyan (http://design.ru/paf) - $Id: execute.C,v 1.119 2001/03/19 19:17:44 paf Exp $ + $Id: execute.C,v 1.125 2001/03/24 19:12:19 paf Exp $ */ +#include "pa_config_includes.h" #include "code.h" #include "pa_array.h" #include "pa_request.h" @@ -22,7 +23,6 @@ #include "pa_vtable.h" #include -#include #define PUSH(value) stack.push(value) #define POP() static_cast(stack.pop()) @@ -63,7 +63,6 @@ void va_log_printf(const char *fmt,va_li } void log_printf(const char *fmt, ...) { - // TODO: куда-нибудь пристроить va_list args; va_start(args,fmt); va_log_printf(fmt,args); @@ -156,13 +155,13 @@ void Request::execute(const Array& ops) wcontext->set_somebody_entered_some_class(); const String& name=POP_NAME(); - VClass *vclass=static_cast(classes().get(name)); - if(!vclass) + Value *value=static_cast(classes().get(name)); + if(!value) THROW(0,0, &name, ": undefined class"); - PUSH(vclass); + PUSH(value); break; } @@ -223,7 +222,7 @@ void Request::execute(const Array& ops) { VString *vstring=static_cast(ops.quick_get(++i)); log_printf(" \"%s\"", vstring->string().cstr()); - write(vstring->string()); + write_no_lang(vstring->string()); break; } @@ -349,12 +348,10 @@ void Request::execute(const Array& ops) // some stateless_object derivates with constructors if(called_class==table_class)///called_class->name()==TABLE_CLASS_NAME) self=NEW VTable(pool()); - else /*if(called_class->name()==ENV_CLASS_NAME) - self=NEW VEnv(pool()); - else */ // stateful object + else // stateful object self=NEW VObject(pool(), *called_class); frame->write(*self, - String::Untaint_lang::NO // not used, always an object, not string + String::UL_NO // not used, always an object, not string ); } else self=&frame->junction.self; // no, static or simple dynamic call @@ -644,7 +641,7 @@ Value *Request::get_element() { - false: they want any result[string|object] nothing goes to wcontext. - used in (expression) params evaluation + used in @c (expression) params evaluation */ Value& Request::process(Value& value, const String *name, bool intercept_string) { Value *result; @@ -655,7 +652,7 @@ Value& Request::process(Value& value, co PUSH(self); PUSH(root); PUSH(rcontext); - PUSH(wcontext); + PUSH(wcontext); WContext *frame; // for expression method params