ss_type2param_type.g.hh

Go to the documentation of this file.
00001 // This file is automatically generated, do not edit.
00002 
00003 /*!
00004         \file
00005         \brief Normalization of parameter types.
00006         Visitor performing normalization of SS types in parameters.
00007 */
00008 
00009 #ifndef lestes__lang__cplus__sem__ss_type2param_type_g_hh__included
00010 #define lestes__lang__cplus__sem__ss_type2param_type_g_hh__included
00011 
00012 #include <lestes/common.hh>
00013 #include <lestes/std/list.hh>
00014 #include <lestes/lang/cplus/sem/ss_type_visitor.v.g.hh>
00015 
00016 #include <lestes/std/objectize_macros.hh>
00017 package(lestes);
00018 package(lang);
00019 package(cplus);
00020 package(sem);
00021 class ss_type;
00022 end_package(sem);
00023 end_package(cplus);
00024 end_package(lang);
00025 end_package(lestes);
00026 
00027 package(lestes);
00028 package(lang);
00029 package(cplus);
00030 package(sem);
00031 class ss_struct_base;
00032 end_package(sem);
00033 end_package(cplus);
00034 end_package(lang);
00035 end_package(lestes);
00036 
00037 package(lestes);
00038 package(lang);
00039 package(cplus);
00040 package(sem);
00041 class ss_builtin_type;
00042 end_package(sem);
00043 end_package(cplus);
00044 end_package(lang);
00045 end_package(lestes);
00046 
00047 package(lestes);
00048 package(lang);
00049 package(cplus);
00050 package(sem);
00051 class ss_const;
00052 end_package(sem);
00053 end_package(cplus);
00054 end_package(lang);
00055 end_package(lestes);
00056 
00057 package(lestes);
00058 package(lang);
00059 package(cplus);
00060 package(sem);
00061 class ss_volatile;
00062 end_package(sem);
00063 end_package(cplus);
00064 end_package(lang);
00065 end_package(lestes);
00066 
00067 package(lestes);
00068 package(lang);
00069 package(cplus);
00070 package(sem);
00071 
00072 
00073 class ss_type2param_type;
00074 
00075 
00076 /*! \brief Normalizes types of parameters.
00077 
00078 
00079                                 Performs normalization of SS types in function parameters.
00080                                 Function types are transformed into pointers to function.
00081                                 Arrays of T are transformed into pointers to T.
00082                         
00083 */
00084 class ss_type2param_type : public ss_type2param_type_base {
00085 public:
00086         //! The method type_get returns the value of the field ss_type2param_type::type.
00087         ptr< ::lestes::lang::cplus::sem::ss_type > type_get() const;
00088 
00089         //! Visitor method for all SS types in ss_struct_base hierarchy.
00090         void default_ss_struct_base(ptr< ::lestes::lang::cplus::sem::ss_struct_base > obj);
00091 
00092         //! Visitor method for all SS types in ss_builtin_type hierarchy.
00093         void default_ss_builtin_type(ptr< ::lestes::lang::cplus::sem::ss_builtin_type > obj);
00094 
00095         virtual void visit_ss_const(ptr< ::lestes::lang::cplus::sem::ss_const > );
00096 
00097         virtual void visit_ss_volatile(ptr< ::lestes::lang::cplus::sem::ss_volatile > );
00098 
00099         virtual void visit_ss_const_volatile(ptr< ::lestes::lang::cplus::sem::ss_const_volatile > );
00100 
00101         virtual void visit_ss_reference(ptr< ::lestes::lang::cplus::sem::ss_reference > );
00102 
00103         virtual void visit_ss_pseudoreference(ptr< ::lestes::lang::cplus::sem::ss_pseudoreference > );
00104 
00105         virtual void visit_ss_pointer(ptr< ::lestes::lang::cplus::sem::ss_pointer > );
00106 
00107         virtual void visit_ss_enum(ptr< ::lestes::lang::cplus::sem::ss_enum > );
00108 
00109         virtual void visit_ss_array(ptr< ::lestes::lang::cplus::sem::ss_array > );
00110 
00111         virtual void visit_ss_member_pointer(ptr< ::lestes::lang::cplus::sem::ss_member_pointer > );
00112 
00113         virtual void visit_ss_function(ptr< ::lestes::lang::cplus::sem::ss_function > );
00114 
00115         virtual void visit_ss_member_function(ptr< ::lestes::lang::cplus::sem::ss_member_function > );
00116 
00117         
00118         //! First generated factory method for class ss_type2param_type.
00119         static ptr< ss_type2param_type > create (
00120                 ptr< ::lestes::lang::cplus::sem::ss_type > a__ss_type2param_type__type);
00121 
00122         //! Second generated factory method for class ss_type2param_type.
00123         static ptr< ss_type2param_type > create (
00124                 );
00125 
00126         
00127         //! "visit-return" method
00128         ptr< ::lestes::lang::cplus::sem::ss_type > process( const ptr< ::lestes::lang::cplus::sem::ss_type > & );
00129 
00130         //! for purposes of dumping
00131         virtual ptr<reflection_list> reflection_get() const;
00132         //! for purposes of dumping
00133         virtual ptr<field_list_list> field_values_get() const;
00134         
00135 protected:
00136         //! Generated constructor for class ss_type2param_type.
00137         ss_type2param_type (
00138                 ptr< ::lestes::lang::cplus::sem::ss_type > a__ss_type2param_type__type);
00139 
00140         //! Marking routine for class ss_type2param_type. 
00141         virtual void gc_mark();
00142 
00143 private:
00144         /*! \brief The normalized type.
00145 
00146         The processed type normalized for usage in function parameter.
00147         */
00148         srp< ::lestes::lang::cplus::sem::ss_type > type;
00149         static ptr<reflection_list> reflection;
00150         
00151 }; // ss_type2param_type
00152 
00153 
00154 end_package(sem);
00155 end_package(cplus);
00156 end_package(lang);
00157 end_package(lestes);
00158 
00159 #endif // lestes__lang__cplus__sem__ss_type2param_type_g_hh__included

Generated on Mon Feb 12 18:23:33 2007 for lestes by doxygen 1.5.1-20070107