Annotation of parser3/src/types/pa_vvoid.h, revision 1.3
1.1 parser 1: /** @file
2: Parser: @b void parser class.
3:
4: Copyright (c) 2001 ArtLebedev Group (http://www.artlebedev.com)
5:
6: Author: Alexander Petrosyan <paf@design.ru> (http://design.ru/paf)
7:
1.3 ! parser 8: $Id: pa_vvoid.h,v 1.2 2001/09/24 14:34:25 parser Exp $
1.1 parser 9: */
10:
11: #ifndef PA_VVOID_H
12: #define PA_VVOID_H
13:
1.3 ! parser 14: #include "classes.h"
1.1 parser 15: #include "pa_vstateless_object.h"
16: #include "pa_globals.h"
17:
18: extern Methoded *void_class;
19:
20: /// value of type 'void'. ex: usually $sjfklsjfksjdfk has this type
21: class VVoid : public VStateless_object {
22: public: // Value
23:
24: const char *type() const { return "void"; }
25:
26: /// VVoid: ""
27: const String *get_string() { return empty_string; }
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
41: Value *get_element(const String& name) {
42: // methods
43: if(Value *result=VStateless_object::get_element(name))
44: return result;
45:
46: return NEW VVoid(pool());
47: }
48:
49: public: // usage
50:
51: VVoid(Pool& apool) : VStateless_object(apool, *void_class) {
52: }
53:
54: };
55:
56: #endif
E-mail: