16 mArguments +=
" --stats.print --analyze.enabled";
20 virtual bool canHandle(
const fs::path& path)
const override {
28 std::regex topRegex(
"\\(\\:(\\S+)\\s*\\(\\s*((?:\\:\\S+\\s*\\S+\\s*)+)\\)\\)");
29 std::regex subRegex(
"\\s*\\:(\\S+)\\s*(\\S+)");
31 auto topBegin = std::sregex_iterator(
result.stdout.begin(),
result.stdout.end(), topRegex);
32 auto topEnd = std::sregex_iterator();
33 for (
auto i = topBegin; i != topEnd; ++i) {
34 const std::string&
prefix = (*i)[1];
35 const std::string& subStdout = (*i)[2];
37 auto subBegin = std::sregex_iterator(subStdout.begin(), subStdout.end(), subRegex);
38 auto subEnd = std::sregex_iterator();
39 for (
auto j = subBegin; j != subEnd; ++j) {
40 std::string
name =
prefix +
"_" + std::string((*j)[1]);
Tool wrapper for SMT-RAT for SMT-LIB.
SMTRAT_Analyzer(const fs::path &binary, const std::string &arguments)
New SMT-RAT tool.
virtual bool canHandle(const fs::path &path) const override
Only handle .smt2 files.
virtual void additionalResults(const fs::path &, BenchmarkResult &result) const override
Computes the answer string from the exit code and parses statistics output.
bool is_extension(const std::filesystem::path &path, const std::string &extension)
Checks whether the extension of the filename is as specified.
std::vector< T > prefix(const std::vector< T > vars, std::size_t prefixSize)
Results for a single benchmark run.