Annotation of parser3/src/types/pa_vvoid.h, revision 1.34
1.1 parser 1: /** @file
2: Parser: @b void parser class.
3:
1.29 misha 4: Copyright (c) 2001-2009 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.34 ! moko 11: static const char * const IDENT_VVOID_H="$Date: 2010-10-12 21:52:17 $";
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"
1.34 ! moko 16: #include "pa_vstring.h"
1.1 parser 17:
1.18 paf 18: extern Methoded* void_class;
1.1 parser 19:
20: /// value of type 'void'. ex: usually $sjfklsjfksjdfk has this type
1.34 ! moko 21: class VVoid: public VString {
1.1 parser 22: public: // Value
23:
1.18 paf 24: override const char* type() const { return "void"; }
25: override VStateless_class *get_class() { return void_class; }
1.1 parser 26:
1.27 paf 27: /// VVoid: true [the only one, that reports true]
28: override bool is_void() const { return true; }
1.33 moko 29: /// VVoid: with OPTIMIZE_SINGLE_STRING_WRITE it allows void to survive in [$void]
30: override bool is_string() const { return true; }
1.34 ! moko 31:
1.32 misha 32: /// VVoid: json-string ("null")
33: override const String* get_json_string(Json_options*) {
34: static const String singleton_json_null(String("null"));
35: return &singleton_json_null;
36: }
1.1 parser 37: /// VVoid: methods
1.31 misha 38: override Value* get_element(const String& aname) {
1.1 parser 39: // methods
1.31 misha 40: if(Value* result=VStateless_object::get_element(aname))
1.1 parser 41: return result;
42:
1.18 paf 43: return 0;
1.16 paf 44: }
45:
1.29 misha 46: inline static VVoid *get(){
47: static VVoid singleton;
48: return &singleton;
49: }
1.1 parser 50: };
51:
52: #endif
E-mail: