Aegis  4.25.D505
libaegis/aer/expr/assign.h
Go to the documentation of this file.
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