Fix tabbing
[satune.git] / src / AST / iterator.h
1 #ifndef ITERATOR_H
2 #define ITERATOR_H
3 #include "classlist.h"
4 #include "structs.h"
5
6 class BooleanIterator {
7 public:
8         BooleanIterator(CSolver *_solver);
9         ~BooleanIterator();
10         bool hasNext();
11         Boolean *next();
12         CMEMALLOC;
13
14 private:
15         SetIteratorBooleanEdge *solverit;
16         HashsetBoolean discovered;
17         Vector<Boolean *> boolean;
18         Vector<uint> index;
19         void updateNext();
20 };
21
22 class ElementIterator {
23 public:
24         ElementIterator(CSolver *_solver);
25         ~ElementIterator();
26         bool hasNext();
27         Element *next();
28         CMEMALLOC;
29
30 private:
31         BooleanIterator bit;
32         BooleanPredicate *base;
33         uint baseindex;
34
35         HashsetElement discovered;
36
37         Vector<Element *> element;
38         Vector<uint> index;
39         void updateNext();
40 };
41
42 #endif