Annotation of parser3/src/include/pa_value.h, revision 1.1

1.1     ! paf         1: /*
        !             2:   $Id: pa_table.h,v 1.7 2001/01/30 13:43:43 paf Exp $
        !             3: */
        !             4: 
        !             5: /*
        !             6:        data core
        !             7: */
        !             8: 
        !             9: #ifndef PA_VALUE_H
        !            10: #define PA_VALUE_H
        !            11: 
        !            12: #include "pa_string.h"
        !            13: 
        !            14: class Method {
        !            15: public:
        !            16:        Array param_names;
        !            17:        String code;
        !            18: };
        !            19: 
        !            20: class Value {
        !            21: public:
        !            22:        // text: value
        !            23:        virtual String *get_string() const =0;
        !            24:        virtual String *put_string(const String *astring)=0;
        !            25: 
        !            26:        // hash: (key)=value
        !            27:        // object_class: (field)=STATIC.value;(STATIC)=hash;(method)=method_ref with this=object_class
        !            28:        // object_instance: (field)=value;(STATIC)=hash;(method)=method_ref
        !            29:        virtual Value *get_element(const String& name) const =0;
        !            30:        virtual Value *put_element(const String& name, const Value *avalue)=0;
        !            31: 
        !            32:        // object_instance, object_class: method
        !            33:        virtual Method* get_method(const String& name) const =0;
        !            34: 
        !            35:        // method_ref: "self" part, method
        !            36:        virtual Value *get_self&method() const =0;
        !            37: };
        !            38: 
        !            39: /*
        !            40: descendants:
        !            41:        text:+ value:String
        !            42:     hash:+ keys&values:Hash
        !            43:     table:+ columns_order:Array, columns:Hash, rows:Array
        !            44:     object_class:+ STATIC:Hash, methods:Hash
        !            45:     object_instance:+ object_class, fields:Hash
        !            46:     method_ref:+ this:Value/object_class, method:String
        !            47:     method_this_n_params:+ this:Value/object_class[1st try], params&values:Hash[2nd try]
        !            48: 
        !            49: 
        !            50: */
        !            51: 
        !            52: #endif

E-mail: