00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef lestes__md__functions__function_parameter_accessor_base_g_hh__included
00010 #define lestes__md__functions__function_parameter_accessor_base_g_hh__included
00011
00012 #include <lestes/md/common.hh>
00013
00014 #include <lestes/std/objectize_macros.hh>
00015 package(lestes);
00016 package(std);
00017 class object;
00018 end_package(std);
00019 end_package(lestes);
00020
00021 package(lestes);
00022 package(lang);
00023 package(cplus);
00024 package(sem);
00025 class ss_function_declaration;
00026 end_package(sem);
00027 end_package(cplus);
00028 end_package(lang);
00029 end_package(lestes);
00030
00031 package(lestes);
00032 package(backend_v2);
00033 package(intercode);
00034 class pi_mem_factory;
00035 end_package(intercode);
00036 end_package(backend_v2);
00037 end_package(lestes);
00038
00039 package(lestes);
00040 package(md);
00041 package(functions);
00042
00043
00044 class function_parameter_accessor_base;
00045
00046
00047
00048
00049
00050
00051
00052 class function_parameter_accessor_base : public ::lestes::std::object {
00053 public:
00054
00055 ptr< ::lestes::lang::cplus::sem::ss_function_declaration > function_get() const;
00056
00057
00058 void function_set(const ptr< ::lestes::lang::cplus::sem::ss_function_declaration > &);
00059
00060
00061 virtual ptr< ::lestes::backend_v2::intercode::pi_mem_factory > get_parameter(ulint index) abstract;
00062
00063
00064 virtual ptr< ::lestes::backend_v2::intercode::pi_mem_factory > get_this() abstract;
00065
00066
00067 virtual ptr< ::lestes::backend_v2::intercode::pi_mem_factory > get_ret_val() abstract;
00068
00069
00070
00071
00072 virtual ptr<reflection_list> reflection_get() const;
00073
00074 virtual ptr<field_list_list> field_values_get() const;
00075
00076 protected:
00077
00078 function_parameter_accessor_base (
00079 ptr< ::lestes::lang::cplus::sem::ss_function_declaration > a__function_parameter_accessor_base__function);
00080
00081
00082 virtual void gc_mark();
00083
00084 private:
00085
00086 srp< ::lestes::lang::cplus::sem::ss_function_declaration > function;
00087 static ptr<reflection_list> reflection;
00088
00089 };
00090
00091
00092 end_package(functions);
00093 end_package(md);
00094 end_package(lestes);
00095
00096 #endif // lestes__md__functions__function_parameter_accessor_base_g_hh__included