ROSE 0.11.145.192
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 <Sawyer/CommandLine.h>
8
9#include <iostream>
10#include <string>
11
12namespace Rose {
13namespace BinaryAnalysis {
14
19bool listSmtSolverNames(std::ostream&);
20
24std::string validateSmtSolverName(const std::string &name);
25
30std::string bestSmtSolverName();
31
37void checkSmtCommandLineArg(const std::string &arg, const std::string &listSwitch, std::ostream &errorStream = std::cerr);
38
40std::string smtSolverDocumentationString(const std::string &dfltSolver);
41
48protected:
50public:
52 static Ptr instance() { return Ptr(new SmtSolverValidator); }
53protected:
54 void operator()(const Sawyer::CommandLine::ParserResult&);
55};
56
57} // namespace
58} // namespace
59
60#endif
61#endif
Validates SMT solver name from command-line.
The result from parsing a command line.
Base class for switch actions.
Reference-counting intrusive smart pointer.
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.
std::string bestSmtSolverName()
SMT solver corresponding to "best".
bool listSmtSolverNames(std::ostream &)
List known SMT solvers and their availability.
void checkSmtCommandLineArg(const std::string &arg, const std::string &listSwitch, std::ostream &errorStream=std::cerr)
Process SMT solver name from command-line.
The ROSE library.