00001
00002
00003 #ifndef lestes__lang__cplus__sem__as_expr_g_hh__included
00004 #define lestes__lang__cplus__sem__as_expr_g_hh__included
00005
00006 #include <lestes/common.hh>
00007 #include <lestes/std/list.hh>
00008 #include <lestes/intercode/intercode.g.hh>
00009
00010 #include <lestes/std/objectize_macros.hh>
00011 package(lestes);
00012 package(lang);
00013 package(cplus);
00014 package(lex);
00015 class cpp_token;
00016 end_package(lex);
00017 end_package(cplus);
00018 end_package(lang);
00019 end_package(lestes);
00020
00021 package(lestes);
00022 package(lang);
00023 package(cplus);
00024 package(sem);
00025
00026
00027 class as_type_id;
00028 class as_expr_visitor;
00029 class as_initializer;
00030 class as_name;
00031 class as_expression;
00032 class as_expr_visitor;
00033 class as_empty_expression;
00034 class as_binary_expression;
00035 class as_unary_expression;
00036 class as_ternary_expression;
00037 class as_expression_qmark;
00038 class as_expression_comma;
00039 class as_expression_equal;
00040 class as_expression_plus_equal;
00041 class as_expression_minus_equal;
00042 class as_expression_star_equal;
00043 class as_expression_slash_equal;
00044 class as_expression_percent_equal;
00045 class as_expression_hat_equal;
00046 class as_expression_amp_equal;
00047 class as_expression_vbar_equal;
00048 class as_expression_less_less_equal;
00049 class as_expression_greater_greater_equal;
00050 class as_expression_equal_equal;
00051 class as_expression_exclam_equal;
00052 class as_expression_less_equal;
00053 class as_expression_greater_equal;
00054 class as_expression_less;
00055 class as_expression_greater;
00056 class as_expression_vbar_vbar;
00057 class as_expression_amp_amp;
00058 class as_expression_vbar;
00059 class as_expression_amp;
00060 class as_expression_hat;
00061 class as_expression_less_less;
00062 class as_expression_greater_greater;
00063 class as_expression_plus;
00064 class as_expression_minus;
00065 class as_expression_star;
00066 class as_expression_slash;
00067 class as_expression_percent;
00068 class as_expression_dot_star;
00069 class as_expression_minus_greater_star;
00070 class as_expression_brackets;
00071 class as_expression_plus_plus_pre;
00072 class as_expression_plus_plus_post;
00073 class as_expression_minus_minus_pre;
00074 class as_expression_minus_minus_post;
00075 class as_expression_unary_amp;
00076 class as_expression_unary_plus;
00077 class as_expression_unary_minus;
00078 class as_expression_unary_star;
00079 class as_expression_tilde;
00080 class as_expression_exclam;
00081 class as_expression_sizeof_expr;
00082 class as_expression_typeid_expr;
00083 class as_expression_delete_base;
00084 class as_expression_delete;
00085 class as_expression_delete_array;
00086 class as_expression_throw;
00087 class as_expression_sizeof_type;
00088 class as_expression_typeid_type;
00089 class as_expression_new;
00090 class as_this_expression;
00091 class as_literal;
00092 class as_name_expression;
00093 class as_expression_cast_base;
00094 class as_expression_cast_base_one;
00095 class as_expression_cast_base_list;
00096 class as_expression_reinterpret_cast;
00097 class as_expression_dynamic_cast;
00098 class as_expression_static_cast;
00099 class as_expression_const_cast;
00100 class as_expression_old_style_cast;
00101 class as_expression_functional_style_cast;
00102 class as_postfix_expression;
00103 class as_expression_member_access;
00104 class as_expression_member_access_dot;
00105 class as_expression_member_access_arrow;
00106 class as_expression_pseudo_destruct_dot;
00107 class as_expression_pseudo_destruct_arrow;
00108 class as_expression_function_call;
00109 class as_constant_expression;
00110
00111
00112
00113 class as_expression : public ::lestes::intercode::as_base {
00114 public:
00115 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v ) abstract;
00116
00117
00118
00119 virtual ptr<reflection_list> reflection_get() const;
00120
00121 virtual ptr<field_list_list> field_values_get() const;
00122
00123 protected:
00124
00125 as_expression (
00126 ptr< ::lestes::std::source_location > a__as_base__location);
00127
00128
00129 virtual void gc_mark();
00130
00131 private:
00132 static ptr<reflection_list> reflection;
00133
00134 };
00135
00136
00137 class as_empty_expression : public as_expression {
00138 public:
00139 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
00140
00141
00142 static ptr< as_empty_expression > create (
00143 ptr< ::lestes::std::source_location > a__as_base__location);
00144
00145
00146
00147
00148 virtual ptr<reflection_list> reflection_get() const;
00149
00150 virtual ptr<field_list_list> field_values_get() const;
00151
00152 protected:
00153
00154 as_empty_expression (
00155 ptr< ::lestes::std::source_location > a__as_base__location);
00156
00157
00158 virtual void gc_mark();
00159
00160 private:
00161 static ptr<reflection_list> reflection;
00162
00163 };
00164
00165
00166
00167
00168
00169 class as_binary_expression : public as_expression {
00170 public:
00171
00172 ptr< as_expression > left_get() const;
00173
00174
00175 void left_set(const ptr< as_expression > &);
00176
00177
00178 ptr< as_expression > right_get() const;
00179
00180
00181 void right_set(const ptr< as_expression > &);
00182
00183 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v ) abstract;
00184
00185
00186
00187 virtual ptr<reflection_list> reflection_get() const;
00188
00189 virtual ptr<field_list_list> field_values_get() const;
00190
00191 protected:
00192
00193 as_binary_expression (
00194 ptr< ::lestes::std::source_location > a__as_base__location,
00195 ptr< as_expression > a__as_binary_expression__left,
00196 ptr< as_expression > a__as_binary_expression__right);
00197
00198
00199 virtual void gc_mark();
00200
00201 private:
00202
00203 srp< as_expression > left;
00204
00205 srp< as_expression > right;
00206 static ptr<reflection_list> reflection;
00207
00208 };
00209
00210
00211
00212
00213
00214 class as_unary_expression : public as_expression {
00215 public:
00216
00217 ptr< as_expression > expr_get() const;
00218
00219
00220 void expr_set(const ptr< as_expression > &);
00221
00222 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v ) abstract;
00223
00224
00225
00226 virtual ptr<reflection_list> reflection_get() const;
00227
00228 virtual ptr<field_list_list> field_values_get() const;
00229
00230 protected:
00231
00232 as_unary_expression (
00233 ptr< ::lestes::std::source_location > a__as_base__location,
00234 ptr< as_expression > a__as_unary_expression__expr);
00235
00236
00237 virtual void gc_mark();
00238
00239 private:
00240
00241 srp< as_expression > expr;
00242 static ptr<reflection_list> reflection;
00243
00244 };
00245
00246
00247
00248
00249
00250 class as_ternary_expression : public as_expression {
00251 public:
00252
00253 ptr< as_expression > first_get() const;
00254
00255
00256 void first_set(const ptr< as_expression > &);
00257
00258
00259 ptr< as_expression > second_get() const;
00260
00261
00262 void second_set(const ptr< as_expression > &);
00263
00264
00265 ptr< as_expression > third_get() const;
00266
00267
00268 void third_set(const ptr< as_expression > &);
00269
00270 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v ) abstract;
00271
00272
00273
00274 virtual ptr<reflection_list> reflection_get() const;
00275
00276 virtual ptr<field_list_list> field_values_get() const;
00277
00278 protected:
00279
00280 as_ternary_expression (
00281 ptr< ::lestes::std::source_location > a__as_base__location,
00282 ptr< as_expression > a__as_ternary_expression__first,
00283 ptr< as_expression > a__as_ternary_expression__second,
00284 ptr< as_expression > a__as_ternary_expression__third);
00285
00286
00287 virtual void gc_mark();
00288
00289 private:
00290
00291 srp< as_expression > first;
00292
00293 srp< as_expression > second;
00294
00295 srp< as_expression > third;
00296 static ptr<reflection_list> reflection;
00297
00298 };
00299
00300
00301
00302 class as_expression_qmark : public as_ternary_expression {
00303 public:
00304 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
00305
00306
00307 static ptr< as_expression_qmark > create (
00308 ptr< ::lestes::std::source_location > a__as_base__location,
00309 ptr< as_expression > a__as_ternary_expression__first,
00310 ptr< as_expression > a__as_ternary_expression__second,
00311 ptr< as_expression > a__as_ternary_expression__third);
00312
00313
00314
00315
00316 virtual ptr<reflection_list> reflection_get() const;
00317
00318 virtual ptr<field_list_list> field_values_get() const;
00319
00320 protected:
00321
00322 as_expression_qmark (
00323 ptr< ::lestes::std::source_location > a__as_base__location,
00324 ptr< as_expression > a__as_ternary_expression__first,
00325 ptr< as_expression > a__as_ternary_expression__second,
00326 ptr< as_expression > a__as_ternary_expression__third);
00327
00328
00329 virtual void gc_mark();
00330
00331 private:
00332 static ptr<reflection_list> reflection;
00333
00334 };
00335
00336
00337
00338 class as_expression_comma : public as_binary_expression {
00339 public:
00340 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
00341
00342
00343 static ptr< as_expression_comma > create (
00344 ptr< ::lestes::std::source_location > a__as_base__location,
00345 ptr< as_expression > a__as_binary_expression__left,
00346 ptr< as_expression > a__as_binary_expression__right);
00347
00348
00349
00350
00351 virtual ptr<reflection_list> reflection_get() const;
00352
00353 virtual ptr<field_list_list> field_values_get() const;
00354
00355 protected:
00356
00357 as_expression_comma (
00358 ptr< ::lestes::std::source_location > a__as_base__location,
00359 ptr< as_expression > a__as_binary_expression__left,
00360 ptr< as_expression > a__as_binary_expression__right);
00361
00362
00363 virtual void gc_mark();
00364
00365 private:
00366 static ptr<reflection_list> reflection;
00367
00368 };
00369
00370
00371
00372 class as_expression_equal : public as_binary_expression {
00373 public:
00374 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
00375
00376
00377 static ptr< as_expression_equal > create (
00378 ptr< ::lestes::std::source_location > a__as_base__location,
00379 ptr< as_expression > a__as_binary_expression__left,
00380 ptr< as_expression > a__as_binary_expression__right);
00381
00382
00383
00384
00385 virtual ptr<reflection_list> reflection_get() const;
00386
00387 virtual ptr<field_list_list> field_values_get() const;
00388
00389 protected:
00390
00391 as_expression_equal (
00392 ptr< ::lestes::std::source_location > a__as_base__location,
00393 ptr< as_expression > a__as_binary_expression__left,
00394 ptr< as_expression > a__as_binary_expression__right);
00395
00396
00397 virtual void gc_mark();
00398
00399 private:
00400 static ptr<reflection_list> reflection;
00401
00402 };
00403
00404
00405
00406 class as_expression_plus_equal : public as_binary_expression {
00407 public:
00408 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
00409
00410
00411 static ptr< as_expression_plus_equal > create (
00412 ptr< ::lestes::std::source_location > a__as_base__location,
00413 ptr< as_expression > a__as_binary_expression__left,
00414 ptr< as_expression > a__as_binary_expression__right);
00415
00416
00417
00418
00419 virtual ptr<reflection_list> reflection_get() const;
00420
00421 virtual ptr<field_list_list> field_values_get() const;
00422
00423 protected:
00424
00425 as_expression_plus_equal (
00426 ptr< ::lestes::std::source_location > a__as_base__location,
00427 ptr< as_expression > a__as_binary_expression__left,
00428 ptr< as_expression > a__as_binary_expression__right);
00429
00430
00431 virtual void gc_mark();
00432
00433 private:
00434 static ptr<reflection_list> reflection;
00435
00436 };
00437
00438
00439
00440 class as_expression_minus_equal : public as_binary_expression {
00441 public:
00442 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
00443
00444
00445 static ptr< as_expression_minus_equal > create (
00446 ptr< ::lestes::std::source_location > a__as_base__location,
00447 ptr< as_expression > a__as_binary_expression__left,
00448 ptr< as_expression > a__as_binary_expression__right);
00449
00450
00451
00452
00453 virtual ptr<reflection_list> reflection_get() const;
00454
00455 virtual ptr<field_list_list> field_values_get() const;
00456
00457 protected:
00458
00459 as_expression_minus_equal (
00460 ptr< ::lestes::std::source_location > a__as_base__location,
00461 ptr< as_expression > a__as_binary_expression__left,
00462 ptr< as_expression > a__as_binary_expression__right);
00463
00464
00465 virtual void gc_mark();
00466
00467 private:
00468 static ptr<reflection_list> reflection;
00469
00470 };
00471
00472
00473
00474 class as_expression_star_equal : public as_binary_expression {
00475 public:
00476 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
00477
00478
00479 static ptr< as_expression_star_equal > create (
00480 ptr< ::lestes::std::source_location > a__as_base__location,
00481 ptr< as_expression > a__as_binary_expression__left,
00482 ptr< as_expression > a__as_binary_expression__right);
00483
00484
00485
00486
00487 virtual ptr<reflection_list> reflection_get() const;
00488
00489 virtual ptr<field_list_list> field_values_get() const;
00490
00491 protected:
00492
00493 as_expression_star_equal (
00494 ptr< ::lestes::std::source_location > a__as_base__location,
00495 ptr< as_expression > a__as_binary_expression__left,
00496 ptr< as_expression > a__as_binary_expression__right);
00497
00498
00499 virtual void gc_mark();
00500
00501 private:
00502 static ptr<reflection_list> reflection;
00503
00504 };
00505
00506
00507
00508 class as_expression_slash_equal : public as_binary_expression {
00509 public:
00510 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
00511
00512
00513 static ptr< as_expression_slash_equal > create (
00514 ptr< ::lestes::std::source_location > a__as_base__location,
00515 ptr< as_expression > a__as_binary_expression__left,
00516 ptr< as_expression > a__as_binary_expression__right);
00517
00518
00519
00520
00521 virtual ptr<reflection_list> reflection_get() const;
00522
00523 virtual ptr<field_list_list> field_values_get() const;
00524
00525 protected:
00526
00527 as_expression_slash_equal (
00528 ptr< ::lestes::std::source_location > a__as_base__location,
00529 ptr< as_expression > a__as_binary_expression__left,
00530 ptr< as_expression > a__as_binary_expression__right);
00531
00532
00533 virtual void gc_mark();
00534
00535 private:
00536 static ptr<reflection_list> reflection;
00537
00538 };
00539
00540
00541
00542 class as_expression_percent_equal : public as_binary_expression {
00543 public:
00544 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
00545
00546
00547 static ptr< as_expression_percent_equal > create (
00548 ptr< ::lestes::std::source_location > a__as_base__location,
00549 ptr< as_expression > a__as_binary_expression__left,
00550 ptr< as_expression > a__as_binary_expression__right);
00551
00552
00553
00554
00555 virtual ptr<reflection_list> reflection_get() const;
00556
00557 virtual ptr<field_list_list> field_values_get() const;
00558
00559 protected:
00560
00561 as_expression_percent_equal (
00562 ptr< ::lestes::std::source_location > a__as_base__location,
00563 ptr< as_expression > a__as_binary_expression__left,
00564 ptr< as_expression > a__as_binary_expression__right);
00565
00566
00567 virtual void gc_mark();
00568
00569 private:
00570 static ptr<reflection_list> reflection;
00571
00572 };
00573
00574
00575
00576 class as_expression_hat_equal : public as_binary_expression {
00577 public:
00578 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
00579
00580
00581 static ptr< as_expression_hat_equal > create (
00582 ptr< ::lestes::std::source_location > a__as_base__location,
00583 ptr< as_expression > a__as_binary_expression__left,
00584 ptr< as_expression > a__as_binary_expression__right);
00585
00586
00587
00588
00589 virtual ptr<reflection_list> reflection_get() const;
00590
00591 virtual ptr<field_list_list> field_values_get() const;
00592
00593 protected:
00594
00595 as_expression_hat_equal (
00596 ptr< ::lestes::std::source_location > a__as_base__location,
00597 ptr< as_expression > a__as_binary_expression__left,
00598 ptr< as_expression > a__as_binary_expression__right);
00599
00600
00601 virtual void gc_mark();
00602
00603 private:
00604 static ptr<reflection_list> reflection;
00605
00606 };
00607
00608
00609
00610 class as_expression_amp_equal : public as_binary_expression {
00611 public:
00612 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
00613
00614
00615 static ptr< as_expression_amp_equal > create (
00616 ptr< ::lestes::std::source_location > a__as_base__location,
00617 ptr< as_expression > a__as_binary_expression__left,
00618 ptr< as_expression > a__as_binary_expression__right);
00619
00620
00621
00622
00623 virtual ptr<reflection_list> reflection_get() const;
00624
00625 virtual ptr<field_list_list> field_values_get() const;
00626
00627 protected:
00628
00629 as_expression_amp_equal (
00630 ptr< ::lestes::std::source_location > a__as_base__location,
00631 ptr< as_expression > a__as_binary_expression__left,
00632 ptr< as_expression > a__as_binary_expression__right);
00633
00634
00635 virtual void gc_mark();
00636
00637 private:
00638 static ptr<reflection_list> reflection;
00639
00640 };
00641
00642
00643
00644 class as_expression_vbar_equal : public as_binary_expression {
00645 public:
00646 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
00647
00648
00649 static ptr< as_expression_vbar_equal > create (
00650 ptr< ::lestes::std::source_location > a__as_base__location,
00651 ptr< as_expression > a__as_binary_expression__left,
00652 ptr< as_expression > a__as_binary_expression__right);
00653
00654
00655
00656
00657 virtual ptr<reflection_list> reflection_get() const;
00658
00659 virtual ptr<field_list_list> field_values_get() const;
00660
00661 protected:
00662
00663 as_expression_vbar_equal (
00664 ptr< ::lestes::std::source_location > a__as_base__location,
00665 ptr< as_expression > a__as_binary_expression__left,
00666 ptr< as_expression > a__as_binary_expression__right);
00667
00668
00669 virtual void gc_mark();
00670
00671 private:
00672 static ptr<reflection_list> reflection;
00673
00674 };
00675
00676
00677
00678 class as_expression_less_less_equal : public as_binary_expression {
00679 public:
00680 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
00681
00682
00683 static ptr< as_expression_less_less_equal > create (
00684 ptr< ::lestes::std::source_location > a__as_base__location,
00685 ptr< as_expression > a__as_binary_expression__left,
00686 ptr< as_expression > a__as_binary_expression__right);
00687
00688
00689
00690
00691 virtual ptr<reflection_list> reflection_get() const;
00692
00693 virtual ptr<field_list_list> field_values_get() const;
00694
00695 protected:
00696
00697 as_expression_less_less_equal (
00698 ptr< ::lestes::std::source_location > a__as_base__location,
00699 ptr< as_expression > a__as_binary_expression__left,
00700 ptr< as_expression > a__as_binary_expression__right);
00701
00702
00703 virtual void gc_mark();
00704
00705 private:
00706 static ptr<reflection_list> reflection;
00707
00708 };
00709
00710
00711
00712 class as_expression_greater_greater_equal : public as_binary_expression {
00713 public:
00714 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
00715
00716
00717 static ptr< as_expression_greater_greater_equal > create (
00718 ptr< ::lestes::std::source_location > a__as_base__location,
00719 ptr< as_expression > a__as_binary_expression__left,
00720 ptr< as_expression > a__as_binary_expression__right);
00721
00722
00723
00724
00725 virtual ptr<reflection_list> reflection_get() const;
00726
00727 virtual ptr<field_list_list> field_values_get() const;
00728
00729 protected:
00730
00731 as_expression_greater_greater_equal (
00732 ptr< ::lestes::std::source_location > a__as_base__location,
00733 ptr< as_expression > a__as_binary_expression__left,
00734 ptr< as_expression > a__as_binary_expression__right);
00735
00736
00737 virtual void gc_mark();
00738
00739 private:
00740 static ptr<reflection_list> reflection;
00741
00742 };
00743
00744
00745
00746 class as_expression_equal_equal : public as_binary_expression {
00747 public:
00748 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
00749
00750
00751 static ptr< as_expression_equal_equal > create (
00752 ptr< ::lestes::std::source_location > a__as_base__location,
00753 ptr< as_expression > a__as_binary_expression__left,
00754 ptr< as_expression > a__as_binary_expression__right);
00755
00756
00757
00758
00759 virtual ptr<reflection_list> reflection_get() const;
00760
00761 virtual ptr<field_list_list> field_values_get() const;
00762
00763 protected:
00764
00765 as_expression_equal_equal (
00766 ptr< ::lestes::std::source_location > a__as_base__location,
00767 ptr< as_expression > a__as_binary_expression__left,
00768 ptr< as_expression > a__as_binary_expression__right);
00769
00770
00771 virtual void gc_mark();
00772
00773 private:
00774 static ptr<reflection_list> reflection;
00775
00776 };
00777
00778
00779
00780 class as_expression_exclam_equal : public as_binary_expression {
00781 public:
00782 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
00783
00784
00785 static ptr< as_expression_exclam_equal > create (
00786 ptr< ::lestes::std::source_location > a__as_base__location,
00787 ptr< as_expression > a__as_binary_expression__left,
00788 ptr< as_expression > a__as_binary_expression__right);
00789
00790
00791
00792
00793 virtual ptr<reflection_list> reflection_get() const;
00794
00795 virtual ptr<field_list_list> field_values_get() const;
00796
00797 protected:
00798
00799 as_expression_exclam_equal (
00800 ptr< ::lestes::std::source_location > a__as_base__location,
00801 ptr< as_expression > a__as_binary_expression__left,
00802 ptr< as_expression > a__as_binary_expression__right);
00803
00804
00805 virtual void gc_mark();
00806
00807 private:
00808 static ptr<reflection_list> reflection;
00809
00810 };
00811
00812
00813
00814 class as_expression_less_equal : public as_binary_expression {
00815 public:
00816 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
00817
00818
00819 static ptr< as_expression_less_equal > create (
00820 ptr< ::lestes::std::source_location > a__as_base__location,
00821 ptr< as_expression > a__as_binary_expression__left,
00822 ptr< as_expression > a__as_binary_expression__right);
00823
00824
00825
00826
00827 virtual ptr<reflection_list> reflection_get() const;
00828
00829 virtual ptr<field_list_list> field_values_get() const;
00830
00831 protected:
00832
00833 as_expression_less_equal (
00834 ptr< ::lestes::std::source_location > a__as_base__location,
00835 ptr< as_expression > a__as_binary_expression__left,
00836 ptr< as_expression > a__as_binary_expression__right);
00837
00838
00839 virtual void gc_mark();
00840
00841 private:
00842 static ptr<reflection_list> reflection;
00843
00844 };
00845
00846
00847
00848 class as_expression_greater_equal : public as_binary_expression {
00849 public:
00850 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
00851
00852
00853 static ptr< as_expression_greater_equal > create (
00854 ptr< ::lestes::std::source_location > a__as_base__location,
00855 ptr< as_expression > a__as_binary_expression__left,
00856 ptr< as_expression > a__as_binary_expression__right);
00857
00858
00859
00860
00861 virtual ptr<reflection_list> reflection_get() const;
00862
00863 virtual ptr<field_list_list> field_values_get() const;
00864
00865 protected:
00866
00867 as_expression_greater_equal (
00868 ptr< ::lestes::std::source_location > a__as_base__location,
00869 ptr< as_expression > a__as_binary_expression__left,
00870 ptr< as_expression > a__as_binary_expression__right);
00871
00872
00873 virtual void gc_mark();
00874
00875 private:
00876 static ptr<reflection_list> reflection;
00877
00878 };
00879
00880
00881
00882 class as_expression_less : public as_binary_expression {
00883 public:
00884 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
00885
00886
00887 static ptr< as_expression_less > create (
00888 ptr< ::lestes::std::source_location > a__as_base__location,
00889 ptr< as_expression > a__as_binary_expression__left,
00890 ptr< as_expression > a__as_binary_expression__right);
00891
00892
00893
00894
00895 virtual ptr<reflection_list> reflection_get() const;
00896
00897 virtual ptr<field_list_list> field_values_get() const;
00898
00899 protected:
00900
00901 as_expression_less (
00902 ptr< ::lestes::std::source_location > a__as_base__location,
00903 ptr< as_expression > a__as_binary_expression__left,
00904 ptr< as_expression > a__as_binary_expression__right);
00905
00906
00907 virtual void gc_mark();
00908
00909 private:
00910 static ptr<reflection_list> reflection;
00911
00912 };
00913
00914
00915
00916 class as_expression_greater : public as_binary_expression {
00917 public:
00918 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
00919
00920
00921 static ptr< as_expression_greater > create (
00922 ptr< ::lestes::std::source_location > a__as_base__location,
00923 ptr< as_expression > a__as_binary_expression__left,
00924 ptr< as_expression > a__as_binary_expression__right);
00925
00926
00927
00928
00929 virtual ptr<reflection_list> reflection_get() const;
00930
00931 virtual ptr<field_list_list> field_values_get() const;
00932
00933 protected:
00934
00935 as_expression_greater (
00936 ptr< ::lestes::std::source_location > a__as_base__location,
00937 ptr< as_expression > a__as_binary_expression__left,
00938 ptr< as_expression > a__as_binary_expression__right);
00939
00940
00941 virtual void gc_mark();
00942
00943 private:
00944 static ptr<reflection_list> reflection;
00945
00946 };
00947
00948
00949
00950 class as_expression_vbar_vbar : public as_binary_expression {
00951 public:
00952 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
00953
00954
00955 static ptr< as_expression_vbar_vbar > create (
00956 ptr< ::lestes::std::source_location > a__as_base__location,
00957 ptr< as_expression > a__as_binary_expression__left,
00958 ptr< as_expression > a__as_binary_expression__right);
00959
00960
00961
00962
00963 virtual ptr<reflection_list> reflection_get() const;
00964
00965 virtual ptr<field_list_list> field_values_get() const;
00966
00967 protected:
00968
00969 as_expression_vbar_vbar (
00970 ptr< ::lestes::std::source_location > a__as_base__location,
00971 ptr< as_expression > a__as_binary_expression__left,
00972 ptr< as_expression > a__as_binary_expression__right);
00973
00974
00975 virtual void gc_mark();
00976
00977 private:
00978 static ptr<reflection_list> reflection;
00979
00980 };
00981
00982
00983
00984 class as_expression_amp_amp : public as_binary_expression {
00985 public:
00986 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
00987
00988
00989 static ptr< as_expression_amp_amp > create (
00990 ptr< ::lestes::std::source_location > a__as_base__location,
00991 ptr< as_expression > a__as_binary_expression__left,
00992 ptr< as_expression > a__as_binary_expression__right);
00993
00994
00995
00996
00997 virtual ptr<reflection_list> reflection_get() const;
00998
00999 virtual ptr<field_list_list> field_values_get() const;
01000
01001 protected:
01002
01003 as_expression_amp_amp (
01004 ptr< ::lestes::std::source_location > a__as_base__location,
01005 ptr< as_expression > a__as_binary_expression__left,
01006 ptr< as_expression > a__as_binary_expression__right);
01007
01008
01009 virtual void gc_mark();
01010
01011 private:
01012 static ptr<reflection_list> reflection;
01013
01014 };
01015
01016
01017
01018 class as_expression_vbar : public as_binary_expression {
01019 public:
01020 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
01021
01022
01023 static ptr< as_expression_vbar > create (
01024 ptr< ::lestes::std::source_location > a__as_base__location,
01025 ptr< as_expression > a__as_binary_expression__left,
01026 ptr< as_expression > a__as_binary_expression__right);
01027
01028
01029
01030
01031 virtual ptr<reflection_list> reflection_get() const;
01032
01033 virtual ptr<field_list_list> field_values_get() const;
01034
01035 protected:
01036
01037 as_expression_vbar (
01038 ptr< ::lestes::std::source_location > a__as_base__location,
01039 ptr< as_expression > a__as_binary_expression__left,
01040 ptr< as_expression > a__as_binary_expression__right);
01041
01042
01043 virtual void gc_mark();
01044
01045 private:
01046 static ptr<reflection_list> reflection;
01047
01048 };
01049
01050
01051
01052 class as_expression_amp : public as_binary_expression {
01053 public:
01054 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
01055
01056
01057 static ptr< as_expression_amp > create (
01058 ptr< ::lestes::std::source_location > a__as_base__location,
01059 ptr< as_expression > a__as_binary_expression__left,
01060 ptr< as_expression > a__as_binary_expression__right);
01061
01062
01063
01064
01065 virtual ptr<reflection_list> reflection_get() const;
01066
01067 virtual ptr<field_list_list> field_values_get() const;
01068
01069 protected:
01070
01071 as_expression_amp (
01072 ptr< ::lestes::std::source_location > a__as_base__location,
01073 ptr< as_expression > a__as_binary_expression__left,
01074 ptr< as_expression > a__as_binary_expression__right);
01075
01076
01077 virtual void gc_mark();
01078
01079 private:
01080 static ptr<reflection_list> reflection;
01081
01082 };
01083
01084
01085
01086 class as_expression_hat : public as_binary_expression {
01087 public:
01088 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
01089
01090
01091 static ptr< as_expression_hat > create (
01092 ptr< ::lestes::std::source_location > a__as_base__location,
01093 ptr< as_expression > a__as_binary_expression__left,
01094 ptr< as_expression > a__as_binary_expression__right);
01095
01096
01097
01098
01099 virtual ptr<reflection_list> reflection_get() const;
01100
01101 virtual ptr<field_list_list> field_values_get() const;
01102
01103 protected:
01104
01105 as_expression_hat (
01106 ptr< ::lestes::std::source_location > a__as_base__location,
01107 ptr< as_expression > a__as_binary_expression__left,
01108 ptr< as_expression > a__as_binary_expression__right);
01109
01110
01111 virtual void gc_mark();
01112
01113 private:
01114 static ptr<reflection_list> reflection;
01115
01116 };
01117
01118
01119
01120 class as_expression_less_less : public as_binary_expression {
01121 public:
01122 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
01123
01124
01125 static ptr< as_expression_less_less > create (
01126 ptr< ::lestes::std::source_location > a__as_base__location,
01127 ptr< as_expression > a__as_binary_expression__left,
01128 ptr< as_expression > a__as_binary_expression__right);
01129
01130
01131
01132
01133 virtual ptr<reflection_list> reflection_get() const;
01134
01135 virtual ptr<field_list_list> field_values_get() const;
01136
01137 protected:
01138
01139 as_expression_less_less (
01140 ptr< ::lestes::std::source_location > a__as_base__location,
01141 ptr< as_expression > a__as_binary_expression__left,
01142 ptr< as_expression > a__as_binary_expression__right);
01143
01144
01145 virtual void gc_mark();
01146
01147 private:
01148 static ptr<reflection_list> reflection;
01149
01150 };
01151
01152
01153
01154 class as_expression_greater_greater : public as_binary_expression {
01155 public:
01156 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
01157
01158
01159 static ptr< as_expression_greater_greater > create (
01160 ptr< ::lestes::std::source_location > a__as_base__location,
01161 ptr< as_expression > a__as_binary_expression__left,
01162 ptr< as_expression > a__as_binary_expression__right);
01163
01164
01165
01166
01167 virtual ptr<reflection_list> reflection_get() const;
01168
01169 virtual ptr<field_list_list> field_values_get() const;
01170
01171 protected:
01172
01173 as_expression_greater_greater (
01174 ptr< ::lestes::std::source_location > a__as_base__location,
01175 ptr< as_expression > a__as_binary_expression__left,
01176 ptr< as_expression > a__as_binary_expression__right);
01177
01178
01179 virtual void gc_mark();
01180
01181 private:
01182 static ptr<reflection_list> reflection;
01183
01184 };
01185
01186
01187
01188 class as_expression_plus : public as_binary_expression {
01189 public:
01190 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
01191
01192
01193 static ptr< as_expression_plus > create (
01194 ptr< ::lestes::std::source_location > a__as_base__location,
01195 ptr< as_expression > a__as_binary_expression__left,
01196 ptr< as_expression > a__as_binary_expression__right);
01197
01198
01199
01200
01201 virtual ptr<reflection_list> reflection_get() const;
01202
01203 virtual ptr<field_list_list> field_values_get() const;
01204
01205 protected:
01206
01207 as_expression_plus (
01208 ptr< ::lestes::std::source_location > a__as_base__location,
01209 ptr< as_expression > a__as_binary_expression__left,
01210 ptr< as_expression > a__as_binary_expression__right);
01211
01212
01213 virtual void gc_mark();
01214
01215 private:
01216 static ptr<reflection_list> reflection;
01217
01218 };
01219
01220
01221
01222 class as_expression_minus : public as_binary_expression {
01223 public:
01224 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
01225
01226
01227 static ptr< as_expression_minus > create (
01228 ptr< ::lestes::std::source_location > a__as_base__location,
01229 ptr< as_expression > a__as_binary_expression__left,
01230 ptr< as_expression > a__as_binary_expression__right);
01231
01232
01233
01234
01235 virtual ptr<reflection_list> reflection_get() const;
01236
01237 virtual ptr<field_list_list> field_values_get() const;
01238
01239 protected:
01240
01241 as_expression_minus (
01242 ptr< ::lestes::std::source_location > a__as_base__location,
01243 ptr< as_expression > a__as_binary_expression__left,
01244 ptr< as_expression > a__as_binary_expression__right);
01245
01246
01247 virtual void gc_mark();
01248
01249 private:
01250 static ptr<reflection_list> reflection;
01251
01252 };
01253
01254
01255
01256 class as_expression_star : public as_binary_expression {
01257 public:
01258 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
01259
01260
01261 static ptr< as_expression_star > create (
01262 ptr< ::lestes::std::source_location > a__as_base__location,
01263 ptr< as_expression > a__as_binary_expression__left,
01264 ptr< as_expression > a__as_binary_expression__right);
01265
01266
01267
01268
01269 virtual ptr<reflection_list> reflection_get() const;
01270
01271 virtual ptr<field_list_list> field_values_get() const;
01272
01273 protected:
01274
01275 as_expression_star (
01276 ptr< ::lestes::std::source_location > a__as_base__location,
01277 ptr< as_expression > a__as_binary_expression__left,
01278 ptr< as_expression > a__as_binary_expression__right);
01279
01280
01281 virtual void gc_mark();
01282
01283 private:
01284 static ptr<reflection_list> reflection;
01285
01286 };
01287
01288
01289
01290 class as_expression_slash : public as_binary_expression {
01291 public:
01292 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
01293
01294
01295 static ptr< as_expression_slash > create (
01296 ptr< ::lestes::std::source_location > a__as_base__location,
01297 ptr< as_expression > a__as_binary_expression__left,
01298 ptr< as_expression > a__as_binary_expression__right);
01299
01300
01301
01302
01303 virtual ptr<reflection_list> reflection_get() const;
01304
01305 virtual ptr<field_list_list> field_values_get() const;
01306
01307 protected:
01308
01309 as_expression_slash (
01310 ptr< ::lestes::std::source_location > a__as_base__location,
01311 ptr< as_expression > a__as_binary_expression__left,
01312 ptr< as_expression > a__as_binary_expression__right);
01313
01314
01315 virtual void gc_mark();
01316
01317 private:
01318 static ptr<reflection_list> reflection;
01319
01320 };
01321
01322
01323
01324 class as_expression_percent : public as_binary_expression {
01325 public:
01326 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
01327
01328
01329 static ptr< as_expression_percent > create (
01330 ptr< ::lestes::std::source_location > a__as_base__location,
01331 ptr< as_expression > a__as_binary_expression__left,
01332 ptr< as_expression > a__as_binary_expression__right);
01333
01334
01335
01336
01337 virtual ptr<reflection_list> reflection_get() const;
01338
01339 virtual ptr<field_list_list> field_values_get() const;
01340
01341 protected:
01342
01343 as_expression_percent (
01344 ptr< ::lestes::std::source_location > a__as_base__location,
01345 ptr< as_expression > a__as_binary_expression__left,
01346 ptr< as_expression > a__as_binary_expression__right);
01347
01348
01349 virtual void gc_mark();
01350
01351 private:
01352 static ptr<reflection_list> reflection;
01353
01354 };
01355
01356
01357
01358 class as_expression_dot_star : public as_binary_expression {
01359 public:
01360 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
01361
01362
01363 static ptr< as_expression_dot_star > create (
01364 ptr< ::lestes::std::source_location > a__as_base__location,
01365 ptr< as_expression > a__as_binary_expression__left,
01366 ptr< as_expression > a__as_binary_expression__right);
01367
01368
01369
01370
01371 virtual ptr<reflection_list> reflection_get() const;
01372
01373 virtual ptr<field_list_list> field_values_get() const;
01374
01375 protected:
01376
01377 as_expression_dot_star (
01378 ptr< ::lestes::std::source_location > a__as_base__location,
01379 ptr< as_expression > a__as_binary_expression__left,
01380 ptr< as_expression > a__as_binary_expression__right);
01381
01382
01383 virtual void gc_mark();
01384
01385 private:
01386 static ptr<reflection_list> reflection;
01387
01388 };
01389
01390
01391
01392 class as_expression_minus_greater_star : public as_binary_expression {
01393 public:
01394 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
01395
01396
01397 static ptr< as_expression_minus_greater_star > create (
01398 ptr< ::lestes::std::source_location > a__as_base__location,
01399 ptr< as_expression > a__as_binary_expression__left,
01400 ptr< as_expression > a__as_binary_expression__right);
01401
01402
01403
01404
01405 virtual ptr<reflection_list> reflection_get() const;
01406
01407 virtual ptr<field_list_list> field_values_get() const;
01408
01409 protected:
01410
01411 as_expression_minus_greater_star (
01412 ptr< ::lestes::std::source_location > a__as_base__location,
01413 ptr< as_expression > a__as_binary_expression__left,
01414 ptr< as_expression > a__as_binary_expression__right);
01415
01416
01417 virtual void gc_mark();
01418
01419 private:
01420 static ptr<reflection_list> reflection;
01421
01422 };
01423
01424
01425
01426 class as_expression_brackets : public as_binary_expression {
01427 public:
01428 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
01429
01430
01431 static ptr< as_expression_brackets > create (
01432 ptr< ::lestes::std::source_location > a__as_base__location,
01433 ptr< as_expression > a__as_binary_expression__left,
01434 ptr< as_expression > a__as_binary_expression__right);
01435
01436
01437
01438
01439 virtual ptr<reflection_list> reflection_get() const;
01440
01441 virtual ptr<field_list_list> field_values_get() const;
01442
01443 protected:
01444
01445 as_expression_brackets (
01446 ptr< ::lestes::std::source_location > a__as_base__location,
01447 ptr< as_expression > a__as_binary_expression__left,
01448 ptr< as_expression > a__as_binary_expression__right);
01449
01450
01451 virtual void gc_mark();
01452
01453 private:
01454 static ptr<reflection_list> reflection;
01455
01456 };
01457
01458
01459
01460 class as_expression_plus_plus_pre : public as_unary_expression {
01461 public:
01462 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
01463
01464
01465 static ptr< as_expression_plus_plus_pre > create (
01466 ptr< ::lestes::std::source_location > a__as_base__location,
01467 ptr< as_expression > a__as_unary_expression__expr);
01468
01469
01470
01471
01472 virtual ptr<reflection_list> reflection_get() const;
01473
01474 virtual ptr<field_list_list> field_values_get() const;
01475
01476 protected:
01477
01478 as_expression_plus_plus_pre (
01479 ptr< ::lestes::std::source_location > a__as_base__location,
01480 ptr< as_expression > a__as_unary_expression__expr);
01481
01482
01483 virtual void gc_mark();
01484
01485 private:
01486 static ptr<reflection_list> reflection;
01487
01488 };
01489
01490
01491
01492 class as_expression_plus_plus_post : public as_unary_expression {
01493 public:
01494 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
01495
01496
01497 static ptr< as_expression_plus_plus_post > create (
01498 ptr< ::lestes::std::source_location > a__as_base__location,
01499 ptr< as_expression > a__as_unary_expression__expr);
01500
01501
01502
01503
01504 virtual ptr<reflection_list> reflection_get() const;
01505
01506 virtual ptr<field_list_list> field_values_get() const;
01507
01508 protected:
01509
01510 as_expression_plus_plus_post (
01511 ptr< ::lestes::std::source_location > a__as_base__location,
01512 ptr< as_expression > a__as_unary_expression__expr);
01513
01514
01515 virtual void gc_mark();
01516
01517 private:
01518 static ptr<reflection_list> reflection;
01519
01520 };
01521
01522
01523
01524 class as_expression_minus_minus_pre : public as_unary_expression {
01525 public:
01526 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
01527
01528
01529 static ptr< as_expression_minus_minus_pre > create (
01530 ptr< ::lestes::std::source_location > a__as_base__location,
01531 ptr< as_expression > a__as_unary_expression__expr);
01532
01533
01534
01535
01536 virtual ptr<reflection_list> reflection_get() const;
01537
01538 virtual ptr<field_list_list> field_values_get() const;
01539
01540 protected:
01541
01542 as_expression_minus_minus_pre (
01543 ptr< ::lestes::std::source_location > a__as_base__location,
01544 ptr< as_expression > a__as_unary_expression__expr);
01545
01546
01547 virtual void gc_mark();
01548
01549 private:
01550 static ptr<reflection_list> reflection;
01551
01552 };
01553
01554
01555
01556 class as_expression_minus_minus_post : public as_unary_expression {
01557 public:
01558 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
01559
01560
01561 static ptr< as_expression_minus_minus_post > create (
01562 ptr< ::lestes::std::source_location > a__as_base__location,
01563 ptr< as_expression > a__as_unary_expression__expr);
01564
01565
01566
01567
01568 virtual ptr<reflection_list> reflection_get() const;
01569
01570 virtual ptr<field_list_list> field_values_get() const;
01571
01572 protected:
01573
01574 as_expression_minus_minus_post (
01575 ptr< ::lestes::std::source_location > a__as_base__location,
01576 ptr< as_expression > a__as_unary_expression__expr);
01577
01578
01579 virtual void gc_mark();
01580
01581 private:
01582 static ptr<reflection_list> reflection;
01583
01584 };
01585
01586
01587
01588 class as_expression_unary_amp : public as_unary_expression {
01589 public:
01590 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
01591
01592
01593 static ptr< as_expression_unary_amp > create (
01594 ptr< ::lestes::std::source_location > a__as_base__location,
01595 ptr< as_expression > a__as_unary_expression__expr);
01596
01597
01598
01599
01600 virtual ptr<reflection_list> reflection_get() const;
01601
01602 virtual ptr<field_list_list> field_values_get() const;
01603
01604 protected:
01605
01606 as_expression_unary_amp (
01607 ptr< ::lestes::std::source_location > a__as_base__location,
01608 ptr< as_expression > a__as_unary_expression__expr);
01609
01610
01611 virtual void gc_mark();
01612
01613 private:
01614 static ptr<reflection_list> reflection;
01615
01616 };
01617
01618
01619
01620 class as_expression_unary_plus : public as_unary_expression {
01621 public:
01622 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
01623
01624
01625 static ptr< as_expression_unary_plus > create (
01626 ptr< ::lestes::std::source_location > a__as_base__location,
01627 ptr< as_expression > a__as_unary_expression__expr);
01628
01629
01630
01631
01632 virtual ptr<reflection_list> reflection_get() const;
01633
01634 virtual ptr<field_list_list> field_values_get() const;
01635
01636 protected:
01637
01638 as_expression_unary_plus (
01639 ptr< ::lestes::std::source_location > a__as_base__location,
01640 ptr< as_expression > a__as_unary_expression__expr);
01641
01642
01643 virtual void gc_mark();
01644
01645 private:
01646 static ptr<reflection_list> reflection;
01647
01648 };
01649
01650
01651
01652 class as_expression_unary_minus : public as_unary_expression {
01653 public:
01654 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
01655
01656
01657 static ptr< as_expression_unary_minus > create (
01658 ptr< ::lestes::std::source_location > a__as_base__location,
01659 ptr< as_expression > a__as_unary_expression__expr);
01660
01661
01662
01663
01664 virtual ptr<reflection_list> reflection_get() const;
01665
01666 virtual ptr<field_list_list> field_values_get() const;
01667
01668 protected:
01669
01670 as_expression_unary_minus (
01671 ptr< ::lestes::std::source_location > a__as_base__location,
01672 ptr< as_expression > a__as_unary_expression__expr);
01673
01674
01675 virtual void gc_mark();
01676
01677 private:
01678 static ptr<reflection_list> reflection;
01679
01680 };
01681
01682
01683
01684 class as_expression_unary_star : public as_unary_expression {
01685 public:
01686 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
01687
01688
01689 static ptr< as_expression_unary_star > create (
01690 ptr< ::lestes::std::source_location > a__as_base__location,
01691 ptr< as_expression > a__as_unary_expression__expr);
01692
01693
01694
01695
01696 virtual ptr<reflection_list> reflection_get() const;
01697
01698 virtual ptr<field_list_list> field_values_get() const;
01699
01700 protected:
01701
01702 as_expression_unary_star (
01703 ptr< ::lestes::std::source_location > a__as_base__location,
01704 ptr< as_expression > a__as_unary_expression__expr);
01705
01706
01707 virtual void gc_mark();
01708
01709 private:
01710 static ptr<reflection_list> reflection;
01711
01712 };
01713
01714
01715
01716 class as_expression_tilde : public as_unary_expression {
01717 public:
01718 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
01719
01720
01721 static ptr< as_expression_tilde > create (
01722 ptr< ::lestes::std::source_location > a__as_base__location,
01723 ptr< as_expression > a__as_unary_expression__expr);
01724
01725
01726
01727
01728 virtual ptr<reflection_list> reflection_get() const;
01729
01730 virtual ptr<field_list_list> field_values_get() const;
01731
01732 protected:
01733
01734 as_expression_tilde (
01735 ptr< ::lestes::std::source_location > a__as_base__location,
01736 ptr< as_expression > a__as_unary_expression__expr);
01737
01738
01739 virtual void gc_mark();
01740
01741 private:
01742 static ptr<reflection_list> reflection;
01743
01744 };
01745
01746
01747
01748 class as_expression_exclam : public as_unary_expression {
01749 public:
01750 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
01751
01752
01753 static ptr< as_expression_exclam > create (
01754 ptr< ::lestes::std::source_location > a__as_base__location,
01755 ptr< as_expression > a__as_unary_expression__expr);
01756
01757
01758
01759
01760 virtual ptr<reflection_list> reflection_get() const;
01761
01762 virtual ptr<field_list_list> field_values_get() const;
01763
01764 protected:
01765
01766 as_expression_exclam (
01767 ptr< ::lestes::std::source_location > a__as_base__location,
01768 ptr< as_expression > a__as_unary_expression__expr);
01769
01770
01771 virtual void gc_mark();
01772
01773 private:
01774 static ptr<reflection_list> reflection;
01775
01776 };
01777
01778
01779
01780 class as_expression_sizeof_expr : public as_unary_expression {
01781 public:
01782 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
01783
01784
01785 static ptr< as_expression_sizeof_expr > create (
01786 ptr< ::lestes::std::source_location > a__as_base__location,
01787 ptr< as_expression > a__as_unary_expression__expr);
01788
01789
01790
01791
01792 virtual ptr<reflection_list> reflection_get() const;
01793
01794 virtual ptr<field_list_list> field_values_get() const;
01795
01796 protected:
01797
01798 as_expression_sizeof_expr (
01799 ptr< ::lestes::std::source_location > a__as_base__location,
01800 ptr< as_expression > a__as_unary_expression__expr);
01801
01802
01803 virtual void gc_mark();
01804
01805 private:
01806 static ptr<reflection_list> reflection;
01807
01808 };
01809
01810
01811 class as_expression_typeid_expr : public as_unary_expression {
01812 public:
01813 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
01814
01815
01816 static ptr< as_expression_typeid_expr > create (
01817 ptr< ::lestes::std::source_location > a__as_base__location,
01818 ptr< as_expression > a__as_unary_expression__expr);
01819
01820
01821
01822
01823 virtual ptr<reflection_list> reflection_get() const;
01824
01825 virtual ptr<field_list_list> field_values_get() const;
01826
01827 protected:
01828
01829 as_expression_typeid_expr (
01830 ptr< ::lestes::std::source_location > a__as_base__location,
01831 ptr< as_expression > a__as_unary_expression__expr);
01832
01833
01834 virtual void gc_mark();
01835
01836 private:
01837 static ptr<reflection_list> reflection;
01838
01839 };
01840
01841
01842
01843 class as_expression_delete_base : public as_unary_expression {
01844 public:
01845
01846 ptr< as_name > context_get() const;
01847
01848
01849 void context_set(const ptr< as_name > &);
01850
01851 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
01852
01853
01854 static ptr< as_expression_delete_base > create (
01855 ptr< ::lestes::std::source_location > a__as_base__location,
01856 ptr< as_expression > a__as_unary_expression__expr,
01857 ptr< as_name > a__as_expression_delete_base__context);
01858
01859
01860
01861
01862 virtual ptr<reflection_list> reflection_get() const;
01863
01864 virtual ptr<field_list_list> field_values_get() const;
01865
01866 protected:
01867
01868 as_expression_delete_base (
01869 ptr< ::lestes::std::source_location > a__as_base__location,
01870 ptr< as_expression > a__as_unary_expression__expr,
01871 ptr< as_name > a__as_expression_delete_base__context);
01872
01873
01874 virtual void gc_mark();
01875
01876 private:
01877
01878
01879
01880 srp< as_name > context;
01881 static ptr<reflection_list> reflection;
01882
01883 };
01884
01885
01886
01887 class as_expression_delete : public as_expression_delete_base {
01888 public:
01889 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
01890
01891
01892 static ptr< as_expression_delete > create (
01893 ptr< ::lestes::std::source_location > a__as_base__location,
01894 ptr< as_expression > a__as_unary_expression__expr,
01895 ptr< as_name > a__as_expression_delete_base__context);
01896
01897
01898
01899
01900 virtual ptr<reflection_list> reflection_get() const;
01901
01902 virtual ptr<field_list_list> field_values_get() const;
01903
01904 protected:
01905
01906 as_expression_delete (
01907 ptr< ::lestes::std::source_location > a__as_base__location,
01908 ptr< as_expression > a__as_unary_expression__expr,
01909 ptr< as_name > a__as_expression_delete_base__context);
01910
01911
01912 virtual void gc_mark();
01913
01914 private:
01915 static ptr<reflection_list> reflection;
01916
01917 };
01918
01919
01920
01921 class as_expression_delete_array : public as_expression_delete_base {
01922 public:
01923 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
01924
01925
01926 static ptr< as_expression_delete_array > create (
01927 ptr< ::lestes::std::source_location > a__as_base__location,
01928 ptr< as_expression > a__as_unary_expression__expr,
01929 ptr< as_name > a__as_expression_delete_base__context);
01930
01931
01932
01933
01934 virtual ptr<reflection_list> reflection_get() const;
01935
01936 virtual ptr<field_list_list> field_values_get() const;
01937
01938 protected:
01939
01940 as_expression_delete_array (
01941 ptr< ::lestes::std::source_location > a__as_base__location,
01942 ptr< as_expression > a__as_unary_expression__expr,
01943 ptr< as_name > a__as_expression_delete_base__context);
01944
01945
01946 virtual void gc_mark();
01947
01948 private:
01949 static ptr<reflection_list> reflection;
01950
01951 };
01952
01953
01954
01955 class as_expression_throw : public as_unary_expression {
01956 public:
01957 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
01958
01959
01960 static ptr< as_expression_throw > create (
01961 ptr< ::lestes::std::source_location > a__as_base__location,
01962 ptr< as_expression > a__as_unary_expression__expr);
01963
01964
01965
01966
01967 virtual ptr<reflection_list> reflection_get() const;
01968
01969 virtual ptr<field_list_list> field_values_get() const;
01970
01971 protected:
01972
01973 as_expression_throw (
01974 ptr< ::lestes::std::source_location > a__as_base__location,
01975 ptr< as_expression > a__as_unary_expression__expr);
01976
01977
01978 virtual void gc_mark();
01979
01980 private:
01981 static ptr<reflection_list> reflection;
01982
01983 };
01984
01985
01986
01987 class as_expression_sizeof_type : public as_expression {
01988 public:
01989
01990 ptr< as_type_id > type_id_get() const;
01991
01992
01993 void type_id_set(const ptr< as_type_id > &);
01994
01995 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
01996
01997
01998 static ptr< as_expression_sizeof_type > create (
01999 ptr< ::lestes::std::source_location > a__as_base__location,
02000 ptr< as_type_id > a__as_expression_sizeof_type__type_id);
02001
02002
02003
02004
02005 virtual ptr<reflection_list> reflection_get() const;
02006
02007 virtual ptr<field_list_list> field_values_get() const;
02008
02009 protected:
02010
02011 as_expression_sizeof_type (
02012 ptr< ::lestes::std::source_location > a__as_base__location,
02013 ptr< as_type_id > a__as_expression_sizeof_type__type_id);
02014
02015
02016 virtual void gc_mark();
02017
02018 private:
02019
02020 srp< as_type_id > type_id;
02021 static ptr<reflection_list> reflection;
02022
02023 };
02024
02025
02026 class as_expression_typeid_type : public as_expression {
02027 public:
02028
02029 ptr< as_type_id > type_id_get() const;
02030
02031
02032 void type_id_set(const ptr< as_type_id > &);
02033
02034 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
02035
02036
02037 static ptr< as_expression_typeid_type > create (
02038 ptr< ::lestes::std::source_location > a__as_base__location,
02039 ptr< as_type_id > a__as_expression_typeid_type__type_id);
02040
02041
02042
02043
02044 virtual ptr<reflection_list> reflection_get() const;
02045
02046 virtual ptr<field_list_list> field_values_get() const;
02047
02048 protected:
02049
02050 as_expression_typeid_type (
02051 ptr< ::lestes::std::source_location > a__as_base__location,
02052 ptr< as_type_id > a__as_expression_typeid_type__type_id);
02053
02054
02055 virtual void gc_mark();
02056
02057 private:
02058 srp< as_type_id > type_id;
02059 static ptr<reflection_list> reflection;
02060
02061 };
02062
02063
02064
02065 class as_expression_new : public as_expression {
02066 public:
02067
02068 ptr< as_name > context_get() const;
02069
02070
02071 void context_set(const ptr< as_name > &);
02072
02073
02074 ptr< ::lestes::std::list< srp< as_expression > > > new_placement_get() const;
02075
02076
02077 void new_placement_set(const ptr< ::lestes::std::list< srp< as_expression > > > & );
02078
02079
02080 ptr< as_type_id > type_id_get() const;
02081
02082
02083 void type_id_set(const ptr< as_type_id > &);
02084
02085
02086 ptr< as_initializer > initializer_get() const;
02087
02088
02089 void initializer_set(const ptr< as_initializer > &);
02090
02091 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
02092
02093
02094 static ptr< as_expression_new > create (
02095 ptr< ::lestes::std::source_location > a__as_base__location,
02096 ptr< as_name > a__as_expression_new__context,
02097 ptr< ::lestes::std::list< srp< as_expression > > > a__as_expression_new__new_placement,
02098 ptr< as_type_id > a__as_expression_new__type_id,
02099 ptr< as_initializer > a__as_expression_new__initializer);
02100
02101
02102
02103
02104 virtual ptr<reflection_list> reflection_get() const;
02105
02106 virtual ptr<field_list_list> field_values_get() const;
02107
02108 protected:
02109
02110 as_expression_new (
02111 ptr< ::lestes::std::source_location > a__as_base__location,
02112 ptr< as_name > a__as_expression_new__context,
02113 ptr< ::lestes::std::list< srp< as_expression > > > a__as_expression_new__new_placement,
02114 ptr< as_type_id > a__as_expression_new__type_id,
02115 ptr< as_initializer > a__as_expression_new__initializer);
02116
02117
02118 virtual void gc_mark();
02119
02120 private:
02121
02122
02123
02124 srp< as_name > context;
02125
02126 srp< ::lestes::std::list< srp< as_expression > > > new_placement;
02127
02128 srp< as_type_id > type_id;
02129
02130 srp< as_initializer > initializer;
02131 static ptr<reflection_list> reflection;
02132
02133 };
02134
02135
02136
02137 class as_this_expression : public as_expression {
02138 public:
02139 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
02140
02141
02142 static ptr< as_this_expression > create (
02143 ptr< ::lestes::std::source_location > a__as_base__location);
02144
02145
02146
02147
02148 virtual ptr<reflection_list> reflection_get() const;
02149
02150 virtual ptr<field_list_list> field_values_get() const;
02151
02152 protected:
02153
02154 as_this_expression (
02155 ptr< ::lestes::std::source_location > a__as_base__location);
02156
02157
02158 virtual void gc_mark();
02159
02160 private:
02161 static ptr<reflection_list> reflection;
02162
02163 };
02164
02165
02166
02167 class as_literal : public as_expression {
02168 public:
02169 enum literal_kind {
02170 UNKNOWN,
02171 CHARACTER,
02172 WIDE_CHARACTER,
02173 STRING,
02174 WIDE_STRING,
02175 OCTAL,
02176 HEXADECIMAL,
02177 DECIMAL,
02178 FLOATING,
02179 HEXADECIMAL_FLOATING
02180 };
02181
02182
02183 literal_kind kind_get() const;
02184
02185
02186 void kind_set(literal_kind);
02187
02188
02189 ptr< ::lestes::lang::cplus::lex::cpp_token > value_get() const;
02190
02191
02192 void value_set(const ptr< ::lestes::lang::cplus::lex::cpp_token > &);
02193
02194 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
02195
02196
02197 static ptr< as_literal > create (
02198 ptr< ::lestes::std::source_location > a__as_base__location,
02199 literal_kind a__as_literal__kind,
02200 ptr< ::lestes::lang::cplus::lex::cpp_token > a__as_literal__value);
02201
02202
02203
02204
02205 virtual ptr<reflection_list> reflection_get() const;
02206
02207 virtual ptr<field_list_list> field_values_get() const;
02208
02209 protected:
02210
02211 as_literal (
02212 ptr< ::lestes::std::source_location > a__as_base__location,
02213 literal_kind a__as_literal__kind,
02214 ptr< ::lestes::lang::cplus::lex::cpp_token > a__as_literal__value);
02215
02216
02217 virtual void gc_mark();
02218
02219 private:
02220
02221 literal_kind kind;
02222
02223 srp< ::lestes::lang::cplus::lex::cpp_token > value;
02224 static ptr<reflection_list> reflection;
02225
02226 };
02227
02228
02229
02230 class as_name_expression : public as_expression {
02231 public:
02232
02233 ptr< as_name > name_get() const;
02234
02235
02236 void name_set(const ptr< as_name > &);
02237
02238 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
02239
02240
02241 static ptr< as_name_expression > create (
02242 ptr< ::lestes::std::source_location > a__as_base__location,
02243 ptr< as_name > a__as_name_expression__name);
02244
02245
02246
02247
02248 virtual ptr<reflection_list> reflection_get() const;
02249
02250 virtual ptr<field_list_list> field_values_get() const;
02251
02252 protected:
02253
02254 as_name_expression (
02255 ptr< ::lestes::std::source_location > a__as_base__location,
02256 ptr< as_name > a__as_name_expression__name);
02257
02258
02259 virtual void gc_mark();
02260
02261 private:
02262 srp< as_name > name;
02263 static ptr<reflection_list> reflection;
02264
02265 };
02266
02267
02268
02269 class as_expression_cast_base : public as_expression {
02270 public:
02271
02272 ptr< as_type_id > type_id_get() const;
02273
02274
02275 void type_id_set(const ptr< as_type_id > &);
02276
02277 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v ) abstract;
02278
02279
02280
02281 virtual ptr<reflection_list> reflection_get() const;
02282
02283 virtual ptr<field_list_list> field_values_get() const;
02284
02285 protected:
02286
02287 as_expression_cast_base (
02288 ptr< ::lestes::std::source_location > a__as_base__location,
02289 ptr< as_type_id > a__as_expression_cast_base__type_id);
02290
02291
02292 virtual void gc_mark();
02293
02294 private:
02295
02296 srp< as_type_id > type_id;
02297 static ptr<reflection_list> reflection;
02298
02299 };
02300
02301
02302 class as_expression_cast_base_one : public as_expression_cast_base {
02303 public:
02304
02305 ptr< as_expression > expr_get() const;
02306
02307
02308 void expr_set(const ptr< as_expression > &);
02309
02310 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v ) abstract;
02311
02312
02313
02314 virtual ptr<reflection_list> reflection_get() const;
02315
02316 virtual ptr<field_list_list> field_values_get() const;
02317
02318 protected:
02319
02320 as_expression_cast_base_one (
02321 ptr< ::lestes::std::source_location > a__as_base__location,
02322 ptr< as_type_id > a__as_expression_cast_base__type_id,
02323 ptr< as_expression > a__as_expression_cast_base_one__expr);
02324
02325
02326 virtual void gc_mark();
02327
02328 private:
02329
02330 srp< as_expression > expr;
02331 static ptr<reflection_list> reflection;
02332
02333 };
02334
02335
02336 class as_expression_cast_base_list : public as_expression_cast_base {
02337 public:
02338
02339 ptr< ::lestes::std::list< srp< as_expression > > > expressions_get() const;
02340
02341
02342 void expressions_set(const ptr< ::lestes::std::list< srp< as_expression > > > & );
02343
02344 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v ) abstract;
02345
02346
02347
02348 virtual ptr<reflection_list> reflection_get() const;
02349
02350 virtual ptr<field_list_list> field_values_get() const;
02351
02352 protected:
02353
02354 as_expression_cast_base_list (
02355 ptr< ::lestes::std::source_location > a__as_base__location,
02356 ptr< as_type_id > a__as_expression_cast_base__type_id,
02357 ptr< ::lestes::std::list< srp< as_expression > > > a__as_expression_cast_base_list__expressions);
02358
02359
02360 virtual void gc_mark();
02361
02362 private:
02363 srp< ::lestes::std::list< srp< as_expression > > > expressions;
02364 static ptr<reflection_list> reflection;
02365
02366 };
02367
02368
02369
02370 class as_expression_reinterpret_cast : public as_expression_cast_base_one {
02371 public:
02372 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
02373
02374
02375 static ptr< as_expression_reinterpret_cast > create (
02376 ptr< ::lestes::std::source_location > a__as_base__location,
02377 ptr< as_type_id > a__as_expression_cast_base__type_id,
02378 ptr< as_expression > a__as_expression_cast_base_one__expr);
02379
02380
02381
02382
02383 virtual ptr<reflection_list> reflection_get() const;
02384
02385 virtual ptr<field_list_list> field_values_get() const;
02386
02387 protected:
02388
02389 as_expression_reinterpret_cast (
02390 ptr< ::lestes::std::source_location > a__as_base__location,
02391 ptr< as_type_id > a__as_expression_cast_base__type_id,
02392 ptr< as_expression > a__as_expression_cast_base_one__expr);
02393
02394
02395 virtual void gc_mark();
02396
02397 private:
02398 static ptr<reflection_list> reflection;
02399
02400 };
02401
02402
02403
02404 class as_expression_dynamic_cast : public as_expression_cast_base_one {
02405 public:
02406 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
02407
02408
02409 static ptr< as_expression_dynamic_cast > create (
02410 ptr< ::lestes::std::source_location > a__as_base__location,
02411 ptr< as_type_id > a__as_expression_cast_base__type_id,
02412 ptr< as_expression > a__as_expression_cast_base_one__expr);
02413
02414
02415
02416
02417 virtual ptr<reflection_list> reflection_get() const;
02418
02419 virtual ptr<field_list_list> field_values_get() const;
02420
02421 protected:
02422
02423 as_expression_dynamic_cast (
02424 ptr< ::lestes::std::source_location > a__as_base__location,
02425 ptr< as_type_id > a__as_expression_cast_base__type_id,
02426 ptr< as_expression > a__as_expression_cast_base_one__expr);
02427
02428
02429 virtual void gc_mark();
02430
02431 private:
02432 static ptr<reflection_list> reflection;
02433
02434 };
02435
02436
02437
02438 class as_expression_static_cast : public as_expression_cast_base_one {
02439 public:
02440 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
02441
02442
02443 static ptr< as_expression_static_cast > create (
02444 ptr< ::lestes::std::source_location > a__as_base__location,
02445 ptr< as_type_id > a__as_expression_cast_base__type_id,
02446 ptr< as_expression > a__as_expression_cast_base_one__expr);
02447
02448
02449
02450
02451 virtual ptr<reflection_list> reflection_get() const;
02452
02453 virtual ptr<field_list_list> field_values_get() const;
02454
02455 protected:
02456
02457 as_expression_static_cast (
02458 ptr< ::lestes::std::source_location > a__as_base__location,
02459 ptr< as_type_id > a__as_expression_cast_base__type_id,
02460 ptr< as_expression > a__as_expression_cast_base_one__expr);
02461
02462
02463 virtual void gc_mark();
02464
02465 private:
02466 static ptr<reflection_list> reflection;
02467
02468 };
02469
02470
02471
02472 class as_expression_const_cast : public as_expression_cast_base_one {
02473 public:
02474 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
02475
02476
02477 static ptr< as_expression_const_cast > create (
02478 ptr< ::lestes::std::source_location > a__as_base__location,
02479 ptr< as_type_id > a__as_expression_cast_base__type_id,
02480 ptr< as_expression > a__as_expression_cast_base_one__expr);
02481
02482
02483
02484
02485 virtual ptr<reflection_list> reflection_get() const;
02486
02487 virtual ptr<field_list_list> field_values_get() const;
02488
02489 protected:
02490
02491 as_expression_const_cast (
02492 ptr< ::lestes::std::source_location > a__as_base__location,
02493 ptr< as_type_id > a__as_expression_cast_base__type_id,
02494 ptr< as_expression > a__as_expression_cast_base_one__expr);
02495
02496
02497 virtual void gc_mark();
02498
02499 private:
02500 static ptr<reflection_list> reflection;
02501
02502 };
02503
02504
02505
02506 class as_expression_old_style_cast : public as_expression_cast_base_one {
02507 public:
02508 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
02509
02510
02511 static ptr< as_expression_old_style_cast > create (
02512 ptr< ::lestes::std::source_location > a__as_base__location,
02513 ptr< as_type_id > a__as_expression_cast_base__type_id,
02514 ptr< as_expression > a__as_expression_cast_base_one__expr);
02515
02516
02517
02518
02519 virtual ptr<reflection_list> reflection_get() const;
02520
02521 virtual ptr<field_list_list> field_values_get() const;
02522
02523 protected:
02524
02525 as_expression_old_style_cast (
02526 ptr< ::lestes::std::source_location > a__as_base__location,
02527 ptr< as_type_id > a__as_expression_cast_base__type_id,
02528 ptr< as_expression > a__as_expression_cast_base_one__expr);
02529
02530
02531 virtual void gc_mark();
02532
02533 private:
02534 static ptr<reflection_list> reflection;
02535
02536 };
02537
02538
02539 class as_expression_functional_style_cast : public as_expression_cast_base_list {
02540 public:
02541 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
02542
02543
02544 static ptr< as_expression_functional_style_cast > create (
02545 ptr< ::lestes::std::source_location > a__as_base__location,
02546 ptr< as_type_id > a__as_expression_cast_base__type_id,
02547 ptr< ::lestes::std::list< srp< as_expression > > > a__as_expression_cast_base_list__expressions);
02548
02549
02550
02551
02552 virtual ptr<reflection_list> reflection_get() const;
02553
02554 virtual ptr<field_list_list> field_values_get() const;
02555
02556 protected:
02557
02558 as_expression_functional_style_cast (
02559 ptr< ::lestes::std::source_location > a__as_base__location,
02560 ptr< as_type_id > a__as_expression_cast_base__type_id,
02561 ptr< ::lestes::std::list< srp< as_expression > > > a__as_expression_cast_base_list__expressions);
02562
02563
02564 virtual void gc_mark();
02565
02566 private:
02567 static ptr<reflection_list> reflection;
02568
02569 };
02570
02571
02572 class as_postfix_expression : public as_expression {
02573 public:
02574 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v ) abstract;
02575
02576
02577
02578 virtual ptr<reflection_list> reflection_get() const;
02579
02580 virtual ptr<field_list_list> field_values_get() const;
02581
02582 protected:
02583
02584 as_postfix_expression (
02585 ptr< ::lestes::std::source_location > a__as_base__location);
02586
02587
02588 virtual void gc_mark();
02589
02590 private:
02591 static ptr<reflection_list> reflection;
02592
02593 };
02594
02595
02596 class as_expression_member_access : public as_postfix_expression {
02597 public:
02598
02599 ptr< as_expression > prefix_get() const;
02600
02601
02602 void prefix_set(const ptr< as_expression > &);
02603
02604
02605 ptr< as_name > postfix_get() const;
02606
02607
02608 void postfix_set(const ptr< as_name > &);
02609
02610 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v ) abstract;
02611
02612
02613
02614 virtual ptr<reflection_list> reflection_get() const;
02615
02616 virtual ptr<field_list_list> field_values_get() const;
02617
02618 protected:
02619
02620 as_expression_member_access (
02621 ptr< ::lestes::std::source_location > a__as_base__location,
02622 ptr< as_expression > a__as_expression_member_access__prefix,
02623 ptr< as_name > a__as_expression_member_access__postfix);
02624
02625
02626 virtual void gc_mark();
02627
02628 private:
02629 srp< as_expression > prefix;
02630 srp< as_name > postfix;
02631 static ptr<reflection_list> reflection;
02632
02633 };
02634
02635
02636 class as_expression_member_access_dot : public as_expression_member_access {
02637 public:
02638 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
02639
02640
02641 static ptr< as_expression_member_access_dot > create (
02642 ptr< ::lestes::std::source_location > a__as_base__location,
02643 ptr< as_expression > a__as_expression_member_access__prefix,
02644 ptr< as_name > a__as_expression_member_access__postfix);
02645
02646
02647
02648
02649 virtual ptr<reflection_list> reflection_get() const;
02650
02651 virtual ptr<field_list_list> field_values_get() const;
02652
02653 protected:
02654
02655 as_expression_member_access_dot (
02656 ptr< ::lestes::std::source_location > a__as_base__location,
02657 ptr< as_expression > a__as_expression_member_access__prefix,
02658 ptr< as_name > a__as_expression_member_access__postfix);
02659
02660
02661 virtual void gc_mark();
02662
02663 private:
02664 static ptr<reflection_list> reflection;
02665
02666 };
02667
02668
02669 class as_expression_member_access_arrow : public as_expression_member_access {
02670 public:
02671 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
02672
02673
02674 static ptr< as_expression_member_access_arrow > create (
02675 ptr< ::lestes::std::source_location > a__as_base__location,
02676 ptr< as_expression > a__as_expression_member_access__prefix,
02677 ptr< as_name > a__as_expression_member_access__postfix);
02678
02679
02680
02681
02682 virtual ptr<reflection_list> reflection_get() const;
02683
02684 virtual ptr<field_list_list> field_values_get() const;
02685
02686 protected:
02687
02688 as_expression_member_access_arrow (
02689 ptr< ::lestes::std::source_location > a__as_base__location,
02690 ptr< as_expression > a__as_expression_member_access__prefix,
02691 ptr< as_name > a__as_expression_member_access__postfix);
02692
02693
02694 virtual void gc_mark();
02695
02696 private:
02697 static ptr<reflection_list> reflection;
02698
02699 };
02700
02701
02702 class as_expression_pseudo_destruct_dot : public as_expression_member_access {
02703 public:
02704 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
02705
02706
02707 static ptr< as_expression_pseudo_destruct_dot > create (
02708 ptr< ::lestes::std::source_location > a__as_base__location,
02709 ptr< as_expression > a__as_expression_member_access__prefix,
02710 ptr< as_name > a__as_expression_member_access__postfix);
02711
02712
02713
02714
02715 virtual ptr<reflection_list> reflection_get() const;
02716
02717 virtual ptr<field_list_list> field_values_get() const;
02718
02719 protected:
02720
02721 as_expression_pseudo_destruct_dot (
02722 ptr< ::lestes::std::source_location > a__as_base__location,
02723 ptr< as_expression > a__as_expression_member_access__prefix,
02724 ptr< as_name > a__as_expression_member_access__postfix);
02725
02726
02727 virtual void gc_mark();
02728
02729 private:
02730 static ptr<reflection_list> reflection;
02731
02732 };
02733
02734
02735 class as_expression_pseudo_destruct_arrow : public as_expression_member_access {
02736 public:
02737 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
02738
02739
02740 static ptr< as_expression_pseudo_destruct_arrow > create (
02741 ptr< ::lestes::std::source_location > a__as_base__location,
02742 ptr< as_expression > a__as_expression_member_access__prefix,
02743 ptr< as_name > a__as_expression_member_access__postfix);
02744
02745
02746
02747
02748 virtual ptr<reflection_list> reflection_get() const;
02749
02750 virtual ptr<field_list_list> field_values_get() const;
02751
02752 protected:
02753
02754 as_expression_pseudo_destruct_arrow (
02755 ptr< ::lestes::std::source_location > a__as_base__location,
02756 ptr< as_expression > a__as_expression_member_access__prefix,
02757 ptr< as_name > a__as_expression_member_access__postfix);
02758
02759
02760 virtual void gc_mark();
02761
02762 private:
02763 static ptr<reflection_list> reflection;
02764
02765 };
02766
02767
02768 class as_expression_function_call : public as_expression {
02769 public:
02770
02771 ptr< as_expression > prefix_get() const;
02772
02773
02774 void prefix_set(const ptr< as_expression > &);
02775
02776
02777 ptr< ::lestes::std::list< srp< as_expression > > > arguments_get() const;
02778
02779
02780 void arguments_set(const ptr< ::lestes::std::list< srp< as_expression > > > & );
02781
02782 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
02783
02784
02785 static ptr< as_expression_function_call > create (
02786 ptr< ::lestes::std::source_location > a__as_base__location,
02787 ptr< as_expression > a__as_expression_function_call__prefix,
02788 ptr< ::lestes::std::list< srp< as_expression > > > a__as_expression_function_call__arguments);
02789
02790
02791
02792
02793 virtual ptr<reflection_list> reflection_get() const;
02794
02795 virtual ptr<field_list_list> field_values_get() const;
02796
02797 protected:
02798
02799 as_expression_function_call (
02800 ptr< ::lestes::std::source_location > a__as_base__location,
02801 ptr< as_expression > a__as_expression_function_call__prefix,
02802 ptr< ::lestes::std::list< srp< as_expression > > > a__as_expression_function_call__arguments);
02803
02804
02805 virtual void gc_mark();
02806
02807 private:
02808 srp< as_expression > prefix;
02809 srp< ::lestes::std::list< srp< as_expression > > > arguments;
02810 static ptr<reflection_list> reflection;
02811
02812 };
02813
02814
02815 class as_constant_expression : public as_unary_expression {
02816 public:
02817 virtual void accept_as_expr_visitor( ptr< as_expr_visitor > v );
02818
02819
02820 static ptr< as_constant_expression > create (
02821 ptr< ::lestes::std::source_location > a__as_base__location,
02822 ptr< as_expression > a__as_unary_expression__expr);
02823
02824
02825
02826
02827 virtual ptr<reflection_list> reflection_get() const;
02828
02829 virtual ptr<field_list_list> field_values_get() const;
02830
02831 protected:
02832
02833 as_constant_expression (
02834 ptr< ::lestes::std::source_location > a__as_base__location,
02835 ptr< as_expression > a__as_unary_expression__expr);
02836
02837
02838 virtual void gc_mark();
02839
02840 private:
02841 static ptr<reflection_list> reflection;
02842
02843 };
02844
02845
02846 end_package(sem);
02847 end_package(cplus);
02848 end_package(lang);
02849 end_package(lestes);
02850
02851 package(lestes);
02852 package(std);
02853 specialize_objectize_for_enum( ::lestes::lang::cplus::sem::as_literal::literal_kind );
02854 end_package(std);
02855 end_package(lestes);
02856
02857 #endif // lestes__lang__cplus__sem__as_expr_g_hh__included