Finish iterator class
[satune.git] / src / AST / iterator.h
index b82ee37ee2c8dc0cf357ef5972b906b485714a20..0e7303f7bc374481233f11cad41f2b81571c1ce8 100644 (file)
@@ -10,6 +10,7 @@ class BooleanIterator {
        bool hasNext();
        Boolean * next();
        CMEMALLOC;
        bool hasNext();
        Boolean * next();
        CMEMALLOC;
+
  private:
        SetIteratorBooleanEdge * solverit;
        HashsetBoolean discovered;
  private:
        SetIteratorBooleanEdge * solverit;
        HashsetBoolean discovered;
@@ -20,10 +21,22 @@ class BooleanIterator {
 
 class ElementIterator {
  public:
 
 class ElementIterator {
  public:
+       ElementIterator(CSolver *_solver);
+       ~ElementIterator();
+       bool hasNext();
+       Element * next();
        CMEMALLOC;
        CMEMALLOC;
+
  private:
        BooleanIterator bit;
  private:
        BooleanIterator bit;
-};
+       BooleanPredicate *base;
+       uint baseindex;
 
 
+       HashsetElement discovered;
+
+       Vector<Element *> element;
+       Vector<uint> index;
+       void updateNext();
+};
 
 #endif
 
 #endif