Annotation of parser3/src/include/pa_vhash.h, revision 1.9
1.1 paf 1: /*
1.9 ! paf 2: $Id: pa_vhash.h,v 1.8 2001/03/08 17:08:13 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"; }
1.1 paf 16:
1.7 paf 17: // fvalue: (key)=value
1.6 paf 18: Value *get_element(const String& name) {
1.7 paf 19: return static_cast<Value *>(fvalue.get(name));
1.1 paf 20: }
21:
1.7 paf 22: // fvalue: (key)=value
1.1 paf 23: void put_element(const String& name, Value *value) {
1.7 paf 24: fvalue.put(name, value);
1.1 paf 25: }
1.4 paf 26:
1.7 paf 27: // fvalue: size!=0
28: bool get_bool() { return fvalue.size()!=0; }
1.1 paf 29:
30: public: // usage
31:
1.7 paf 32: VHash(Pool& apool) : Value(apool),
33: fvalue(*new(apool) Hash(apool)) {}
34:
35: VHash(Pool& apool, Hash& avalue) : Value(apool),
36: fvalue(avalue) {}
1.1 paf 37:
38: private:
1.7 paf 39: Hash& fvalue;
1.1 paf 40: };
41:
42: #endif
E-mail: