00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #include <lestes/lang/cplus/sem/ss_type.g.hh>
00012 #include <lestes/lang/cplus/sem/as_decl.g.hh>
00013
00014 #include <lestes/std/list.hh>
00015 #include <lestes/std/pair.hh>
00016 #include <lestes/std/reflect.hh>
00017
00018 #include <lestes/lang/cplus/sem/as_declaration_specifier2properties.g.hh>
00019
00020 package(lestes);
00021 package(lang);
00022 package(cplus);
00023 package(sem);
00024
00025
00026
00027
00028
00029
00030
00031
00032 ptr< ::lestes::lang::cplus::sem::ss_type > as_declaration_specifier2properties::other_type_get() const
00033 {
00034 return other_type;
00035 }
00036
00037
00038
00039
00040
00041 as_declaration_specifier2properties::type_specifier_type as_declaration_specifier2properties::type_specifier_get() const
00042 {
00043 return type_specifier;
00044 }
00045
00046
00047
00048
00049
00050 ss_storage_class::type as_declaration_specifier2properties::storage_class_get() const
00051 {
00052 return storage_class;
00053 }
00054
00055
00056
00057
00058
00059 bool as_declaration_specifier2properties::explicit_flag_get() const
00060 {
00061 return explicit_flag;
00062 }
00063
00064
00065
00066
00067
00068 bool as_declaration_specifier2properties::inline_flag_get() const
00069 {
00070 return inline_flag;
00071 }
00072
00073
00074
00075
00076
00077 bool as_declaration_specifier2properties::virtual_flag_get() const
00078 {
00079 return virtual_flag;
00080 }
00081
00082
00083
00084
00085
00086 bool as_declaration_specifier2properties::friend_flag_get() const
00087 {
00088 return friend_flag;
00089 }
00090
00091
00092
00093
00094
00095 bool as_declaration_specifier2properties::const_flag_get() const
00096 {
00097 return const_flag;
00098 }
00099
00100
00101
00102
00103
00104 bool as_declaration_specifier2properties::volatile_flag_get() const
00105 {
00106 return volatile_flag;
00107 }
00108
00109
00110
00111
00112
00113 bool as_declaration_specifier2properties::signed_flag_get() const
00114 {
00115 return signed_flag;
00116 }
00117
00118
00119
00120
00121
00122 bool as_declaration_specifier2properties::unsigned_flag_get() const
00123 {
00124 return unsigned_flag;
00125 }
00126
00127
00128
00129
00130
00131 bool as_declaration_specifier2properties::short_flag_get() const
00132 {
00133 return short_flag;
00134 }
00135
00136
00137
00138
00139
00140 bool as_declaration_specifier2properties::long_flag_get() const
00141 {
00142 return long_flag;
00143 }
00144
00145
00146
00147
00148
00149 ptr< as_declaration_specifier2properties > as_declaration_specifier2properties::create(ptr< ::lestes::lang::cplus::sem::ss_type > a__as_declaration_specifier2properties__other_type,
00150 type_specifier_type a__as_declaration_specifier2properties__type_specifier,
00151 ss_storage_class::type a__as_declaration_specifier2properties__storage_class,
00152 bool a__as_declaration_specifier2properties__explicit_flag,
00153 bool a__as_declaration_specifier2properties__inline_flag,
00154 bool a__as_declaration_specifier2properties__virtual_flag,
00155 bool a__as_declaration_specifier2properties__friend_flag,
00156 bool a__as_declaration_specifier2properties__const_flag,
00157 bool a__as_declaration_specifier2properties__volatile_flag,
00158 bool a__as_declaration_specifier2properties__signed_flag,
00159 bool a__as_declaration_specifier2properties__unsigned_flag,
00160 bool a__as_declaration_specifier2properties__short_flag,
00161 bool a__as_declaration_specifier2properties__long_flag)
00162 {
00163 return ptr< as_declaration_specifier2properties > ( new as_declaration_specifier2properties(a__as_declaration_specifier2properties__other_type,
00164 a__as_declaration_specifier2properties__type_specifier,
00165 a__as_declaration_specifier2properties__storage_class,
00166 a__as_declaration_specifier2properties__explicit_flag,
00167 a__as_declaration_specifier2properties__inline_flag,
00168 a__as_declaration_specifier2properties__virtual_flag,
00169 a__as_declaration_specifier2properties__friend_flag,
00170 a__as_declaration_specifier2properties__const_flag,
00171 a__as_declaration_specifier2properties__volatile_flag,
00172 a__as_declaration_specifier2properties__signed_flag,
00173 a__as_declaration_specifier2properties__unsigned_flag,
00174 a__as_declaration_specifier2properties__short_flag,
00175 a__as_declaration_specifier2properties__long_flag) );
00176 }
00177
00178
00179
00180
00181
00182 ptr< as_declaration_specifier2properties > as_declaration_specifier2properties::create()
00183 {
00184 return ptr< as_declaration_specifier2properties > ( new as_declaration_specifier2properties(NULL, TS_NONE, ss_storage_class::ST_NONE, false, false, false, false, false, false, false, false, false, false) );
00185 }
00186
00187
00188
00189
00190
00191 as_declaration_specifier2properties::as_declaration_specifier2properties (ptr< ::lestes::lang::cplus::sem::ss_type > a__as_declaration_specifier2properties__other_type,
00192 type_specifier_type a__as_declaration_specifier2properties__type_specifier,
00193 ss_storage_class::type a__as_declaration_specifier2properties__storage_class,
00194 bool a__as_declaration_specifier2properties__explicit_flag,
00195 bool a__as_declaration_specifier2properties__inline_flag,
00196 bool a__as_declaration_specifier2properties__virtual_flag,
00197 bool a__as_declaration_specifier2properties__friend_flag,
00198 bool a__as_declaration_specifier2properties__const_flag,
00199 bool a__as_declaration_specifier2properties__volatile_flag,
00200 bool a__as_declaration_specifier2properties__signed_flag,
00201 bool a__as_declaration_specifier2properties__unsigned_flag,
00202 bool a__as_declaration_specifier2properties__short_flag,
00203 bool a__as_declaration_specifier2properties__long_flag)
00204 : as_declaration_specifier_visitor(), other_type(a__as_declaration_specifier2properties__other_type), type_specifier(a__as_declaration_specifier2properties__type_specifier), storage_class(a__as_declaration_specifier2properties__storage_class), explicit_flag(a__as_declaration_specifier2properties__explicit_flag), inline_flag(a__as_declaration_specifier2properties__inline_flag), virtual_flag(a__as_declaration_specifier2properties__virtual_flag), friend_flag(a__as_declaration_specifier2properties__friend_flag), const_flag(a__as_declaration_specifier2properties__const_flag), volatile_flag(a__as_declaration_specifier2properties__volatile_flag), signed_flag(a__as_declaration_specifier2properties__signed_flag), unsigned_flag(a__as_declaration_specifier2properties__unsigned_flag), short_flag(a__as_declaration_specifier2properties__short_flag), long_flag(a__as_declaration_specifier2properties__long_flag)
00205 {}
00206
00207 ptr< object::reflection_list > as_declaration_specifier2properties::reflection_get() const
00208 {
00209 if (!reflection) {
00210 typedef class_reflection::field_metadata md;
00211 typedef class_reflection::field_metadata_list mdlist;
00212 ptr<mdlist> mdl = mdlist::create();
00213 mdl->push_back( md::create( "other_type", "ss_type" ) );
00214 mdl->push_back( md::create( "type_specifier", "type_specifier_type" ) );
00215 mdl->push_back( md::create( "storage_class", "ss_storage_class::type" ) );
00216 mdl->push_back( md::create( "explicit_flag", "bool" ) );
00217 mdl->push_back( md::create( "inline_flag", "bool" ) );
00218 mdl->push_back( md::create( "virtual_flag", "bool" ) );
00219 mdl->push_back( md::create( "friend_flag", "bool" ) );
00220 mdl->push_back( md::create( "const_flag", "bool" ) );
00221 mdl->push_back( md::create( "volatile_flag", "bool" ) );
00222 mdl->push_back( md::create( "signed_flag", "bool" ) );
00223 mdl->push_back( md::create( "unsigned_flag", "bool" ) );
00224 mdl->push_back( md::create( "short_flag", "bool" ) );
00225 mdl->push_back( md::create( "long_flag", "bool" ) );
00226 reflection = reflection_list::create( as_declaration_specifier_visitor::reflection_get() );
00227 reflection->push_back( class_reflection::create( "as_declaration_specifier2properties", mdl ) );
00228 }
00229 return reflection;
00230 }
00231
00232 ptr< object::field_list_list > as_declaration_specifier2properties::field_values_get() const
00233 {
00234 ptr < field_list_list > result = as_declaration_specifier_visitor::field_values_get();
00235 result->push_back( value_list::create() );
00236 result->back()->push_back( this->other_type );
00237 result->push_back( value_list::create() );
00238 result->back()->push_back( objectize< type_specifier_type > ::create( this->type_specifier ) );
00239 result->push_back( value_list::create() );
00240 result->back()->push_back( objectize< ss_storage_class::type > ::create( this->storage_class ) );
00241 result->push_back( value_list::create() );
00242 result->back()->push_back( objectize< bool > ::create( this->explicit_flag ) );
00243 result->push_back( value_list::create() );
00244 result->back()->push_back( objectize< bool > ::create( this->inline_flag ) );
00245 result->push_back( value_list::create() );
00246 result->back()->push_back( objectize< bool > ::create( this->virtual_flag ) );
00247 result->push_back( value_list::create() );
00248 result->back()->push_back( objectize< bool > ::create( this->friend_flag ) );
00249 result->push_back( value_list::create() );
00250 result->back()->push_back( objectize< bool > ::create( this->const_flag ) );
00251 result->push_back( value_list::create() );
00252 result->back()->push_back( objectize< bool > ::create( this->volatile_flag ) );
00253 result->push_back( value_list::create() );
00254 result->back()->push_back( objectize< bool > ::create( this->signed_flag ) );
00255 result->push_back( value_list::create() );
00256 result->back()->push_back( objectize< bool > ::create( this->unsigned_flag ) );
00257 result->push_back( value_list::create() );
00258 result->back()->push_back( objectize< bool > ::create( this->short_flag ) );
00259 result->push_back( value_list::create() );
00260 result->back()->push_back( objectize< bool > ::create( this->long_flag ) );
00261 return result;
00262 }
00263
00264
00265
00266
00267
00268
00269 void as_declaration_specifier2properties::gc_mark()
00270 {
00271 as_declaration_specifier_visitor::gc_mark();
00272 }
00273
00274
00275
00276
00277
00278 ptr<object::reflection_list> as_declaration_specifier2properties::reflection = reflection;
00279
00280 end_package(sem);
00281 end_package(cplus);
00282 end_package(lang);
00283 end_package(lestes);
00284