Annotation of parser3/src/types/pa_vvoid.h, revision 1.17.2.8
1.1 parser 1: /** @file
2: Parser: @b void parser class.
3:
1.17.2.4 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.2.8! paf 11: static const char* IDENT_VVOID_H="$Date: 2003/02/17 09:56:16 $";
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:
1.17.2.6 paf 17: extern MethodedPtr void_class;
1.1 parser 18:
19: /// value of type 'void'. ex: usually $sjfklsjfksjdfk has this type
1.17.2.8! paf 20: class VVoid: public VStateless_object {
1.1 parser 21: public: // Value
22:
1.17.2.4 paf 23: override const char* type() const { return "void"; }
1.17.2.6 paf 24: override VStateless_class *get_class() { return void_class.get(); }
1.1 parser 25:
26: /// VVoid: ""
1.17.2.7 paf 27: override StringPtr get_string(Pool*) { return StringPtr(new String); }
1.1 parser 28: /// VVoid: false
1.17.2.1 paf 29: override bool as_bool() const { return false; }
1.2 parser 30: /// VVoid: false
1.17.2.1 paf 31: override bool is_defined() const { return false; }
1.1 parser 32: /// VVoid: 0
1.17.2.1 paf 33: override double as_double() const { return 0; }
1.1 parser 34: /// VVoid: 0
1.17.2.1 paf 35: override int as_int() const { return 0; }
1.1 parser 36: /// VVoid: this
1.17.2.5 paf 37: override ValuePtr as_expr_result(bool return_string_as_is=false) { return ValuePtr(this); }
1.1 parser 38:
39: /// VVoid: methods
1.17.2.3 paf 40: override ValuePtr get_element(StringPtr aname, Value& aself, bool looking_up) {
1.1 parser 41: // methods
1.17.2.1 paf 42: if(ValuePtr result=VStateless_object::get_element(aname, aself, looking_up))
1.1 parser 43: return result;
44:
1.17.2.5 paf 45: return ValuePtr(0);
1.16 paf 46: }
47:
48: /// VVoid: bark
1.17.2.3 paf 49: override bool put_element(StringPtr aname, ValuePtr avalue, bool areplace) {
1.16 paf 50: return Value::put_element(aname, avalue, areplace);
1.1 parser 51: }
52:
53: };
54:
55: #endif
E-mail: