class Element : public ASTNode {
public:
Element(ASTNodeType type);
- virtual ~Element();
+ virtual ~Element() {}
Vector<ASTNode *> parents;
ElementEncoding encoding;
+ virtual Element * clone(CSolver * solver, CloneMap * map);
MEMALLOC;
};
class ElementConst : public Element {
public:
- ElementConst(uint64_t value, VarType type);
- ~ElementConst();
+ ElementConst(uint64_t value, VarType type, Set *_set);
Set *set;
uint64_t value;
+ Element * clone(CSolver * solver, CloneMap * map);
MEMALLOC;
};
public:
ElementSet(Set *s);
Set *set;
+ Element * clone(CSolver * solver, CloneMap * map);
MEMALLOC;
};
class ElementFunction : public Element {
public:
ElementFunction(Function *function, Element **array, uint numArrays, Boolean *overflowstatus);
- ~ElementFunction();
Function *function;
Array<Element *> inputs;
Boolean *overflowstatus;
FunctionEncoding functionencoding;
+ Element * clone(CSolver * solver, CloneMap * map);
MEMALLOC;
};