00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef lestes__lang__cplus__sem__sa_declaration_specifiers_g_hh__included
00012 #define lestes__lang__cplus__sem__sa_declaration_specifiers_g_hh__included
00013
00014 #include <lestes/common.hh>
00015 #include <lestes/std/list.hh>
00016 #include <lestes/lang/cplus/sem/sa_common.g.hh>
00017 #include <lestes/lang/cplus/sem/ss_enums.g.hh>
00018
00019 #include <lestes/std/objectize_macros.hh>
00020 package(lestes);
00021 package(lang);
00022 package(cplus);
00023 package(sem);
00024 class ss_type;
00025 end_package(sem);
00026 end_package(cplus);
00027 end_package(lang);
00028 end_package(lestes);
00029
00030 package(lestes);
00031 package(lang);
00032 package(cplus);
00033 package(sem);
00034
00035
00036 class sa_declaration_specifiers;
00037
00038
00039
00040
00041
00042
00043 class sa_declaration_specifiers : public ::lestes::std::object {
00044 public:
00045
00046 ptr< ::lestes::lang::cplus::sem::ss_type > type_get() const;
00047
00048
00049 ss_storage_class::type storage_class_get() const;
00050
00051
00052 bool explicit_flag_get() const;
00053
00054
00055 bool inline_flag_get() const;
00056
00057
00058 bool virtual_flag_get() const;
00059
00060
00061 bool friend_flag_get() const;
00062
00063
00064
00065 static ptr< sa_declaration_specifiers > create (
00066 ptr< ::lestes::lang::cplus::sem::ss_type > a__sa_declaration_specifiers__type,
00067 ss_storage_class::type a__sa_declaration_specifiers__storage_class,
00068 bool a__sa_declaration_specifiers__explicit_flag,
00069 bool a__sa_declaration_specifiers__inline_flag,
00070 bool a__sa_declaration_specifiers__virtual_flag,
00071 bool a__sa_declaration_specifiers__friend_flag);
00072
00073
00074
00075
00076 virtual ptr<reflection_list> reflection_get() const;
00077
00078 virtual ptr<field_list_list> field_values_get() const;
00079
00080 protected:
00081
00082 sa_declaration_specifiers (
00083 ptr< ::lestes::lang::cplus::sem::ss_type > a__sa_declaration_specifiers__type,
00084 ss_storage_class::type a__sa_declaration_specifiers__storage_class,
00085 bool a__sa_declaration_specifiers__explicit_flag,
00086 bool a__sa_declaration_specifiers__inline_flag,
00087 bool a__sa_declaration_specifiers__virtual_flag,
00088 bool a__sa_declaration_specifiers__friend_flag);
00089
00090
00091 virtual void gc_mark();
00092
00093 private:
00094
00095 srp< ::lestes::lang::cplus::sem::ss_type > type;
00096
00097 ss_storage_class::type storage_class;
00098
00099 bool explicit_flag;
00100
00101 bool inline_flag;
00102
00103 bool virtual_flag;
00104
00105 bool friend_flag;
00106 static ptr<reflection_list> reflection;
00107
00108 };
00109
00110
00111 end_package(sem);
00112 end_package(cplus);
00113 end_package(lang);
00114 end_package(lestes);
00115
00116 #endif // lestes__lang__cplus__sem__sa_declaration_specifiers_g_hh__included