backout changes
[satune.git] / src / AST / function.h
index 1ade1368c924aab0fe22a69835bf0e71858e1cdc..98ef53641b926a0b78132e5ee65ffcfd3cce95a6 100644 (file)
@@ -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