Adding ASTTransform ...
[satune.git] / src / AST / order.cc
1 #include "order.h"
2 #include "structs.h"
3 #include "set.h"
4 #include "boolean.h"
5 #include "ordergraph.h"
6
7 Order::Order(OrderType _type, Set *_set) :
8         type(_type),
9         set(_set),
10         orderPairTable(NULL),
11         elementTable(NULL),
12         graph(NULL),
13         order(this)
14 {
15         auxSet = new Set(_type,(uint64_t) 1,(uint64_t) _set->getSize());
16 }
17
18 void Order::initializeOrderHashTable() {
19         orderPairTable = new HashTableOrderPair();
20 }
21
22 void Order::initializeOrderElementsHashTable() {
23         elementTable = new HashSetOrderElement();
24 }
25
26 void Order::addOrderConstraint(BooleanOrder *constraint) {
27         constraints.push(constraint);
28 }
29
30 void Order::setOrderEncodingType(OrderEncodingType type) {
31         order.type = type;
32 }
33
34 Order::~Order() {
35         if (orderPairTable != NULL) {
36                 orderPairTable->resetanddelete();
37                 delete orderPairTable;
38         }
39         if (elementTable != NULL) {
40                 delete elementTable;
41         }
42         if (graph != NULL) {
43                 deleteOrderGraph(graph);
44         }
45 }