|
Aegis
4.25.D505
|
00001 // 00002 // aegis - project change supervisor 00003 // Copyright (C) 1994, 2002, 2005-2008 Peter Miller. 00004 // 00005 // This program is free software; you can redistribute it and/or modify 00006 // it under the terms of the GNU General Public License as published by 00007 // the Free Software Foundation; either version 3 of the License, or 00008 // (at your option) any later version. 00009 // 00010 // This program is distributed in the hope that it will be useful, 00011 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00013 // GNU General Public License for more details. 00014 // 00015 // You should have received a copy of the GNU General Public License 00016 // along with this program. If not, see 00017 // <http://www.gnu.org/licenses/>. 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 // See base class for documentation. 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 // See base class for documentation. 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 // See base class for documentation. 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 // See base class for documentation. 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 // See base class for documentation. 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 // See base class for documentation. 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 // See base class for documentation. 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 // See base class for documentation. 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 // See base class for documentation. 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 // See base class for documentation. 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 // See base class for documentation. 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 // See base class for documentation. 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 // See base class for documentation. 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
1.7.6.1