After merging with master branch ...
[satune.git] / src / AST / boolean.c
index 9f4b2191367e38e18e0ff587bb9a345b98376998..2987217e2e08cfc4aa24fe1ca7cbaa12214b5cde 100644 (file)
@@ -4,55 +4,70 @@
 #include "element.h"
 #include "order.h"
 
-Boolean* allocBooleanVar(VarType t) {
-       BooleanVar* This=(BooleanVar *) ourmalloc(sizeof (BooleanVar));
-       GETBOOLEANTYPE(This)=BOOLEANVAR;
-       This->vtype=t;
-       This->var=E_NULL;
+Boolean *allocBooleanVar(VarType t) {
+       BooleanVar *This = (BooleanVar *) ourmalloc(sizeof (BooleanVar));
+       GETBOOLEANTYPE(This) = BOOLEANVAR;
+       GETBOOLEANVALUE(This) = BV_UNDEFINED;
+       GETBOOLEANPOLARITY(This) = P_UNDEFINED;
+       This->vtype = t;
+       This->var = E_NULL;
        initDefVectorBoolean(GETBOOLEANPARENTS(This));
-       return & This->base;
+       return &This->base;
 }
 
-Boolean* allocBooleanOrder(Order* order, uint64_t first, uint64_t second) {
-       BooleanOrder* This=(BooleanOrder *) ourmalloc(sizeof (BooleanOrder));
-       GETBOOLEANTYPE(This)=ORDERCONST;
-       This->order=order;
-       This->first=first;
-       This->second=second;
-       pushVectorBoolean(&order->constraints, &This->base);
+Boolean *allocBooleanOrder(Order *order, uint64_t first, uint64_t second) {
+       BooleanOrder *This = (BooleanOrder *) ourmalloc(sizeof (BooleanOrder));
+       GETBOOLEANTYPE(This) = ORDERCONST;
+       GETBOOLEANVALUE(This) = BV_UNDEFINED;
+       GETBOOLEANPOLARITY(This) = P_UNDEFINED;
+       This->order = order;
+       This->first = first;
+       This->second = second;
+       pushVectorBooleanOrder(&order->constraints, This);
        initDefVectorBoolean(GETBOOLEANPARENTS(This));
-       return & This -> base;
+       return &This->base;
 }
 
-Boolean * allocBooleanPredicate(Predicate * predicate, Element ** inputs, uint numInputs, Boolean* undefinedStatus){
-       BooleanPredicate* This = (BooleanPredicate*) ourmalloc(sizeof(BooleanPredicate));
-       GETBOOLEANTYPE(This)= PREDICATEOP;
-       This->predicate=predicate;
+Boolean *allocBooleanPredicate(Predicate *predicate, Element **inputs, uint numInputs, Boolean *undefinedStatus) {
+       BooleanPredicate *This = (BooleanPredicate *) ourmalloc(sizeof(BooleanPredicate));
+       GETBOOLEANTYPE(This) = PREDICATEOP;
+       GETBOOLEANVALUE(This) = BV_UNDEFINED;
+       GETBOOLEANPOLARITY(This) = P_UNDEFINED;
+       This->predicate = predicate;
        initArrayInitElement(&This->inputs, inputs, numInputs);
        initDefVectorBoolean(GETBOOLEANPARENTS(This));
 
-       for(uint i=0;i<numInputs;i++) {
+       for (uint i = 0; i < numInputs; i++) {
                pushVectorASTNode(GETELEMENTPARENTS(inputs[i]), (ASTNode *)This);
        }
        initPredicateEncoding(&This->encoding, (Boolean *) This);
        This->undefStatus = undefinedStatus;
-       return & This->base;
+       return &This->base;
 }
 
-Boolean * allocBooleanLogicArray(CSolver *solver, LogicOp op, Boolean ** array, uint asize){
-       BooleanLogic * This = ourmalloc(sizeof(BooleanLogic));
+Boolean *allocBooleanLogicArray(CSolver *solver, LogicOp op, Boolean **array, uint asize) {
+       BooleanLogic *This = ourmalloc(sizeof(BooleanLogic));
+       GETBOOLEANTYPE(This) = LOGICOP;
+       GETBOOLEANVALUE(This) = BV_UNDEFINED;
+       GETBOOLEANPOLARITY(This) = P_UNDEFINED;
+       This->op = op;
        initDefVectorBoolean(GETBOOLEANPARENTS(This));
        initArrayInitBoolean(&This->inputs, array, asize);
        pushVectorBoolean(solver->allBooleans, (Boolean *) This);
-       return & This->base;
+       return &This->base;
 }
 
-void deleteBoolean(Boolean * This) {
-       switch(GETBOOLEANTYPE(This)){
+void deleteBoolean(Boolean *This) {
+       switch (GETBOOLEANTYPE(This)) {
        case PREDICATEOP: {
-               BooleanPredicate *bp=(BooleanPredicate *)This;
-               deleteInlineArrayElement(& bp->inputs );
-               deleteFunctionEncoding(& bp->encoding);
+               BooleanPredicate *bp = (BooleanPredicate *)This;
+               deleteInlineArrayElement(&bp->inputs );
+               deleteFunctionEncoding(&bp->encoding);
+               break;
+       }
+       case LOGICOP: {
+               BooleanLogic *bl = (BooleanLogic *) This;
+               deleteInlineArrayBoolean(&bl->inputs);
                break;
        }
        default: