6 Boolean* allocBoolean(VarType t) {
7 BooleanVar* tmp=(BooleanVar *) ourmalloc(sizeof (BooleanVar));
8 GETBOOLEANTYPE(tmp)=BOOLEANVAR;
11 allocInlineDefVectorBoolean(GETBOOLEANPARENTS(tmp));
15 Boolean* allocBooleanOrder(Order* order, uint64_t first, uint64_t second) {
16 BooleanOrder* tmp=(BooleanOrder *) ourmalloc(sizeof (BooleanOrder));
17 GETBOOLEANTYPE(tmp)=ORDERCONST;
21 allocInlineDefVectorBoolean(GETBOOLEANPARENTS(tmp));
25 Boolean * allocBooleanPredicate(Predicate * predicate, Element ** inputs, uint numInputs){
26 BooleanPredicate* This = (BooleanPredicate*) ourmalloc(sizeof(BooleanPredicate));
27 GETBOOLEANTYPE(This)= PREDICATEOP;
28 This->predicate=predicate;
29 allocInlineArrayInitElement(&This->inputs, inputs, numInputs);
30 allocInlineDefVectorBoolean(GETBOOLEANPARENTS(This));
32 for(uint i=0;i<numInputs;i++) {
33 pushVectorASTNode(GETELEMENTPARENTS(inputs[i]), (ASTNode *)This);
38 Boolean * allocBooleanLogicArray(CSolver *solver, LogicOp op, Boolean ** array, uint asize){
39 BooleanLogic * This = ourmalloc(sizeof(BooleanLogic));
40 allocInlineDefVectorBoolean(GETBOOLEANPARENTS(This));
41 allocInlineArrayInitBoolean(&This->inputs, array, asize);
42 pushVectorBoolean(solver->allBooleans, (Boolean *) This);
46 void deleteBoolean(Boolean * This) {
47 switch(GETBOOLEANTYPE(This)){
49 deleteInlineArrayElement(& ((BooleanPredicate*)This)->inputs );
54 deleteVectorArrayBoolean(GETBOOLEANPARENTS(This));