about summary refs log tree commit diff homepage
path: root/lib/Core/Searcher.h
diff options
context:
space:
mode:
authorCristian Cadar <c.cadar@imperial.ac.uk>2013-08-07 13:22:06 +0100
committerCristian Cadar <c.cadar@imperial.ac.uk>2013-08-07 13:22:06 +0100
commit363e7ab2d7bfa790b666eac1b48b7b7daf02e5e3 (patch)
tree6716b850795baa8ae09312e7cc6952f24627624f /lib/Core/Searcher.h
parent357ecb515baaa018a5b4b611f7cb4000e91315d3 (diff)
parent939d6874d114f5a39396f28aeb6ebc17a0dc652b (diff)
downloadklee-363e7ab2d7bfa790b666eac1b48b7b7daf02e5e3.tar.gz
Merge branch 'bfs' of https://github.com/antiAgainst/klee into antiAgainst-bfs
Diffstat (limited to 'lib/Core/Searcher.h')
-rw-r--r--lib/Core/Searcher.h17
1 files changed, 16 insertions, 1 deletions
diff --git a/lib/Core/Searcher.h b/lib/Core/Searcher.h
index 58772bbb..79c233c4 100644
--- a/lib/Core/Searcher.h
+++ b/lib/Core/Searcher.h
@@ -68,7 +68,8 @@ namespace klee {
     }
 
     enum CoreSearchType {
-      DFS,                
+      DFS,
+      BFS,
       RandomState,
       RandomPath,
       NURS_CovNew,
@@ -94,6 +95,20 @@ namespace klee {
     }
   };
 
+  class BFSSearcher : public Searcher {
+    std::deque<ExecutionState*> states;
+
+  public:
+    ExecutionState &selectState();
+    void update(ExecutionState *current,
+                const std::set<ExecutionState*> &addedStates,
+                const std::set<ExecutionState*> &removedStates);
+    bool empty() { return states.empty(); }
+    void printName(std::ostream &os) {
+      os << "BFSSearcher\n";
+    }
+  };
+
   class RandomSearcher : public Searcher {
     std::vector<ExecutionState*> states;