Annotation of parser3/src/types/pa_vvoid.h, revision 1.17
1.1 parser 1: /** @file
2: Parser: @b void parser class.
3:
1.17 ! paf 4: Copyright (c) 2001, 2003 ArtLebedev Group (http://www.artlebedev.com)
1.8 paf 5: Author: Alexandr Petrosian <paf@design.ru> (http://paf.design.ru)
1.1 parser 6: */
7:
8: #ifndef PA_VVOID_H
9: #define PA_VVOID_H
1.10 paf 10:
1.17 ! paf 11: static const char* IDENT_VVOID_H="$Date: 2002/12/09 15:34:19 $";
1.1 parser 12:
1.3 parser 13: #include "classes.h"
1.1 parser 14: #include "pa_vstateless_object.h"
15: #include "pa_globals.h"
16:
17: extern Methoded *void_class;
18:
19: /// value of type 'void'. ex: usually $sjfklsjfksjdfk has this type
20: class VVoid : public VStateless_object {
21: public: // Value
22:
23: const char *type() const { return "void"; }
1.9 paf 24: VStateless_class *get_class() { return void_class; }
1.1 parser 25:
26: /// VVoid: ""
1.5 parser 27: const String *get_string() { return NEW String(pool()); }
1.1 parser 28: /// VVoid: false
1.2 parser 29: bool as_bool() const { return false; }
30: /// VVoid: false
1.1 parser 31: bool is_defined() const { return false; }
32: /// VVoid: 0
1.2 parser 33: double as_double() const { return 0; }
1.1 parser 34: /// VVoid: 0
1.2 parser 35: int as_int() const { return 0; }
1.1 parser 36: /// VVoid: this
37: Value *as_expr_result(bool return_string_as_is=false) { return this; }
38:
39:
40: /// VVoid: methods
1.15 paf 41: Value *get_element(const String& aname, Value& aself, bool looking_up) {
1.1 parser 42: // methods
1.14 paf 43: if(Value *result=VStateless_object::get_element(aname, aself, looking_up))
1.1 parser 44: return result;
45:
46: return NEW VVoid(pool());
1.16 paf 47: }
48:
49: /// VVoid: bark
50: bool put_element(const String& aname, Value *avalue, bool areplace) {
51: return Value::put_element(aname, avalue, areplace);
1.1 parser 52: }
53:
54: public: // usage
55:
1.9 paf 56: VVoid(Pool& apool) : VStateless_object(apool) {}
1.1 parser 57:
58: };
59:
60: #endif
E-mail: