Annotation of parser3/src/types/pa_vvoid.h, revision 1.6
1.1 parser 1: /** @file
2: Parser: @b void parser class.
3:
4: Copyright (c) 2001 ArtLebedev Group (http://www.artlebedev.com)
1.6 ! paf 5: Author: Alexander Petrosyan <paf@design.ru> (http://paf.design.ru)
1.1 parser 6:
1.6 ! paf 7: $Id: pa_vvoid.h,v 1.5 2001/10/11 10:21:44 parser Exp $
1.1 parser 8: */
9:
10: #ifndef PA_VVOID_H
11: #define PA_VVOID_H
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"; }
24:
25: /// VVoid: ""
1.5 parser 26: const String *get_string() { return NEW String(pool()); }
1.1 parser 27: /// VVoid: false
1.2 parser 28: bool as_bool() const { return false; }
29: /// VVoid: false
1.1 parser 30: bool is_defined() const { return false; }
31: /// VVoid: 0
1.2 parser 32: double as_double() const { return 0; }
1.1 parser 33: /// VVoid: 0
1.2 parser 34: int as_int() const { return 0; }
1.1 parser 35: /// VVoid: this
36: Value *as_expr_result(bool return_string_as_is=false) { return this; }
37:
38:
39: /// VVoid: methods
40: Value *get_element(const String& name) {
41: // methods
42: if(Value *result=VStateless_object::get_element(name))
43: return result;
44:
45: return NEW VVoid(pool());
46: }
47:
48: public: // usage
49:
50: VVoid(Pool& apool) : VStateless_object(apool, *void_class) {
51: }
52:
53: };
54:
55: #endif
E-mail: