00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef AEGIS_AER_EXPR_ASSIGN_H
00021 #define AEGIS_AER_EXPR_ASSIGN_H
00022
00023 #include <libaegis/aer/expr.h>
00024
00025
00030 class rpt_expr_assign:
00031 public rpt_expr
00032 {
00033 public:
00037 virtual ~rpt_expr_assign();
00038
00039 private:
00044 rpt_expr_assign(const rpt_expr::pointer &lhs, const rpt_expr::pointer &rhs);
00045
00046 public:
00051 static rpt_expr::pointer create(const rpt_expr::pointer &lhs,
00052 const rpt_expr::pointer &rhs);
00053
00054 protected:
00055
00056 rpt_value::pointer evaluate() const;
00057
00058 private:
00062 rpt_expr_assign();
00063
00067 rpt_expr_assign(const rpt_expr_assign &);
00068
00072 rpt_expr_assign &operator=(const rpt_expr_assign &);
00073 };
00074
00075
00080 class rpt_expr_assign_power:
00081 public rpt_expr
00082 {
00083 public:
00087 virtual ~rpt_expr_assign_power();
00088
00089 private:
00094 rpt_expr_assign_power(const rpt_expr::pointer &lhs,
00095 const rpt_expr::pointer &rhs);
00096
00097 public:
00102 static rpt_expr::pointer create(const rpt_expr::pointer &lhs,
00103 const rpt_expr::pointer &rhs);
00104
00105 protected:
00106
00107 rpt_value::pointer evaluate() const;
00108
00109 private:
00113 rpt_expr_assign_power();
00114
00118 rpt_expr_assign_power(const rpt_expr_assign_power &);
00119
00123 rpt_expr_assign_power &operator=(const rpt_expr_assign_power &);
00124 };
00125
00126
00131 class rpt_expr_assign_mul:
00132 public rpt_expr
00133 {
00134 public:
00138 virtual ~rpt_expr_assign_mul();
00139
00140 private:
00145 rpt_expr_assign_mul(const rpt_expr::pointer &lhs,
00146 const rpt_expr::pointer &rhs);
00147
00148 public:
00153 static rpt_expr::pointer create(const rpt_expr::pointer &lhs,
00154 const rpt_expr::pointer &rhs);
00155
00156 protected:
00157
00158 rpt_value::pointer evaluate() const;
00159
00160 private:
00164 rpt_expr_assign_mul();
00165
00169 rpt_expr_assign_mul(const rpt_expr_assign_mul &);
00170
00174 rpt_expr_assign_mul &operator=(const rpt_expr_assign_mul &);
00175 };
00176
00177
00182 class rpt_expr_assign_div:
00183 public rpt_expr
00184 {
00185 public:
00189 virtual ~rpt_expr_assign_div();
00190
00191 private:
00196 rpt_expr_assign_div(const rpt_expr::pointer &lhs,
00197 const rpt_expr::pointer &rhs);
00198
00199 public:
00204 static rpt_expr::pointer create(const rpt_expr::pointer &lhs,
00205 const rpt_expr::pointer &rhs);
00206
00207 protected:
00208
00209 rpt_value::pointer evaluate() const;
00210
00211 private:
00215 rpt_expr_assign_div();
00216
00220 rpt_expr_assign_div(const rpt_expr_assign_div &);
00221
00225 rpt_expr_assign_div &operator=(const rpt_expr_assign_div &);
00226 };
00227
00228
00233 class rpt_expr_assign_mod:
00234 public rpt_expr
00235 {
00236 public:
00240 virtual ~rpt_expr_assign_mod();
00241
00242 private:
00247 rpt_expr_assign_mod(const rpt_expr::pointer &lhs,
00248 const rpt_expr::pointer &rhs);
00249
00250 public:
00255 static rpt_expr::pointer create(const rpt_expr::pointer &lhs,
00256 const rpt_expr::pointer &rhs);
00257
00258 protected:
00259
00260 rpt_value::pointer evaluate() const;
00261
00262 private:
00266 rpt_expr_assign_mod();
00267
00271 rpt_expr_assign_mod(const rpt_expr_assign_mod &);
00272
00276 rpt_expr_assign_mod &operator=(const rpt_expr_assign_mod &);
00277 };
00278
00279
00284 class rpt_expr_assign_plus:
00285 public rpt_expr
00286 {
00287 public:
00291 virtual ~rpt_expr_assign_plus();
00292
00293 private:
00298 rpt_expr_assign_plus(const rpt_expr::pointer &lhs,
00299 const rpt_expr::pointer &rhs);
00300
00301 public:
00306 static rpt_expr::pointer create(const rpt_expr::pointer &lhs,
00307 const rpt_expr::pointer &rhs);
00308
00309 protected:
00310
00311 rpt_value::pointer evaluate() const;
00312
00313 private:
00317 rpt_expr_assign_plus();
00318
00322 rpt_expr_assign_plus(const rpt_expr_assign_plus &);
00323
00327 rpt_expr_assign_plus &operator=(const rpt_expr_assign_plus &);
00328 };
00329
00330
00335 class rpt_expr_assign_minus:
00336 public rpt_expr
00337 {
00338 public:
00342 virtual ~rpt_expr_assign_minus();
00343
00344 private:
00349 rpt_expr_assign_minus(const rpt_expr::pointer &lhs,
00350 const rpt_expr::pointer &rhs);
00351
00352 public:
00357 static rpt_expr::pointer create(const rpt_expr::pointer &lhs,
00358 const rpt_expr::pointer &rhs);
00359
00360 protected:
00361
00362 rpt_value::pointer evaluate() const;
00363
00364 private:
00368 rpt_expr_assign_minus();
00369
00373 rpt_expr_assign_minus(const rpt_expr_assign_minus &);
00374
00378 rpt_expr_assign_minus &operator=(const rpt_expr_assign_minus &);
00379 };
00380
00381
00386 class rpt_expr_assign_join:
00387 public rpt_expr
00388 {
00389 public:
00393 virtual ~rpt_expr_assign_join();
00394
00395 private:
00400 rpt_expr_assign_join(const rpt_expr::pointer &lhs,
00401 const rpt_expr::pointer &rhs);
00402
00403 public:
00408 static rpt_expr::pointer create(const rpt_expr::pointer &lhs,
00409 const rpt_expr::pointer &rhs);
00410
00411 protected:
00412
00413 rpt_value::pointer evaluate() const;
00414
00415 private:
00419 rpt_expr_assign_join();
00420
00424 rpt_expr_assign_join(const rpt_expr_assign_join &);
00425
00429 rpt_expr_assign_join &operator=(const rpt_expr_assign_join &);
00430 };
00431
00432
00437 class rpt_expr_assign_and_bit:
00438 public rpt_expr
00439 {
00440 public:
00444 virtual ~rpt_expr_assign_and_bit();
00445
00446 private:
00451 rpt_expr_assign_and_bit(const rpt_expr::pointer &lhs,
00452 const rpt_expr::pointer &rhs);
00453
00454 public:
00459 static rpt_expr::pointer create(const rpt_expr::pointer &lhs,
00460 const rpt_expr::pointer &rhs);
00461
00462 protected:
00463
00464 rpt_value::pointer evaluate() const;
00465
00466 private:
00470 rpt_expr_assign_and_bit();
00471
00475 rpt_expr_assign_and_bit(const rpt_expr_assign_and_bit &);
00476
00480 rpt_expr_assign_and_bit &operator=(const rpt_expr_assign_and_bit &);
00481 };
00482
00483
00488 class rpt_expr_assign_xor_bit:
00489 public rpt_expr
00490 {
00491 public:
00495 virtual ~rpt_expr_assign_xor_bit();
00496
00497 private:
00502 rpt_expr_assign_xor_bit(const rpt_expr::pointer &lhs,
00503 const rpt_expr::pointer &rhs);
00504
00505 public:
00510 static rpt_expr::pointer create(const rpt_expr::pointer &lhs,
00511 const rpt_expr::pointer &rhs);
00512
00513 protected:
00514
00515 rpt_value::pointer evaluate() const;
00516
00517 private:
00521 rpt_expr_assign_xor_bit();
00522
00526 rpt_expr_assign_xor_bit(const rpt_expr_assign_xor_bit &);
00527
00531 rpt_expr_assign_xor_bit &operator=(const rpt_expr_assign_xor_bit &);
00532 };
00533
00534
00539 class rpt_expr_assign_or_bit:
00540 public rpt_expr
00541 {
00542 public:
00546 virtual ~rpt_expr_assign_or_bit();
00547
00548 private:
00553 rpt_expr_assign_or_bit(const rpt_expr::pointer &lhs,
00554 const rpt_expr::pointer &rhs);
00555
00556 public:
00561 static rpt_expr::pointer create(const rpt_expr::pointer &lhs,
00562 const rpt_expr::pointer &rhs);
00563
00564 protected:
00565
00566 rpt_value::pointer evaluate() const;
00567
00568 private:
00572 rpt_expr_assign_or_bit();
00573
00577 rpt_expr_assign_or_bit(const rpt_expr_assign_or_bit &);
00578
00582 rpt_expr_assign_or_bit &operator=(const rpt_expr_assign_or_bit &);
00583 };
00584
00585
00590 class rpt_expr_assign_shift_left:
00591 public rpt_expr
00592 {
00593 public:
00597 virtual ~rpt_expr_assign_shift_left();
00598
00599 private:
00604 rpt_expr_assign_shift_left(const rpt_expr::pointer &lhs,
00605 const rpt_expr::pointer &rhs);
00606
00607 public:
00612 static rpt_expr::pointer create(const rpt_expr::pointer &lhs,
00613 const rpt_expr::pointer &rhs);
00614
00615 protected:
00616
00617 rpt_value::pointer evaluate() const;
00618
00619 private:
00623 rpt_expr_assign_shift_left();
00624
00628 rpt_expr_assign_shift_left(const rpt_expr_assign_shift_left &);
00629
00633 rpt_expr_assign_shift_left &operator=(const rpt_expr_assign_shift_left &);
00634 };
00635
00636
00641 class rpt_expr_assign_shift_right:
00642 public rpt_expr
00643 {
00644 public:
00648 virtual ~rpt_expr_assign_shift_right();
00649
00650 private:
00655 rpt_expr_assign_shift_right(const rpt_expr::pointer &lhs,
00656 const rpt_expr::pointer &rhs);
00657
00658 public:
00663 static rpt_expr::pointer create(const rpt_expr::pointer &lhs,
00664 const rpt_expr::pointer &rhs);
00665
00666 protected:
00667
00668 rpt_value::pointer evaluate() const;
00669
00670 private:
00674 rpt_expr_assign_shift_right();
00675
00679 rpt_expr_assign_shift_right(const rpt_expr_assign_shift_right &);
00680
00684 rpt_expr_assign_shift_right &operator=(const rpt_expr_assign_shift_right &);
00685 };
00686
00687 #endif // AEGIS_AER_EXPR_ASSIGN_H