00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef lestes__md__types__type_info_g_hh__included
00010 #define lestes__md__types__type_info_g_hh__included
00011
00012 #include <lestes/md/common.hh>
00013 #include <lestes/md/types/type_info_base.g.hh>
00014
00015 #include <lestes/std/objectize_macros.hh>
00016 package(lestes);
00017 package(std);
00018 class object;
00019 end_package(std);
00020 end_package(lestes);
00021
00022 package(lestes);
00023 package(lang);
00024 package(cplus);
00025 package(sem);
00026 class ss_type;
00027 end_package(sem);
00028 end_package(cplus);
00029 end_package(lang);
00030 end_package(lestes);
00031
00032 package(lestes);
00033 package(md);
00034 package(types);
00035 class num_range;
00036 end_package(types);
00037 end_package(md);
00038 end_package(lestes);
00039
00040 package(lestes);
00041 package(md);
00042 package(types);
00043 class tm_data_type_base;
00044 end_package(types);
00045 end_package(md);
00046 end_package(lestes);
00047
00048 package(lestes);
00049 package(md);
00050 package(types);
00051
00052
00053 class type_info;
00054
00055
00056
00057 class type_info : public type_info_base {
00058 public:
00059
00060 static ptr< type_info > singleton_instance_get();
00061
00062
00063 static void singleton_instance_set(const ptr< type_info > &);
00064
00065 static ptr< type_info > instance();
00066
00067
00068 virtual ptr< ::lestes::lang::cplus::sem::ss_type > get_ptrdiff_t_type();
00069
00070
00071 virtual ptr< ::lestes::lang::cplus::sem::ss_type > get_size_t_type();
00072
00073
00074 virtual bool does_value_match_type(ucn_string value, ptr< ::lestes::lang::cplus::sem::ss_type > type);
00075
00076
00077
00078 static ptr< type_info > create (
00079 );
00080
00081
00082
00083
00084 virtual ptr<reflection_list> reflection_get() const;
00085
00086 virtual ptr<field_list_list> field_values_get() const;
00087
00088 protected:
00089
00090 type_info (
00091 );
00092
00093
00094 virtual void gc_mark();
00095
00096 private:
00097 static ptr< type_info > singleton_instance;
00098 static ptr<reflection_list> reflection;
00099
00100 };
00101
00102
00103 end_package(types);
00104 end_package(md);
00105 end_package(lestes);
00106
00107 #endif // lestes__md__types__type_info_g_hh__included