00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef lestes__md__types__copy_constructor_call_generator_base_g_hh__included
00010 #define lestes__md__types__copy_constructor_call_generator_base_g_hh__included
00011
00012 #include <lestes/common.hh>
00013 #include <lestes/std/vector.hh>
00014 #include <lestes/md/common.hh>
00015
00016 #include <lestes/std/objectize_macros.hh>
00017 package(lestes);
00018 package(std);
00019 class object;
00020 end_package(std);
00021 end_package(lestes);
00022
00023 package(lestes);
00024 package(backend_v2);
00025 package(intercode);
00026 class pi_operand;
00027 end_package(intercode);
00028 end_package(backend_v2);
00029 end_package(lestes);
00030
00031 package(lestes);
00032 package(backend_v2);
00033 package(intercode);
00034 class pi_mem;
00035 end_package(intercode);
00036 end_package(backend_v2);
00037 end_package(lestes);
00038
00039 package(lestes);
00040 package(backend_v2);
00041 package(intercode);
00042 class ge_operand;
00043 end_package(intercode);
00044 end_package(backend_v2);
00045 end_package(lestes);
00046
00047 package(lestes);
00048 package(backend_v2);
00049 package(intercode);
00050 class pi_pi;
00051 end_package(intercode);
00052 end_package(backend_v2);
00053 end_package(lestes);
00054
00055 package(lestes);
00056 package(backend_v2);
00057 package(intercode);
00058 class ge_pi;
00059 end_package(intercode);
00060 end_package(backend_v2);
00061 end_package(lestes);
00062
00063 package(lestes);
00064 package(backend_v2);
00065 package(intercode);
00066 class pi_sp;
00067 end_package(intercode);
00068 end_package(backend_v2);
00069 end_package(lestes);
00070
00071 package(lestes);
00072 package(md);
00073 package(types);
00074
00075
00076 class copy_constructor_call_generator_base;
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093 class copy_constructor_call_generator_base : public ::lestes::std::object {
00094 public:
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106 ptr<list<srp< ::lestes::backend_v2::intercode::pi_pi> > > generate(ptr< ::lestes::backend_v2::intercode::pi_mem > into, ptr< ::lestes::backend_v2::intercode::pi_operand > from, ptr< ::lestes::backend_v2::intercode::pi_sp > psp, ptr< ::lestes::backend_v2::intercode::pi_sp > nsp);
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118 virtual ptr< ::lestes::backend_v2::intercode::ge_operand > generate_copy(ptr< ::lestes::backend_v2::intercode::ge_operand > op, ptr<vector<srp< ::lestes::backend_v2::intercode::ge_pi> > > copy_code) abstract;
00119
00120
00121
00122
00123 virtual ptr<reflection_list> reflection_get() const;
00124
00125 virtual ptr<field_list_list> field_values_get() const;
00126
00127 protected:
00128
00129 copy_constructor_call_generator_base (
00130 );
00131
00132
00133 virtual void gc_mark();
00134
00135 private:
00136 static ptr<reflection_list> reflection;
00137
00138 };
00139
00140
00141 end_package(types);
00142 end_package(md);
00143 end_package(lestes);
00144
00145 #endif // lestes__md__types__copy_constructor_call_generator_base_g_hh__included