ROSE 0.11.145.147
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