00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #include <lestes/lang/cplus/sem/ss_type.g.hh>
00012
00013 #include <lestes/std/list.hh>
00014 #include <lestes/std/pair.hh>
00015 #include <lestes/std/reflect.hh>
00016
00017 #include <lestes/lang/cplus/sem/sa_declaration_specifiers.g.hh>
00018
00019 package(lestes);
00020 package(lang);
00021 package(cplus);
00022 package(sem);
00023
00024
00025
00026
00027
00028
00029
00030
00031 ptr< ::lestes::lang::cplus::sem::ss_type > sa_declaration_specifiers::type_get() const
00032 {
00033 return type;
00034 }
00035
00036
00037
00038
00039
00040 ss_storage_class::type sa_declaration_specifiers::storage_class_get() const
00041 {
00042 return storage_class;
00043 }
00044
00045
00046
00047
00048
00049 bool sa_declaration_specifiers::explicit_flag_get() const
00050 {
00051 return explicit_flag;
00052 }
00053
00054
00055
00056
00057
00058 bool sa_declaration_specifiers::inline_flag_get() const
00059 {
00060 return inline_flag;
00061 }
00062
00063
00064
00065
00066
00067 bool sa_declaration_specifiers::virtual_flag_get() const
00068 {
00069 return virtual_flag;
00070 }
00071
00072
00073
00074
00075
00076 bool sa_declaration_specifiers::friend_flag_get() const
00077 {
00078 return friend_flag;
00079 }
00080
00081
00082
00083
00084
00085 ptr< sa_declaration_specifiers > sa_declaration_specifiers::create(ptr< ::lestes::lang::cplus::sem::ss_type > a__sa_declaration_specifiers__type,
00086 ss_storage_class::type a__sa_declaration_specifiers__storage_class,
00087 bool a__sa_declaration_specifiers__explicit_flag,
00088 bool a__sa_declaration_specifiers__inline_flag,
00089 bool a__sa_declaration_specifiers__virtual_flag,
00090 bool a__sa_declaration_specifiers__friend_flag)
00091 {
00092 return ptr< sa_declaration_specifiers > ( new sa_declaration_specifiers(a__sa_declaration_specifiers__type,
00093 a__sa_declaration_specifiers__storage_class,
00094 a__sa_declaration_specifiers__explicit_flag,
00095 a__sa_declaration_specifiers__inline_flag,
00096 a__sa_declaration_specifiers__virtual_flag,
00097 a__sa_declaration_specifiers__friend_flag) );
00098 }
00099
00100
00101
00102
00103
00104 sa_declaration_specifiers::sa_declaration_specifiers (ptr< ::lestes::lang::cplus::sem::ss_type > a__sa_declaration_specifiers__type,
00105 ss_storage_class::type a__sa_declaration_specifiers__storage_class,
00106 bool a__sa_declaration_specifiers__explicit_flag,
00107 bool a__sa_declaration_specifiers__inline_flag,
00108 bool a__sa_declaration_specifiers__virtual_flag,
00109 bool a__sa_declaration_specifiers__friend_flag)
00110 : object(), type(checked(a__sa_declaration_specifiers__type)), storage_class(a__sa_declaration_specifiers__storage_class), explicit_flag(a__sa_declaration_specifiers__explicit_flag), inline_flag(a__sa_declaration_specifiers__inline_flag), virtual_flag(a__sa_declaration_specifiers__virtual_flag), friend_flag(a__sa_declaration_specifiers__friend_flag)
00111 {}
00112
00113 ptr< object::reflection_list > sa_declaration_specifiers::reflection_get() const
00114 {
00115 if (!reflection) {
00116 typedef class_reflection::field_metadata md;
00117 typedef class_reflection::field_metadata_list mdlist;
00118 ptr<mdlist> mdl = mdlist::create();
00119 mdl->push_back( md::create( "type", "ss_type" ) );
00120 mdl->push_back( md::create( "storage_class", "ss_storage_class::type" ) );
00121 mdl->push_back( md::create( "explicit_flag", "bool" ) );
00122 mdl->push_back( md::create( "inline_flag", "bool" ) );
00123 mdl->push_back( md::create( "virtual_flag", "bool" ) );
00124 mdl->push_back( md::create( "friend_flag", "bool" ) );
00125 reflection = reflection_list::create( ::lestes::std::object::reflection_get() );
00126 reflection->push_back( class_reflection::create( "sa_declaration_specifiers", mdl ) );
00127 }
00128 return reflection;
00129 }
00130
00131 ptr< object::field_list_list > sa_declaration_specifiers::field_values_get() const
00132 {
00133 ptr < field_list_list > result = ::lestes::std::object::field_values_get();
00134 result->push_back( value_list::create() );
00135 result->back()->push_back( this->type );
00136 result->push_back( value_list::create() );
00137 result->back()->push_back( objectize< ss_storage_class::type > ::create( this->storage_class ) );
00138 result->push_back( value_list::create() );
00139 result->back()->push_back( objectize< bool > ::create( this->explicit_flag ) );
00140 result->push_back( value_list::create() );
00141 result->back()->push_back( objectize< bool > ::create( this->inline_flag ) );
00142 result->push_back( value_list::create() );
00143 result->back()->push_back( objectize< bool > ::create( this->virtual_flag ) );
00144 result->push_back( value_list::create() );
00145 result->back()->push_back( objectize< bool > ::create( this->friend_flag ) );
00146 return result;
00147 }
00148
00149
00150
00151
00152
00153
00154 void sa_declaration_specifiers::gc_mark()
00155 {
00156 ::lestes::std::object::gc_mark();
00157 }
00158
00159
00160
00161
00162
00163 ptr<object::reflection_list> sa_declaration_specifiers::reflection = reflection;
00164
00165 end_package(sem);
00166 end_package(cplus);
00167 end_package(lang);
00168 end_package(lestes);
00169