or_ics.g.hh

Go to the documentation of this file.
00001 // This file is automatically generated, do not edit.
00002 
00003 #ifndef lestes__lang__cplus__sem__or_ics_g_hh__included
00004 #define lestes__lang__cplus__sem__or_ics_g_hh__included
00005 
00006 #include <lestes/common.hh>
00007 #include <lestes/std/list.hh>
00008 #include <lestes/std/set.hh>
00009 #include <lestes/lang/cplus/sem/or_visitor.v.g.hh>
00010 
00011 #include <lestes/std/objectize_macros.hh>
00012 package(lestes);
00013 package(std);
00014 class object;
00015 end_package(std);
00016 end_package(lestes);
00017 
00018 package(lestes);
00019 package(lang);
00020 package(cplus);
00021 package(sem);
00022 
00023 enum rank_type {
00024         RANK_EXACT,
00025         RANK_PROMOTION,
00026         RANK_CONVERSION,
00027         RANK_USER
00028 };
00029 
00030 
00031 class ss_expression;
00032 class ss_type;
00033 class ss_sp;
00034 class ss_function_declaration;
00035 class or_or_functional;
00036 class or_ics_functional;
00037 class or_ics_functional_base;
00038 class or_ics_functional_for_std_conversion;
00039 class or_ics_functional_for_arr_ptr_conversion;
00040 class or_ics_functional_for_reference_bind_conversion;
00041 class or_ics_functional_for_bind_to_temporary_conversion;
00042 class or_ics_functional_for_lval_rval_conversion;
00043 class or_ics_functional_for_user_conversion_by_constructor;
00044 class or_ics_functional_for_user_conversion_by_conversion_function;
00045 class or_ics_functional_for_compound_conversion;
00046 
00047 
00048 //! Base abstract class for functionals, representing conversion sequences
00049 class or_ics_functional : public ::lestes::std::object {
00050 public:
00051         //! The method rank_get returns the value of the field or_ics_functional::rank.
00052         lint rank_get() const;
00053 
00054         //! The method rank_set sets the field or_ics_functional::rank to the given value.
00055         void rank_set(lint);
00056 
00057         //! The method target_type_get returns the value of the field or_ics_functional::target_type.
00058         ptr< ss_type > target_type_get() const;
00059 
00060         //! The method target_type_set sets the field or_ics_functional::target_type to the given value.
00061         void target_type_set(const ptr< ss_type > &);
00062 
00063         // WARNING: Detailed doxygen description for method
00064         // should be near it's implementation, not in XML file.
00065 
00066         /*! \brief Operator representing the functional call and returning the conversion
00067 
00068         This operator is used for actual creation of the corresponding conversion sequence.
00069         */
00070         virtual ptr< ss_expression > operator()(ptr< ss_expression > arg, ptr< ss_sp > psp, ptr< ss_sp > nsp);
00071 
00072         virtual ptr< ::lestes::std::list< srp< ss_type > > > accept_or_ics_functional_base( ptr< or_ics_functional_base > v ) abstract;
00073         
00074 
00075         //! for purposes of dumping
00076         virtual ptr<reflection_list> reflection_get() const;
00077         //! for purposes of dumping
00078         virtual ptr<field_list_list> field_values_get() const;
00079         
00080 protected:
00081         //! Generated constructor for class or_ics_functional.
00082         or_ics_functional (
00083                 lint a__or_ics_functional__rank,
00084                 ptr< ss_type > a__or_ics_functional__target_type);
00085 
00086         //! Marking routine for class or_ics_functional. 
00087         virtual void gc_mark();
00088 
00089 private:
00090         lint rank;
00091         srp< ss_type > target_type;
00092         static ptr<reflection_list> reflection;
00093         
00094 }; // or_ics_functional
00095 
00096 
00097 class or_ics_functional_for_std_conversion : public or_ics_functional {
00098 public:
00099         // WARNING: Detailed doxygen description for method
00100         // should be near it's implementation, not in XML file.
00101 
00102         /*! \brief Operator representing the functional call and returning the conversion
00103 
00104         This operator is used for actual creation of the corresponding conversion sequence.
00105         */
00106         virtual ptr< ss_expression > operator()(ptr< ss_expression > arg, ptr< ss_sp > psp, ptr< ss_sp > nsp);
00107 
00108         virtual ptr< ::lestes::std::list< srp< ss_type > > > accept_or_ics_functional_base( ptr< or_ics_functional_base > v );
00109         
00110         //! First generated factory method for class or_ics_functional_for_std_conversion.
00111         static ptr< or_ics_functional_for_std_conversion > create (
00112                 lint a__or_ics_functional__rank,
00113                 ptr< ss_type > a__or_ics_functional__target_type);
00114 
00115         
00116 
00117         //! for purposes of dumping
00118         virtual ptr<reflection_list> reflection_get() const;
00119         //! for purposes of dumping
00120         virtual ptr<field_list_list> field_values_get() const;
00121         
00122 protected:
00123         //! Generated constructor for class or_ics_functional_for_std_conversion.
00124         or_ics_functional_for_std_conversion (
00125                 lint a__or_ics_functional__rank,
00126                 ptr< ss_type > a__or_ics_functional__target_type);
00127 
00128         //! Marking routine for class or_ics_functional_for_std_conversion. 
00129         virtual void gc_mark();
00130 
00131 private:
00132         static ptr<reflection_list> reflection;
00133         
00134 }; // or_ics_functional_for_std_conversion
00135 
00136 
00137 class or_ics_functional_for_arr_ptr_conversion : public or_ics_functional {
00138 public:
00139         // WARNING: Detailed doxygen description for method
00140         // should be near it's implementation, not in XML file.
00141 
00142         /*! \brief Operator representing the functional call and returning the conversion. This is specific for array->ptr 
00143 
00144         This operator is used for actual creation of the corresponding conversion sequence.
00145         */
00146         virtual ptr< ss_expression > operator()(ptr< ss_expression > arg, ptr< ss_sp > psp, ptr< ss_sp > nsp);
00147 
00148         virtual ptr< ::lestes::std::list< srp< ss_type > > > accept_or_ics_functional_base( ptr< or_ics_functional_base > v );
00149         
00150         //! First generated factory method for class or_ics_functional_for_arr_ptr_conversion.
00151         static ptr< or_ics_functional_for_arr_ptr_conversion > create (
00152                 lint a__or_ics_functional__rank,
00153                 ptr< ss_type > a__or_ics_functional__target_type);
00154 
00155         
00156 
00157         //! for purposes of dumping
00158         virtual ptr<reflection_list> reflection_get() const;
00159         //! for purposes of dumping
00160         virtual ptr<field_list_list> field_values_get() const;
00161         
00162 protected:
00163         //! Generated constructor for class or_ics_functional_for_arr_ptr_conversion.
00164         or_ics_functional_for_arr_ptr_conversion (
00165                 lint a__or_ics_functional__rank,
00166                 ptr< ss_type > a__or_ics_functional__target_type);
00167 
00168         //! Marking routine for class or_ics_functional_for_arr_ptr_conversion. 
00169         virtual void gc_mark();
00170 
00171 private:
00172         static ptr<reflection_list> reflection;
00173         
00174 }; // or_ics_functional_for_arr_ptr_conversion
00175 
00176 
00177 class or_ics_functional_for_reference_bind_conversion : public or_ics_functional {
00178 public:
00179         // WARNING: Detailed doxygen description for method
00180         // should be near it's implementation, not in XML file.
00181 
00182         /*! \brief Operator representing the functional call and returning the conversion
00183 
00184         This operator is used for actual creation of the corresponding conversion sequence.
00185         */
00186         virtual ptr< ss_expression > operator()(ptr< ss_expression > arg, ptr< ss_sp > psp, ptr< ss_sp > nsp);
00187 
00188         virtual ptr< ::lestes::std::list< srp< ss_type > > > accept_or_ics_functional_base( ptr< or_ics_functional_base > v );
00189         
00190         //! First generated factory method for class or_ics_functional_for_reference_bind_conversion.
00191         static ptr< or_ics_functional_for_reference_bind_conversion > create (
00192                 lint a__or_ics_functional__rank,
00193                 ptr< ss_type > a__or_ics_functional__target_type);
00194 
00195         
00196 
00197         //! for purposes of dumping
00198         virtual ptr<reflection_list> reflection_get() const;
00199         //! for purposes of dumping
00200         virtual ptr<field_list_list> field_values_get() const;
00201         
00202 protected:
00203         //! Generated constructor for class or_ics_functional_for_reference_bind_conversion.
00204         or_ics_functional_for_reference_bind_conversion (
00205                 lint a__or_ics_functional__rank,
00206                 ptr< ss_type > a__or_ics_functional__target_type);
00207 
00208         //! Marking routine for class or_ics_functional_for_reference_bind_conversion. 
00209         virtual void gc_mark();
00210 
00211 private:
00212         static ptr<reflection_list> reflection;
00213         
00214 }; // or_ics_functional_for_reference_bind_conversion
00215 
00216 
00217 class or_ics_functional_for_bind_to_temporary_conversion : public or_ics_functional {
00218 public:
00219         // WARNING: Detailed doxygen description for method
00220         // should be near it's implementation, not in XML file.
00221 
00222         /*! \brief Operator representing the functional call and returning the conversion
00223 
00224         This operator is used for actual creation of the corresponding conversion sequence.
00225         */
00226         virtual ptr< ss_expression > operator()(ptr< ss_expression > arg, ptr< ss_sp > psp, ptr< ss_sp > nsp);
00227 
00228         virtual ptr< ::lestes::std::list< srp< ss_type > > > accept_or_ics_functional_base( ptr< or_ics_functional_base > v );
00229         
00230         //! First generated factory method for class or_ics_functional_for_bind_to_temporary_conversion.
00231         static ptr< or_ics_functional_for_bind_to_temporary_conversion > create (
00232                 lint a__or_ics_functional__rank,
00233                 ptr< ss_type > a__or_ics_functional__target_type);
00234 
00235         
00236 
00237         //! for purposes of dumping
00238         virtual ptr<reflection_list> reflection_get() const;
00239         //! for purposes of dumping
00240         virtual ptr<field_list_list> field_values_get() const;
00241         
00242 protected:
00243         //! Generated constructor for class or_ics_functional_for_bind_to_temporary_conversion.
00244         or_ics_functional_for_bind_to_temporary_conversion (
00245                 lint a__or_ics_functional__rank,
00246                 ptr< ss_type > a__or_ics_functional__target_type);
00247 
00248         //! Marking routine for class or_ics_functional_for_bind_to_temporary_conversion. 
00249         virtual void gc_mark();
00250 
00251 private:
00252         static ptr<reflection_list> reflection;
00253         
00254 }; // or_ics_functional_for_bind_to_temporary_conversion
00255 
00256 
00257 class or_ics_functional_for_lval_rval_conversion : public or_ics_functional {
00258 public:
00259         // WARNING: Detailed doxygen description for method
00260         // should be near it's implementation, not in XML file.
00261 
00262         /*! \brief Operator representing the functional call and returning the conversion
00263 
00264         This operator is used for actual creation of the corresponding conversion sequence.
00265         */
00266         virtual ptr< ss_expression > operator()(ptr< ss_expression > arg, ptr< ss_sp > psp, ptr< ss_sp > nsp);
00267 
00268         virtual ptr< ::lestes::std::list< srp< ss_type > > > accept_or_ics_functional_base( ptr< or_ics_functional_base > v );
00269         
00270         //! First generated factory method for class or_ics_functional_for_lval_rval_conversion.
00271         static ptr< or_ics_functional_for_lval_rval_conversion > create (
00272                 lint a__or_ics_functional__rank,
00273                 ptr< ss_type > a__or_ics_functional__target_type);
00274 
00275         
00276 
00277         //! for purposes of dumping
00278         virtual ptr<reflection_list> reflection_get() const;
00279         //! for purposes of dumping
00280         virtual ptr<field_list_list> field_values_get() const;
00281         
00282 protected:
00283         //! Generated constructor for class or_ics_functional_for_lval_rval_conversion.
00284         or_ics_functional_for_lval_rval_conversion (
00285                 lint a__or_ics_functional__rank,
00286                 ptr< ss_type > a__or_ics_functional__target_type);
00287 
00288         //! Marking routine for class or_ics_functional_for_lval_rval_conversion. 
00289         virtual void gc_mark();
00290 
00291 private:
00292         static ptr<reflection_list> reflection;
00293         
00294 }; // or_ics_functional_for_lval_rval_conversion
00295 
00296 
00297 class or_ics_functional_for_user_conversion_by_constructor : public or_ics_functional {
00298 public:
00299         //! The method used_constructor_get returns the value of the field or_ics_functional_for_user_conversion_by_constructor::used_constructor.
00300         ptr< ss_function_declaration > used_constructor_get() const;
00301 
00302         //! The method used_constructor_set sets the field or_ics_functional_for_user_conversion_by_constructor::used_constructor to the given value.
00303         void used_constructor_set(const ptr< ss_function_declaration > &);
00304 
00305         // WARNING: Detailed doxygen description for method
00306         // should be near it's implementation, not in XML file.
00307 
00308         /*! \brief Operator representing the functional call and returning the conversion
00309 
00310         This operator is used for actual creation of the corresponding conversion sequence.
00311         */
00312         virtual ptr< ss_expression > operator()(ptr< ss_expression > arg, ptr< ss_sp > psp, ptr< ss_sp > nsp);
00313 
00314         virtual ptr< ::lestes::std::list< srp< ss_type > > > accept_or_ics_functional_base( ptr< or_ics_functional_base > v );
00315         
00316         //! First generated factory method for class or_ics_functional_for_user_conversion_by_constructor.
00317         static ptr< or_ics_functional_for_user_conversion_by_constructor > create (
00318                 lint a__or_ics_functional__rank,
00319                 ptr< ss_type > a__or_ics_functional__target_type,
00320                 ptr< ss_function_declaration > a__or_ics_functional_for_user_conversion_by_constructor__used_constructor);
00321 
00322         
00323 
00324         //! for purposes of dumping
00325         virtual ptr<reflection_list> reflection_get() const;
00326         //! for purposes of dumping
00327         virtual ptr<field_list_list> field_values_get() const;
00328         
00329 protected:
00330         //! Generated constructor for class or_ics_functional_for_user_conversion_by_constructor.
00331         or_ics_functional_for_user_conversion_by_constructor (
00332                 lint a__or_ics_functional__rank,
00333                 ptr< ss_type > a__or_ics_functional__target_type,
00334                 ptr< ss_function_declaration > a__or_ics_functional_for_user_conversion_by_constructor__used_constructor);
00335 
00336         //! Marking routine for class or_ics_functional_for_user_conversion_by_constructor. 
00337         virtual void gc_mark();
00338 
00339 private:
00340         srp< ss_function_declaration > used_constructor;
00341         static ptr<reflection_list> reflection;
00342         
00343 }; // or_ics_functional_for_user_conversion_by_constructor
00344 
00345 
00346 class or_ics_functional_for_user_conversion_by_conversion_function : public or_ics_functional {
00347 public:
00348         //! The method used_conversion_function_get returns the value of the field or_ics_functional_for_user_conversion_by_conversion_function::used_conversion_function.
00349         ptr< ss_function_declaration > used_conversion_function_get() const;
00350 
00351         //! The method used_conversion_function_set sets the field or_ics_functional_for_user_conversion_by_conversion_function::used_conversion_function to the given value.
00352         void used_conversion_function_set(const ptr< ss_function_declaration > &);
00353 
00354         // WARNING: Detailed doxygen description for method
00355         // should be near it's implementation, not in XML file.
00356 
00357         /*! \brief Operator representing the functional call and returning the conversion
00358 
00359         This operator is used for actual creation of the corresponding conversion sequence.
00360         */
00361         virtual ptr< ss_expression > operator()(ptr< ss_expression > arg, ptr< ss_sp > psp, ptr< ss_sp > nsp);
00362 
00363         virtual ptr< ::lestes::std::list< srp< ss_type > > > accept_or_ics_functional_base( ptr< or_ics_functional_base > v );
00364         
00365         //! First generated factory method for class or_ics_functional_for_user_conversion_by_conversion_function.
00366         static ptr< or_ics_functional_for_user_conversion_by_conversion_function > create (
00367                 lint a__or_ics_functional__rank,
00368                 ptr< ss_type > a__or_ics_functional__target_type,
00369                 ptr< ss_function_declaration > a__or_ics_functional_for_user_conversion_by_conversion_function__used_conversion_function);
00370 
00371         
00372 
00373         //! for purposes of dumping
00374         virtual ptr<reflection_list> reflection_get() const;
00375         //! for purposes of dumping
00376         virtual ptr<field_list_list> field_values_get() const;
00377         
00378 protected:
00379         //! Generated constructor for class or_ics_functional_for_user_conversion_by_conversion_function.
00380         or_ics_functional_for_user_conversion_by_conversion_function (
00381                 lint a__or_ics_functional__rank,
00382                 ptr< ss_type > a__or_ics_functional__target_type,
00383                 ptr< ss_function_declaration > a__or_ics_functional_for_user_conversion_by_conversion_function__used_conversion_function);
00384 
00385         //! Marking routine for class or_ics_functional_for_user_conversion_by_conversion_function. 
00386         virtual void gc_mark();
00387 
00388 private:
00389         srp< ss_function_declaration > used_conversion_function;
00390         static ptr<reflection_list> reflection;
00391         
00392 }; // or_ics_functional_for_user_conversion_by_conversion_function
00393 
00394 
00395 class or_ics_functional_for_compound_conversion : public or_ics_functional {
00396 public:
00397         //! The method outter_conversion_get returns the value of the field or_ics_functional_for_compound_conversion::outter_conversion.
00398         ptr< or_ics_functional > outter_conversion_get() const;
00399 
00400         //! The method outter_conversion_set sets the field or_ics_functional_for_compound_conversion::outter_conversion to the given value.
00401         void outter_conversion_set(const ptr< or_ics_functional > &);
00402 
00403         //! The method inner_conversion_get returns the value of the field or_ics_functional_for_compound_conversion::inner_conversion.
00404         ptr< or_ics_functional > inner_conversion_get() const;
00405 
00406         //! The method inner_conversion_set sets the field or_ics_functional_for_compound_conversion::inner_conversion to the given value.
00407         void inner_conversion_set(const ptr< or_ics_functional > &);
00408 
00409         // WARNING: Detailed doxygen description for method
00410         // should be near it's implementation, not in XML file.
00411 
00412         /*! \brief Operator representing the functional call and returning the conversion
00413 
00414         This operator is used for actual creation of the corresponding conversion sequence.
00415         */
00416         virtual ptr< ss_expression > operator()(ptr< ss_expression > arg, ptr< ss_sp > psp, ptr< ss_sp > nsp);
00417 
00418         virtual ptr< ::lestes::std::list< srp< ss_type > > > accept_or_ics_functional_base( ptr< or_ics_functional_base > v );
00419         
00420         //! First generated factory method for class or_ics_functional_for_compound_conversion.
00421         static ptr< or_ics_functional_for_compound_conversion > create (
00422                 lint a__or_ics_functional__rank,
00423                 ptr< ss_type > a__or_ics_functional__target_type,
00424                 ptr< or_ics_functional > a__or_ics_functional_for_compound_conversion__outter_conversion,
00425                 ptr< or_ics_functional > a__or_ics_functional_for_compound_conversion__inner_conversion);
00426 
00427         
00428 
00429         //! for purposes of dumping
00430         virtual ptr<reflection_list> reflection_get() const;
00431         //! for purposes of dumping
00432         virtual ptr<field_list_list> field_values_get() const;
00433         
00434 protected:
00435         //! Generated constructor for class or_ics_functional_for_compound_conversion.
00436         or_ics_functional_for_compound_conversion (
00437                 lint a__or_ics_functional__rank,
00438                 ptr< ss_type > a__or_ics_functional__target_type,
00439                 ptr< or_ics_functional > a__or_ics_functional_for_compound_conversion__outter_conversion,
00440                 ptr< or_ics_functional > a__or_ics_functional_for_compound_conversion__inner_conversion);
00441 
00442         //! Marking routine for class or_ics_functional_for_compound_conversion. 
00443         virtual void gc_mark();
00444 
00445 private:
00446         srp< or_ics_functional > outter_conversion;
00447         srp< or_ics_functional > inner_conversion;
00448         static ptr<reflection_list> reflection;
00449         
00450 }; // or_ics_functional_for_compound_conversion
00451 
00452 
00453 
00454 
00455     
00456 end_package(sem);
00457 end_package(cplus);
00458 end_package(lang);
00459 end_package(lestes);
00460 
00461 package(lestes);
00462 package(std);
00463 specialize_objectize_for_enum( ::lestes::lang::cplus::sem::rank_type );
00464 end_package(std);
00465 end_package(lestes);
00466 
00467 #endif // lestes__lang__cplus__sem__or_ics_g_hh__included

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