Annotation of parser3/src/include/pa_vhash.h, revision 1.7

1.1       paf         1: /*
1.7     ! paf         2:   $Id: pa_vhash.h,v 1.6 2001/03/07 13:55:45 paf Exp $
1.1       paf         3: */
                      4: 
                      5: #ifndef PA_VHASH_H
                      6: #define PA_VHASH_H
                      7: 
                      8: #include "pa_value.h"
1.2       paf         9: #include "pa_hash.h"
1.1       paf        10: 
                     11: class VHash : public Value {
                     12: public: // value
                     13: 
                     14:        // all: for error reporting after fail(), etc
1.7     ! paf        15:        const char *type() const { return "fvalue"; }
        !            16:        // clone
        !            17:        Value *clone() { return NEW VHash(pool(), fvalue); };
1.1       paf        18: 
1.7     ! paf        19:        // fvalue: (key)=value
1.6       paf        20:        Value *get_element(const String& name) { 
1.7     ! paf        21:                return static_cast<Value *>(fvalue.get(name));
1.1       paf        22:        }
                     23:        
1.7     ! paf        24:        // fvalue: (key)=value
1.1       paf        25:        void put_element(const String& name, Value *value) { 
1.7     ! paf        26:                fvalue.put(name, value);
1.1       paf        27:        }
1.4       paf        28: 
1.7     ! paf        29:        // fvalue: size!=0
        !            30:        bool get_bool() { return fvalue.size()!=0; }
1.1       paf        31: 
                     32: public: // usage
                     33: 
1.7     ! paf        34:        VHash(Pool& apool) : Value(apool), 
        !            35:                fvalue(*new(apool) Hash(apool)) {}
        !            36: 
        !            37:        VHash(Pool& apool, Hash& avalue) : Value(apool), 
        !            38:                fvalue(avalue) {}
1.1       paf        39: 
                     40: private:
1.7     ! paf        41:        Hash& fvalue;
1.1       paf        42: };
                     43: 
                     44: #endif

E-mail: