public:
Boolean(ASTNodeType _type);
virtual ~Boolean() {}
+ virtual Boolean * clone(CSolver * solver, CloneMap *map);
Polarity polarity;
BooleanValue boolVal;
Vector<Boolean *> parents;
class BooleanVar : public Boolean {
public:
BooleanVar(VarType t);
+ Boolean * clone(CSolver * solver, CloneMap *map);
+
VarType vtype;
Edge var;
MEMALLOC;
class BooleanOrder : public Boolean {
public:
BooleanOrder(Order *_order, uint64_t _first, uint64_t _second);
+ Boolean * clone(CSolver * solver, CloneMap *map);
+
Order *order;
uint64_t first;
uint64_t second;
class BooleanPredicate : public Boolean {
public:
BooleanPredicate(Predicate *_predicate, Element **_inputs, uint _numInputs, Boolean *_undefinedStatus);
- ~BooleanPredicate();
+ Boolean * clone(CSolver * solver, CloneMap *map);
+
Predicate *predicate;
FunctionEncoding encoding;
Array<Element *> inputs;
class BooleanLogic : public Boolean {
public:
BooleanLogic(CSolver *solver, LogicOp _op, Boolean **array, uint asize);
+ Boolean * clone(CSolver * solver, CloneMap *map);
+
LogicOp op;
Array<Boolean *> inputs;
MEMALLOC;