00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #include <lestes/lang/cplus/sem/ss_ss2pi_base.g.hh>
00013 #include <lestes/lang/cplus/sem/ss_declaration.g.hh>
00014 #include <lestes/lang/cplus/sem/visitor.v.g.hh>
00015
00016 #include <lestes/std/list.hh>
00017 #include <lestes/std/pair.hh>
00018 #include <lestes/std/reflect.hh>
00019
00020 #include <lestes/lang/cplus/sem/ss_statement.g.hh>
00021
00022 package(lestes);
00023 package(lang);
00024 package(cplus);
00025 package(sem);
00026
00027
00028
00029
00030
00031
00032
00033
00034 ptr< ::lestes::std::list< srp< ss_label > > > ss_statement::labels_get() const
00035 {
00036 return labels;
00037 }
00038
00039
00040
00041
00042
00043 ptr< ss_compound_stmt > ss_statement::parent_get() const
00044 {
00045 return parent;
00046 }
00047
00048
00049
00050
00051
00052 ptr< ss_sp > ss_statement::psp_get() const
00053 {
00054 return psp;
00055 }
00056
00057
00058
00059
00060
00061 void ss_statement::psp_set(const ptr< ss_sp > & x)
00062 {
00063 ss_statement::psp = x;
00064 }
00065
00066
00067
00068
00069
00070 ptr< ss_sp > ss_statement::nsp_get() const
00071 {
00072 return nsp;
00073 }
00074
00075
00076
00077
00078
00079 void ss_statement::nsp_set(const ptr< ss_sp > & x)
00080 {
00081 ss_statement::nsp = x;
00082 }
00083
00084
00085
00086
00087
00088 ptr< ::lestes::std::list< srp< ss_sp > > > ss_statement::sequence_points_get() const
00089 {
00090 return sequence_points;
00091 }
00092
00093
00094
00095
00096
00097 ss_statement::ss_statement (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00098 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
00099 ptr< ss_compound_stmt > a__ss_statement__parent,
00100 ptr< ss_sp > a__ss_statement__psp,
00101 ptr< ss_sp > a__ss_statement__nsp,
00102 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points)
00103 : ss_base_with_location(a__ss_base_with_location__location), labels(checked(a__ss_statement__labels)), parent(check__ss_statement__parent(a__ss_statement__parent)), psp(checked(a__ss_statement__psp)), nsp(checked(a__ss_statement__nsp)), sequence_points(checked(a__ss_statement__sequence_points))
00104 {}
00105
00106 ptr< object::reflection_list > ss_statement::reflection_get() const
00107 {
00108 if (!reflection) {
00109 typedef class_reflection::field_metadata md;
00110 typedef class_reflection::field_metadata_list mdlist;
00111 ptr<mdlist> mdl = mdlist::create();
00112 mdl->push_back( md::create( "labels", "list< srp< ss_label > >" ) );
00113 mdl->push_back( md::create( "parent", "ss_compound_stmt" ) );
00114 mdl->push_back( md::create( "psp", "ss_sp" ) );
00115 mdl->push_back( md::create( "nsp", "ss_sp" ) );
00116 mdl->push_back( md::create( "sequence_points", "list< srp< ss_sp > >" ) );
00117 mdl->push_back( md::create( "parent_set_ward", "bool" ) );
00118 reflection = reflection_list::create( ::lestes::intercode::ss_base_with_location::reflection_get() );
00119 reflection->push_back( class_reflection::create( "ss_statement", mdl ) );
00120 }
00121 return reflection;
00122 }
00123
00124 ptr< object::field_list_list > ss_statement::field_values_get() const
00125 {
00126 ptr < field_list_list > result = ::lestes::intercode::ss_base_with_location::field_values_get();
00127 result->push_back( value_list::create() );
00128 result->back()->push_back( this->labels );
00129 result->push_back( value_list::create() );
00130 result->back()->push_back( this->parent );
00131 result->push_back( value_list::create() );
00132 result->back()->push_back( this->psp );
00133 result->push_back( value_list::create() );
00134 result->back()->push_back( this->nsp );
00135 result->push_back( value_list::create() );
00136 result->back()->push_back( this->sequence_points );
00137 result->push_back( value_list::create() );
00138 result->back()->push_back( objectize< bool > ::create( this->parent_set_ward ) );
00139 return result;
00140 }
00141
00142
00143
00144
00145
00146
00147 void ss_statement::gc_mark()
00148 {
00149 ::lestes::intercode::ss_base_with_location::gc_mark();
00150 }
00151
00152
00153
00154
00155
00156
00157
00158
00159
00160 ptr< ss_decl_seq > ss_compound_stmt::decl_seq_get() const
00161 {
00162 return decl_seq;
00163 }
00164
00165
00166
00167
00168
00169 ptr< ::lestes::std::list< srp< ss_statement > > > ss_compound_stmt::statements_get() const
00170 {
00171 return statements;
00172 }
00173
00174
00175
00176
00177
00178 ptr< ss_sp > ss_compound_stmt::destructor_sp_get() const
00179 {
00180 return destructor_sp;
00181 }
00182
00183
00184
00185
00186
00187 void ss_compound_stmt::destructor_sp_set(const ptr< ss_sp > & x)
00188 {
00189 ss_compound_stmt::destructor_sp = x;
00190 }
00191
00192
00193
00194
00195
00196 ss_compound_stmt::behavior_type ss_compound_stmt::behavior_get() const
00197 {
00198 return behavior;
00199 }
00200
00201
00202
00203
00204
00205 void ss_compound_stmt::behavior_set(behavior_type x)
00206 {
00207 ss_compound_stmt::behavior = x;
00208 }
00209
00210 void ss_compound_stmt::accept_ss_statement_visitor( ptr< ss_statement_visitor > v )
00211 {
00212 return v->visit_ss_compound_stmt( this );
00213 }
00214
00215
00216
00217
00218
00219 ptr< ss_compound_stmt > ss_compound_stmt::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00220 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
00221 ptr< ss_compound_stmt > a__ss_statement__parent,
00222 ptr< ss_sp > a__ss_statement__psp,
00223 ptr< ss_sp > a__ss_statement__nsp,
00224 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points,
00225 ptr< ss_decl_seq > a__ss_compound_stmt__decl_seq,
00226 ptr< ::lestes::std::list< srp< ss_statement > > > a__ss_compound_stmt__statements,
00227 ptr< ss_sp > a__ss_compound_stmt__destructor_sp,
00228 behavior_type a__ss_compound_stmt__behavior)
00229 {
00230 return ptr< ss_compound_stmt > ( new ss_compound_stmt(a__ss_base_with_location__location,
00231 a__ss_statement__labels,
00232 a__ss_statement__parent,
00233 a__ss_statement__psp,
00234 a__ss_statement__nsp,
00235 a__ss_statement__sequence_points,
00236 a__ss_compound_stmt__decl_seq,
00237 a__ss_compound_stmt__statements,
00238 a__ss_compound_stmt__destructor_sp,
00239 a__ss_compound_stmt__behavior) );
00240 }
00241
00242
00243
00244
00245
00246 ptr< ss_compound_stmt > ss_compound_stmt::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00247 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
00248 ptr< ss_compound_stmt > a__ss_statement__parent,
00249 ptr< ss_sp > a__ss_statement__psp,
00250 ptr< ss_sp > a__ss_statement__nsp,
00251 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points,
00252 ptr< ss_decl_seq > a__ss_compound_stmt__decl_seq,
00253 ptr< ::lestes::std::list< srp< ss_statement > > > a__ss_compound_stmt__statements,
00254 ptr< ss_sp > a__ss_compound_stmt__destructor_sp)
00255 {
00256 return ptr< ss_compound_stmt > ( new ss_compound_stmt(a__ss_base_with_location__location, a__ss_statement__labels, a__ss_statement__parent, a__ss_statement__psp, a__ss_statement__nsp, a__ss_statement__sequence_points, a__ss_compound_stmt__decl_seq, a__ss_compound_stmt__statements, a__ss_compound_stmt__destructor_sp, NORMAL) );
00257 }
00258
00259
00260
00261
00262
00263 ss_compound_stmt::ss_compound_stmt (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00264 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
00265 ptr< ss_compound_stmt > a__ss_statement__parent,
00266 ptr< ss_sp > a__ss_statement__psp,
00267 ptr< ss_sp > a__ss_statement__nsp,
00268 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points,
00269 ptr< ss_decl_seq > a__ss_compound_stmt__decl_seq,
00270 ptr< ::lestes::std::list< srp< ss_statement > > > a__ss_compound_stmt__statements,
00271 ptr< ss_sp > a__ss_compound_stmt__destructor_sp,
00272 behavior_type a__ss_compound_stmt__behavior)
00273 : ss_statement(a__ss_base_with_location__location,
00274 a__ss_statement__labels,
00275 a__ss_statement__parent,
00276 a__ss_statement__psp,
00277 a__ss_statement__nsp,
00278 a__ss_statement__sequence_points), decl_seq(checked(a__ss_compound_stmt__decl_seq)), statements(checked(a__ss_compound_stmt__statements)), destructor_sp(checked(a__ss_compound_stmt__destructor_sp)), behavior(a__ss_compound_stmt__behavior)
00279 {}
00280
00281 ptr< object::reflection_list > ss_compound_stmt::reflection_get() const
00282 {
00283 if (!reflection) {
00284 typedef class_reflection::field_metadata md;
00285 typedef class_reflection::field_metadata_list mdlist;
00286 ptr<mdlist> mdl = mdlist::create();
00287 mdl->push_back( md::create( "decl_seq", "ss_decl_seq" ) );
00288 mdl->push_back( md::create( "statements", "list< srp< ss_statement > >" ) );
00289 mdl->push_back( md::create( "destructor_sp", "ss_sp" ) );
00290 mdl->push_back( md::create( "the_root_instance", "ss_compound_stmt" ) );
00291 mdl->push_back( md::create( "behavior", "behavior_type" ) );
00292 reflection = reflection_list::create( ss_statement::reflection_get() );
00293 reflection->push_back( class_reflection::create( "ss_compound_stmt", mdl ) );
00294 }
00295 return reflection;
00296 }
00297
00298 ptr< object::field_list_list > ss_compound_stmt::field_values_get() const
00299 {
00300 ptr < field_list_list > result = ss_statement::field_values_get();
00301 result->push_back( value_list::create() );
00302 result->back()->push_back( this->decl_seq );
00303 result->push_back( value_list::create() );
00304 result->back()->push_back( this->statements );
00305 result->push_back( value_list::create() );
00306 result->back()->push_back( this->destructor_sp );
00307 result->push_back( value_list::create() );
00308 result->back()->push_back( this->the_root_instance );
00309 result->push_back( value_list::create() );
00310 result->back()->push_back( objectize< behavior_type > ::create( this->behavior ) );
00311 return result;
00312 }
00313
00314
00315
00316
00317
00318
00319 void ss_compound_stmt::gc_mark()
00320 {
00321 ss_statement::gc_mark();
00322 }
00323
00324
00325
00326
00327
00328
00329
00330
00331
00332 ptr< ss_declaration > ss_decl_stmt::decl_get() const
00333 {
00334 return decl;
00335 }
00336
00337
00338
00339
00340
00341 void ss_decl_stmt::decl_set(const ptr< ss_declaration > & x)
00342 {
00343 ss_decl_stmt::decl = x;
00344 }
00345
00346
00347
00348
00349
00350 ptr< ::lestes::std::list< srp< ss_expression > > > ss_decl_stmt::args_get() const
00351 {
00352 return args;
00353 }
00354
00355
00356
00357
00358
00359 void ss_decl_stmt::args_set(const ptr< ::lestes::std::list< srp< ss_expression > > > & x)
00360 {
00361 ss_decl_stmt::args = x;
00362 }
00363
00364
00365
00366
00367
00368 ss_decl_stmt::initializer_kind_enum ss_decl_stmt::initializer_kind_get() const
00369 {
00370 return initializer_kind;
00371 }
00372
00373
00374
00375
00376
00377 void ss_decl_stmt::initializer_kind_set(initializer_kind_enum x)
00378 {
00379 ss_decl_stmt::initializer_kind = x;
00380 }
00381
00382 void ss_decl_stmt::accept_ss_statement_visitor( ptr< ss_statement_visitor > v )
00383 {
00384 return v->visit_ss_decl_stmt( this );
00385 }
00386
00387
00388
00389
00390
00391 ptr< ss_decl_stmt > ss_decl_stmt::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00392 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
00393 ptr< ss_compound_stmt > a__ss_statement__parent,
00394 ptr< ss_sp > a__ss_statement__psp,
00395 ptr< ss_sp > a__ss_statement__nsp,
00396 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points,
00397 ptr< ss_declaration > a__ss_decl_stmt__decl,
00398 ptr< ::lestes::std::list< srp< ss_expression > > > a__ss_decl_stmt__args,
00399 initializer_kind_enum a__ss_decl_stmt__initializer_kind)
00400 {
00401 return ptr< ss_decl_stmt > ( new ss_decl_stmt(a__ss_base_with_location__location,
00402 a__ss_statement__labels,
00403 a__ss_statement__parent,
00404 a__ss_statement__psp,
00405 a__ss_statement__nsp,
00406 a__ss_statement__sequence_points,
00407 a__ss_decl_stmt__decl,
00408 a__ss_decl_stmt__args,
00409 a__ss_decl_stmt__initializer_kind) );
00410 }
00411
00412
00413
00414
00415
00416 ss_decl_stmt::ss_decl_stmt (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00417 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
00418 ptr< ss_compound_stmt > a__ss_statement__parent,
00419 ptr< ss_sp > a__ss_statement__psp,
00420 ptr< ss_sp > a__ss_statement__nsp,
00421 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points,
00422 ptr< ss_declaration > a__ss_decl_stmt__decl,
00423 ptr< ::lestes::std::list< srp< ss_expression > > > a__ss_decl_stmt__args,
00424 initializer_kind_enum a__ss_decl_stmt__initializer_kind)
00425 : ss_statement(a__ss_base_with_location__location,
00426 a__ss_statement__labels,
00427 a__ss_statement__parent,
00428 a__ss_statement__psp,
00429 a__ss_statement__nsp,
00430 a__ss_statement__sequence_points), decl(checked(a__ss_decl_stmt__decl)), args(checked(a__ss_decl_stmt__args)), initializer_kind(a__ss_decl_stmt__initializer_kind)
00431 {}
00432
00433 ptr< object::reflection_list > ss_decl_stmt::reflection_get() const
00434 {
00435 if (!reflection) {
00436 typedef class_reflection::field_metadata md;
00437 typedef class_reflection::field_metadata_list mdlist;
00438 ptr<mdlist> mdl = mdlist::create();
00439 mdl->push_back( md::create( "decl", "ss_declaration" ) );
00440 mdl->push_back( md::create( "args", "list< srp< ss_expression > >" ) );
00441 mdl->push_back( md::create( "initializer_kind", "initializer_kind_enum" ) );
00442 reflection = reflection_list::create( ss_statement::reflection_get() );
00443 reflection->push_back( class_reflection::create( "ss_decl_stmt", mdl ) );
00444 }
00445 return reflection;
00446 }
00447
00448 ptr< object::field_list_list > ss_decl_stmt::field_values_get() const
00449 {
00450 ptr < field_list_list > result = ss_statement::field_values_get();
00451 result->push_back( value_list::create() );
00452 result->back()->push_back( this->decl );
00453 result->push_back( value_list::create() );
00454 result->back()->push_back( this->args );
00455 result->push_back( value_list::create() );
00456 result->back()->push_back( objectize< initializer_kind_enum > ::create( this->initializer_kind ) );
00457 return result;
00458 }
00459
00460
00461
00462
00463
00464
00465 void ss_decl_stmt::gc_mark()
00466 {
00467 ss_statement::gc_mark();
00468 }
00469
00470
00471
00472
00473
00474
00475
00476
00477
00478 ptr< ss_compound_stmt > ss_try::block_get() const
00479 {
00480 return block;
00481 }
00482
00483
00484
00485
00486
00487 void ss_try::block_set(const ptr< ss_compound_stmt > & x)
00488 {
00489 ss_try::block = x;
00490 }
00491
00492
00493
00494
00495
00496 ptr< ::lestes::std::list< srp< ss_catch > > > ss_try::handlers_get() const
00497 {
00498 return handlers;
00499 }
00500
00501
00502
00503
00504
00505 void ss_try::handlers_set(const ptr< ::lestes::std::list< srp< ss_catch > > > & x)
00506 {
00507 ss_try::handlers = x;
00508 }
00509
00510 void ss_try::accept_ss_statement_visitor( ptr< ss_statement_visitor > v )
00511 {
00512 return v->visit_ss_try( this );
00513 }
00514
00515
00516
00517
00518
00519 ptr< ss_try > ss_try::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00520 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
00521 ptr< ss_compound_stmt > a__ss_statement__parent,
00522 ptr< ss_sp > a__ss_statement__psp,
00523 ptr< ss_sp > a__ss_statement__nsp,
00524 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points,
00525 ptr< ss_compound_stmt > a__ss_try__block,
00526 ptr< ::lestes::std::list< srp< ss_catch > > > a__ss_try__handlers)
00527 {
00528 return ptr< ss_try > ( new ss_try(a__ss_base_with_location__location,
00529 a__ss_statement__labels,
00530 a__ss_statement__parent,
00531 a__ss_statement__psp,
00532 a__ss_statement__nsp,
00533 a__ss_statement__sequence_points,
00534 a__ss_try__block,
00535 a__ss_try__handlers) );
00536 }
00537
00538
00539
00540
00541
00542 ss_try::ss_try (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00543 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
00544 ptr< ss_compound_stmt > a__ss_statement__parent,
00545 ptr< ss_sp > a__ss_statement__psp,
00546 ptr< ss_sp > a__ss_statement__nsp,
00547 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points,
00548 ptr< ss_compound_stmt > a__ss_try__block,
00549 ptr< ::lestes::std::list< srp< ss_catch > > > a__ss_try__handlers)
00550 : ss_statement(a__ss_base_with_location__location,
00551 a__ss_statement__labels,
00552 a__ss_statement__parent,
00553 a__ss_statement__psp,
00554 a__ss_statement__nsp,
00555 a__ss_statement__sequence_points), block(checked(a__ss_try__block)), handlers(checked(a__ss_try__handlers))
00556 {}
00557
00558 ptr< object::reflection_list > ss_try::reflection_get() const
00559 {
00560 if (!reflection) {
00561 typedef class_reflection::field_metadata md;
00562 typedef class_reflection::field_metadata_list mdlist;
00563 ptr<mdlist> mdl = mdlist::create();
00564 mdl->push_back( md::create( "block", "ss_compound_stmt" ) );
00565 mdl->push_back( md::create( "handlers", "list< srp< ss_catch > >" ) );
00566 reflection = reflection_list::create( ss_statement::reflection_get() );
00567 reflection->push_back( class_reflection::create( "ss_try", mdl ) );
00568 }
00569 return reflection;
00570 }
00571
00572 ptr< object::field_list_list > ss_try::field_values_get() const
00573 {
00574 ptr < field_list_list > result = ss_statement::field_values_get();
00575 result->push_back( value_list::create() );
00576 result->back()->push_back( this->block );
00577 result->push_back( value_list::create() );
00578 result->back()->push_back( this->handlers );
00579 return result;
00580 }
00581
00582
00583
00584
00585
00586
00587 void ss_try::gc_mark()
00588 {
00589 ss_statement::gc_mark();
00590 }
00591
00592
00593
00594
00595
00596
00597
00598
00599
00600 ptr< ss_breakable_stmt > ss_break::from_get() const
00601 {
00602 return from;
00603 }
00604
00605
00606
00607
00608
00609 void ss_break::from_set(const ptr< ss_breakable_stmt > & x)
00610 {
00611 ss_break::from = x;
00612 }
00613
00614 void ss_break::accept_ss_statement_visitor( ptr< ss_statement_visitor > v )
00615 {
00616 return v->visit_ss_break( this );
00617 }
00618
00619
00620
00621
00622
00623 ptr< ss_break > ss_break::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00624 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
00625 ptr< ss_compound_stmt > a__ss_statement__parent,
00626 ptr< ss_sp > a__ss_statement__psp,
00627 ptr< ss_sp > a__ss_statement__nsp,
00628 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points,
00629 ptr< ss_breakable_stmt > a__ss_break__from)
00630 {
00631 return ptr< ss_break > ( new ss_break(a__ss_base_with_location__location,
00632 a__ss_statement__labels,
00633 a__ss_statement__parent,
00634 a__ss_statement__psp,
00635 a__ss_statement__nsp,
00636 a__ss_statement__sequence_points,
00637 a__ss_break__from) );
00638 }
00639
00640
00641
00642
00643
00644 ss_break::ss_break (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00645 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
00646 ptr< ss_compound_stmt > a__ss_statement__parent,
00647 ptr< ss_sp > a__ss_statement__psp,
00648 ptr< ss_sp > a__ss_statement__nsp,
00649 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points,
00650 ptr< ss_breakable_stmt > a__ss_break__from)
00651 : ss_statement(a__ss_base_with_location__location,
00652 a__ss_statement__labels,
00653 a__ss_statement__parent,
00654 a__ss_statement__psp,
00655 a__ss_statement__nsp,
00656 a__ss_statement__sequence_points), from(checked(a__ss_break__from))
00657 {}
00658
00659 ptr< object::reflection_list > ss_break::reflection_get() const
00660 {
00661 if (!reflection) {
00662 typedef class_reflection::field_metadata md;
00663 typedef class_reflection::field_metadata_list mdlist;
00664 ptr<mdlist> mdl = mdlist::create();
00665 mdl->push_back( md::create( "from", "ss_breakable_stmt" ) );
00666 reflection = reflection_list::create( ss_statement::reflection_get() );
00667 reflection->push_back( class_reflection::create( "ss_break", mdl ) );
00668 }
00669 return reflection;
00670 }
00671
00672 ptr< object::field_list_list > ss_break::field_values_get() const
00673 {
00674 ptr < field_list_list > result = ss_statement::field_values_get();
00675 result->push_back( value_list::create() );
00676 result->back()->push_back( this->from );
00677 return result;
00678 }
00679
00680
00681
00682
00683
00684
00685 void ss_break::gc_mark()
00686 {
00687 ss_statement::gc_mark();
00688 }
00689
00690
00691
00692
00693
00694
00695
00696
00697
00698 ptr< ss_expression > ss_return::result_get() const
00699 {
00700 return result;
00701 }
00702
00703
00704
00705
00706
00707 void ss_return::result_set(const ptr< ss_expression > & x)
00708 {
00709 ss_return::result = x;
00710 }
00711
00712 void ss_return::accept_ss_statement_visitor( ptr< ss_statement_visitor > v )
00713 {
00714 return v->visit_ss_return( this );
00715 }
00716
00717
00718
00719
00720
00721 ptr< ss_return > ss_return::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00722 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
00723 ptr< ss_compound_stmt > a__ss_statement__parent,
00724 ptr< ss_sp > a__ss_statement__psp,
00725 ptr< ss_sp > a__ss_statement__nsp,
00726 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points,
00727 ptr< ss_expression > a__ss_return__result)
00728 {
00729 return ptr< ss_return > ( new ss_return(a__ss_base_with_location__location,
00730 a__ss_statement__labels,
00731 a__ss_statement__parent,
00732 a__ss_statement__psp,
00733 a__ss_statement__nsp,
00734 a__ss_statement__sequence_points,
00735 a__ss_return__result) );
00736 }
00737
00738
00739
00740
00741
00742 ss_return::ss_return (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00743 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
00744 ptr< ss_compound_stmt > a__ss_statement__parent,
00745 ptr< ss_sp > a__ss_statement__psp,
00746 ptr< ss_sp > a__ss_statement__nsp,
00747 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points,
00748 ptr< ss_expression > a__ss_return__result)
00749 : ss_statement(a__ss_base_with_location__location,
00750 a__ss_statement__labels,
00751 a__ss_statement__parent,
00752 a__ss_statement__psp,
00753 a__ss_statement__nsp,
00754 a__ss_statement__sequence_points), result(a__ss_return__result)
00755 {}
00756
00757 ptr< object::reflection_list > ss_return::reflection_get() const
00758 {
00759 if (!reflection) {
00760 typedef class_reflection::field_metadata md;
00761 typedef class_reflection::field_metadata_list mdlist;
00762 ptr<mdlist> mdl = mdlist::create();
00763 mdl->push_back( md::create( "result", "ss_expression" ) );
00764 reflection = reflection_list::create( ss_statement::reflection_get() );
00765 reflection->push_back( class_reflection::create( "ss_return", mdl ) );
00766 }
00767 return reflection;
00768 }
00769
00770 ptr< object::field_list_list > ss_return::field_values_get() const
00771 {
00772 ptr < field_list_list > result = ss_statement::field_values_get();
00773 result->push_back( value_list::create() );
00774 result->back()->push_back( this->result );
00775 return result;
00776 }
00777
00778
00779
00780
00781
00782
00783 void ss_return::gc_mark()
00784 {
00785 ss_statement::gc_mark();
00786 }
00787
00788
00789
00790
00791
00792
00793
00794
00795
00796 ptr< ss_label > ss_goto::label_get() const
00797 {
00798 return label;
00799 }
00800
00801
00802
00803
00804
00805 void ss_goto::label_set(const ptr< ss_label > & x)
00806 {
00807 ss_goto::label = x;
00808 }
00809
00810 void ss_goto::accept_ss_statement_visitor( ptr< ss_statement_visitor > v )
00811 {
00812 return v->visit_ss_goto( this );
00813 }
00814
00815
00816
00817
00818
00819 ptr< ss_goto > ss_goto::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00820 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
00821 ptr< ss_compound_stmt > a__ss_statement__parent,
00822 ptr< ss_sp > a__ss_statement__psp,
00823 ptr< ss_sp > a__ss_statement__nsp,
00824 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points,
00825 ptr< ss_label > a__ss_goto__label)
00826 {
00827 return ptr< ss_goto > ( new ss_goto(a__ss_base_with_location__location,
00828 a__ss_statement__labels,
00829 a__ss_statement__parent,
00830 a__ss_statement__psp,
00831 a__ss_statement__nsp,
00832 a__ss_statement__sequence_points,
00833 a__ss_goto__label) );
00834 }
00835
00836
00837
00838
00839
00840 ss_goto::ss_goto (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00841 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
00842 ptr< ss_compound_stmt > a__ss_statement__parent,
00843 ptr< ss_sp > a__ss_statement__psp,
00844 ptr< ss_sp > a__ss_statement__nsp,
00845 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points,
00846 ptr< ss_label > a__ss_goto__label)
00847 : ss_statement(a__ss_base_with_location__location,
00848 a__ss_statement__labels,
00849 a__ss_statement__parent,
00850 a__ss_statement__psp,
00851 a__ss_statement__nsp,
00852 a__ss_statement__sequence_points), label(checked(a__ss_goto__label))
00853 {}
00854
00855 ptr< object::reflection_list > ss_goto::reflection_get() const
00856 {
00857 if (!reflection) {
00858 typedef class_reflection::field_metadata md;
00859 typedef class_reflection::field_metadata_list mdlist;
00860 ptr<mdlist> mdl = mdlist::create();
00861 mdl->push_back( md::create( "label", "ss_label" ) );
00862 reflection = reflection_list::create( ss_statement::reflection_get() );
00863 reflection->push_back( class_reflection::create( "ss_goto", mdl ) );
00864 }
00865 return reflection;
00866 }
00867
00868 ptr< object::field_list_list > ss_goto::field_values_get() const
00869 {
00870 ptr < field_list_list > result = ss_statement::field_values_get();
00871 result->push_back( value_list::create() );
00872 result->back()->push_back( this->label );
00873 return result;
00874 }
00875
00876
00877
00878
00879
00880
00881 void ss_goto::gc_mark()
00882 {
00883 ss_statement::gc_mark();
00884 }
00885
00886
00887
00888
00889
00890
00891
00892
00893
00894 ptr< ss_expression > ss_expr_stmt::expression_get() const
00895 {
00896 return expression;
00897 }
00898
00899
00900
00901
00902
00903 void ss_expr_stmt::expression_set(const ptr< ss_expression > & x)
00904 {
00905 ss_expr_stmt::expression = x;
00906 }
00907
00908 void ss_expr_stmt::accept_ss_statement_visitor( ptr< ss_statement_visitor > v )
00909 {
00910 return v->visit_ss_expr_stmt( this );
00911 }
00912
00913
00914
00915
00916
00917 ptr< ss_expr_stmt > ss_expr_stmt::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00918 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
00919 ptr< ss_compound_stmt > a__ss_statement__parent,
00920 ptr< ss_sp > a__ss_statement__psp,
00921 ptr< ss_sp > a__ss_statement__nsp,
00922 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points,
00923 ptr< ss_expression > a__ss_expr_stmt__expression)
00924 {
00925 return ptr< ss_expr_stmt > ( new ss_expr_stmt(a__ss_base_with_location__location,
00926 a__ss_statement__labels,
00927 a__ss_statement__parent,
00928 a__ss_statement__psp,
00929 a__ss_statement__nsp,
00930 a__ss_statement__sequence_points,
00931 a__ss_expr_stmt__expression) );
00932 }
00933
00934
00935
00936
00937
00938 ss_expr_stmt::ss_expr_stmt (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00939 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
00940 ptr< ss_compound_stmt > a__ss_statement__parent,
00941 ptr< ss_sp > a__ss_statement__psp,
00942 ptr< ss_sp > a__ss_statement__nsp,
00943 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points,
00944 ptr< ss_expression > a__ss_expr_stmt__expression)
00945 : ss_statement(a__ss_base_with_location__location,
00946 a__ss_statement__labels,
00947 a__ss_statement__parent,
00948 a__ss_statement__psp,
00949 a__ss_statement__nsp,
00950 a__ss_statement__sequence_points), expression(checked(a__ss_expr_stmt__expression))
00951 {}
00952
00953 ptr< object::reflection_list > ss_expr_stmt::reflection_get() const
00954 {
00955 if (!reflection) {
00956 typedef class_reflection::field_metadata md;
00957 typedef class_reflection::field_metadata_list mdlist;
00958 ptr<mdlist> mdl = mdlist::create();
00959 mdl->push_back( md::create( "expression", "ss_expression" ) );
00960 reflection = reflection_list::create( ss_statement::reflection_get() );
00961 reflection->push_back( class_reflection::create( "ss_expr_stmt", mdl ) );
00962 }
00963 return reflection;
00964 }
00965
00966 ptr< object::field_list_list > ss_expr_stmt::field_values_get() const
00967 {
00968 ptr < field_list_list > result = ss_statement::field_values_get();
00969 result->push_back( value_list::create() );
00970 result->back()->push_back( this->expression );
00971 return result;
00972 }
00973
00974
00975
00976
00977
00978
00979 void ss_expr_stmt::gc_mark()
00980 {
00981 ss_statement::gc_mark();
00982 }
00983
00984
00985
00986
00987
00988
00989
00990
00991
00992 ptr< ss_iteration_stmt > ss_continue::from_get() const
00993 {
00994 return from;
00995 }
00996
00997
00998
00999
01000
01001 void ss_continue::from_set(const ptr< ss_iteration_stmt > & x)
01002 {
01003 ss_continue::from = x;
01004 }
01005
01006 void ss_continue::accept_ss_statement_visitor( ptr< ss_statement_visitor > v )
01007 {
01008 return v->visit_ss_continue( this );
01009 }
01010
01011
01012
01013
01014
01015 ptr< ss_continue > ss_continue::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01016 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
01017 ptr< ss_compound_stmt > a__ss_statement__parent,
01018 ptr< ss_sp > a__ss_statement__psp,
01019 ptr< ss_sp > a__ss_statement__nsp,
01020 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points,
01021 ptr< ss_iteration_stmt > a__ss_continue__from)
01022 {
01023 return ptr< ss_continue > ( new ss_continue(a__ss_base_with_location__location,
01024 a__ss_statement__labels,
01025 a__ss_statement__parent,
01026 a__ss_statement__psp,
01027 a__ss_statement__nsp,
01028 a__ss_statement__sequence_points,
01029 a__ss_continue__from) );
01030 }
01031
01032
01033
01034
01035
01036 ss_continue::ss_continue (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01037 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
01038 ptr< ss_compound_stmt > a__ss_statement__parent,
01039 ptr< ss_sp > a__ss_statement__psp,
01040 ptr< ss_sp > a__ss_statement__nsp,
01041 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points,
01042 ptr< ss_iteration_stmt > a__ss_continue__from)
01043 : ss_statement(a__ss_base_with_location__location,
01044 a__ss_statement__labels,
01045 a__ss_statement__parent,
01046 a__ss_statement__psp,
01047 a__ss_statement__nsp,
01048 a__ss_statement__sequence_points), from(checked(a__ss_continue__from))
01049 {}
01050
01051 ptr< object::reflection_list > ss_continue::reflection_get() const
01052 {
01053 if (!reflection) {
01054 typedef class_reflection::field_metadata md;
01055 typedef class_reflection::field_metadata_list mdlist;
01056 ptr<mdlist> mdl = mdlist::create();
01057 mdl->push_back( md::create( "from", "ss_iteration_stmt" ) );
01058 reflection = reflection_list::create( ss_statement::reflection_get() );
01059 reflection->push_back( class_reflection::create( "ss_continue", mdl ) );
01060 }
01061 return reflection;
01062 }
01063
01064 ptr< object::field_list_list > ss_continue::field_values_get() const
01065 {
01066 ptr < field_list_list > result = ss_statement::field_values_get();
01067 result->push_back( value_list::create() );
01068 result->back()->push_back( this->from );
01069 return result;
01070 }
01071
01072
01073
01074
01075
01076
01077 void ss_continue::gc_mark()
01078 {
01079 ss_statement::gc_mark();
01080 }
01081
01082
01083
01084
01085
01086
01087
01088
01089
01090 ptr< ss_expression > ss_if_stmt::condition_get() const
01091 {
01092 return condition;
01093 }
01094
01095
01096
01097
01098
01099 void ss_if_stmt::condition_set(const ptr< ss_expression > & x)
01100 {
01101 ss_if_stmt::condition = x;
01102 }
01103
01104
01105
01106
01107
01108 ptr< ss_compound_stmt > ss_if_stmt::cthen_get() const
01109 {
01110 return cthen;
01111 }
01112
01113
01114
01115
01116
01117 void ss_if_stmt::cthen_set(const ptr< ss_compound_stmt > & x)
01118 {
01119 ss_if_stmt::cthen = x;
01120 }
01121
01122
01123
01124
01125
01126 ptr< ss_compound_stmt > ss_if_stmt::celse_get() const
01127 {
01128 return celse;
01129 }
01130
01131
01132
01133
01134
01135 void ss_if_stmt::celse_set(const ptr< ss_compound_stmt > & x)
01136 {
01137 ss_if_stmt::celse = x;
01138 }
01139
01140 void ss_if_stmt::accept_ss_statement_visitor( ptr< ss_statement_visitor > v )
01141 {
01142 return v->visit_ss_if_stmt( this );
01143 }
01144
01145
01146
01147
01148
01149 ptr< ss_if_stmt > ss_if_stmt::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01150 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
01151 ptr< ss_compound_stmt > a__ss_statement__parent,
01152 ptr< ss_sp > a__ss_statement__psp,
01153 ptr< ss_sp > a__ss_statement__nsp,
01154 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points,
01155 ptr< ss_expression > a__ss_if_stmt__condition,
01156 ptr< ss_compound_stmt > a__ss_if_stmt__cthen,
01157 ptr< ss_compound_stmt > a__ss_if_stmt__celse)
01158 {
01159 return ptr< ss_if_stmt > ( new ss_if_stmt(a__ss_base_with_location__location,
01160 a__ss_statement__labels,
01161 a__ss_statement__parent,
01162 a__ss_statement__psp,
01163 a__ss_statement__nsp,
01164 a__ss_statement__sequence_points,
01165 a__ss_if_stmt__condition,
01166 a__ss_if_stmt__cthen,
01167 a__ss_if_stmt__celse) );
01168 }
01169
01170
01171
01172
01173
01174 ss_if_stmt::ss_if_stmt (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01175 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
01176 ptr< ss_compound_stmt > a__ss_statement__parent,
01177 ptr< ss_sp > a__ss_statement__psp,
01178 ptr< ss_sp > a__ss_statement__nsp,
01179 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points,
01180 ptr< ss_expression > a__ss_if_stmt__condition,
01181 ptr< ss_compound_stmt > a__ss_if_stmt__cthen,
01182 ptr< ss_compound_stmt > a__ss_if_stmt__celse)
01183 : ss_statement(a__ss_base_with_location__location,
01184 a__ss_statement__labels,
01185 a__ss_statement__parent,
01186 a__ss_statement__psp,
01187 a__ss_statement__nsp,
01188 a__ss_statement__sequence_points), condition(checked(a__ss_if_stmt__condition)), cthen(checked(a__ss_if_stmt__cthen)), celse(checked(a__ss_if_stmt__celse))
01189 {}
01190
01191 ptr< object::reflection_list > ss_if_stmt::reflection_get() const
01192 {
01193 if (!reflection) {
01194 typedef class_reflection::field_metadata md;
01195 typedef class_reflection::field_metadata_list mdlist;
01196 ptr<mdlist> mdl = mdlist::create();
01197 mdl->push_back( md::create( "condition", "ss_expression" ) );
01198 mdl->push_back( md::create( "cthen", "ss_compound_stmt" ) );
01199 mdl->push_back( md::create( "celse", "ss_compound_stmt" ) );
01200 reflection = reflection_list::create( ss_statement::reflection_get() );
01201 reflection->push_back( class_reflection::create( "ss_if_stmt", mdl ) );
01202 }
01203 return reflection;
01204 }
01205
01206 ptr< object::field_list_list > ss_if_stmt::field_values_get() const
01207 {
01208 ptr < field_list_list > result = ss_statement::field_values_get();
01209 result->push_back( value_list::create() );
01210 result->back()->push_back( this->condition );
01211 result->push_back( value_list::create() );
01212 result->back()->push_back( this->cthen );
01213 result->push_back( value_list::create() );
01214 result->back()->push_back( this->celse );
01215 return result;
01216 }
01217
01218
01219
01220
01221
01222
01223 void ss_if_stmt::gc_mark()
01224 {
01225 ss_statement::gc_mark();
01226 }
01227
01228
01229
01230
01231
01232
01233
01234
01235
01236 ptr< ss_compound_stmt > ss_catch::body_get() const
01237 {
01238 return body;
01239 }
01240
01241
01242
01243
01244
01245 void ss_catch::body_set(const ptr< ss_compound_stmt > & x)
01246 {
01247 ss_catch::body = x;
01248 }
01249
01250
01251
01252
01253
01254 ptr< ss_declaration > ss_catch::decl_get() const
01255 {
01256 return decl;
01257 }
01258
01259
01260
01261
01262
01263 void ss_catch::decl_set(const ptr< ss_declaration > & x)
01264 {
01265 ss_catch::decl = x;
01266 }
01267
01268 void ss_catch::accept_ss_statement_visitor( ptr< ss_statement_visitor > v )
01269 {
01270 return v->visit_ss_catch( this );
01271 }
01272
01273
01274
01275
01276
01277 ptr< ss_catch > ss_catch::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01278 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
01279 ptr< ss_compound_stmt > a__ss_statement__parent,
01280 ptr< ss_sp > a__ss_statement__psp,
01281 ptr< ss_sp > a__ss_statement__nsp,
01282 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points,
01283 ptr< ss_compound_stmt > a__ss_catch__body,
01284 ptr< ss_declaration > a__ss_catch__decl)
01285 {
01286 return ptr< ss_catch > ( new ss_catch(a__ss_base_with_location__location,
01287 a__ss_statement__labels,
01288 a__ss_statement__parent,
01289 a__ss_statement__psp,
01290 a__ss_statement__nsp,
01291 a__ss_statement__sequence_points,
01292 a__ss_catch__body,
01293 a__ss_catch__decl) );
01294 }
01295
01296
01297
01298
01299
01300 ss_catch::ss_catch (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01301 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
01302 ptr< ss_compound_stmt > a__ss_statement__parent,
01303 ptr< ss_sp > a__ss_statement__psp,
01304 ptr< ss_sp > a__ss_statement__nsp,
01305 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points,
01306 ptr< ss_compound_stmt > a__ss_catch__body,
01307 ptr< ss_declaration > a__ss_catch__decl)
01308 : ss_statement(a__ss_base_with_location__location,
01309 a__ss_statement__labels,
01310 a__ss_statement__parent,
01311 a__ss_statement__psp,
01312 a__ss_statement__nsp,
01313 a__ss_statement__sequence_points), body(checked(a__ss_catch__body)), decl(checked(a__ss_catch__decl))
01314 {}
01315
01316 ptr< object::reflection_list > ss_catch::reflection_get() const
01317 {
01318 if (!reflection) {
01319 typedef class_reflection::field_metadata md;
01320 typedef class_reflection::field_metadata_list mdlist;
01321 ptr<mdlist> mdl = mdlist::create();
01322 mdl->push_back( md::create( "body", "ss_compound_stmt" ) );
01323 mdl->push_back( md::create( "decl", "ss_declaration" ) );
01324 reflection = reflection_list::create( ss_statement::reflection_get() );
01325 reflection->push_back( class_reflection::create( "ss_catch", mdl ) );
01326 }
01327 return reflection;
01328 }
01329
01330 ptr< object::field_list_list > ss_catch::field_values_get() const
01331 {
01332 ptr < field_list_list > result = ss_statement::field_values_get();
01333 result->push_back( value_list::create() );
01334 result->back()->push_back( this->body );
01335 result->push_back( value_list::create() );
01336 result->back()->push_back( this->decl );
01337 return result;
01338 }
01339
01340
01341
01342
01343
01344
01345 void ss_catch::gc_mark()
01346 {
01347 ss_statement::gc_mark();
01348 }
01349
01350
01351
01352
01353
01354
01355
01356
01357
01358 ptr< ss_compound_stmt > ss_breakable_stmt::body_get() const
01359 {
01360 return body;
01361 }
01362
01363
01364
01365
01366
01367 void ss_breakable_stmt::body_set(const ptr< ss_compound_stmt > & x)
01368 {
01369 ss_breakable_stmt::body = x;
01370 }
01371
01372
01373
01374
01375
01376 ptr< ss_expression > ss_breakable_stmt::condition_get() const
01377 {
01378 return condition;
01379 }
01380
01381
01382
01383
01384
01385 void ss_breakable_stmt::condition_set(const ptr< ss_expression > & x)
01386 {
01387 ss_breakable_stmt::condition = x;
01388 }
01389
01390
01391
01392
01393
01394 ss_breakable_stmt::ss_breakable_stmt (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01395 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
01396 ptr< ss_compound_stmt > a__ss_statement__parent,
01397 ptr< ss_sp > a__ss_statement__psp,
01398 ptr< ss_sp > a__ss_statement__nsp,
01399 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points,
01400 ptr< ss_compound_stmt > a__ss_breakable_stmt__body,
01401 ptr< ss_expression > a__ss_breakable_stmt__condition)
01402 : ss_statement(a__ss_base_with_location__location,
01403 a__ss_statement__labels,
01404 a__ss_statement__parent,
01405 a__ss_statement__psp,
01406 a__ss_statement__nsp,
01407 a__ss_statement__sequence_points), body(checked(a__ss_breakable_stmt__body)), condition(checked(a__ss_breakable_stmt__condition))
01408 {}
01409
01410 ptr< object::reflection_list > ss_breakable_stmt::reflection_get() const
01411 {
01412 if (!reflection) {
01413 typedef class_reflection::field_metadata md;
01414 typedef class_reflection::field_metadata_list mdlist;
01415 ptr<mdlist> mdl = mdlist::create();
01416 mdl->push_back( md::create( "body", "ss_compound_stmt" ) );
01417 mdl->push_back( md::create( "condition", "ss_expression" ) );
01418 reflection = reflection_list::create( ss_statement::reflection_get() );
01419 reflection->push_back( class_reflection::create( "ss_breakable_stmt", mdl ) );
01420 }
01421 return reflection;
01422 }
01423
01424 ptr< object::field_list_list > ss_breakable_stmt::field_values_get() const
01425 {
01426 ptr < field_list_list > result = ss_statement::field_values_get();
01427 result->push_back( value_list::create() );
01428 result->back()->push_back( this->body );
01429 result->push_back( value_list::create() );
01430 result->back()->push_back( this->condition );
01431 return result;
01432 }
01433
01434
01435
01436
01437
01438
01439 void ss_breakable_stmt::gc_mark()
01440 {
01441 ss_statement::gc_mark();
01442 }
01443
01444
01445
01446
01447
01448
01449
01450
01451
01452 ptr< ::lestes::std::list< srp< ss_case_label > > > ss_switch_stmt::case_labels_get() const
01453 {
01454 return case_labels;
01455 }
01456
01457
01458
01459
01460
01461 void ss_switch_stmt::case_labels_set(const ptr< ::lestes::std::list< srp< ss_case_label > > > & x)
01462 {
01463 ss_switch_stmt::case_labels = x;
01464 }
01465
01466
01467
01468
01469
01470 ptr< ss_default_label > ss_switch_stmt::default_label_get() const
01471 {
01472 return default_label;
01473 }
01474
01475
01476
01477
01478
01479 void ss_switch_stmt::default_label_set(const ptr< ss_default_label > & x)
01480 {
01481 ss_switch_stmt::default_label = x;
01482 }
01483
01484 void ss_switch_stmt::accept_ss_statement_visitor( ptr< ss_statement_visitor > v )
01485 {
01486 return v->visit_ss_switch_stmt( this );
01487 }
01488
01489
01490
01491
01492
01493 ptr< ss_switch_stmt > ss_switch_stmt::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01494 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
01495 ptr< ss_compound_stmt > a__ss_statement__parent,
01496 ptr< ss_sp > a__ss_statement__psp,
01497 ptr< ss_sp > a__ss_statement__nsp,
01498 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points,
01499 ptr< ss_compound_stmt > a__ss_breakable_stmt__body,
01500 ptr< ss_expression > a__ss_breakable_stmt__condition,
01501 ptr< ::lestes::std::list< srp< ss_case_label > > > a__ss_switch_stmt__case_labels,
01502 ptr< ss_default_label > a__ss_switch_stmt__default_label)
01503 {
01504 return ptr< ss_switch_stmt > ( new ss_switch_stmt(a__ss_base_with_location__location,
01505 a__ss_statement__labels,
01506 a__ss_statement__parent,
01507 a__ss_statement__psp,
01508 a__ss_statement__nsp,
01509 a__ss_statement__sequence_points,
01510 a__ss_breakable_stmt__body,
01511 a__ss_breakable_stmt__condition,
01512 a__ss_switch_stmt__case_labels,
01513 a__ss_switch_stmt__default_label) );
01514 }
01515
01516
01517
01518
01519
01520 ss_switch_stmt::ss_switch_stmt (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01521 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
01522 ptr< ss_compound_stmt > a__ss_statement__parent,
01523 ptr< ss_sp > a__ss_statement__psp,
01524 ptr< ss_sp > a__ss_statement__nsp,
01525 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points,
01526 ptr< ss_compound_stmt > a__ss_breakable_stmt__body,
01527 ptr< ss_expression > a__ss_breakable_stmt__condition,
01528 ptr< ::lestes::std::list< srp< ss_case_label > > > a__ss_switch_stmt__case_labels,
01529 ptr< ss_default_label > a__ss_switch_stmt__default_label)
01530 : ss_breakable_stmt(a__ss_base_with_location__location,
01531 a__ss_statement__labels,
01532 a__ss_statement__parent,
01533 a__ss_statement__psp,
01534 a__ss_statement__nsp,
01535 a__ss_statement__sequence_points,
01536 a__ss_breakable_stmt__body,
01537 a__ss_breakable_stmt__condition), case_labels(checked(a__ss_switch_stmt__case_labels)), default_label(checked(a__ss_switch_stmt__default_label))
01538 {}
01539
01540 ptr< object::reflection_list > ss_switch_stmt::reflection_get() const
01541 {
01542 if (!reflection) {
01543 typedef class_reflection::field_metadata md;
01544 typedef class_reflection::field_metadata_list mdlist;
01545 ptr<mdlist> mdl = mdlist::create();
01546 mdl->push_back( md::create( "case_labels", "list< srp< ss_case_label > >" ) );
01547 mdl->push_back( md::create( "default_label", "ss_default_label" ) );
01548 reflection = reflection_list::create( ss_breakable_stmt::reflection_get() );
01549 reflection->push_back( class_reflection::create( "ss_switch_stmt", mdl ) );
01550 }
01551 return reflection;
01552 }
01553
01554 ptr< object::field_list_list > ss_switch_stmt::field_values_get() const
01555 {
01556 ptr < field_list_list > result = ss_breakable_stmt::field_values_get();
01557 result->push_back( value_list::create() );
01558 result->back()->push_back( this->case_labels );
01559 result->push_back( value_list::create() );
01560 result->back()->push_back( this->default_label );
01561 return result;
01562 }
01563
01564
01565
01566
01567
01568
01569 void ss_switch_stmt::gc_mark()
01570 {
01571 ss_breakable_stmt::gc_mark();
01572 }
01573
01574
01575
01576
01577
01578
01579
01580
01581
01582 ss_iteration_stmt::ss_iteration_stmt (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01583 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
01584 ptr< ss_compound_stmt > a__ss_statement__parent,
01585 ptr< ss_sp > a__ss_statement__psp,
01586 ptr< ss_sp > a__ss_statement__nsp,
01587 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points,
01588 ptr< ss_compound_stmt > a__ss_breakable_stmt__body,
01589 ptr< ss_expression > a__ss_breakable_stmt__condition)
01590 : ss_breakable_stmt(a__ss_base_with_location__location,
01591 a__ss_statement__labels,
01592 a__ss_statement__parent,
01593 a__ss_statement__psp,
01594 a__ss_statement__nsp,
01595 a__ss_statement__sequence_points,
01596 a__ss_breakable_stmt__body,
01597 a__ss_breakable_stmt__condition)
01598 {}
01599
01600 ptr< object::reflection_list > ss_iteration_stmt::reflection_get() const
01601 {
01602 if (!reflection) {
01603 typedef class_reflection::field_metadata md;
01604 typedef class_reflection::field_metadata_list mdlist;
01605 ptr<mdlist> mdl = mdlist::create();
01606 reflection = reflection_list::create( ss_breakable_stmt::reflection_get() );
01607 reflection->push_back( class_reflection::create( "ss_iteration_stmt", mdl ) );
01608 }
01609 return reflection;
01610 }
01611
01612 ptr< object::field_list_list > ss_iteration_stmt::field_values_get() const
01613 {
01614 ptr < field_list_list > result = ss_breakable_stmt::field_values_get();
01615 return result;
01616 }
01617
01618
01619
01620
01621
01622
01623 void ss_iteration_stmt::gc_mark()
01624 {
01625 ss_breakable_stmt::gc_mark();
01626 }
01627
01628
01629
01630
01631
01632 void ss_do::accept_ss_statement_visitor( ptr< ss_statement_visitor > v )
01633 {
01634 return v->visit_ss_do( this );
01635 }
01636
01637
01638
01639
01640
01641 ptr< ss_do > ss_do::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01642 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
01643 ptr< ss_compound_stmt > a__ss_statement__parent,
01644 ptr< ss_sp > a__ss_statement__psp,
01645 ptr< ss_sp > a__ss_statement__nsp,
01646 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points,
01647 ptr< ss_compound_stmt > a__ss_breakable_stmt__body,
01648 ptr< ss_expression > a__ss_breakable_stmt__condition)
01649 {
01650 return ptr< ss_do > ( new ss_do(a__ss_base_with_location__location,
01651 a__ss_statement__labels,
01652 a__ss_statement__parent,
01653 a__ss_statement__psp,
01654 a__ss_statement__nsp,
01655 a__ss_statement__sequence_points,
01656 a__ss_breakable_stmt__body,
01657 a__ss_breakable_stmt__condition) );
01658 }
01659
01660
01661
01662
01663
01664 ss_do::ss_do (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01665 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
01666 ptr< ss_compound_stmt > a__ss_statement__parent,
01667 ptr< ss_sp > a__ss_statement__psp,
01668 ptr< ss_sp > a__ss_statement__nsp,
01669 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points,
01670 ptr< ss_compound_stmt > a__ss_breakable_stmt__body,
01671 ptr< ss_expression > a__ss_breakable_stmt__condition)
01672 : ss_iteration_stmt(a__ss_base_with_location__location,
01673 a__ss_statement__labels,
01674 a__ss_statement__parent,
01675 a__ss_statement__psp,
01676 a__ss_statement__nsp,
01677 a__ss_statement__sequence_points,
01678 a__ss_breakable_stmt__body,
01679 a__ss_breakable_stmt__condition)
01680 {}
01681
01682 ptr< object::reflection_list > ss_do::reflection_get() const
01683 {
01684 if (!reflection) {
01685 typedef class_reflection::field_metadata md;
01686 typedef class_reflection::field_metadata_list mdlist;
01687 ptr<mdlist> mdl = mdlist::create();
01688 reflection = reflection_list::create( ss_iteration_stmt::reflection_get() );
01689 reflection->push_back( class_reflection::create( "ss_do", mdl ) );
01690 }
01691 return reflection;
01692 }
01693
01694 ptr< object::field_list_list > ss_do::field_values_get() const
01695 {
01696 ptr < field_list_list > result = ss_iteration_stmt::field_values_get();
01697 return result;
01698 }
01699
01700
01701
01702
01703
01704
01705 void ss_do::gc_mark()
01706 {
01707 ss_iteration_stmt::gc_mark();
01708 }
01709
01710
01711
01712
01713
01714 void ss_while::accept_ss_statement_visitor( ptr< ss_statement_visitor > v )
01715 {
01716 return v->visit_ss_while( this );
01717 }
01718
01719
01720
01721
01722
01723 ptr< ss_while > ss_while::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01724 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
01725 ptr< ss_compound_stmt > a__ss_statement__parent,
01726 ptr< ss_sp > a__ss_statement__psp,
01727 ptr< ss_sp > a__ss_statement__nsp,
01728 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points,
01729 ptr< ss_compound_stmt > a__ss_breakable_stmt__body,
01730 ptr< ss_expression > a__ss_breakable_stmt__condition)
01731 {
01732 return ptr< ss_while > ( new ss_while(a__ss_base_with_location__location,
01733 a__ss_statement__labels,
01734 a__ss_statement__parent,
01735 a__ss_statement__psp,
01736 a__ss_statement__nsp,
01737 a__ss_statement__sequence_points,
01738 a__ss_breakable_stmt__body,
01739 a__ss_breakable_stmt__condition) );
01740 }
01741
01742
01743
01744
01745
01746 ss_while::ss_while (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01747 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
01748 ptr< ss_compound_stmt > a__ss_statement__parent,
01749 ptr< ss_sp > a__ss_statement__psp,
01750 ptr< ss_sp > a__ss_statement__nsp,
01751 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points,
01752 ptr< ss_compound_stmt > a__ss_breakable_stmt__body,
01753 ptr< ss_expression > a__ss_breakable_stmt__condition)
01754 : ss_iteration_stmt(a__ss_base_with_location__location,
01755 a__ss_statement__labels,
01756 a__ss_statement__parent,
01757 a__ss_statement__psp,
01758 a__ss_statement__nsp,
01759 a__ss_statement__sequence_points,
01760 a__ss_breakable_stmt__body,
01761 a__ss_breakable_stmt__condition)
01762 {}
01763
01764 ptr< object::reflection_list > ss_while::reflection_get() const
01765 {
01766 if (!reflection) {
01767 typedef class_reflection::field_metadata md;
01768 typedef class_reflection::field_metadata_list mdlist;
01769 ptr<mdlist> mdl = mdlist::create();
01770 reflection = reflection_list::create( ss_iteration_stmt::reflection_get() );
01771 reflection->push_back( class_reflection::create( "ss_while", mdl ) );
01772 }
01773 return reflection;
01774 }
01775
01776 ptr< object::field_list_list > ss_while::field_values_get() const
01777 {
01778 ptr < field_list_list > result = ss_iteration_stmt::field_values_get();
01779 return result;
01780 }
01781
01782
01783
01784
01785
01786
01787 void ss_while::gc_mark()
01788 {
01789 ss_iteration_stmt::gc_mark();
01790 }
01791
01792
01793
01794
01795
01796
01797
01798
01799
01800 ptr< ss_expr_stmt > ss_for::iteration_get() const
01801 {
01802 return iteration;
01803 }
01804
01805
01806
01807
01808
01809 void ss_for::iteration_set(const ptr< ss_expr_stmt > & x)
01810 {
01811 ss_for::iteration = x;
01812 }
01813
01814 void ss_for::accept_ss_statement_visitor( ptr< ss_statement_visitor > v )
01815 {
01816 return v->visit_ss_for( this );
01817 }
01818
01819
01820
01821
01822
01823 ptr< ss_for > ss_for::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01824 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
01825 ptr< ss_compound_stmt > a__ss_statement__parent,
01826 ptr< ss_sp > a__ss_statement__psp,
01827 ptr< ss_sp > a__ss_statement__nsp,
01828 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points,
01829 ptr< ss_compound_stmt > a__ss_breakable_stmt__body,
01830 ptr< ss_expression > a__ss_breakable_stmt__condition,
01831 ptr< ss_expr_stmt > a__ss_for__iteration)
01832 {
01833 return ptr< ss_for > ( new ss_for(a__ss_base_with_location__location,
01834 a__ss_statement__labels,
01835 a__ss_statement__parent,
01836 a__ss_statement__psp,
01837 a__ss_statement__nsp,
01838 a__ss_statement__sequence_points,
01839 a__ss_breakable_stmt__body,
01840 a__ss_breakable_stmt__condition,
01841 a__ss_for__iteration) );
01842 }
01843
01844
01845
01846
01847
01848 ss_for::ss_for (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01849 ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels,
01850 ptr< ss_compound_stmt > a__ss_statement__parent,
01851 ptr< ss_sp > a__ss_statement__psp,
01852 ptr< ss_sp > a__ss_statement__nsp,
01853 ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points,
01854 ptr< ss_compound_stmt > a__ss_breakable_stmt__body,
01855 ptr< ss_expression > a__ss_breakable_stmt__condition,
01856 ptr< ss_expr_stmt > a__ss_for__iteration)
01857 : ss_iteration_stmt(a__ss_base_with_location__location,
01858 a__ss_statement__labels,
01859 a__ss_statement__parent,
01860 a__ss_statement__psp,
01861 a__ss_statement__nsp,
01862 a__ss_statement__sequence_points,
01863 a__ss_breakable_stmt__body,
01864 a__ss_breakable_stmt__condition), iteration(a__ss_for__iteration)
01865 {}
01866
01867 ptr< object::reflection_list > ss_for::reflection_get() const
01868 {
01869 if (!reflection) {
01870 typedef class_reflection::field_metadata md;
01871 typedef class_reflection::field_metadata_list mdlist;
01872 ptr<mdlist> mdl = mdlist::create();
01873 mdl->push_back( md::create( "iteration", "ss_expr_stmt" ) );
01874 reflection = reflection_list::create( ss_iteration_stmt::reflection_get() );
01875 reflection->push_back( class_reflection::create( "ss_for", mdl ) );
01876 }
01877 return reflection;
01878 }
01879
01880 ptr< object::field_list_list > ss_for::field_values_get() const
01881 {
01882 ptr < field_list_list > result = ss_iteration_stmt::field_values_get();
01883 result->push_back( value_list::create() );
01884 result->back()->push_back( this->iteration );
01885 return result;
01886 }
01887
01888
01889
01890
01891
01892
01893 void ss_for::gc_mark()
01894 {
01895 ss_iteration_stmt::gc_mark();
01896 }
01897
01898
01899
01900
01901
01902 bool ss_statement::parent_set_ward = false;
01903 ptr<object::reflection_list> ss_statement::reflection = reflection;
01904 ptr< ss_compound_stmt > ss_compound_stmt::the_root_instance = the_root_instance;
01905 ptr<object::reflection_list> ss_compound_stmt::reflection = reflection;
01906 ptr<object::reflection_list> ss_decl_stmt::reflection = reflection;
01907 ptr<object::reflection_list> ss_try::reflection = reflection;
01908 ptr<object::reflection_list> ss_break::reflection = reflection;
01909 ptr<object::reflection_list> ss_return::reflection = reflection;
01910 ptr<object::reflection_list> ss_goto::reflection = reflection;
01911 ptr<object::reflection_list> ss_expr_stmt::reflection = reflection;
01912 ptr<object::reflection_list> ss_continue::reflection = reflection;
01913 ptr<object::reflection_list> ss_if_stmt::reflection = reflection;
01914 ptr<object::reflection_list> ss_catch::reflection = reflection;
01915 ptr<object::reflection_list> ss_breakable_stmt::reflection = reflection;
01916 ptr<object::reflection_list> ss_switch_stmt::reflection = reflection;
01917 ptr<object::reflection_list> ss_iteration_stmt::reflection = reflection;
01918 ptr<object::reflection_list> ss_do::reflection = reflection;
01919 ptr<object::reflection_list> ss_while::reflection = reflection;
01920 ptr<object::reflection_list> ss_for::reflection = reflection;
01921
01922 end_package(sem);
01923 end_package(cplus);
01924 end_package(lang);
01925 end_package(lestes);
01926