#include "classlist.h"
#include "mymemory.h"
#include "ops.h"
+#include "astops.h"
#include "structs.h"
class Function {
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 {
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 {
UndefinedBehavior undefBehavior;
FunctionTable (Table *table, UndefinedBehavior behavior);
Function *clone(CSolver *solver, CloneMap *map);
- MEMALLOC;
+ virtual void serialize(Serializer* serialiezr);
+ Set * getRange();
+ CMEMALLOC;
};
#endif