#include "serializer.h"
class Boolean : public ASTNode {
+private:
+ static uint64_t counter;
public:
Boolean(ASTNodeType _type);
virtual ~Boolean() {}
virtual bool isFalse() {return boolVal == BV_MUSTBEFALSE;}
Polarity polarity;
BooleanValue boolVal;
- Vector<Boolean *> parents;
+ Vector<ASTNode *> parents;
virtual void updateParents() {}
-
+ uint64_t id;
CMEMALLOC;
};
Set *getElementRange (Element *element);
+ void mustHaveValue(Element *element);
+
BooleanEdge getBooleanTrue();
BooleanEdge getBooleanFalse();
private:
void handleIFFTrue(BooleanLogic *bexpr, BooleanEdge child);
void handleANDTrue(BooleanLogic *bexpr, BooleanEdge child);
-
+ void handleFunction(ElementFunction * ef, BooleanEdge child);
+
//These two functions are helpers if the client has a pointer to a
//Boolean object that we have since replaced
BooleanEdge rewriteLogicalOperation(LogicOp op, BooleanEdge *array, uint asize);