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