ROSE  0.11.50.0
printAnalysisStates.h
1 #include <featureTests.h>
2 #ifdef ROSE_ENABLE_SOURCE_ANALYSIS
3 
4 #ifndef PRINT_ANALYSIS_STATES_H
5 #define PRINT_ANALYSIS_STATES_H
6 
7 #include "genericDataflowCommon.h"
8 #include "VirtualCFGIterator.h"
9 #include "cfgUtils.h"
10 #include "CallGraphTraverse.h"
11 #include "analysisCommon.h"
12 #include "analysis.h"
13 #include "dataflow.h"
14 #include "latticeFull.h"
15 #include "lattice.h"
16 
17 #include <vector>
18 #include <string>
19 
21 {
22  public:
23  Analysis* creator;
24  std::vector<int> latticeNames;
25  std::vector<int> factNames;
26  std::string indent;
27  typedef enum {above=0, below=1} ab;
28  ab latSide; // Records whether we should print lattices above or below each node.
29 
30  printAnalysisStates(Analysis* creator, std::vector<int>& factNames, std::vector<int>& latticeNames, ab latSide, std::string indent);
31 
32  void visit(const Function& func, const DataflowNode& n, NodeState& state);
33 };
34 
35 #endif
36 #endif