Merge branch 'master' of ssh://plrg.eecs.uci.edu/home/git/constraint_compiler
[satune.git] / src / AST / order.c
index 727b2dd3888d35a3bf45fd292a4a9142f2d7feba..2f8381e234e59d0c698fbba314dccf69c6c9dbab 100644 (file)
@@ -1 +1,29 @@
 #include "order.h"
+#include "structs.h"
+#include "set.h"
+
+
+Order* allocOrder(enum OrderType type, Set * set){
+    Order* order = (Order*)ourmalloc(sizeof(Order));
+    order->set=set;
+    order->constraints = allocDefVectorBoolean();
+    order->type=type;
+    return order;
+}
+
+Boolean* getOrderConstraint(Order* order, uint64_t first, uint64_t second){
+    uint size = getSizeVectorInt(order->set->members);
+    //First we need to make sure that first and second are part of the list!
+    bool exist1=false, exist2=false;
+    for(int i=0; i<size; i++){
+        if(getVectorInt(order->set->members, i)==first){
+            exist1=true;
+        }else if(getVectorInt(order->set->members, i) == second){
+            exist2=true;
+        }else if(exist1 && exist2){
+            break;
+        }
+    }
+    ASSERT(exist1 && exist2);
+    
+}
\ No newline at end of file