klee
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
PTree.h
Go to the documentation of this file.
1 //===-- PTree.h -------------------------------------------------*- C++ -*-===//
2 //
3 // The KLEE Symbolic Virtual Machine
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 
10 #ifndef __UTIL_PTREE_H__
11 #define __UTIL_PTREE_H__
12 
13 #include <klee/Expr.h>
14 
15 namespace klee {
16  class ExecutionState;
17 
18  class PTree {
20 
21  public:
22  typedef class PTreeNode Node;
24 
25  PTree(const data_type &_root);
26  ~PTree();
27 
28  std::pair<Node*,Node*> split(Node *n,
29  const data_type &leftData,
30  const data_type &rightData);
31  void remove(Node *n);
32 
33  void dump(llvm::raw_ostream &os);
34  };
35 
36  class PTreeNode {
37  friend class PTree;
38  public:
42 
43  private:
44  PTreeNode(PTreeNode *_parent, ExecutionState *_data);
45  ~PTreeNode();
46  };
47 }
48 
49 #endif
PTreeNode * parent
Definition: PTree.h:39
PTreeNode * left
Definition: PTree.h:39
ExecutionState * data_type
Definition: PTree.h:19
class PTreeNode Node
Definition: PTree.h:22
void dump(llvm::raw_ostream &os)
Definition: PTree.cpp:53
PTreeNode(PTreeNode *_parent, ExecutionState *_data)
Definition: PTree.cpp:91
PTree(const data_type &_root)
Definition: PTree.cpp:21
Node * root
Definition: PTree.h:23
ref< Expr > condition
Definition: PTree.h:41
ExecutionState * data
Definition: PTree.h:40
PTreeNode * right
Definition: PTree.h:39
std::pair< Node *, Node * > split(Node *n, const data_type &leftData, const data_type &rightData)
Definition: PTree.cpp:27