Annotation of parser3/src/types/pa_vproperty.h, revision 1.2
1.2 ! paf 1: /** @file
! 2: Parser: @b property class decl.
! 3:
! 4: Copyright (c) 2001-2004 ArtLebedev Group (http://www.artlebedev.com)
! 5: Author: Alexandr Petrosian <paf@design.ru> (http://paf.design.ru)
! 6: */
! 7:
! 8: #ifndef PA_VPROPERTY_H
! 9: #define PA_VPROPERTY_H
! 10:
! 11: static const char * const IDENT_VPROPERTY_H="$Date: 2005/07/27 07:20:12 $";
! 12:
! 13: // include
! 14:
! 15: #include "pa_value.h"
! 16: #include "pa_vbool.h"
! 17: #include "pa_property.h"
! 18:
! 19: /// property two methods
! 20: class VProperty: public Value {
! 21: public: // VProperty
! 22:
! 23: override const char* type() const { return "property"; }
! 24:
! 25: /// VProperty: 0
! 26: override VStateless_class *get_class() { bark("is '%s', it has no class"); return 0; }
! 27:
! 28: /// VProperty: false
! 29: override bool is_defined() const { bark("is '%s', it has no 'defined'"); return false; }
! 30:
! 31: /// VProperty: false
! 32: override bool as_bool() const { return is_defined(); }
! 33:
! 34: /// VProperty: false
! 35: override Value& as_expr_result(bool) { return *new VBool(as_bool()); }
! 36:
! 37: /// VProperty: property
! 38: override Property* get_property() { return &fproperty; }
! 39:
! 40: public: // usage
! 41:
! 42: Property& get() { return fproperty; }
! 43:
! 44: private:
! 45:
! 46: Property fproperty;
! 47: };
! 48:
! 49:
! 50: #endif
E-mail: