00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef AEGIS_AER_EXPR_REL_H
00021 #define AEGIS_AER_EXPR_REL_H
00022
00023 #include <libaegis/aer/expr.h>
00024
00025
00030 class rpt_expr_lt:
00031 public rpt_expr
00032 {
00033 public:
00037 virtual ~rpt_expr_lt();
00038
00039 private:
00044 rpt_expr_lt(const rpt_expr::pointer &lhs,
00045 const rpt_expr::pointer &rhs);
00046
00047 public:
00052 static rpt_expr::pointer create(const rpt_expr::pointer &lhs,
00053 const rpt_expr::pointer &rhs);
00054
00055 protected:
00056
00057 rpt_value::pointer evaluate() const;
00058
00059 private:
00063 rpt_expr_lt();
00064
00068 rpt_expr_lt(const rpt_expr_lt &);
00069
00073 rpt_expr_lt &operator=(const rpt_expr_lt &);
00074 };
00075
00076
00081 class rpt_expr_gt:
00082 public rpt_expr
00083 {
00084 public:
00088 virtual ~rpt_expr_gt();
00089
00090 private:
00095 rpt_expr_gt(const rpt_expr::pointer &lhs,
00096 const rpt_expr::pointer &rhs);
00097
00098 public:
00103 static rpt_expr::pointer create(const rpt_expr::pointer &lhs,
00104 const rpt_expr::pointer &rhs);
00105
00106 protected:
00107
00108 rpt_value::pointer evaluate() const;
00109
00110 private:
00114 rpt_expr_gt();
00115
00119 rpt_expr_gt(const rpt_expr_gt &);
00120
00124 rpt_expr_gt &operator=(const rpt_expr_gt &);
00125 };
00126
00127
00132 class rpt_expr_le:
00133 public rpt_expr
00134 {
00135 public:
00139 virtual ~rpt_expr_le();
00140
00141 private:
00146 rpt_expr_le(const rpt_expr::pointer &lhs,
00147 const rpt_expr::pointer &rhs);
00148
00149 public:
00154 static rpt_expr::pointer create(const rpt_expr::pointer &lhs,
00155 const rpt_expr::pointer &rhs);
00156
00157 protected:
00158
00159 rpt_value::pointer evaluate() const;
00160
00161 private:
00165 rpt_expr_le();
00166
00170 rpt_expr_le(const rpt_expr_le &);
00171
00175 rpt_expr_le &operator=(const rpt_expr_le &);
00176 };
00177
00178
00183 class rpt_expr_ge:
00184 public rpt_expr
00185 {
00186 public:
00190 virtual ~rpt_expr_ge();
00191
00192 private:
00197 rpt_expr_ge(const rpt_expr::pointer &lhs,
00198 const rpt_expr::pointer &rhs);
00199
00200 public:
00205 static rpt_expr::pointer create(const rpt_expr::pointer &lhs,
00206 const rpt_expr::pointer &rhs);
00207
00208 protected:
00209
00210 rpt_value::pointer evaluate() const;
00211
00212 private:
00216 rpt_expr_ge();
00217
00221 rpt_expr_ge(const rpt_expr_ge &);
00222
00226 rpt_expr_ge &operator=(const rpt_expr_ge &);
00227 };
00228
00229
00234 class rpt_expr_eq:
00235 public rpt_expr
00236 {
00237 public:
00241 virtual ~rpt_expr_eq();
00242
00243 private:
00248 rpt_expr_eq(const rpt_expr::pointer &lhs,
00249 const rpt_expr::pointer &rhs);
00250
00251 public:
00256 static rpt_expr::pointer create(const rpt_expr::pointer &lhs,
00257 const rpt_expr::pointer &rhs);
00258
00259 protected:
00260
00261 rpt_value::pointer evaluate() const;
00262
00263 private:
00267 rpt_expr_eq();
00268
00272 rpt_expr_eq(const rpt_expr_eq &);
00273
00277 rpt_expr_eq &operator=(const rpt_expr_eq &);
00278 };
00279
00280
00285 class rpt_expr_ne:
00286 public rpt_expr
00287 {
00288 public:
00292 virtual ~rpt_expr_ne();
00293
00294 private:
00299 rpt_expr_ne(const rpt_expr::pointer &lhs,
00300 const rpt_expr::pointer &rhs);
00301
00302 public:
00307 static rpt_expr::pointer create(const rpt_expr::pointer &lhs,
00308 const rpt_expr::pointer &rhs);
00309
00310 protected:
00311
00312 rpt_value::pointer evaluate() const;
00313
00314 private:
00318 rpt_expr_ne();
00319
00323 rpt_expr_ne(const rpt_expr_ne &);
00324
00328 rpt_expr_ne &operator=(const rpt_expr_ne &);
00329 };
00330
00331
00336 class rpt_expr_match:
00337 public rpt_expr
00338 {
00339 public:
00343 virtual ~rpt_expr_match();
00344
00345 private:
00350 rpt_expr_match(const rpt_expr::pointer &lhs,
00351 const rpt_expr::pointer &rhs);
00352
00353 public:
00358 static rpt_expr::pointer create(const rpt_expr::pointer &lhs,
00359 const rpt_expr::pointer &rhs);
00360
00361 protected:
00362
00363 rpt_value::pointer evaluate() const;
00364
00365 private:
00369 rpt_expr_match();
00370
00374 rpt_expr_match(const rpt_expr_match &);
00375
00379 rpt_expr_match &operator=(const rpt_expr_match &);
00380 };
00381
00382
00387 class rpt_expr_nmatch:
00388 public rpt_expr
00389 {
00390 public:
00394 virtual ~rpt_expr_nmatch();
00395
00396 private:
00401 rpt_expr_nmatch(const rpt_expr::pointer &lhs,
00402 const rpt_expr::pointer &rhs);
00403
00404 public:
00409 static rpt_expr::pointer create(const rpt_expr::pointer &lhs,
00410 const rpt_expr::pointer &rhs);
00411
00412 protected:
00413
00414 rpt_value::pointer evaluate() const;
00415
00416 private:
00420 rpt_expr_nmatch();
00421
00425 rpt_expr_nmatch(const rpt_expr_nmatch &);
00426
00430 rpt_expr_nmatch &operator=(const rpt_expr_nmatch &);
00431 };
00432
00433 #endif // AEGIS_AER_EXPR_REL_H