ROSE  0.9.9.109
LogicalCond.h
1 #ifndef LOGICAL_COND_H
2 #define LOGICAL_COND_H
3 
4 #include <string>
5 
7 {
8  public:
9  // the basic logical operations that must be supported by any implementation of
10  // a logical condition: NOT, AND and OR
11  // Return true if this causes the LogicalCond object to change and false otherwise.
12  //virtual bool notUpd()=0;
13  virtual bool andUpd(LogicalCond& that)=0;
14  virtual bool orUpd(LogicalCond& that)=0;
15 
16  /*// returns true if this logical condition is false and false otherwise
17  virtual bool isFalse()=0;*/
18 
19  // returns true if this logical condition must be true and false otherwise
20  virtual bool mayTrue()=0;
21 
22  // returns true if this logical condition may be false and false otherwise
23  bool mustFalse()
24  {
25  return !mayTrue();
26  }
27 
28 /* virtual bool setToTrue()=0;
29  virtual bool setToFalse()=0;*/
30 
31  // returns a copy of this LogicalCond object
32  virtual LogicalCond* copy()=0;
33 
34  virtual std::string str(std::string indent="")=0;
35 
36  virtual ~LogicalCond() {}
37 };
38 
39 #endif