X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=src%2FAST%2Fpredicate.h;h=183a96099c9d69157f8a63dc7d4c6bd323a91f36;hb=c5e632659f6f8ad931cf14104f72a5aa59acf911;hp=96f462d499e140195508c08fa23e6de856856844;hpb=9f703a622069cbfa76ef2e2efb393ab1714c0342;p=satune.git diff --git a/src/AST/predicate.h b/src/AST/predicate.h index 96f462d..183a960 100644 --- a/src/AST/predicate.h +++ b/src/AST/predicate.h @@ -3,32 +3,35 @@ #include "classlist.h" #include "mymemory.h" #include "ops.h" +#include "astops.h" #include "structs.h" - -#define GETPREDICATETYPE(o) (((Predicate *)(o))->type) +#include "common.h" class Predicate { - public: - Predicate(PredicateType _type) : type(_type) {} +public: + Predicate(PredicateType _type) : type(_type) {} virtual ~Predicate() {} + virtual Predicate *clone(CSolver *solver, CloneMap *map) {ASSERT(0); return NULL;} PredicateType type; - MEMALLOC; + CMEMALLOC; }; class PredicateOperator : public Predicate { - public: +public: PredicateOperator(CompOp op, Set **domain, uint numDomain); bool evalPredicateOperator(uint64_t *inputs); + Predicate *clone(CSolver *solver, CloneMap *map); CompOp op; Array domains; - MEMALLOC; + CMEMALLOC; }; class PredicateTable : public Predicate { - public: +public: PredicateTable(Table *table, UndefinedBehavior undefBehavior); + Predicate *clone(CSolver *solver, CloneMap *map); Table *table; UndefinedBehavior undefinedbehavior; - MEMALLOC; + CMEMALLOC; }; #endif