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: