00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #include <lestes/lang/cplus/sem/visitor.v.g.hh>
00013 #include <lestes/lang/cplus/lex/token_value.hh>
00014 #include <lestes/lang/cplus/sem/ss_misc.g.hh>
00015 #include <lestes/lang/cplus/sem/ss_type.g.hh>
00016 #include <lestes/backend_v2/intercode/pi.g.hh>
00017 #include <lestes/lang/cplus/sem/as_decl.g.hh>
00018 #include <lestes/lang/cplus/sem/ss_declaration.g.hh>
00019 #include <lestes/lang/cplus/sem/ss_literal_info.g.hh>
00020
00021 #include <lestes/std/list.hh>
00022 #include <lestes/std/pair.hh>
00023 #include <lestes/std/reflect.hh>
00024
00025 #include <lestes/lang/cplus/sem/ss_expression.g.hh>
00026
00027 package(lestes);
00028 package(lang);
00029 package(cplus);
00030 package(sem);
00031
00032
00033
00034
00035
00036
00037
00038
00039 ptr< ss_type > ss_expression::type_get() const
00040 {
00041 return type;
00042 }
00043
00044
00045
00046
00047
00048 void ss_expression::type_set(const ptr< ss_type > & x)
00049 {
00050 ss_expression::type = x;
00051 }
00052
00053
00054
00055
00056
00057 ptr< ss_sp > ss_expression::psp_get() const
00058 {
00059 return psp;
00060 }
00061
00062
00063
00064
00065
00066 void ss_expression::psp_set(const ptr< ss_sp > & x)
00067 {
00068 ss_expression::psp = x;
00069 }
00070
00071
00072
00073
00074
00075 ptr< ss_sp > ss_expression::nsp_get() const
00076 {
00077 return nsp;
00078 }
00079
00080
00081
00082
00083
00084 void ss_expression::nsp_set(const ptr< ss_sp > & x)
00085 {
00086 ss_expression::nsp = x;
00087 }
00088
00089
00090
00091
00092
00093 ss_expression::ss_expression (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00094 ptr< ss_type > a__ss_expression__type,
00095 ptr< ss_sp > a__ss_expression__psp,
00096 ptr< ss_sp > a__ss_expression__nsp)
00097 : ss_base_with_location(a__ss_base_with_location__location), type(checked(a__ss_expression__type)), psp(checked(a__ss_expression__psp)), nsp(checked(a__ss_expression__nsp))
00098 {}
00099
00100 ptr< object::reflection_list > ss_expression::reflection_get() const
00101 {
00102 if (!reflection) {
00103 typedef class_reflection::field_metadata md;
00104 typedef class_reflection::field_metadata_list mdlist;
00105 ptr<mdlist> mdl = mdlist::create();
00106 mdl->push_back( md::create( "type", "ss_type" ) );
00107 mdl->push_back( md::create( "psp", "ss_sp" ) );
00108 mdl->push_back( md::create( "nsp", "ss_sp" ) );
00109 reflection = reflection_list::create( ::lestes::intercode::ss_base_with_location::reflection_get() );
00110 reflection->push_back( class_reflection::create( "ss_expression", mdl ) );
00111 }
00112 return reflection;
00113 }
00114
00115 ptr< object::field_list_list > ss_expression::field_values_get() const
00116 {
00117 ptr < field_list_list > result = ::lestes::intercode::ss_base_with_location::field_values_get();
00118 result->push_back( value_list::create() );
00119 result->back()->push_back( this->type );
00120 result->push_back( value_list::create() );
00121 result->back()->push_back( this->psp );
00122 result->push_back( value_list::create() );
00123 result->back()->push_back( this->nsp );
00124 return result;
00125 }
00126
00127
00128
00129
00130
00131
00132 void ss_expression::gc_mark()
00133 {
00134 ::lestes::intercode::ss_base_with_location::gc_mark();
00135 }
00136
00137
00138
00139
00140
00141 void ss_this_expr::accept_ss_expression_visitor( ptr< ss_expression_visitor > v )
00142 {
00143 return v->visit_ss_this_expr( this );
00144 }
00145
00146
00147
00148
00149
00150 ptr< ss_this_expr > ss_this_expr::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00151 ptr< ss_type > a__ss_expression__type,
00152 ptr< ss_sp > a__ss_expression__psp,
00153 ptr< ss_sp > a__ss_expression__nsp)
00154 {
00155 return ptr< ss_this_expr > ( new ss_this_expr(a__ss_base_with_location__location,
00156 a__ss_expression__type,
00157 a__ss_expression__psp,
00158 a__ss_expression__nsp) );
00159 }
00160
00161
00162
00163
00164
00165 ss_this_expr::ss_this_expr (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00166 ptr< ss_type > a__ss_expression__type,
00167 ptr< ss_sp > a__ss_expression__psp,
00168 ptr< ss_sp > a__ss_expression__nsp)
00169 : ss_expression(a__ss_base_with_location__location,
00170 a__ss_expression__type,
00171 a__ss_expression__psp,
00172 a__ss_expression__nsp)
00173 {}
00174
00175 ptr< object::reflection_list > ss_this_expr::reflection_get() const
00176 {
00177 if (!reflection) {
00178 typedef class_reflection::field_metadata md;
00179 typedef class_reflection::field_metadata_list mdlist;
00180 ptr<mdlist> mdl = mdlist::create();
00181 reflection = reflection_list::create( ss_expression::reflection_get() );
00182 reflection->push_back( class_reflection::create( "ss_this_expr", mdl ) );
00183 }
00184 return reflection;
00185 }
00186
00187 ptr< object::field_list_list > ss_this_expr::field_values_get() const
00188 {
00189 ptr < field_list_list > result = ss_expression::field_values_get();
00190 return result;
00191 }
00192
00193
00194
00195
00196
00197
00198 void ss_this_expr::gc_mark()
00199 {
00200 ss_expression::gc_mark();
00201 }
00202
00203
00204
00205
00206
00207
00208
00209
00210
00211 ptr< ss_literal_info > ss_literal::value_get() const
00212 {
00213 return value;
00214 }
00215
00216
00217
00218
00219
00220 void ss_literal::value_set(const ptr< ss_literal_info > & x)
00221 {
00222 ss_literal::value = x;
00223 }
00224
00225 void ss_literal::accept_ss_expression_visitor( ptr< ss_expression_visitor > v )
00226 {
00227 return v->visit_ss_literal( this );
00228 }
00229
00230
00231
00232
00233
00234 ptr< ss_literal > ss_literal::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00235 ptr< ss_type > a__ss_expression__type,
00236 ptr< ss_sp > a__ss_expression__psp,
00237 ptr< ss_sp > a__ss_expression__nsp,
00238 ptr< ss_literal_info > a__ss_literal__value)
00239 {
00240 return ptr< ss_literal > ( new ss_literal(a__ss_base_with_location__location,
00241 a__ss_expression__type,
00242 a__ss_expression__psp,
00243 a__ss_expression__nsp,
00244 a__ss_literal__value) );
00245 }
00246
00247
00248
00249
00250
00251 ss_literal::ss_literal (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00252 ptr< ss_type > a__ss_expression__type,
00253 ptr< ss_sp > a__ss_expression__psp,
00254 ptr< ss_sp > a__ss_expression__nsp,
00255 ptr< ss_literal_info > a__ss_literal__value)
00256 : ss_expression(a__ss_base_with_location__location,
00257 a__ss_expression__type,
00258 a__ss_expression__psp,
00259 a__ss_expression__nsp), value(checked(a__ss_literal__value))
00260 {}
00261
00262 ptr< object::reflection_list > ss_literal::reflection_get() const
00263 {
00264 if (!reflection) {
00265 typedef class_reflection::field_metadata md;
00266 typedef class_reflection::field_metadata_list mdlist;
00267 ptr<mdlist> mdl = mdlist::create();
00268 mdl->push_back( md::create( "value", "ss_literal_info" ) );
00269 reflection = reflection_list::create( ss_expression::reflection_get() );
00270 reflection->push_back( class_reflection::create( "ss_literal", mdl ) );
00271 }
00272 return reflection;
00273 }
00274
00275 ptr< object::field_list_list > ss_literal::field_values_get() const
00276 {
00277 ptr < field_list_list > result = ss_expression::field_values_get();
00278 result->push_back( value_list::create() );
00279 result->back()->push_back( this->value );
00280 return result;
00281 }
00282
00283
00284
00285
00286
00287
00288 void ss_literal::gc_mark()
00289 {
00290 ss_expression::gc_mark();
00291 }
00292
00293
00294
00295
00296
00297
00298
00299
00300
00301 ptr< ss_expression > ss_ternary::condition_get() const
00302 {
00303 return condition;
00304 }
00305
00306
00307
00308
00309
00310 void ss_ternary::condition_set(const ptr< ss_expression > & x)
00311 {
00312 ss_ternary::condition = x;
00313 }
00314
00315
00316
00317
00318
00319 ptr< ss_expression > ss_ternary::true_expr_get() const
00320 {
00321 return true_expr;
00322 }
00323
00324
00325
00326
00327
00328 void ss_ternary::true_expr_set(const ptr< ss_expression > & x)
00329 {
00330 ss_ternary::true_expr = x;
00331 }
00332
00333
00334
00335
00336
00337 ptr< ss_expression > ss_ternary::false_expr_get() const
00338 {
00339 return false_expr;
00340 }
00341
00342
00343
00344
00345
00346 void ss_ternary::false_expr_set(const ptr< ss_expression > & x)
00347 {
00348 ss_ternary::false_expr = x;
00349 }
00350
00351 void ss_ternary::accept_ss_expression_visitor( ptr< ss_expression_visitor > v )
00352 {
00353 return v->visit_ss_ternary( this );
00354 }
00355
00356
00357
00358
00359
00360 ptr< ss_ternary > ss_ternary::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00361 ptr< ss_type > a__ss_expression__type,
00362 ptr< ss_sp > a__ss_expression__psp,
00363 ptr< ss_sp > a__ss_expression__nsp,
00364 ptr< ss_expression > a__ss_ternary__condition,
00365 ptr< ss_expression > a__ss_ternary__true_expr,
00366 ptr< ss_expression > a__ss_ternary__false_expr)
00367 {
00368 return ptr< ss_ternary > ( new ss_ternary(a__ss_base_with_location__location,
00369 a__ss_expression__type,
00370 a__ss_expression__psp,
00371 a__ss_expression__nsp,
00372 a__ss_ternary__condition,
00373 a__ss_ternary__true_expr,
00374 a__ss_ternary__false_expr) );
00375 }
00376
00377
00378
00379
00380
00381 ss_ternary::ss_ternary (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00382 ptr< ss_type > a__ss_expression__type,
00383 ptr< ss_sp > a__ss_expression__psp,
00384 ptr< ss_sp > a__ss_expression__nsp,
00385 ptr< ss_expression > a__ss_ternary__condition,
00386 ptr< ss_expression > a__ss_ternary__true_expr,
00387 ptr< ss_expression > a__ss_ternary__false_expr)
00388 : ss_expression(a__ss_base_with_location__location,
00389 a__ss_expression__type,
00390 a__ss_expression__psp,
00391 a__ss_expression__nsp), condition(checked(a__ss_ternary__condition)), true_expr(checked(a__ss_ternary__true_expr)), false_expr(checked(a__ss_ternary__false_expr))
00392 {}
00393
00394 ptr< object::reflection_list > ss_ternary::reflection_get() const
00395 {
00396 if (!reflection) {
00397 typedef class_reflection::field_metadata md;
00398 typedef class_reflection::field_metadata_list mdlist;
00399 ptr<mdlist> mdl = mdlist::create();
00400 mdl->push_back( md::create( "condition", "ss_expression" ) );
00401 mdl->push_back( md::create( "true_expr", "ss_expression" ) );
00402 mdl->push_back( md::create( "false_expr", "ss_expression" ) );
00403 reflection = reflection_list::create( ss_expression::reflection_get() );
00404 reflection->push_back( class_reflection::create( "ss_ternary", mdl ) );
00405 }
00406 return reflection;
00407 }
00408
00409 ptr< object::field_list_list > ss_ternary::field_values_get() const
00410 {
00411 ptr < field_list_list > result = ss_expression::field_values_get();
00412 result->push_back( value_list::create() );
00413 result->back()->push_back( this->condition );
00414 result->push_back( value_list::create() );
00415 result->back()->push_back( this->true_expr );
00416 result->push_back( value_list::create() );
00417 result->back()->push_back( this->false_expr );
00418 return result;
00419 }
00420
00421
00422
00423
00424
00425
00426 void ss_ternary::gc_mark()
00427 {
00428 ss_expression::gc_mark();
00429 }
00430
00431
00432
00433
00434
00435
00436
00437
00438
00439 ss_var_ref_abstract::ss_var_ref_abstract (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00440 ptr< ss_type > a__ss_expression__type,
00441 ptr< ss_sp > a__ss_expression__psp,
00442 ptr< ss_sp > a__ss_expression__nsp)
00443 : ss_expression(a__ss_base_with_location__location,
00444 a__ss_expression__type,
00445 a__ss_expression__psp,
00446 a__ss_expression__nsp)
00447 {}
00448
00449 ptr< object::reflection_list > ss_var_ref_abstract::reflection_get() const
00450 {
00451 if (!reflection) {
00452 typedef class_reflection::field_metadata md;
00453 typedef class_reflection::field_metadata_list mdlist;
00454 ptr<mdlist> mdl = mdlist::create();
00455 reflection = reflection_list::create( ss_expression::reflection_get() );
00456 reflection->push_back( class_reflection::create( "ss_var_ref_abstract", mdl ) );
00457 }
00458 return reflection;
00459 }
00460
00461 ptr< object::field_list_list > ss_var_ref_abstract::field_values_get() const
00462 {
00463 ptr < field_list_list > result = ss_expression::field_values_get();
00464 return result;
00465 }
00466
00467
00468
00469
00470
00471
00472 void ss_var_ref_abstract::gc_mark()
00473 {
00474 ss_expression::gc_mark();
00475 }
00476
00477
00478
00479
00480
00481
00482
00483
00484
00485 ptr< ss_decl_seq > ss_var_ref_by_qname::contained_in_get() const
00486 {
00487 return contained_in;
00488 }
00489
00490
00491
00492
00493
00494 void ss_var_ref_by_qname::contained_in_set(const ptr< ss_decl_seq > & x)
00495 {
00496 ss_var_ref_by_qname::contained_in = x;
00497 }
00498
00499
00500
00501
00502
00503 ptr< ss_declaration_time > ss_var_ref_by_qname::decl_time_get() const
00504 {
00505 return decl_time;
00506 }
00507
00508
00509
00510
00511
00512 void ss_var_ref_by_qname::decl_time_set(const ptr< ss_declaration_time > & x)
00513 {
00514 ss_var_ref_by_qname::decl_time = x;
00515 }
00516
00517
00518
00519
00520
00521 ptr< as_name > ss_var_ref_by_qname::qualified_name_get() const
00522 {
00523 return qualified_name;
00524 }
00525
00526
00527
00528
00529
00530 void ss_var_ref_by_qname::qualified_name_set(const ptr< as_name > & x)
00531 {
00532 ss_var_ref_by_qname::qualified_name = x;
00533 }
00534
00535 void ss_var_ref_by_qname::accept_ss_expression_visitor( ptr< ss_expression_visitor > v )
00536 {
00537 return v->visit_ss_var_ref_by_qname( this );
00538 }
00539
00540
00541
00542
00543
00544 ptr< ss_var_ref_by_qname > ss_var_ref_by_qname::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00545 ptr< ss_type > a__ss_expression__type,
00546 ptr< ss_sp > a__ss_expression__psp,
00547 ptr< ss_sp > a__ss_expression__nsp,
00548 ptr< ss_decl_seq > a__ss_var_ref_by_qname__contained_in,
00549 ptr< ss_declaration_time > a__ss_var_ref_by_qname__decl_time,
00550 ptr< as_name > a__ss_var_ref_by_qname__qualified_name)
00551 {
00552 return ptr< ss_var_ref_by_qname > ( new ss_var_ref_by_qname(a__ss_base_with_location__location,
00553 a__ss_expression__type,
00554 a__ss_expression__psp,
00555 a__ss_expression__nsp,
00556 a__ss_var_ref_by_qname__contained_in,
00557 a__ss_var_ref_by_qname__decl_time,
00558 a__ss_var_ref_by_qname__qualified_name) );
00559 }
00560
00561
00562
00563
00564
00565 ss_var_ref_by_qname::ss_var_ref_by_qname (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00566 ptr< ss_type > a__ss_expression__type,
00567 ptr< ss_sp > a__ss_expression__psp,
00568 ptr< ss_sp > a__ss_expression__nsp,
00569 ptr< ss_decl_seq > a__ss_var_ref_by_qname__contained_in,
00570 ptr< ss_declaration_time > a__ss_var_ref_by_qname__decl_time,
00571 ptr< as_name > a__ss_var_ref_by_qname__qualified_name)
00572 : ss_var_ref_abstract(a__ss_base_with_location__location,
00573 a__ss_expression__type,
00574 a__ss_expression__psp,
00575 a__ss_expression__nsp), contained_in(checked(a__ss_var_ref_by_qname__contained_in)), decl_time(checked(a__ss_var_ref_by_qname__decl_time)), qualified_name(checked(a__ss_var_ref_by_qname__qualified_name))
00576 {}
00577
00578 ptr< object::reflection_list > ss_var_ref_by_qname::reflection_get() const
00579 {
00580 if (!reflection) {
00581 typedef class_reflection::field_metadata md;
00582 typedef class_reflection::field_metadata_list mdlist;
00583 ptr<mdlist> mdl = mdlist::create();
00584 mdl->push_back( md::create( "contained_in", "ss_decl_seq" ) );
00585 mdl->push_back( md::create( "decl_time", "ss_declaration_time" ) );
00586 mdl->push_back( md::create( "qualified_name", "as_name" ) );
00587 reflection = reflection_list::create( ss_var_ref_abstract::reflection_get() );
00588 reflection->push_back( class_reflection::create( "ss_var_ref_by_qname", mdl ) );
00589 }
00590 return reflection;
00591 }
00592
00593 ptr< object::field_list_list > ss_var_ref_by_qname::field_values_get() const
00594 {
00595 ptr < field_list_list > result = ss_var_ref_abstract::field_values_get();
00596 result->push_back( value_list::create() );
00597 result->back()->push_back( this->contained_in );
00598 result->push_back( value_list::create() );
00599 result->back()->push_back( this->decl_time );
00600 result->push_back( value_list::create() );
00601 result->back()->push_back( this->qualified_name );
00602 return result;
00603 }
00604
00605
00606
00607
00608
00609
00610 void ss_var_ref_by_qname::gc_mark()
00611 {
00612 ss_var_ref_abstract::gc_mark();
00613 }
00614
00615
00616
00617
00618
00619
00620
00621
00622
00623 ptr< ss_declaration > ss_var_ref::var_decl_get() const
00624 {
00625 return var_decl;
00626 }
00627
00628
00629
00630
00631
00632 void ss_var_ref::var_decl_set(const ptr< ss_declaration > & x)
00633 {
00634 ss_var_ref::var_decl = x;
00635 }
00636
00637 void ss_var_ref::accept_ss_expression_visitor( ptr< ss_expression_visitor > v )
00638 {
00639 return v->visit_ss_var_ref( this );
00640 }
00641
00642
00643
00644
00645
00646 ptr< ss_var_ref > ss_var_ref::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00647 ptr< ss_type > a__ss_expression__type,
00648 ptr< ss_sp > a__ss_expression__psp,
00649 ptr< ss_sp > a__ss_expression__nsp,
00650 ptr< ss_declaration > a__ss_var_ref__var_decl)
00651 {
00652 return ptr< ss_var_ref > ( new ss_var_ref(a__ss_base_with_location__location,
00653 a__ss_expression__type,
00654 a__ss_expression__psp,
00655 a__ss_expression__nsp,
00656 a__ss_var_ref__var_decl) );
00657 }
00658
00659
00660
00661
00662
00663 ss_var_ref::ss_var_ref (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00664 ptr< ss_type > a__ss_expression__type,
00665 ptr< ss_sp > a__ss_expression__psp,
00666 ptr< ss_sp > a__ss_expression__nsp,
00667 ptr< ss_declaration > a__ss_var_ref__var_decl)
00668 : ss_var_ref_abstract(a__ss_base_with_location__location,
00669 a__ss_expression__type,
00670 a__ss_expression__psp,
00671 a__ss_expression__nsp), var_decl(checked(a__ss_var_ref__var_decl))
00672 {}
00673
00674 ptr< object::reflection_list > ss_var_ref::reflection_get() const
00675 {
00676 if (!reflection) {
00677 typedef class_reflection::field_metadata md;
00678 typedef class_reflection::field_metadata_list mdlist;
00679 ptr<mdlist> mdl = mdlist::create();
00680 mdl->push_back( md::create( "var_decl", "ss_declaration" ) );
00681 reflection = reflection_list::create( ss_var_ref_abstract::reflection_get() );
00682 reflection->push_back( class_reflection::create( "ss_var_ref", mdl ) );
00683 }
00684 return reflection;
00685 }
00686
00687 ptr< object::field_list_list > ss_var_ref::field_values_get() const
00688 {
00689 ptr < field_list_list > result = ss_var_ref_abstract::field_values_get();
00690 result->push_back( value_list::create() );
00691 result->back()->push_back( this->var_decl );
00692 return result;
00693 }
00694
00695
00696
00697
00698
00699
00700 void ss_var_ref::gc_mark()
00701 {
00702 ss_var_ref_abstract::gc_mark();
00703 }
00704
00705
00706
00707
00708
00709
00710
00711
00712
00713 ptr< ss_type > ss_throw::type_get() const
00714 {
00715 return type;
00716 }
00717
00718
00719
00720
00721
00722 void ss_throw::type_set(const ptr< ss_type > & x)
00723 {
00724 ss_throw::type = x;
00725 }
00726
00727
00728
00729
00730
00731 ptr< ss_expression > ss_throw::value_get() const
00732 {
00733 return value;
00734 }
00735
00736
00737
00738
00739
00740 void ss_throw::value_set(const ptr< ss_expression > & x)
00741 {
00742 ss_throw::value = x;
00743 }
00744
00745 void ss_throw::accept_ss_expression_visitor( ptr< ss_expression_visitor > v )
00746 {
00747 return v->visit_ss_throw( this );
00748 }
00749
00750
00751
00752
00753
00754 ptr< ss_throw > ss_throw::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00755 ptr< ss_type > a__ss_expression__type,
00756 ptr< ss_sp > a__ss_expression__psp,
00757 ptr< ss_sp > a__ss_expression__nsp,
00758 ptr< ss_type > a__ss_throw__type,
00759 ptr< ss_expression > a__ss_throw__value)
00760 {
00761 return ptr< ss_throw > ( new ss_throw(a__ss_base_with_location__location,
00762 a__ss_expression__type,
00763 a__ss_expression__psp,
00764 a__ss_expression__nsp,
00765 a__ss_throw__type,
00766 a__ss_throw__value) );
00767 }
00768
00769
00770
00771
00772
00773 ss_throw::ss_throw (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00774 ptr< ss_type > a__ss_expression__type,
00775 ptr< ss_sp > a__ss_expression__psp,
00776 ptr< ss_sp > a__ss_expression__nsp,
00777 ptr< ss_type > a__ss_throw__type,
00778 ptr< ss_expression > a__ss_throw__value)
00779 : ss_expression(a__ss_base_with_location__location,
00780 a__ss_expression__type,
00781 a__ss_expression__psp,
00782 a__ss_expression__nsp), type(checked(a__ss_throw__type)), value(checked(a__ss_throw__value))
00783 {}
00784
00785 ptr< object::reflection_list > ss_throw::reflection_get() const
00786 {
00787 if (!reflection) {
00788 typedef class_reflection::field_metadata md;
00789 typedef class_reflection::field_metadata_list mdlist;
00790 ptr<mdlist> mdl = mdlist::create();
00791 mdl->push_back( md::create( "type", "ss_type" ) );
00792 mdl->push_back( md::create( "value", "ss_expression" ) );
00793 reflection = reflection_list::create( ss_expression::reflection_get() );
00794 reflection->push_back( class_reflection::create( "ss_throw", mdl ) );
00795 }
00796 return reflection;
00797 }
00798
00799 ptr< object::field_list_list > ss_throw::field_values_get() const
00800 {
00801 ptr < field_list_list > result = ss_expression::field_values_get();
00802 result->push_back( value_list::create() );
00803 result->back()->push_back( this->type );
00804 result->push_back( value_list::create() );
00805 result->back()->push_back( this->value );
00806 return result;
00807 }
00808
00809
00810
00811
00812
00813
00814 void ss_throw::gc_mark()
00815 {
00816 ss_expression::gc_mark();
00817 }
00818
00819
00820
00821
00822
00823
00824
00825
00826
00827 ptr< ss_expression > ss_member_ptr::object_get() const
00828 {
00829 return object;
00830 }
00831
00832
00833
00834
00835
00836 void ss_member_ptr::object_set(const ptr< ss_expression > & x)
00837 {
00838 ss_member_ptr::object = x;
00839 }
00840
00841
00842
00843
00844
00845 ptr< ss_expression > ss_member_ptr::member_ptr_get() const
00846 {
00847 return member_ptr;
00848 }
00849
00850
00851
00852
00853
00854 void ss_member_ptr::member_ptr_set(const ptr< ss_expression > & x)
00855 {
00856 ss_member_ptr::member_ptr = x;
00857 }
00858
00859 void ss_member_ptr::accept_ss_expression_visitor( ptr< ss_expression_visitor > v )
00860 {
00861 return v->visit_ss_member_ptr( this );
00862 }
00863
00864
00865
00866
00867
00868 ptr< ss_member_ptr > ss_member_ptr::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00869 ptr< ss_type > a__ss_expression__type,
00870 ptr< ss_sp > a__ss_expression__psp,
00871 ptr< ss_sp > a__ss_expression__nsp,
00872 ptr< ss_expression > a__ss_member_ptr__object,
00873 ptr< ss_expression > a__ss_member_ptr__member_ptr)
00874 {
00875 return ptr< ss_member_ptr > ( new ss_member_ptr(a__ss_base_with_location__location,
00876 a__ss_expression__type,
00877 a__ss_expression__psp,
00878 a__ss_expression__nsp,
00879 a__ss_member_ptr__object,
00880 a__ss_member_ptr__member_ptr) );
00881 }
00882
00883
00884
00885
00886
00887 ss_member_ptr::ss_member_ptr (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00888 ptr< ss_type > a__ss_expression__type,
00889 ptr< ss_sp > a__ss_expression__psp,
00890 ptr< ss_sp > a__ss_expression__nsp,
00891 ptr< ss_expression > a__ss_member_ptr__object,
00892 ptr< ss_expression > a__ss_member_ptr__member_ptr)
00893 : ss_expression(a__ss_base_with_location__location,
00894 a__ss_expression__type,
00895 a__ss_expression__psp,
00896 a__ss_expression__nsp), object(checked(a__ss_member_ptr__object)), member_ptr(checked(a__ss_member_ptr__member_ptr))
00897 {}
00898
00899 ptr< object::reflection_list > ss_member_ptr::reflection_get() const
00900 {
00901 if (!reflection) {
00902 typedef class_reflection::field_metadata md;
00903 typedef class_reflection::field_metadata_list mdlist;
00904 ptr<mdlist> mdl = mdlist::create();
00905 mdl->push_back( md::create( "object", "ss_expression" ) );
00906 mdl->push_back( md::create( "member_ptr", "ss_expression" ) );
00907 reflection = reflection_list::create( ss_expression::reflection_get() );
00908 reflection->push_back( class_reflection::create( "ss_member_ptr", mdl ) );
00909 }
00910 return reflection;
00911 }
00912
00913 ptr< object::field_list_list > ss_member_ptr::field_values_get() const
00914 {
00915 ptr < field_list_list > result = ss_expression::field_values_get();
00916 result->push_back( value_list::create() );
00917 result->back()->push_back( this->object );
00918 result->push_back( value_list::create() );
00919 result->back()->push_back( this->member_ptr );
00920 return result;
00921 }
00922
00923
00924
00925
00926
00927
00928 void ss_member_ptr::gc_mark()
00929 {
00930 ss_expression::gc_mark();
00931 }
00932
00933
00934
00935
00936
00937
00938
00939
00940
00941 ptr< ss_expression > ss_ptr_member_ptr::object_ptr_get() const
00942 {
00943 return object_ptr;
00944 }
00945
00946
00947
00948
00949
00950 void ss_ptr_member_ptr::object_ptr_set(const ptr< ss_expression > & x)
00951 {
00952 ss_ptr_member_ptr::object_ptr = x;
00953 }
00954
00955
00956
00957
00958
00959 ptr< ss_expression > ss_ptr_member_ptr::member_ptr_get() const
00960 {
00961 return member_ptr;
00962 }
00963
00964
00965
00966
00967
00968 void ss_ptr_member_ptr::member_ptr_set(const ptr< ss_expression > & x)
00969 {
00970 ss_ptr_member_ptr::member_ptr = x;
00971 }
00972
00973 void ss_ptr_member_ptr::accept_ss_expression_visitor( ptr< ss_expression_visitor > v )
00974 {
00975 return v->visit_ss_ptr_member_ptr( this );
00976 }
00977
00978
00979
00980
00981
00982 ptr< ss_ptr_member_ptr > ss_ptr_member_ptr::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
00983 ptr< ss_type > a__ss_expression__type,
00984 ptr< ss_sp > a__ss_expression__psp,
00985 ptr< ss_sp > a__ss_expression__nsp,
00986 ptr< ss_expression > a__ss_ptr_member_ptr__object_ptr,
00987 ptr< ss_expression > a__ss_ptr_member_ptr__member_ptr)
00988 {
00989 return ptr< ss_ptr_member_ptr > ( new ss_ptr_member_ptr(a__ss_base_with_location__location,
00990 a__ss_expression__type,
00991 a__ss_expression__psp,
00992 a__ss_expression__nsp,
00993 a__ss_ptr_member_ptr__object_ptr,
00994 a__ss_ptr_member_ptr__member_ptr) );
00995 }
00996
00997
00998
00999
01000
01001 ss_ptr_member_ptr::ss_ptr_member_ptr (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01002 ptr< ss_type > a__ss_expression__type,
01003 ptr< ss_sp > a__ss_expression__psp,
01004 ptr< ss_sp > a__ss_expression__nsp,
01005 ptr< ss_expression > a__ss_ptr_member_ptr__object_ptr,
01006 ptr< ss_expression > a__ss_ptr_member_ptr__member_ptr)
01007 : ss_expression(a__ss_base_with_location__location,
01008 a__ss_expression__type,
01009 a__ss_expression__psp,
01010 a__ss_expression__nsp), object_ptr(checked(a__ss_ptr_member_ptr__object_ptr)), member_ptr(checked(a__ss_ptr_member_ptr__member_ptr))
01011 {}
01012
01013 ptr< object::reflection_list > ss_ptr_member_ptr::reflection_get() const
01014 {
01015 if (!reflection) {
01016 typedef class_reflection::field_metadata md;
01017 typedef class_reflection::field_metadata_list mdlist;
01018 ptr<mdlist> mdl = mdlist::create();
01019 mdl->push_back( md::create( "object_ptr", "ss_expression" ) );
01020 mdl->push_back( md::create( "member_ptr", "ss_expression" ) );
01021 reflection = reflection_list::create( ss_expression::reflection_get() );
01022 reflection->push_back( class_reflection::create( "ss_ptr_member_ptr", mdl ) );
01023 }
01024 return reflection;
01025 }
01026
01027 ptr< object::field_list_list > ss_ptr_member_ptr::field_values_get() const
01028 {
01029 ptr < field_list_list > result = ss_expression::field_values_get();
01030 result->push_back( value_list::create() );
01031 result->back()->push_back( this->object_ptr );
01032 result->push_back( value_list::create() );
01033 result->back()->push_back( this->member_ptr );
01034 return result;
01035 }
01036
01037
01038
01039
01040
01041
01042 void ss_ptr_member_ptr::gc_mark()
01043 {
01044 ss_expression::gc_mark();
01045 }
01046
01047
01048
01049
01050
01051
01052
01053
01054
01055 ptr< ss_expression > ss_access::object_get() const
01056 {
01057 return object;
01058 }
01059
01060
01061
01062
01063
01064 void ss_access::object_set(const ptr< ss_expression > & x)
01065 {
01066 ss_access::object = x;
01067 }
01068
01069
01070
01071
01072
01073 ptr< ss_declaration > ss_access::member_get() const
01074 {
01075 return member;
01076 }
01077
01078
01079
01080
01081
01082 void ss_access::member_set(const ptr< ss_declaration > & x)
01083 {
01084 ss_access::member = x;
01085 }
01086
01087 void ss_access::accept_ss_expression_visitor( ptr< ss_expression_visitor > v )
01088 {
01089 return v->visit_ss_access( this );
01090 }
01091
01092
01093
01094
01095
01096 ptr< ss_access > ss_access::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01097 ptr< ss_type > a__ss_expression__type,
01098 ptr< ss_sp > a__ss_expression__psp,
01099 ptr< ss_sp > a__ss_expression__nsp,
01100 ptr< ss_expression > a__ss_access__object,
01101 ptr< ss_declaration > a__ss_access__member)
01102 {
01103 return ptr< ss_access > ( new ss_access(a__ss_base_with_location__location,
01104 a__ss_expression__type,
01105 a__ss_expression__psp,
01106 a__ss_expression__nsp,
01107 a__ss_access__object,
01108 a__ss_access__member) );
01109 }
01110
01111
01112
01113
01114
01115 ss_access::ss_access (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01116 ptr< ss_type > a__ss_expression__type,
01117 ptr< ss_sp > a__ss_expression__psp,
01118 ptr< ss_sp > a__ss_expression__nsp,
01119 ptr< ss_expression > a__ss_access__object,
01120 ptr< ss_declaration > a__ss_access__member)
01121 : ss_expression(a__ss_base_with_location__location,
01122 a__ss_expression__type,
01123 a__ss_expression__psp,
01124 a__ss_expression__nsp), object(checked(a__ss_access__object)), member(checked(a__ss_access__member))
01125 {}
01126
01127 ptr< object::reflection_list > ss_access::reflection_get() const
01128 {
01129 if (!reflection) {
01130 typedef class_reflection::field_metadata md;
01131 typedef class_reflection::field_metadata_list mdlist;
01132 ptr<mdlist> mdl = mdlist::create();
01133 mdl->push_back( md::create( "object", "ss_expression" ) );
01134 mdl->push_back( md::create( "member", "ss_declaration" ) );
01135 reflection = reflection_list::create( ss_expression::reflection_get() );
01136 reflection->push_back( class_reflection::create( "ss_access", mdl ) );
01137 }
01138 return reflection;
01139 }
01140
01141 ptr< object::field_list_list > ss_access::field_values_get() const
01142 {
01143 ptr < field_list_list > result = ss_expression::field_values_get();
01144 result->push_back( value_list::create() );
01145 result->back()->push_back( this->object );
01146 result->push_back( value_list::create() );
01147 result->back()->push_back( this->member );
01148 return result;
01149 }
01150
01151
01152
01153
01154
01155
01156 void ss_access::gc_mark()
01157 {
01158 ss_expression::gc_mark();
01159 }
01160
01161
01162
01163
01164
01165
01166
01167
01168
01169 ptr< ss_expression > ss_ptr_access::object_ptr_get() const
01170 {
01171 return object_ptr;
01172 }
01173
01174
01175
01176
01177
01178 void ss_ptr_access::object_ptr_set(const ptr< ss_expression > & x)
01179 {
01180 ss_ptr_access::object_ptr = x;
01181 }
01182
01183
01184
01185
01186
01187 ptr< ss_declaration > ss_ptr_access::member_get() const
01188 {
01189 return member;
01190 }
01191
01192
01193
01194
01195
01196 void ss_ptr_access::member_set(const ptr< ss_declaration > & x)
01197 {
01198 ss_ptr_access::member = x;
01199 }
01200
01201 void ss_ptr_access::accept_ss_expression_visitor( ptr< ss_expression_visitor > v )
01202 {
01203 return v->visit_ss_ptr_access( this );
01204 }
01205
01206
01207
01208
01209
01210 ptr< ss_ptr_access > ss_ptr_access::create(ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01211 ptr< ss_type > a__ss_expression__type,
01212 ptr< ss_sp > a__ss_expression__psp,
01213 ptr< ss_sp > a__ss_expression__nsp,
01214 ptr< ss_expression > a__ss_ptr_access__object_ptr,
01215 ptr< ss_declaration > a__ss_ptr_access__member)
01216 {
01217 return ptr< ss_ptr_access > ( new ss_ptr_access(a__ss_base_with_location__location,
01218 a__ss_expression__type,
01219 a__ss_expression__psp,
01220 a__ss_expression__nsp,
01221 a__ss_ptr_access__object_ptr,
01222 a__ss_ptr_access__member) );
01223 }
01224
01225
01226
01227
01228
01229 ss_ptr_access::ss_ptr_access (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01230 ptr< ss_type > a__ss_expression__type,
01231 ptr< ss_sp > a__ss_expression__psp,
01232 ptr< ss_sp > a__ss_expression__nsp,
01233 ptr< ss_expression > a__ss_ptr_access__object_ptr,
01234 ptr< ss_declaration > a__ss_ptr_access__member)
01235 : ss_expression(a__ss_base_with_location__location,
01236 a__ss_expression__type,
01237 a__ss_expression__psp,
01238 a__ss_expression__nsp), object_ptr(checked(a__ss_ptr_access__object_ptr)), member(checked(a__ss_ptr_access__member))
01239 {}
01240
01241 ptr< object::reflection_list > ss_ptr_access::reflection_get() const
01242 {
01243 if (!reflection) {
01244 typedef class_reflection::field_metadata md;
01245 typedef class_reflection::field_metadata_list mdlist;
01246 ptr<mdlist> mdl = mdlist::create();
01247 mdl->push_back( md::create( "object_ptr", "ss_expression" ) );
01248 mdl->push_back( md::create( "member", "ss_declaration" ) );
01249 reflection = reflection_list::create( ss_expression::reflection_get() );
01250 reflection->push_back( class_reflection::create( "ss_ptr_access", mdl ) );
01251 }
01252 return reflection;
01253 }
01254
01255 ptr< object::field_list_list > ss_ptr_access::field_values_get() const
01256 {
01257 ptr < field_list_list > result = ss_expression::field_values_get();
01258 result->push_back( value_list::create() );
01259 result->back()->push_back( this->object_ptr );
01260 result->push_back( value_list::create() );
01261 result->back()->push_back( this->member );
01262 return result;
01263 }
01264
01265
01266
01267
01268
01269
01270 void ss_ptr_access::gc_mark()
01271 {
01272 ss_expression::gc_mark();
01273 }
01274
01275
01276
01277
01278
01279
01280
01281
01282
01283 ptr< ss_expression > ss_binary_expr::left_get() const
01284 {
01285 return left;
01286 }
01287
01288
01289
01290
01291
01292 void ss_binary_expr::left_set(const ptr< ss_expression > & x)
01293 {
01294 ss_binary_expr::left = x;
01295 }
01296
01297
01298
01299
01300
01301 ptr< ss_expression > ss_binary_expr::right_get() const
01302 {
01303 return right;
01304 }
01305
01306
01307
01308
01309
01310 void ss_binary_expr::right_set(const ptr< ss_expression > & x)
01311 {
01312 ss_binary_expr::right = x;
01313 }
01314
01315
01316
01317
01318
01319 ss_binary_expr::ss_binary_expr (ptr< ::lestes::std::source_location > a__ss_base_with_location__location,
01320 ptr< ss_type > a__ss_expression__type,
01321 ptr< ss_sp > a__ss_expression__psp,
01322 ptr< ss_sp > a__ss_expression__nsp,
01323 ptr< ss_expression > a__ss_binary_expr__left,
01324 ptr< ss_expression > a__ss_binary_expr__right)
01325 : ss_expression(a__ss_base_with_location__location,
01326 a__ss_expression__type,
01327 a__ss_expression__psp,
01328 a__ss_expression__nsp), left(checked(a__ss_binary_expr__left)), right(checked(a__ss_binary_expr__right))
01329 {}
01330
01331 ptr< object::reflection_list > ss_binary_expr::reflection_get() const
01332 {
01333 if (!reflection) {
01334 typedef class_reflection::field_metadata md;
01335 typedef class_reflection::field_metadata_list mdlist;
01336 ptr<mdlist> mdl = mdlist::create();
01337 mdl->push_back( md::create( "left", "ss_expression" ) );
01338 mdl->push_back( md::create( "right", "ss_expression" ) );
01339 reflection = reflection_list::create( ss_expression::reflection_get() );
01340 reflection->push_back( class_reflection::create( "ss_binary_expr", mdl ) );
01341 }
01342 return reflection;
01343 }
01344
01345 ptr< object::field_list_list > ss_binary_expr::field_values_get() const
01346 {
01347 ptr < field_list_list > result = ss_expression::field_values_get();
01348 result->push_back( value_list::create() );
01349 result->back()->push_back( this->left );
01350 result->push_back( value_list::create() );
01351 result->back()->push_back( this->right );
01352 return result;
01353 }
01354
01355
01356
01357
01358
01359
01360 void ss_binary_expr::gc_mark()
01361 {
01362 ss_expression::gc_mark();
01363 }
01364
01365
01366
01367
01368
01369 ptr<object::reflection_list> ss_expression::reflection = reflection;
01370 ptr<object::reflection_list> ss_this_expr::reflection = reflection;
01371 ptr<object::reflection_list> ss_literal::reflection = reflection;
01372 ptr<object::reflection_list> ss_ternary::reflection = reflection;
01373 ptr<object::reflection_list> ss_var_ref_abstract::reflection = reflection;
01374 ptr<object::reflection_list> ss_var_ref_by_qname::reflection = reflection;
01375 ptr<object::reflection_list> ss_var_ref::reflection = reflection;
01376 ptr<object::reflection_list> ss_throw::reflection = reflection;
01377 ptr<object::reflection_list> ss_member_ptr::reflection = reflection;
01378 ptr<object::reflection_list> ss_ptr_member_ptr::reflection = reflection;
01379 ptr<object::reflection_list> ss_access::reflection = reflection;
01380 ptr<object::reflection_list> ss_ptr_access::reflection = reflection;
01381 ptr<object::reflection_list> ss_binary_expr::reflection = reflection;
01382
01383 end_package(sem);
01384 end_package(cplus);
01385 end_package(lang);
01386 end_package(lestes);
01387