Annotation of parser3/src/main/pa_vclass.C, revision 1.4

1.1       paf         1: /*
1.4     ! paf         2:        Parser
        !             3:        Copyright (c) 2001 ArtLebedev Group (http://www.artlebedev.com)
        !             4:        Author: Alexander Petrosyan <paf@design.ru>
        !             5: 
        !             6:        $Id: pa_string.C,v 1.35 2001/03/10 12:12:51 paf Exp $
1.1       paf         7: */
                      8: 
                      9: #include "pa_vclass.h"
1.3       paf        10: #include "pa_vstring.h"
1.1       paf        11: 
1.3       paf        12: Value *VClass::get_element(const String& aname) {
                     13:        // $NAME=my name
                     14:        if(aname==NAME_NAME)
                     15:                return NEW VString(fclass_alias->name());
                     16:        // $CLASS=my class=myself
                     17:        if(aname==CLASS_NAME)
                     18:                return fclass_alias;
                     19:        // $BASE=my parent
                     20:        if(aname==BASE_NAME)
                     21:                return fclass_alias->base();
                     22:        // $method=junction(self+class+method)
                     23:        if(Junction *junction=get_junction(*this, aname))
                     24:                return NEW VJunction(*junction);
                     25:        // $field=static field
                     26:        return get_field(aname);
                     27: }
                     28: 
                     29: // object_class, operator_class: (field)=value - static values only
                     30: void VClass::put_element(const String& name, Value *value) {
                     31:        set_field(name, value);
                     32: }

E-mail: