ROSE  0.11.50.0
SmtCommandLine.h
1 // Command-line processing utilities related to SMT solvers
2 #ifndef ROSE_BinaryAnalysis_SmtCommandLine_H
3 #define ROSE_BinaryAnalysis_SmtCommandLine_H
4 #include <featureTests.h>
5 #ifdef ROSE_ENABLE_BINARY_ANALYSIS
6 
7 #include <iostream>
8 #include <string>
9 
10 namespace Rose {
11 namespace BinaryAnalysis {
12 
17 bool listSmtSolverNames(std::ostream&);
18 
22 std::string validateSmtSolverName(const std::string &name);
23 
28 std::string bestSmtSolverName();
29 
35 void checkSmtCommandLineArg(const std::string &arg, const std::string &listSwitch, std::ostream &errorStream = std::cerr);
36 
38 std::string smtSolverDocumentationString(const std::string &dfltSolver);
39 
46 protected:
48 public:
50  static Ptr instance() { return Ptr(new SmtSolverValidator); }
51 protected:
52  void operator()(const Sawyer::CommandLine::ParserResult&);
53 };
54 
55 } // namespace
56 } // namespace
57 
58 #endif
59 #endif
Validates SMT solver name from command-line.
bool listSmtSolverNames(std::ostream &)
List known SMT solvers and their availability.
The result from parsing a command line.
Main namespace for the ROSE library.
void checkSmtCommandLineArg(const std::string &arg, const std::string &listSwitch, std::ostream &errorStream=std::cerr)
Process SMT solver name from command-line.
Reference-counting intrusive smart pointer.
Definition: SharedPointer.h:68
std::string bestSmtSolverName()
SMT solver corresponding to "best".
std::string smtSolverDocumentationString(const std::string &dfltSolver)
Documentation string for an SMT solver switch.
std::string validateSmtSolverName(const std::string &name)
Validate SMT solver name.
Base class for switch actions.