ROSE  0.9.10.95
BinarySmtCommandLine.h
1 // Command-line processing utilities related to SMT solvers
2 #ifndef Rose_BinaryAnalysis_SmtCommandLine
3 #define Rose_BinaryAnalysis_SmtCommandLine
4 
5 #include <iostream>
6 #include <string>
7 
8 namespace Rose {
9 namespace BinaryAnalysis {
10 
15 bool listSmtSolverNames(std::ostream&);
16 
20 std::string validateSmtSolverName(const std::string &name);
21 
26 std::string bestSmtSolverName();
27 
33 void checkSmtCommandLineArg(const std::string &arg, const std::string &listSwitch, std::ostream &errorStream = std::cerr);
34 
36 std::string smtSolverDocumentationString(const std::string &dfltSolver);
37 
44 protected:
46 public:
48  static Ptr instance() { return Ptr(new SmtSolverValidator); }
49 protected:
50  void operator()(const Sawyer::CommandLine::ParserResult&);
51 };
52 
53 } // namespace
54 } // namespace
55 
56 #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 smart pointer.
Definition: SharedPointer.h:34
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.