as_declaration_specifier2properties.g.hh

Go to the documentation of this file.
00001 // This file is automatically generated, do not edit.
00002 
00003 /*!
00004         \file
00005         \brief Declaration specifier visitor.
00006         
00007                           Visitor transforming declaration specifiers into properties for SS.
00008                   
00009 */
00010 
00011 #ifndef lestes__lang__cplus__sem__as_declaration_specifier2properties_g_hh__included
00012 #define lestes__lang__cplus__sem__as_declaration_specifier2properties_g_hh__included
00013 
00014 #include <lestes/common.hh>
00015 #include <lestes/std/list.hh>
00016 #include <lestes/lang/cplus/sem/sa_common.g.hh>
00017 #include <lestes/lang/cplus/sem/ss_enums.g.hh>
00018 #include <lestes/lang/cplus/sem/as_declaration_specifier_visitor.v.g.hh>
00019 
00020 #include <lestes/std/objectize_macros.hh>
00021 package(lestes);
00022 package(lang);
00023 package(cplus);
00024 package(sem);
00025 class as_declaration_specifier;
00026 end_package(sem);
00027 end_package(cplus);
00028 end_package(lang);
00029 end_package(lestes);
00030 
00031 package(lestes);
00032 package(lang);
00033 package(cplus);
00034 package(sem);
00035 class ss_type;
00036 end_package(sem);
00037 end_package(cplus);
00038 end_package(lang);
00039 end_package(lestes);
00040 
00041 package(lestes);
00042 package(lang);
00043 package(cplus);
00044 package(sem);
00045 
00046 
00047 class as_declaration_specifier2properties;
00048 
00049 
00050 /*! \brief Declaration specifier visitor.
00051 
00052 Gathers information from visited declaration specifiers into main ss_type variant and flags.
00053 */
00054 class as_declaration_specifier2properties : public as_declaration_specifier_visitor {
00055 public:
00056         //! The type of type_specifier field.
00057         enum type_specifier_type {
00058                 TS_NONE,
00059                 TS_OTHER,
00060                 TS_CHAR,
00061                 TS_INT,
00062                 TS_DOUBLE
00063         };
00064 
00065         //! The method other_type_get returns the value of the field as_declaration_specifier2properties::other_type.
00066         ptr< ::lestes::lang::cplus::sem::ss_type > other_type_get() const;
00067 
00068         //! The method type_specifier_get returns the value of the field as_declaration_specifier2properties::type_specifier.
00069         type_specifier_type type_specifier_get() const;
00070 
00071         //! The method storage_class_get returns the value of the field as_declaration_specifier2properties::storage_class.
00072         ss_storage_class::type storage_class_get() const;
00073 
00074         //! The method explicit_flag_get returns the value of the field as_declaration_specifier2properties::explicit_flag.
00075         bool explicit_flag_get() const;
00076 
00077         //! The method inline_flag_get returns the value of the field as_declaration_specifier2properties::inline_flag.
00078         bool inline_flag_get() const;
00079 
00080         //! The method virtual_flag_get returns the value of the field as_declaration_specifier2properties::virtual_flag.
00081         bool virtual_flag_get() const;
00082 
00083         //! The method friend_flag_get returns the value of the field as_declaration_specifier2properties::friend_flag.
00084         bool friend_flag_get() const;
00085 
00086         //! The method const_flag_get returns the value of the field as_declaration_specifier2properties::const_flag.
00087         bool const_flag_get() const;
00088 
00089         //! The method volatile_flag_get returns the value of the field as_declaration_specifier2properties::volatile_flag.
00090         bool volatile_flag_get() const;
00091 
00092         //! The method signed_flag_get returns the value of the field as_declaration_specifier2properties::signed_flag.
00093         bool signed_flag_get() const;
00094 
00095         //! The method unsigned_flag_get returns the value of the field as_declaration_specifier2properties::unsigned_flag.
00096         bool unsigned_flag_get() const;
00097 
00098         //! The method short_flag_get returns the value of the field as_declaration_specifier2properties::short_flag.
00099         bool short_flag_get() const;
00100 
00101         //! The method long_flag_get returns the value of the field as_declaration_specifier2properties::long_flag.
00102         bool long_flag_get() const;
00103 
00104         //! Processes the declaration specifier
00105         void process(ptr< ::lestes::lang::cplus::sem::as_declaration_specifier > specifier);
00106 
00107         virtual void visit_as_function_specifier_inline(ptr< ::lestes::lang::cplus::sem::as_function_specifier_inline > );
00108 
00109         virtual void visit_as_function_specifier_virtual(ptr< ::lestes::lang::cplus::sem::as_function_specifier_virtual > );
00110 
00111         virtual void visit_as_function_specifier_explicit(ptr< ::lestes::lang::cplus::sem::as_function_specifier_explicit > );
00112 
00113         virtual void visit_as_friend_specifier(ptr< ::lestes::lang::cplus::sem::as_friend_specifier > );
00114 
00115         virtual void visit_as_typedef_specifier(ptr< ::lestes::lang::cplus::sem::as_typedef_specifier > );
00116 
00117         virtual void visit_as_storage_class_specifier_auto(ptr< ::lestes::lang::cplus::sem::as_storage_class_specifier_auto > );
00118 
00119         virtual void visit_as_storage_class_specifier_register(ptr< ::lestes::lang::cplus::sem::as_storage_class_specifier_register > );
00120 
00121         virtual void visit_as_storage_class_specifier_static(ptr< ::lestes::lang::cplus::sem::as_storage_class_specifier_static > );
00122 
00123         virtual void visit_as_storage_class_specifier_extern(ptr< ::lestes::lang::cplus::sem::as_storage_class_specifier_extern > );
00124 
00125         virtual void visit_as_storage_class_specifier_mutable(ptr< ::lestes::lang::cplus::sem::as_storage_class_specifier_mutable > );
00126 
00127         virtual void visit_as_enumeration_specifier(ptr< ::lestes::lang::cplus::sem::as_enumeration_specifier > );
00128 
00129         virtual void visit_as_char_simple_type_specifier(ptr< ::lestes::lang::cplus::sem::as_char_simple_type_specifier > );
00130 
00131         virtual void visit_as_wchar_t_simple_type_specifier(ptr< ::lestes::lang::cplus::sem::as_wchar_t_simple_type_specifier > );
00132 
00133         virtual void visit_as_bool_simple_type_specifier(ptr< ::lestes::lang::cplus::sem::as_bool_simple_type_specifier > );
00134 
00135         virtual void visit_as_short_simple_type_specifier(ptr< ::lestes::lang::cplus::sem::as_short_simple_type_specifier > );
00136 
00137         virtual void visit_as_int_simple_type_specifier(ptr< ::lestes::lang::cplus::sem::as_int_simple_type_specifier > );
00138 
00139         virtual void visit_as_long_simple_type_specifier(ptr< ::lestes::lang::cplus::sem::as_long_simple_type_specifier > );
00140 
00141         virtual void visit_as_signed_simple_type_specifier(ptr< ::lestes::lang::cplus::sem::as_signed_simple_type_specifier > );
00142 
00143         virtual void visit_as_unsigned_simple_type_specifier(ptr< ::lestes::lang::cplus::sem::as_unsigned_simple_type_specifier > );
00144 
00145         virtual void visit_as_float_simple_type_specifier(ptr< ::lestes::lang::cplus::sem::as_float_simple_type_specifier > );
00146 
00147         virtual void visit_as_double_simple_type_specifier(ptr< ::lestes::lang::cplus::sem::as_double_simple_type_specifier > );
00148 
00149         virtual void visit_as_void_simple_type_specifier(ptr< ::lestes::lang::cplus::sem::as_void_simple_type_specifier > );
00150 
00151         virtual void visit_as_cv_qualifier_const(ptr< ::lestes::lang::cplus::sem::as_cv_qualifier_const > );
00152 
00153         virtual void visit_as_cv_qualifier_volatile(ptr< ::lestes::lang::cplus::sem::as_cv_qualifier_volatile > );
00154 
00155         virtual void visit_as_cv_qualifier_restrict(ptr< ::lestes::lang::cplus::sem::as_cv_qualifier_restrict > );
00156 
00157         virtual void visit_as_named_simple_type_specifier(ptr< ::lestes::lang::cplus::sem::as_named_simple_type_specifier > );
00158 
00159         virtual void visit_as_elaborated_type_specifier_typename(ptr< ::lestes::lang::cplus::sem::as_elaborated_type_specifier_typename > );
00160 
00161         virtual void visit_as_elaborated_type_specifier_class_key(ptr< ::lestes::lang::cplus::sem::as_elaborated_type_specifier_class_key > );
00162 
00163         virtual void visit_as_elaborated_type_specifier_enum(ptr< ::lestes::lang::cplus::sem::as_elaborated_type_specifier_enum > );
00164 
00165         virtual void visit_as_class_specifier(ptr< ::lestes::lang::cplus::sem::as_class_specifier > );
00166 
00167         
00168         //! First generated factory method for class as_declaration_specifier2properties.
00169         static ptr< as_declaration_specifier2properties > create (
00170                 ptr< ::lestes::lang::cplus::sem::ss_type > a__as_declaration_specifier2properties__other_type,
00171                 type_specifier_type a__as_declaration_specifier2properties__type_specifier,
00172                 ss_storage_class::type a__as_declaration_specifier2properties__storage_class,
00173                 bool a__as_declaration_specifier2properties__explicit_flag,
00174                 bool a__as_declaration_specifier2properties__inline_flag,
00175                 bool a__as_declaration_specifier2properties__virtual_flag,
00176                 bool a__as_declaration_specifier2properties__friend_flag,
00177                 bool a__as_declaration_specifier2properties__const_flag,
00178                 bool a__as_declaration_specifier2properties__volatile_flag,
00179                 bool a__as_declaration_specifier2properties__signed_flag,
00180                 bool a__as_declaration_specifier2properties__unsigned_flag,
00181                 bool a__as_declaration_specifier2properties__short_flag,
00182                 bool a__as_declaration_specifier2properties__long_flag);
00183 
00184         //! Second generated factory method for class as_declaration_specifier2properties.
00185         static ptr< as_declaration_specifier2properties > create (
00186                 );
00187 
00188         
00189 
00190         //! for purposes of dumping
00191         virtual ptr<reflection_list> reflection_get() const;
00192         //! for purposes of dumping
00193         virtual ptr<field_list_list> field_values_get() const;
00194         
00195 protected:
00196         //! Generated constructor for class as_declaration_specifier2properties.
00197         as_declaration_specifier2properties (
00198                 ptr< ::lestes::lang::cplus::sem::ss_type > a__as_declaration_specifier2properties__other_type,
00199                 type_specifier_type a__as_declaration_specifier2properties__type_specifier,
00200                 ss_storage_class::type a__as_declaration_specifier2properties__storage_class,
00201                 bool a__as_declaration_specifier2properties__explicit_flag,
00202                 bool a__as_declaration_specifier2properties__inline_flag,
00203                 bool a__as_declaration_specifier2properties__virtual_flag,
00204                 bool a__as_declaration_specifier2properties__friend_flag,
00205                 bool a__as_declaration_specifier2properties__const_flag,
00206                 bool a__as_declaration_specifier2properties__volatile_flag,
00207                 bool a__as_declaration_specifier2properties__signed_flag,
00208                 bool a__as_declaration_specifier2properties__unsigned_flag,
00209                 bool a__as_declaration_specifier2properties__short_flag,
00210                 bool a__as_declaration_specifier2properties__long_flag);
00211 
00212         //! Marking routine for class as_declaration_specifier2properties. 
00213         virtual void gc_mark();
00214 
00215 private:
00216         //! The other ss_type, valid when type_specifier is TS_OTHER.
00217         srp< ::lestes::lang::cplus::sem::ss_type > other_type;
00218         //! The type specifier kind.
00219         type_specifier_type type_specifier;
00220         //! The storage class (including typedef).
00221         ss_storage_class::type storage_class;
00222         //! The explicit specifier flag.
00223         bool explicit_flag;
00224         //! The inline specifier flag.
00225         bool inline_flag;
00226         //! The virtual specifier flag.
00227         bool virtual_flag;
00228         //! The friend specifier flag.
00229         bool friend_flag;
00230         //! Const qualifier flag.
00231         bool const_flag;
00232         //! Volatile qualifier flag.
00233         bool volatile_flag;
00234         //! Signed specifier flag.
00235         bool signed_flag;
00236         //! Unsigned specifier flag.
00237         bool unsigned_flag;
00238         //! Type length flag.
00239         bool short_flag;
00240         //! Type length flag.
00241         bool long_flag;
00242         static ptr<reflection_list> reflection;
00243         
00244 }; // as_declaration_specifier2properties
00245 
00246 
00247 end_package(sem);
00248 end_package(cplus);
00249 end_package(lang);
00250 end_package(lestes);
00251 
00252 package(lestes);
00253 package(std);
00254 specialize_objectize_for_enum( ::lestes::lang::cplus::sem::as_declaration_specifier2properties::type_specifier_type );
00255 end_package(std);
00256 end_package(lestes);
00257 
00258 #endif // lestes__lang__cplus__sem__as_declaration_specifier2properties_g_hh__included

Generated on Mon Feb 12 18:27:06 2007 for lestes by doxygen 1.5.1-20070107