Diff for /parser3/src/main/execute.C between versions 1.162.2.1 and 1.168

version 1.162.2.1, 2001/05/21 12:29:51 version 1.168, 2001/06/28 07:41:59
Line 7 Line 7
   
         $Id$          $Id$
 */  */
   static char *RCSId="$Id$"; 
   
 #include "pa_opcode.h"  #include "pa_opcode.h"
 #include "pa_array.h"   #include "pa_array.h" 
 #include "pa_request.h"  #include "pa_request.h"
 #include "pa_vstring.h"  #include "pa_vstring.h"
 #include "pa_vhash.h"  #include "pa_vhash.h"
 #include "pa_vunknown.h"  #include "pa_vvoid.h"
 #include "pa_vcode_frame.h"  #include "pa_vcode_frame.h"
 #include "pa_vmethod_frame.h"  #include "pa_vmethod_frame.h"
 #include "pa_vobject.h"  #include "pa_vobject.h"
Line 300  void Request::execute(const Array& ops) Line 301  void Request::execute(const Array& ops)
                                 if(string)                                  if(string)
                                         value=NEW VString(*string);                                          value=NEW VString(*string);
                                 else                                  else
                                         value=NEW VUnknown(pool());                                          value=NEW VVoid(pool());
                                 wcontext=static_cast<WContext *>(POP());                                  wcontext=static_cast<WContext *>(POP());
                                 rcontext=POP();                                  rcontext=POP();
                                 PUSH(value);                                  PUSH(value);
Line 321  void Request::execute(const Array& ops) Line 322  void Request::execute(const Array& ops)
                                 if(string)                                  if(string)
                                         value=NEW VString(*string);                                          value=NEW VString(*string);
                                 else                                  else
                                         NEW VUnknown(pool());                                          NEW VVoid(pool());
                                 wcontext=static_cast<WContext *>(POP());                                  wcontext=static_cast<WContext *>(POP());
                                 PUSH(value);                                  PUSH(value);
                                 break;                                  break;
Line 694  void Request::execute(const Array& ops) Line 695  void Request::execute(const Array& ops)
 Value *Request::get_element() {  Value *Request::get_element() {
         const String& name=POP_NAME();          const String& name=POP_NAME();
         Value *ncontext=POP();          Value *ncontext=POP();
         Value *value/*;           Value *value;
         if(Method* method=OP.get_method(name)) { // operator?          if(Method* method=OP.get_method(name)) { // operator?
                 // as if that method were in self and we have normal dynamic method here                  // as if that method were in self and we have normal dynamic method here
                 Junction& junction=*NEW Junction(pool(),                   Junction& junction=*NEW Junction(pool(), 
                         *self, self->get_class(), method, 0,0,0,0);                          *self, self->get_class(), method, 0,0,0,0);
                 value=NEW VJunction(junction);                  value=NEW VJunction(junction);
         } else          } else
                 value*/=ncontext->get_element(name);                  value=ncontext->get_element(name);
         if(value)          if(value)
                 value=&process(*value, &name); // process possible code-junction                  value=&process(*value, &name); // process possible code-junction
         else {          else {
                 value=NEW VUnknown(pool());                  value=NEW VVoid(pool());
                 value->set_name(name);                  value->set_name(name);
         }          }
   

Removed from v.1.162.2.1  
changed lines
  Added in v.1.168


E-mail: