Annotation of parser3/src/types/pa_vhash.h, revision 1.10
1.10 ! paf 1: /** @file
! 2: Parser: @b hash parser type decl.
! 3:
1.1 paf 4: Copyright (c) 2001 ArtLebedev Group (http://www.artlebedev.com)
1.3 paf 5: Author: Alexander Petrosyan <paf@design.ru> (http://design.ru/paf)
1.1 paf 6:
1.10 ! paf 7: $Id: pa_vhash.h,v 1.9 2001/03/18 20:31:30 paf Exp $
1.1 paf 8: */
9:
10: #ifndef PA_VHASH_H
11: #define PA_VHASH_H
12:
13: #include "pa_value.h"
14: #include "pa_hash.h"
15:
16: class VHash : public Value {
17: public: // value
18:
19: // all: for error reporting after fail(), etc
1.2 paf 20: const char *type() const { return "hash"; }
1.1 paf 21:
1.8 paf 22: // hash: fhash
23: Hash *get_hash() { return &fhash; }
1.7 paf 24:
1.6 paf 25: // hash: (key)=value
1.1 paf 26: Value *get_element(const String& name) {
1.5 paf 27: return static_cast<Value *>(fhash.get(name));
1.1 paf 28: }
29:
1.6 paf 30: // hash: (key)=value
1.1 paf 31: void put_element(const String& name, Value *value) {
1.5 paf 32: fhash.put(name, value);
1.1 paf 33: }
34:
35: public: // usage
36:
1.9 paf 37: VHash(Pool& apool) : Value(apool),
38: fhash(apool) {}
1.7 paf 39:
40: Hash& hash() { return fhash; }
1.1 paf 41:
42: private:
1.6 paf 43:
1.9 paf 44: Hash fhash;
1.6 paf 45:
1.1 paf 46: };
47:
48: #endif
E-mail: