|
|
| 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); |
| } | } |