Bug Fixes
[satune.git] / src / ASTTransform / decomposeordertransform.h
index 3d7d6e857297c4fefd19fdadb27861b81bb6fe18..9020e1cd3938ff90e1d184ab4503e4579556b406 100644 (file)
@@ -1,4 +1,4 @@
-/* 
+/*
  * File:   ordertransform.h
  * Author: hamed
  *
 
 class DecomposeOrderTransform : public Transform {
 public:
-       DecomposeOrderTransform(CSolver_solver);
-       virtual ~DecomposeOrderTransform();
+       DecomposeOrderTransform(CSolver *_solver);
+       ~DecomposeOrderTransform();
        void doTransform();
-       void setOrderGraph(OrderGraph* _graph){
-               currGraph = _graph;
-       }
-       void setCurrentOrder(Order* _current) { currOrder = _current;}
-       bool canExecuteTransform();
+
        CMEMALLOC;
- private:
-       Order* currOrder;
-       OrderGraph* currGraph;
+private:
+       bool isMustBeTrueNode(OrderNode *node);
+       void bypassMustBeTrueNode(OrderGraph *graph, OrderNode *node, DecomposeOrderResolver *dor);
+       void decomposeOrder(Order *currOrder, OrderGraph *currGraph, DecomposeOrderResolver *dor);
+       void removeMustBeTrueNodes(OrderGraph *graph, DecomposeOrderResolver *dor);
+       void mustEdgePrune(OrderGraph *graph, DecomposeOrderResolver *dor);
+       void attemptNodeMerge(OrderGraph *graph, OrderNode *node, DecomposeOrderResolver *dor);
+       void mergeNodes(OrderGraph *graph, OrderNode *node, OrderEdge *edge, OrderNode *dstnode, DecomposeOrderResolver *dor);
 };
 
-#endif /* ORDERTRANSFORM_H */
+
+
+#endif/* ORDERTRANSFORM_H */