00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef lestes__md__types__ss_type2tm_type_g_hh__included
00010 #define lestes__md__types__ss_type2tm_type_g_hh__included
00011
00012 #include <lestes/common.hh>
00013 #include <lestes/md/common.hh>
00014 #include <lestes/lang/cplus/sem/visitor.v.g.hh>
00015 #include <lestes/md/types/ss_type2tm_type_base.g.hh>
00016
00017 #include <lestes/std/objectize_macros.hh>
00018 package(lestes);
00019 package(md);
00020 package(types);
00021 class tm_data_type_base;
00022 end_package(types);
00023 end_package(md);
00024 end_package(lestes);
00025
00026 package(lestes);
00027 package(md);
00028 package(types);
00029 class tm_dt_simple_base;
00030 end_package(types);
00031 end_package(md);
00032 end_package(lestes);
00033
00034 package(lestes);
00035 package(md);
00036 package(types);
00037
00038
00039 class ss_type2tm_type;
00040
00041
00042
00043 class ss_type2tm_type : public ss_type2tm_type_base {
00044 public:
00045
00046 static ptr< ss_type2tm_type > singleton_instance_get();
00047
00048
00049 static void singleton_instance_set(const ptr< ss_type2tm_type > &);
00050
00051 static ptr< ss_type2tm_type > instance();
00052
00053 virtual ptr< ::lestes::md::types::tm_data_type_base > visit_ss_const(ptr< ::lestes::lang::cplus::sem::ss_const > );
00054
00055 virtual ptr< ::lestes::md::types::tm_data_type_base > visit_ss_volatile(ptr< ::lestes::lang::cplus::sem::ss_volatile > );
00056
00057 virtual ptr< ::lestes::md::types::tm_data_type_base > visit_ss_const_volatile(ptr< ::lestes::lang::cplus::sem::ss_const_volatile > );
00058
00059 virtual ptr< ::lestes::md::types::tm_data_type_base > visit_ss_reference(ptr< ::lestes::lang::cplus::sem::ss_reference > );
00060
00061 virtual ptr< ::lestes::md::types::tm_data_type_base > visit_ss_pseudoreference(ptr< ::lestes::lang::cplus::sem::ss_pseudoreference > );
00062
00063 virtual ptr< ::lestes::md::types::tm_data_type_base > visit_ss_pointer(ptr< ::lestes::lang::cplus::sem::ss_pointer > );
00064
00065 virtual ptr< ::lestes::md::types::tm_data_type_base > visit_ss_enum(ptr< ::lestes::lang::cplus::sem::ss_enum > );
00066
00067 virtual ptr< ::lestes::md::types::tm_data_type_base > visit_ss_array(ptr< ::lestes::lang::cplus::sem::ss_array > );
00068
00069 virtual ptr< ::lestes::md::types::tm_data_type_base > visit_ss_member_pointer(ptr< ::lestes::lang::cplus::sem::ss_member_pointer > );
00070
00071 virtual ptr< ::lestes::md::types::tm_data_type_base > visit_ss_function(ptr< ::lestes::lang::cplus::sem::ss_function > );
00072
00073 virtual ptr< ::lestes::md::types::tm_data_type_base > visit_ss_member_function(ptr< ::lestes::lang::cplus::sem::ss_member_function > );
00074
00075 virtual ptr< ::lestes::md::types::tm_data_type_base > visit_ss_class(ptr< ::lestes::lang::cplus::sem::ss_class > );
00076
00077 virtual ptr< ::lestes::md::types::tm_data_type_base > visit_ss_union(ptr< ::lestes::lang::cplus::sem::ss_union > );
00078
00079 virtual ptr< ::lestes::md::types::tm_data_type_base > visit_ss_bool(ptr< ::lestes::lang::cplus::sem::ss_bool > );
00080
00081 virtual ptr< ::lestes::md::types::tm_data_type_base > visit_ss_void(ptr< ::lestes::lang::cplus::sem::ss_void > );
00082
00083 virtual ptr< ::lestes::md::types::tm_data_type_base > visit_ss_type_sint(ptr< ::lestes::lang::cplus::sem::ss_type_sint > );
00084
00085 virtual ptr< ::lestes::md::types::tm_data_type_base > visit_ss_type_uint(ptr< ::lestes::lang::cplus::sem::ss_type_uint > );
00086
00087 virtual ptr< ::lestes::md::types::tm_data_type_base > visit_ss_type_slong(ptr< ::lestes::lang::cplus::sem::ss_type_slong > );
00088
00089 virtual ptr< ::lestes::md::types::tm_data_type_base > visit_ss_type_ulong(ptr< ::lestes::lang::cplus::sem::ss_type_ulong > );
00090
00091 virtual ptr< ::lestes::md::types::tm_data_type_base > visit_ss_type_sshort(ptr< ::lestes::lang::cplus::sem::ss_type_sshort > );
00092
00093 virtual ptr< ::lestes::md::types::tm_data_type_base > visit_ss_type_ushort(ptr< ::lestes::lang::cplus::sem::ss_type_ushort > );
00094
00095 virtual ptr< ::lestes::md::types::tm_data_type_base > visit_ss_type_wchar_t(ptr< ::lestes::lang::cplus::sem::ss_type_wchar_t > );
00096
00097 virtual ptr< ::lestes::md::types::tm_data_type_base > visit_ss_type_schar(ptr< ::lestes::lang::cplus::sem::ss_type_schar > );
00098
00099 virtual ptr< ::lestes::md::types::tm_data_type_base > visit_ss_type_uchar(ptr< ::lestes::lang::cplus::sem::ss_type_uchar > );
00100
00101 virtual ptr< ::lestes::md::types::tm_data_type_base > visit_ss_type_pchar(ptr< ::lestes::lang::cplus::sem::ss_type_pchar > );
00102
00103 virtual ptr< ::lestes::md::types::tm_data_type_base > visit_ss_type_float(ptr< ::lestes::lang::cplus::sem::ss_type_float > );
00104
00105 virtual ptr< ::lestes::md::types::tm_data_type_base > visit_ss_type_double(ptr< ::lestes::lang::cplus::sem::ss_type_double > );
00106
00107 virtual ptr< ::lestes::md::types::tm_data_type_base > visit_ss_type_ldouble(ptr< ::lestes::lang::cplus::sem::ss_type_ldouble > );
00108
00109 virtual ptr< ::lestes::md::types::tm_dt_simple_base > conditional_preg_type_get();
00110
00111
00112
00113 static ptr< ss_type2tm_type > create (
00114 );
00115
00116
00117
00118
00119 virtual ptr<reflection_list> reflection_get() const;
00120
00121 virtual ptr<field_list_list> field_values_get() const;
00122
00123 protected:
00124
00125 ss_type2tm_type (
00126 );
00127
00128
00129 virtual void gc_mark();
00130
00131 private:
00132 static ptr< ss_type2tm_type > singleton_instance;
00133 static ptr<reflection_list> reflection;
00134
00135 };
00136
00137
00138 end_package(types);
00139 end_package(md);
00140 end_package(lestes);
00141
00142 #endif // lestes__md__types__ss_type2tm_type_g_hh__included