9 #include "functionencoding.h"
10 #include "constraint.h"
12 class Boolean : public ASTNode {
14 Boolean(ASTNodeType _type);
16 virtual Boolean *clone(CSolver *solver, CloneMap *map) { ASSERT(0); return NULL; }
19 Vector<Boolean *> parents;
24 class BooleanConst : public Boolean {
26 BooleanConst(bool isTrue);
27 Boolean *clone(CSolver *solver, CloneMap *map);
32 class BooleanVar : public Boolean {
34 BooleanVar(VarType t);
35 Boolean *clone(CSolver *solver, CloneMap *map);
42 class BooleanOrder : public Boolean {
44 BooleanOrder(Order *_order, uint64_t _first, uint64_t _second);
45 Boolean *clone(CSolver *solver, CloneMap *map);
53 class BooleanPredicate : public Boolean {
55 BooleanPredicate(Predicate *_predicate, Element **_inputs, uint _numInputs, Boolean *_undefinedStatus);
56 Boolean *clone(CSolver *solver, CloneMap *map);
59 FunctionEncoding encoding;
60 Array<Element *> inputs;
62 FunctionEncoding *getFunctionEncoding() {return &encoding;}
66 class BooleanLogic : public Boolean {
68 BooleanLogic(CSolver *solver, LogicOp _op, Boolean **array, uint asize);
69 Boolean *clone(CSolver *solver, CloneMap *map);
72 Array<Boolean *> inputs;