Annotation of parser3/src/include/pa_vhash.h, revision 1.8
1.1 paf 1: /*
1.8 ! paf 2: $Id: pa_vhash.h,v 1.7 2001/03/08 16:54:25 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
1.8 ! paf 17: Value *clone() const { 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: