ra4_stats  0341147a0dc35f80f4e12c6003afb76a38e2ed6e
cut.cpp
Go to the documentation of this file.
1 #include "cut.hpp"
2 
3 #include "utilities.hpp"
4 
5 using namespace std;
6 
7 Cut::Cut(const string &cut):
8  cut_(cut){
9  Clean();
10 }
11 
12 Cut::Cut(const char *cut):
13  cut_(cut){
14  Clean();
15 }
16 
17 Cut & Cut::Replace(const Cut &orig, const Cut &rep){
18  ReplaceAll(cut_, orig.cut_, rep.cut_);
19  return *this;
20 }
21 
22 string Cut::GetCut(){
23  return cut_;
24 }
25 
26 void Cut::SetCut(string &cut){
27  cut_ = cut;
28  Clean();
29 }
30 
31 Cut & Cut::RmCutOn(const Cut &to_rm, const Cut &rep){
32  ::RmCutOn(cut_, to_rm.cut_, rep.cut_);
33  return *this;
34 }
35 
36 Cut & Cut::operator &= (const Cut &cut){
37  cut_ = "("+cut_+")&&("+cut.cut_+")";
38  Clean();
39  return *this;
40 }
41 
42 Cut & Cut::operator |= (const Cut &cut){
43  cut_ = "("+cut_+")||("+cut.cut_+")";
44  Clean();
45  return *this;
46 }
47 
48 Cut & Cut::operator += (const Cut &cut){
49  cut_ = "("+cut_+")+("+cut.cut_+")";
50  Clean();
51  return *this;
52 }
53 
54 Cut & Cut::operator -= (const Cut &cut){
55  cut_ = "("+cut_+")-("+cut.cut_+")";
56  Clean();
57  return *this;
58 }
59 
60 Cut & Cut::operator *= (const Cut &cut){
61  cut_ = "("+cut_+")*("+cut.cut_+")";
62  Clean();
63  return *this;
64 }
65 
66 Cut & Cut::operator /= (const Cut &cut){
67  cut_ = "("+cut_+")/("+cut.cut_+")";
68  Clean();
69  return *this;
70 }
71 
72 Cut & Cut::operator %= (const Cut &cut){
73  cut_ = "("+cut_+")%("+cut.cut_+")";
74  Clean();
75  return *this;
76 }
77 
78 Cut & Cut::operator ^= (const Cut &cut){
79  cut_ = "("+cut_+")^("+cut.cut_+")";
80  Clean();
81  return *this;
82 }
83 
84 Cut & Cut::operator <<= (const Cut &cut){
85  cut_ = "("+cut_+")<<("+cut.cut_+")";
86  Clean();
87  return *this;
88 }
89 
90 Cut & Cut::operator >>= (const Cut &cut){
91  cut_ = "("+cut_+")>>("+cut.cut_+")";
92  Clean();
93  return *this;
94 }
95 
96 Cut::operator string() const{
97  return cut_;
98 }
99 
100 Cut::operator const char*() const{
101  return cut_.c_str();
102 }
103 
104 bool Cut::operator<(const Cut &cut) const{
105  return cut_ < cut.cut_;
106 }
107 
108 bool Cut::operator==(const Cut &cut) const{
109  return cut_ == cut.cut_;
110 }
111 
112 void Cut::Clean(){
113  ReplaceAll(cut_, " ", "");
114 }
115 
117  return (a&=b);
118 }
119 
121  return (a&=b);
122 }
123 
125  return (a|=b);
126 }
127 
129  return (a|=b);
130 }
131 
133  return (a+=b);
134 }
135 
137  return (a-=b);
138 }
139 
141  return (a*=b);
142 }
143 
145  return (a/=b);
146 }
147 
149  return (a%=b);
150 }
151 
153  return (a^=b);
154 }
155 
157  return (a<<=b);
158 }
159 
161  return (a>>=b);
162 }
163 
164 ostream & operator<<(ostream &stream, const Cut &cut){
165  stream << static_cast<string>(cut);
166  return stream;
167 }
Cut operator>>(Cut a, Cut b)
Definition: cut.cpp:160
Cut & RmCutOn(const Cut &to_rm, const Cut &rep=Cut())
Definition: cut.cpp:31
Cut & operator/=(const Cut &cut)
Definition: cut.cpp:66
Cut & operator-=(const Cut &cut)
Definition: cut.cpp:54
Cut & operator<<=(const Cut &cut)
Definition: cut.cpp:84
Definition: cut.hpp:8
bool operator<(const Cut &cut) const
Definition: cut.cpp:104
std::string cut_
Definition: cut.hpp:37
Cut & Replace(const Cut &orig, const Cut &rep)
Definition: cut.cpp:17
void ReplaceAll(std::string &str, const std::string &orig, const std::string &rep)
Definition: utilities.cpp:34
STL namespace.
Cut & operator|=(const Cut &cut)
Definition: cut.cpp:42
Cut operator/(Cut a, Cut b)
Definition: cut.cpp:144
Cut & operator>>=(const Cut &cut)
Definition: cut.cpp:90
bool operator==(const Cut &cut) const
Definition: cut.cpp:108
Cut operator||(Cut a, Cut b)
Definition: cut.cpp:128
void SetCut(std::string &cut)
Definition: cut.cpp:26
Cut & operator&=(const Cut &cut)
Definition: cut.cpp:36
Cut operator-(Cut a, Cut b)
Definition: cut.cpp:136
Cut & operator+=(const Cut &cut)
Definition: cut.cpp:48
Cut operator%(Cut a, Cut b)
Definition: cut.cpp:148
Cut operator&(Cut a, Cut b)
Definition: cut.cpp:116
std::string GetCut()
Definition: cut.cpp:22
Cut operator^(Cut a, Cut b)
Definition: cut.cpp:152
Cut(const std::string &cut="1")
Definition: cut.cpp:7
Cut operator<<(Cut a, Cut b)
Definition: cut.cpp:156
Cut & operator%=(const Cut &cut)
Definition: cut.cpp:72
Cut operator+(Cut a, Cut b)
Definition: cut.cpp:132
Cut & operator^=(const Cut &cut)
Definition: cut.cpp:78
Cut operator&&(Cut a, Cut b)
Definition: cut.cpp:120
void Clean()
Definition: cut.cpp:112
Cut & operator*=(const Cut &cut)
Definition: cut.cpp:60
Cut operator|(Cut a, Cut b)
Definition: cut.cpp:124
Cut operator*(Cut a, Cut b)
Definition: cut.cpp:140