projects
/
satune.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
edit
[satune.git]
/
src
/
AST
/
predicate.h
diff --git
a/src/AST/predicate.h
b/src/AST/predicate.h
index 96f462d499e140195508c08fa23e6de856856844..812d4bda8ec4d4abb70915fb9d8ae98923b3abce 100644
(file)
--- a/
src/AST/predicate.h
+++ b/
src/AST/predicate.h
@@
-3,32
+3,43
@@
#include "classlist.h"
#include "mymemory.h"
#include "ops.h"
#include "classlist.h"
#include "mymemory.h"
#include "ops.h"
+#include "astops.h"
#include "structs.h"
#include "structs.h"
-
-#define GETPREDICATETYPE(o) (((Predicate *)(o))->type)
+#include "common.h"
class Predicate {
class Predicate {
-
public:
- Predicate(PredicateType _type) : type(_type) {}
+public:
+
Predicate(PredicateType _type) : type(_type) {}
virtual ~Predicate() {}
virtual ~Predicate() {}
+ virtual Predicate *clone(CSolver *solver, CloneMap *map) {ASSERT(0); return NULL;}
+ virtual void serialize(Serializer *serializer) = 0;
+ virtual void print() = 0;
PredicateType type;
PredicateType type;
- MEMALLOC;
+
C
MEMALLOC;
};
class PredicateOperator : public Predicate {
};
class PredicateOperator : public Predicate {
-
public:
+public:
PredicateOperator(CompOp op, Set **domain, uint numDomain);
bool evalPredicateOperator(uint64_t *inputs);
PredicateOperator(CompOp op, Set **domain, uint numDomain);
bool evalPredicateOperator(uint64_t *inputs);
- CompOp op;
+ Predicate *clone(CSolver *solver, CloneMap *map);
+ virtual void serialize(Serializer *serializer);
+ virtual void print();
Array<Set *> domains;
Array<Set *> domains;
- MEMALLOC;
+ CompOp getOp() {return op;}
+ CMEMALLOC;
+private:
+ CompOp op;
};
class PredicateTable : public Predicate {
};
class PredicateTable : public Predicate {
-
public:
+public:
PredicateTable(Table *table, UndefinedBehavior undefBehavior);
PredicateTable(Table *table, UndefinedBehavior undefBehavior);
+ Predicate *clone(CSolver *solver, CloneMap *map);
+ virtual void serialize(Serializer *serializer);
+ virtual void print();
Table *table;
UndefinedBehavior undefinedbehavior;
Table *table;
UndefinedBehavior undefinedbehavior;
- MEMALLOC;
+
C
MEMALLOC;
};
#endif
};
#endif