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: