--- parser3/src/main/execute.C 2002/10/16 08:22:14 1.285 +++ parser3/src/main/execute.C 2002/10/22 09:40:11 1.287 @@ -5,7 +5,7 @@ Author: Alexandr Petrosian (http://paf.design.ru) */ -static const char* IDENT_EXECUTE_C="$Date: 2002/10/16 08:22:14 $"; +static const char* IDENT_EXECUTE_C="$Date: 2002/10/22 09:40:11 $"; #include "pa_opcode.h" #include "pa_array.h" @@ -177,6 +177,11 @@ void Request::execute(const Array& ops) } case OP_WITH_WRITE: { + if(wcontext==method_frame) + throw Exception("parser.runtime", + 0, + "$.name outside of $name[...]"); + PUSH(wcontext); break; } @@ -885,7 +890,6 @@ StringOrValue Request::process(Value& in Value *saved_rcontext=rcontext; WContext *saved_wcontext=wcontext; -//// self=&junction->self; method_frame=junction->method_frame; rcontext=junction->rcontext; @@ -936,7 +940,7 @@ const String& Request::execute_method(VM WContext *saved_wcontext=wcontext; // initialize contexts - /****self=*/rcontext=wcontext=method_frame=&amethod_frame; + rcontext=wcontext=method_frame=&amethod_frame; // execute! execute(*method.parser_code);