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