CBMC
path.h
Go to the documentation of this file.
1 /*******************************************************************\
2 
3 Module: Loop Acceleration
4 
5 Author: Matt Lewis
6 
7 \*******************************************************************/
8 
11 
12 #ifndef CPROVER_GOTO_INSTRUMENT_ACCELERATE_PATH_H
13 #define CPROVER_GOTO_INSTRUMENT_ACCELERATE_PATH_H
14 
15 #include <iosfwd>
16 #include <list>
17 
18 #include <util/std_expr.h>
19 
21 
23 {
24 public:
25  explicit path_nodet(const goto_programt::targett &_loc):
26  loc(_loc),
27  guard(nil_exprt())
28  {
29  }
30 
32  const exprt &_guard) :
33  loc(_loc),
34  guard(_guard)
35  {
36  }
37 
38  void output(const goto_programt &program, std::ostream &str) const;
39 
41  const exprt guard;
42 };
43 
44 typedef std::list<path_nodet> patht;
45 typedef std::list<patht> pathst;
46 
48  const patht &path,
49  const goto_programt &program,
50  const namespacet &ns,
51  std::ostream &str);
52 
53 #endif // CPROVER_GOTO_INSTRUMENT_ACCELERATE_PATH_H
Base class for all expressions.
Definition: expr.h:56
A generic container class for the GOTO intermediate representation of one function.
Definition: goto_program.h:73
instructionst::iterator targett
Definition: goto_program.h:614
A namespacet is essentially one or two symbol tables bound together, to allow for symbol lookups in t...
Definition: namespace.h:94
The NIL expression.
Definition: std_expr.h:3073
goto_programt::targett loc
Definition: path.h:40
path_nodet(const goto_programt::targett &_loc, const exprt &_guard)
Definition: path.h:31
const exprt guard
Definition: path.h:41
path_nodet(const goto_programt::targett &_loc)
Definition: path.h:25
void output(const goto_programt &program, std::ostream &str) const
Concrete Goto Program.
void output_path(const patht &path, const goto_programt &program, const namespacet &ns, std::ostream &str)
std::list< patht > pathst
Definition: path.h:45
std::list< path_nodet > patht
Definition: path.h:44
API to expression classes.