00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef lestes__lang__cplus__sem__sa_param_declaration_g_hh__included
00011 #define lestes__lang__cplus__sem__sa_param_declaration_g_hh__included
00012
00013 #include <lestes/common.hh>
00014 #include <lestes/std/list.hh>
00015
00016 #include <lestes/std/objectize_macros.hh>
00017 package(lestes);
00018 package(lang);
00019 package(cplus);
00020 package(sem);
00021 class as_param_declaration;
00022 end_package(sem);
00023 end_package(cplus);
00024 end_package(lang);
00025 end_package(lestes);
00026
00027 package(lestes);
00028 package(lang);
00029 package(cplus);
00030 package(sem);
00031 class as_declarator_op2ss_type;
00032 end_package(sem);
00033 end_package(cplus);
00034 end_package(lang);
00035 end_package(lestes);
00036
00037 package(lestes);
00038 package(lang);
00039 package(cplus);
00040 package(sem);
00041 class ss_type;
00042 end_package(sem);
00043 end_package(cplus);
00044 end_package(lang);
00045 end_package(lestes);
00046
00047 package(lestes);
00048 package(lang);
00049 package(cplus);
00050 package(sem);
00051 class ss_decl_seq;
00052 end_package(sem);
00053 end_package(cplus);
00054 end_package(lang);
00055 end_package(lestes);
00056
00057 package(lestes);
00058 package(lang);
00059 package(cplus);
00060 package(sem);
00061
00062
00063 class sa_param_declaration;
00064
00065
00066
00067
00068
00069
00070 class sa_param_declaration : public ::lestes::std::object {
00071 public:
00072
00073 ptr< ::lestes::lang::cplus::sem::ss_decl_seq > scope_get() const;
00074
00075
00076 ulint index_get() const;
00077
00078
00079 void process(ptr< ::lestes::lang::cplus::sem::as_param_declaration > decl);
00080
00081
00082
00083 static ptr< sa_param_declaration > create (
00084 ptr< ::lestes::lang::cplus::sem::ss_decl_seq > a__sa_param_declaration__scope,
00085 ulint a__sa_param_declaration__index);
00086
00087
00088 static ptr< sa_param_declaration > create (
00089 ptr< ::lestes::lang::cplus::sem::ss_decl_seq > a__sa_param_declaration__scope);
00090
00091
00092
00093
00094 virtual ptr<reflection_list> reflection_get() const;
00095
00096 virtual ptr<field_list_list> field_values_get() const;
00097
00098 protected:
00099
00100 sa_param_declaration (
00101 ptr< ::lestes::lang::cplus::sem::ss_decl_seq > a__sa_param_declaration__scope,
00102 ulint a__sa_param_declaration__index);
00103
00104
00105 virtual void gc_mark();
00106
00107 private:
00108
00109
00110
00111
00112 srp< ::lestes::lang::cplus::sem::ss_decl_seq > scope;
00113
00114
00115
00116
00117 ulint index;
00118 static ptr<reflection_list> reflection;
00119
00120 };
00121
00122
00123 end_package(sem);
00124 end_package(cplus);
00125 end_package(lang);
00126 end_package(lestes);
00127
00128 #endif // lestes__lang__cplus__sem__sa_param_declaration_g_hh__included