00001
00002
00003
00004
00005
00006
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
00077
00078
00079
00080
00081
00082
00083
00084 class ss_type2param_type : public ss_type2param_type_base {
00085 public:
00086
00087 ptr< ::lestes::lang::cplus::sem::ss_type > type_get() const;
00088
00089
00090 void default_ss_struct_base(ptr< ::lestes::lang::cplus::sem::ss_struct_base > obj);
00091
00092
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
00119 static ptr< ss_type2param_type > create (
00120 ptr< ::lestes::lang::cplus::sem::ss_type > a__ss_type2param_type__type);
00121
00122
00123 static ptr< ss_type2param_type > create (
00124 );
00125
00126
00127
00128 ptr< ::lestes::lang::cplus::sem::ss_type > process( const ptr< ::lestes::lang::cplus::sem::ss_type > & );
00129
00130
00131 virtual ptr<reflection_list> reflection_get() const;
00132
00133 virtual ptr<field_list_list> field_values_get() const;
00134
00135 protected:
00136
00137 ss_type2param_type (
00138 ptr< ::lestes::lang::cplus::sem::ss_type > a__ss_type2param_type__type);
00139
00140
00141 virtual void gc_mark();
00142
00143 private:
00144
00145
00146
00147
00148 srp< ::lestes::lang::cplus::sem::ss_type > type;
00149 static ptr<reflection_list> reflection;
00150
00151 };
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