Vector<ASTNode *> parents;
ElementEncoding encoding;
virtual Element *clone(CSolver *solver, CloneMap *map) {ASSERT(0); return NULL;};
+ virtual void serialize(Serializer* serializer) =0;
virtual void updateParents() {}
virtual Set * getRange() = 0;
CMEMALLOC;
ElementSet(ASTNodeType type, Set *s);
ElementSet(Set *s);
virtual Element *clone(CSolver *solver, CloneMap *map);
+ virtual void serialize(Serializer* serializer);
CMEMALLOC;
Set *getRange() {return set;}
- private:
+ protected:
Set *set;
};
public:
ElementConst(uint64_t value, Set *_set);
uint64_t value;
+ virtual void serialize(Serializer* serializer);
Element *clone(CSolver *solver, CloneMap *map);
CMEMALLOC;
};
BooleanEdge overflowstatus;
FunctionEncoding functionencoding;
Element *clone(CSolver *solver, CloneMap *map);
+ virtual void serialize(Serializer* serializer);
Set * getRange();
void updateParents();
Function * getFunction() {return function;}