00001
00002
00003 #ifndef lestes__intercode__intercode_g_hh__included
00004 #define lestes__intercode__intercode_g_hh__included
00005
00006 #include <lestes/common.hh>
00007 #include <lestes/std/source_location.hh>
00008
00009 #include <lestes/std/objectize_macros.hh>
00010 package(lestes);
00011 package(std);
00012 class object;
00013 end_package(std);
00014 end_package(lestes);
00015
00016 package(lestes);
00017 package(std);
00018 class source_location;
00019 end_package(std);
00020 end_package(lestes);
00021
00022 package(lestes);
00023 package(intercode);
00024
00025
00026
00027
00028
00029
00030
00031 class intercode;
00032 class as_base;
00033 class ss_base;
00034 class ss_base_with_location;
00035 class pi_base;
00036
00037
00038 class intercode : public ::lestes::std::object {
00039 public:
00040
00041
00042 static ptr< intercode > create (
00043 );
00044
00045
00046
00047
00048 virtual ptr<reflection_list> reflection_get() const;
00049
00050 virtual ptr<field_list_list> field_values_get() const;
00051
00052 protected:
00053
00054 intercode (
00055 );
00056
00057
00058 virtual void gc_mark();
00059
00060 private:
00061 static ptr<reflection_list> reflection;
00062
00063 };
00064
00065
00066 class as_base : public intercode {
00067 public:
00068
00069 ptr< ::lestes::std::source_location > location_get() const;
00070
00071
00072 void location_set(const ptr< ::lestes::std::source_location > &);
00073
00074
00075
00076
00077 virtual ptr<reflection_list> reflection_get() const;
00078
00079 virtual ptr<field_list_list> field_values_get() const;
00080
00081 protected:
00082
00083 as_base (
00084 ptr< ::lestes::std::source_location > a__as_base__location);
00085
00086
00087 virtual void gc_mark();
00088
00089 private:
00090 srp< ::lestes::std::source_location > location;
00091 static ptr<reflection_list> reflection;
00092
00093 };
00094
00095
00096
00097
00098
00099
00100 class ss_base : public intercode {
00101 public:
00102
00103
00104
00105 virtual ptr<reflection_list> reflection_get() const;
00106
00107 virtual ptr<field_list_list> field_values_get() const;
00108
00109 protected:
00110
00111 ss_base (
00112 );
00113
00114
00115 virtual void gc_mark();
00116
00117 private:
00118 static ptr<reflection_list> reflection;
00119
00120 };
00121
00122
00123 class ss_base_with_location : public ss_base {
00124 public:
00125
00126 ptr< ::lestes::std::source_location > location_get() const;
00127
00128
00129 void location_set(const ptr< ::lestes::std::source_location > &);
00130
00131
00132
00133
00134 virtual ptr<reflection_list> reflection_get() const;
00135
00136 virtual ptr<field_list_list> field_values_get() const;
00137
00138 protected:
00139
00140 ss_base_with_location (
00141 ptr< ::lestes::std::source_location > a__ss_base_with_location__location);
00142
00143
00144 virtual void gc_mark();
00145
00146 private:
00147 srp< ::lestes::std::source_location > location;
00148 static ptr<reflection_list> reflection;
00149
00150 };
00151
00152
00153 class pi_base : public intercode {
00154 public:
00155
00156
00157
00158 virtual ptr<reflection_list> reflection_get() const;
00159
00160 virtual ptr<field_list_list> field_values_get() const;
00161
00162 protected:
00163
00164 pi_base (
00165 );
00166
00167
00168 virtual void gc_mark();
00169
00170 private:
00171 static ptr<reflection_list> reflection;
00172
00173 };
00174
00175
00176 end_package(intercode);
00177 end_package(lestes);
00178
00179 #endif // lestes__intercode__intercode_g_hh__included