Fix tuner issues
[satune.git] / src / AST / predicate.h
index dc5128b2ca48a45eb9ccda66566ec50724db4bd5..17e34d948c88eebe7516992dd472cfe2be9b988a 100644 (file)
@@ -3,6 +3,7 @@
 #include "classlist.h"
 #include "mymemory.h"
 #include "ops.h"
+#include "astops.h"
 #include "structs.h"
 #include "common.h"
 
@@ -11,26 +12,33 @@ public:
        Predicate(PredicateType _type) : type(_type) {}
        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;
-       MEMALLOC;
+       CMEMALLOC;
 };
 
 class PredicateOperator : public Predicate {
 public:
-       PredicateOperator(CompOp op, Set **domain, uint numDomain);
+       PredicateOperator(CompOp op);
        bool evalPredicateOperator(uint64_t *inputs);
        Predicate *clone(CSolver *solver, CloneMap *map);
+       virtual void serialize(Serializer *serializer);
+       virtual void print();
+       CompOp getOp() {return op;}
+       CMEMALLOC;
+private:
        CompOp op;
-       Array<Set *> domains;
-       MEMALLOC;
 };
 
 class PredicateTable : public Predicate {
 public:
        PredicateTable(Table *table, UndefinedBehavior undefBehavior);
        Predicate *clone(CSolver *solver, CloneMap *map);
+       virtual void serialize(Serializer *serializer);
+       virtual void print();
        Table *table;
        UndefinedBehavior undefinedbehavior;
-       MEMALLOC;
+       CMEMALLOC;
 };
 #endif