00001
00002
00003 #include <lestes/lang/cplus/sem/as_decl.g.hh>
00004 #include <lestes/lang/cplus/sem/ss_declaration.g.hh>
00005 #include <lestes/lang/cplus/sem/ss_type.g.hh>
00006
00007 #include <lestes/std/list.hh>
00008 #include <lestes/std/pair.hh>
00009 #include <lestes/std/reflect.hh>
00010
00011 #include <lestes/lang/cplus/syn/hinter.g.hh>
00012
00013 package(lestes);
00014 package(lang);
00015 package(cplus);
00016 package(syn);
00017
00018
00019
00020
00021
00022
00023
00024
00025 elab_spec_key::elab_spec_key (ptr< ::lestes::std::source_location > a__as_base__location)
00026 : as_base(a__as_base__location)
00027 {}
00028
00029 ptr< object::reflection_list > elab_spec_key::reflection_get() const
00030 {
00031 if (!reflection) {
00032 typedef class_reflection::field_metadata md;
00033 typedef class_reflection::field_metadata_list mdlist;
00034 ptr<mdlist> mdl = mdlist::create();
00035 reflection = reflection_list::create( ::lestes::intercode::as_base::reflection_get() );
00036 reflection->push_back( class_reflection::create( "elab_spec_key", mdl ) );
00037 }
00038 return reflection;
00039 }
00040
00041 ptr< object::field_list_list > elab_spec_key::field_values_get() const
00042 {
00043 ptr < field_list_list > result = ::lestes::intercode::as_base::field_values_get();
00044 return result;
00045 }
00046
00047
00048
00049
00050
00051
00052 void elab_spec_key::gc_mark()
00053 {
00054 ::lestes::intercode::as_base::gc_mark();
00055 }
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065 ptr< elab_spec_enum > elab_spec_enum::create(ptr< ::lestes::std::source_location > a__as_base__location)
00066 {
00067 return ptr< elab_spec_enum > ( new elab_spec_enum(a__as_base__location) );
00068 }
00069
00070
00071
00072
00073
00074 elab_spec_enum::elab_spec_enum (ptr< ::lestes::std::source_location > a__as_base__location)
00075 : elab_spec_key(a__as_base__location)
00076 {}
00077
00078 ptr< object::reflection_list > elab_spec_enum::reflection_get() const
00079 {
00080 if (!reflection) {
00081 typedef class_reflection::field_metadata md;
00082 typedef class_reflection::field_metadata_list mdlist;
00083 ptr<mdlist> mdl = mdlist::create();
00084 reflection = reflection_list::create( elab_spec_key::reflection_get() );
00085 reflection->push_back( class_reflection::create( "elab_spec_enum", mdl ) );
00086 }
00087 return reflection;
00088 }
00089
00090 ptr< object::field_list_list > elab_spec_enum::field_values_get() const
00091 {
00092 ptr < field_list_list > result = elab_spec_key::field_values_get();
00093 return result;
00094 }
00095
00096
00097
00098
00099
00100
00101 void elab_spec_enum::gc_mark()
00102 {
00103 elab_spec_key::gc_mark();
00104 }
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114 ptr< ::lestes::lang::cplus::sem::as_class_key > elab_spec_class_key::class_key_get() const
00115 {
00116 return class_key;
00117 }
00118
00119
00120
00121
00122
00123 void elab_spec_class_key::class_key_set(const ptr< ::lestes::lang::cplus::sem::as_class_key > & x)
00124 {
00125 elab_spec_class_key::class_key = x;
00126 }
00127
00128
00129
00130
00131
00132 ptr< elab_spec_class_key > elab_spec_class_key::create(ptr< ::lestes::std::source_location > a__as_base__location,
00133 ptr< ::lestes::lang::cplus::sem::as_class_key > a__elab_spec_class_key__class_key)
00134 {
00135 return ptr< elab_spec_class_key > ( new elab_spec_class_key(a__as_base__location,
00136 a__elab_spec_class_key__class_key) );
00137 }
00138
00139
00140
00141
00142
00143 elab_spec_class_key::elab_spec_class_key (ptr< ::lestes::std::source_location > a__as_base__location,
00144 ptr< ::lestes::lang::cplus::sem::as_class_key > a__elab_spec_class_key__class_key)
00145 : elab_spec_key(a__as_base__location), class_key(checked(a__elab_spec_class_key__class_key))
00146 {}
00147
00148 ptr< object::reflection_list > elab_spec_class_key::reflection_get() const
00149 {
00150 if (!reflection) {
00151 typedef class_reflection::field_metadata md;
00152 typedef class_reflection::field_metadata_list mdlist;
00153 ptr<mdlist> mdl = mdlist::create();
00154 mdl->push_back( md::create( "class_key", "as_class_key" ) );
00155 reflection = reflection_list::create( elab_spec_key::reflection_get() );
00156 reflection->push_back( class_reflection::create( "elab_spec_class_key", mdl ) );
00157 }
00158 return reflection;
00159 }
00160
00161 ptr< object::field_list_list > elab_spec_class_key::field_values_get() const
00162 {
00163 ptr < field_list_list > result = elab_spec_key::field_values_get();
00164 result->push_back( value_list::create() );
00165 result->back()->push_back( this->class_key );
00166 return result;
00167 }
00168
00169
00170
00171
00172
00173
00174 void elab_spec_class_key::gc_mark()
00175 {
00176 elab_spec_key::gc_mark();
00177 }
00178
00179
00180
00181
00182
00183
00184
00185
00186
00187 int hint_from_declaration_set::result_get() const
00188 {
00189 return result;
00190 }
00191
00192
00193
00194
00195
00196 void hint_from_declaration_set::result_set(int x)
00197 {
00198 hint_from_declaration_set::result = x;
00199 }
00200
00201
00202
00203
00204
00205 bool hint_from_declaration_set::was_function_get() const
00206 {
00207 return was_function;
00208 }
00209
00210
00211
00212
00213
00214 void hint_from_declaration_set::was_function_set(bool x)
00215 {
00216 hint_from_declaration_set::was_function = x;
00217 }
00218
00219
00220
00221
00222
00223 ptr< hint_from_declaration_set > hint_from_declaration_set::the_instance = the_instance;
00224
00225
00226
00227
00228
00229 ptr< hint_from_declaration_set > hint_from_declaration_set::instance()
00230 {
00231 return the_instance ? the_instance : the_instance = new hint_from_declaration_set(0, false);
00232 }
00233
00234
00235
00236
00237
00238 hint_from_declaration_set::hint_from_declaration_set (int a__hint_from_declaration_set__result,
00239 bool a__hint_from_declaration_set__was_function)
00240 : ss_declaration_visitor(), result(a__hint_from_declaration_set__result), was_function(a__hint_from_declaration_set__was_function)
00241 {}
00242
00243 ptr< object::reflection_list > hint_from_declaration_set::reflection_get() const
00244 {
00245 if (!reflection) {
00246 typedef class_reflection::field_metadata md;
00247 typedef class_reflection::field_metadata_list mdlist;
00248 ptr<mdlist> mdl = mdlist::create();
00249 mdl->push_back( md::create( "result", "int" ) );
00250 mdl->push_back( md::create( "was_function", "bool" ) );
00251 reflection = reflection_list::create( ::lestes::lang::cplus::sem::ss_declaration_visitor::reflection_get() );
00252 reflection->push_back( class_reflection::create( "hint_from_declaration_set", mdl ) );
00253 }
00254 return reflection;
00255 }
00256
00257 ptr< object::field_list_list > hint_from_declaration_set::field_values_get() const
00258 {
00259 ptr < field_list_list > result = ::lestes::lang::cplus::sem::ss_declaration_visitor::field_values_get();
00260 result->push_back( value_list::create() );
00261 result->back()->push_back( objectize< int > ::create( this->result ) );
00262 result->push_back( value_list::create() );
00263 result->back()->push_back( objectize< bool > ::create( this->was_function ) );
00264 return result;
00265 }
00266
00267
00268
00269
00270
00271
00272 void hint_from_declaration_set::gc_mark()
00273 {
00274 ::lestes::lang::cplus::sem::ss_declaration_visitor::gc_mark();
00275 }
00276
00277
00278
00279
00280
00281
00282
00283
00284
00285 ptr< ::lestes::lang::cplus::sem::ss_declaration > typedef_class_resolver::decl_get() const
00286 {
00287 return decl;
00288 }
00289
00290
00291
00292
00293
00294 void typedef_class_resolver::decl_set(const ptr< ::lestes::lang::cplus::sem::ss_declaration > & x)
00295 {
00296 typedef_class_resolver::decl = x;
00297 }
00298
00299
00300
00301
00302
00303 ptr< typedef_class_resolver > typedef_class_resolver::the_instance = the_instance;
00304
00305
00306
00307
00308
00309 ptr< typedef_class_resolver > typedef_class_resolver::instance()
00310 {
00311 return the_instance ? the_instance : the_instance = new typedef_class_resolver(NULL);
00312 }
00313
00314
00315
00316
00317
00318 typedef_class_resolver::typedef_class_resolver (ptr< ::lestes::lang::cplus::sem::ss_declaration > a__typedef_class_resolver__decl)
00319 : ss_type_default_visitor(), decl(a__typedef_class_resolver__decl)
00320 {}
00321
00322 ptr< object::reflection_list > typedef_class_resolver::reflection_get() const
00323 {
00324 if (!reflection) {
00325 typedef class_reflection::field_metadata md;
00326 typedef class_reflection::field_metadata_list mdlist;
00327 ptr<mdlist> mdl = mdlist::create();
00328 mdl->push_back( md::create( "decl", "ss_declaration" ) );
00329 reflection = reflection_list::create( ::lestes::lang::cplus::sem::ss_type_default_visitor::reflection_get() );
00330 reflection->push_back( class_reflection::create( "typedef_class_resolver", mdl ) );
00331 }
00332 return reflection;
00333 }
00334
00335 ptr< object::field_list_list > typedef_class_resolver::field_values_get() const
00336 {
00337 ptr < field_list_list > result = ::lestes::lang::cplus::sem::ss_type_default_visitor::field_values_get();
00338 result->push_back( value_list::create() );
00339 result->back()->push_back( this->decl );
00340 return result;
00341 }
00342
00343
00344
00345
00346
00347
00348 void typedef_class_resolver::gc_mark()
00349 {
00350 ::lestes::lang::cplus::sem::ss_type_default_visitor::gc_mark();
00351 }
00352
00353
00354
00355
00356
00357 ptr<object::reflection_list> elab_spec_key::reflection = reflection;
00358 ptr<object::reflection_list> elab_spec_enum::reflection = reflection;
00359 ptr<object::reflection_list> elab_spec_class_key::reflection = reflection;
00360 ptr<object::reflection_list> hint_from_declaration_set::reflection = reflection;
00361 ptr<object::reflection_list> typedef_class_resolver::reflection = reflection;
00362
00363 end_package(syn);
00364 end_package(cplus);
00365 end_package(lang);
00366 end_package(lestes);
00367