8 #include "functionencoding.h"
9 #include "constraint.h"
11 class Boolean : public ASTNode {
13 Boolean(ASTNodeType _type);
15 virtual Boolean *clone(CSolver *solver, CloneMap *map) { ASSERT(0); return NULL; }
18 Vector<Boolean *> parents;
23 class BooleanVar : public Boolean {
25 BooleanVar(VarType t);
26 Boolean *clone(CSolver *solver, CloneMap *map);
33 class BooleanOrder : public Boolean {
35 BooleanOrder(Order *_order, uint64_t _first, uint64_t _second);
36 Boolean *clone(CSolver *solver, CloneMap *map);
44 class BooleanPredicate : public Boolean {
46 BooleanPredicate(Predicate *_predicate, Element **_inputs, uint _numInputs, Boolean *_undefinedStatus);
47 Boolean *clone(CSolver *solver, CloneMap *map);
50 FunctionEncoding encoding;
51 Array<Element *> inputs;
53 FunctionEncoding *getFunctionEncoding() {return &encoding;}
57 class BooleanLogic : public Boolean {
59 BooleanLogic(CSolver *solver, LogicOp _op, Boolean **array, uint asize);
60 Boolean *clone(CSolver *solver, CloneMap *map);
63 Array<Boolean *> inputs;