Restructure transforms a little and run make tabbing
[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 #include "csolver.h"
7
8 Order::Order(OrderType _type, Set *_set) :
9         type(_type),
10         set(_set),
11         orderPairTable(NULL),
12         graph(NULL),
13         encoding(this)
14 {
15 }
16
17 void Order::initializeOrderHashtable() {
18         orderPairTable = new HashtableOrderPair();
19 }
20
21
22 void Order::addOrderConstraint(BooleanOrder *constraint) {
23         constraints.push(constraint);
24 }
25
26 void Order::setOrderEncodingType(OrderEncodingType type) {
27         encoding.type = type;
28 }
29
30 Order *Order::clone(CSolver *solver, CloneMap *map) {
31         Order *o = (Order *)map->get(this);
32         if (o != NULL)
33                 return o;
34         o = solver->createOrder(type, set->clone(solver, map));
35         map->put(this, o);
36         return o;
37 }
38
39 Order::~Order() {
40         if (orderPairTable != NULL) {
41                 orderPairTable->resetanddelete();
42                 delete orderPairTable;
43         }
44
45         if (graph != NULL) {
46                 delete graph;
47         }
48 }