Merge
[satune.git] / src / AST / predicate.h
index 80515fa9e06a75968ae1e53507bcd7c1577f2db4..beaebc9b09989122f45d64573a0e7868c499f0b2 100644 (file)
@@ -12,6 +12,7 @@ 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;
        PredicateType type;
        CMEMALLOC;
 };
@@ -21,8 +22,9 @@ public:
        PredicateOperator(CompOp op, Set **domain, uint numDomain);
        bool evalPredicateOperator(uint64_t *inputs);
        Predicate *clone(CSolver *solver, CloneMap *map);
-       CompOp getOp() {return op;}
+       virtual void serialize(Serializer* serializer);
        Array<Set *> domains;
+       CompOp getOp() {return op;}
        CMEMALLOC;
  private:
        CompOp op;
@@ -32,6 +34,7 @@ class PredicateTable : public Predicate {
 public:
        PredicateTable(Table *table, UndefinedBehavior undefBehavior);
        Predicate *clone(CSolver *solver, CloneMap *map);
+       virtual void serialize(Serializer* serializer);
        Table *table;
        UndefinedBehavior undefinedbehavior;
        CMEMALLOC;