Bug Fixes
[satune.git] / src / AST / predicate.h
index 183a96099c9d69157f8a63dc7d4c6bd323a91f36..812d4bda8ec4d4abb70915fb9d8ae98923b3abce 100644 (file)
@@ -12,6 +12,8 @@ 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;
        CMEMALLOC;
 };
@@ -21,15 +23,21 @@ public:
        PredicateOperator(CompOp op, Set **domain, uint numDomain);
        bool evalPredicateOperator(uint64_t *inputs);
        Predicate *clone(CSolver *solver, CloneMap *map);
-       CompOp op;
+       virtual void serialize(Serializer *serializer);
+       virtual void print();
        Array<Set *> domains;
+       CompOp getOp() {return op;}
        CMEMALLOC;
+private:
+       CompOp op;
 };
 
 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;
        CMEMALLOC;