Assigning Polarity and BooleanValue to All the Boolean Constraints
[satune.git] / src / AST / boolean.h
index 3d3a90639b8b7596c2849fdc749e233ae6ebecb8..b24fa3f83e10d9cf093b6478bb515e7710507317 100644 (file)
 
 #define GETBOOLEANTYPE(o) GETASTNODETYPE(o)
 #define GETBOOLEANPARENTS(o) (&((Boolean *)(o))->parents)
+#define GETBOOLEANPOLARITY(b) (((Boolean*)b)->polarity)
+#define GETBOOLEANVALUE(b) (((Boolean*)b)->boolVal)
 
 struct Boolean {
        ASTNode base;
+       Polarity polarity;
+       BooleanValue boolVal;
        VectorBoolean parents;
 };
 
@@ -52,7 +56,8 @@ Boolean * allocBooleanOrder(Order * order, uint64_t first, uint64_t second);
 Boolean * allocBooleanPredicate(Predicate * predicate, Element ** inputs, uint numInputs, Boolean* undefinedStatus);
 Boolean * allocBooleanLogicArray(CSolver *solver, LogicOp op, Boolean ** array, uint asize);
 void deleteBoolean(Boolean * This);
-
+Polarity negatePolarity(Polarity This);
+BooleanValue negateBooleanValue(BooleanValue This);
 static inline FunctionEncoding* getPredicateFunctionEncoding(BooleanPredicate* func){
        return &func->encoding;
 }