#include "classlist.h"
#include "mymemory.h"
#include "ops.h"
+#include "structs.h"
-/**
- This is a little sketchy, but apparently legit.
- https://www.python.org/dev/peps/pep-3123/ */
+/**
+ This is a little sketchy, but apparently legit.
+ https://www.python.org/dev/peps/pep-3123/ */
#define GETBOOLEANTYPE(o) (((Boolean *)(o))->btype)
Boolean * right;
};
-struct BooleanComp {
+struct BooleanPredicate {
Boolean base;
- CompOp op;
- Boolean * left;
- Boolean * right;
+ Predicate * predicate;
+ VectorElement* inputs;
};
-
-
Boolean * allocBoolean(VarType t);
Boolean * allocBooleanOrder(Order * order, uint64_t first, uint64_t second);
+Boolean * allocBooleanPredicate(Predicate * predicate, Element ** inputs, uint numInputs);
+Boolean * allocBooleanLogic(LogicOp op, Boolean * left, Boolean* right);
+/**
+ * This function also save new boooleans to solver->allbooleans
+ * @param solver
+ * @param op
+ * @param array
+ * @param asize
+ * @return
+ */
+Boolean * allocBooleanLogicArray(CSolver *solver, LogicOp op, Boolean ** array, uint asize);
void deleteBoolean(Boolean * This);
#endif