backout changes
[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