Vector<ASTNode *> parents;
ElementEncoding encoding;
virtual Element *clone(CSolver *solver, CloneMap *map) {ASSERT(0); return NULL;};
+ virtual void updateParents() {}
- MEMALLOC;
+ CMEMALLOC;
};
class ElementConst : public Element {
Set *set;
uint64_t value;
Element *clone(CSolver *solver, CloneMap *map);
- MEMALLOC;
+ CMEMALLOC;
};
class ElementSet : public Element {
ElementSet(Set *s);
Set *set;
Element *clone(CSolver *solver, CloneMap *map);
- MEMALLOC;
+ CMEMALLOC;
};
class ElementFunction : public Element {
public:
- ElementFunction(Function *function, Element **array, uint numArrays, Boolean *overflowstatus);
+ ElementFunction(Function *function, Element **array, uint numArrays, BooleanEdge overflowstatus);
Function *function;
Array<Element *> inputs;
- Boolean *overflowstatus;
+ BooleanEdge overflowstatus;
FunctionEncoding functionencoding;
Element *clone(CSolver *solver, CloneMap *map);
- MEMALLOC;
+ void updateParents();
+ CMEMALLOC;
};
Set *getElementSet(Element *This);