1 #ifndef ROSE_BinaryAnalysis_ModelChecker_SourceLister_H
2 #define ROSE_BinaryAnalysis_ModelChecker_SourceLister_H
3 #include <featureTests.h>
4 #ifdef ROSE_ENABLE_MODEL_CHECKER
6 #include <Rose/BinaryAnalysis/ModelChecker/Types.h>
8 #include <boost/filesystem.hpp>
9 #include <boost/format.hpp>
10 #include <Rose/SourceLocation.h>
13 namespace BinaryAnalysis {
14 namespace ModelChecker {
21 using Ptr = SourceListerPtr;
24 std::vector<boost::filesystem::path> directories;
25 boost::format currentLineFormat{
"| ==> %06d %s"};
26 boost::format contextLineFormat{
"| %06d %s"};
27 size_t leadingContext = 3;
28 size_t trailingContext = 3;
32 mutable SAWYER_THREAD_TRAITS::Mutex mutex_;
38 explicit SourceLister(
const Settings&);
49 static Ptr instance();
50 static Ptr instance(
const Settings&);
61 boost::format currentLineFormat()
const;
62 void currentLineFormat(
const boost::format&);
73 boost::format contextLineFormat()
const;
74 void contextLineFormat(
const boost::format&);
85 size_t leadingContext()
const;
86 void leadingContext(
size_t);
97 size_t trailingContext()
const;
98 void trailingContext(
size_t);
109 std::vector<boost::filesystem::path> directories()
const;
110 void directories(
const std::vector<boost::filesystem::path>&);
119 void appendDirectory(
const boost::filesystem::path&);
128 bool list(std::ostream&,
const SourceLocation&,
const std::string &prefix);
136 static std::vector<boost::filesystem::path> decompose(
const boost::filesystem::path&);
140 static boost::filesystem::path findFile(
const boost::filesystem::path &dir,
const std::vector<boost::filesystem::path> &names);
Main namespace for the ROSE library.
Sawyer::SharedPointer< Node > Ptr
Reference counting pointer.
Container associating values with keys.