00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef lestes__lang__cplus__sem__sa_param_declaration_type_g_hh__included
00012 #define lestes__lang__cplus__sem__sa_param_declaration_type_g_hh__included
00013
00014 #include <lestes/common.hh>
00015
00016 #include <lestes/std/objectize_macros.hh>
00017 package(lestes);
00018 package(lang);
00019 package(cplus);
00020 package(sem);
00021
00022
00023 class as_param_declaration;
00024 class ss_type;
00025 class sa_param_declaration_type;
00026
00027
00028
00029
00030
00031
00032 class sa_param_declaration_type : public ::lestes::std::object {
00033 public:
00034
00035 ptr< ss_type > type_get() const;
00036
00037
00038 void process(ptr< as_param_declaration > decl);
00039
00040
00041
00042 static ptr< sa_param_declaration_type > create (
00043 ptr< ss_type > a__sa_param_declaration_type__type);
00044
00045
00046 static ptr< sa_param_declaration_type > create (
00047 );
00048
00049
00050
00051
00052 virtual ptr<reflection_list> reflection_get() const;
00053
00054 virtual ptr<field_list_list> field_values_get() const;
00055
00056 protected:
00057
00058 sa_param_declaration_type (
00059 ptr< ss_type > a__sa_param_declaration_type__type);
00060
00061
00062 virtual void gc_mark();
00063
00064 private:
00065
00066
00067
00068
00069 srp< ss_type > type;
00070 static ptr<reflection_list> reflection;
00071
00072 };
00073
00074
00075 end_package(sem);
00076 end_package(cplus);
00077 end_package(lang);
00078 end_package(lestes);
00079
00080 #endif // lestes__lang__cplus__sem__sa_param_declaration_type_g_hh__included