X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=src%2FAST%2Ffunction.h;h=98ef53641b926a0b78132e5ee65ffcfd3cce95a6;hb=16486cd2b25f9fc04819e811d519947704679bed;hp=1ade1368c924aab0fe22a69835bf0e71858e1cdc;hpb=b03787cd7584eea5b44ae5303576295e52b01289;p=satune.git diff --git a/src/AST/function.h b/src/AST/function.h index 1ade136..98ef536 100644 --- a/src/AST/function.h +++ b/src/AST/function.h @@ -3,6 +3,7 @@ #include "classlist.h" #include "mymemory.h" #include "ops.h" +#include "astops.h" #include "structs.h" class Function { @@ -11,7 +12,9 @@ public: FunctionType type; virtual ~Function() {} virtual Function *clone(CSolver *solver, CloneMap *map) {ASSERT(0); return NULL;} - MEMALLOC; + virtual void serialize(Serializer* serialiezr) =0; + virtual Set * getRange() = 0; + CMEMALLOC; }; class FunctionOperator : public Function { @@ -24,7 +27,9 @@ public: uint64_t applyFunctionOperator(uint numVals, uint64_t *values); bool isInRangeFunction(uint64_t val); Function *clone(CSolver *solver, CloneMap *map); - MEMALLOC; + virtual void serialize(Serializer* serialiezr); + Set * getRange() {return range;} + CMEMALLOC; }; class FunctionTable : public Function { @@ -33,7 +38,9 @@ public: UndefinedBehavior undefBehavior; FunctionTable (Table *table, UndefinedBehavior behavior); Function *clone(CSolver *solver, CloneMap *map); - MEMALLOC; + virtual void serialize(Serializer* serialiezr); + Set * getRange(); + CMEMALLOC; }; #endif