--- parser3/src/main/execute.C 2001/07/26 12:25:37 1.186 +++ parser3/src/main/execute.C 2001/08/02 06:54:12 1.188 @@ -5,7 +5,7 @@ Author: Alexander Petrosyan (http://design.ru/paf) */ -static const char *RCSId="$Id: execute.C,v 1.186 2001/07/26 12:25:37 parser Exp $"; +static const char *RCSId="$Id: execute.C,v 1.188 2001/08/02 06:54:12 parser Exp $"; #include "pa_opcode.h" #include "pa_array.h" @@ -24,7 +24,7 @@ static const char *RCSId="$Id: execute.C //#define DEBUG_EXECUTE -const uint ANTI_ENDLESS_EXECUTE_RECOURSION=500; +const uint ANTI_ENDLESS_EXECUTE_RECOURSION=400; #ifdef DEBUG_EXECUTE char *opcode_name[]={ @@ -32,7 +32,7 @@ char *opcode_name[]={ "VALUE", "CURLY_CODE__STORE_PARAM", "EXPR_CODE__STORE_PARAM", // actions - "WITH_SELF", "WITH_READ", "WITH_WRITE", + "WITH_ROOT", "WITH_SELF", "WITH_READ", "WITH_WRITE", "GET_CLASS", "CONSTRUCT_VALUE", "CONSTRUCT_EXPR", "CURLY_CODE__CONSTRUCT", "WRITE_VALUE", "WRITE_EXPR_RESULT", "STRING__WRITE", @@ -184,6 +184,11 @@ void Request::execute(const Array& ops) } // OP_WITH + case OP_WITH_ROOT: + { + PUSH(root); + break; + } case OP_WITH_SELF: { PUSH(self); @@ -847,7 +852,7 @@ const String *Request::execute_virtual_m if(Junction *junction=value->get_junction()) if(const Method *method=junction->method) return execute_method(aself, *method, return_cstr); - + return 0; }