X-Git-Url: http://plrg.eecs.uci.edu/git/?p=satune.git;a=blobdiff_plain;f=src%2FAST%2Fboolean.h;h=cdc05a6be55487fd5fcc5db483be2067fc920562;hp=7382908c3075f30eb730f563ce5d56ea22ec300e;hb=4221735881b9d1cd53ef410d9448efd2d12a51ad;hpb=0073b37bd741b59fe79857958d8276fc9128db0b diff --git a/src/AST/boolean.h b/src/AST/boolean.h index 7382908..cdc05a6 100644 --- a/src/AST/boolean.h +++ b/src/AST/boolean.h @@ -14,15 +14,19 @@ #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; }; struct BooleanOrder { Boolean base; - Order* order; + Order *order; uint64_t first; uint64_t second; }; @@ -41,18 +45,18 @@ struct BooleanLogic { struct BooleanPredicate { Boolean base; - Predicate * predicate; + Predicate *predicate; FunctionEncoding encoding; ArrayElement inputs; + Boolean *undefStatus; }; -Boolean * allocBoolean(VarType t); -Boolean * allocBooleanOrder(Order * order, uint64_t first, uint64_t second); -Boolean * allocBooleanPredicate(Predicate * predicate, Element ** inputs, uint numInputs); -Boolean * allocBooleanLogicArray(CSolver *solver, LogicOp op, Boolean ** array, uint asize); -void deleteBoolean(Boolean * This); - -static inline FunctionEncoding* getPredicateFunctionEncoding(BooleanPredicate* func){ +Boolean *allocBooleanVar(VarType t); +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); +static inline FunctionEncoding *getPredicateFunctionEncoding(BooleanPredicate *func) { return &func->encoding; }