You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
2.6 KiB
53 lines
2.6 KiB
#include "storm/settings/modules/Smt2SmtSolverSettings.h"
|
|
|
|
#include "storm/settings/SettingsManager.h"
|
|
|
|
#include "storm/settings/Option.h"
|
|
#include "storm/settings/OptionBuilder.h"
|
|
#include "storm/settings/ArgumentBuilder.h"
|
|
#include "storm/settings/Argument.h"
|
|
|
|
namespace storm {
|
|
namespace settings {
|
|
namespace modules {
|
|
|
|
const std::string Smt2SmtSolverSettings::moduleName = "smt2";
|
|
const std::string Smt2SmtSolverSettings::solverCommandOption = "solvercommand";
|
|
const std::string Smt2SmtSolverSettings::exportScriptOption = "exportscript";
|
|
|
|
Smt2SmtSolverSettings::Smt2SmtSolverSettings() : ModuleSettings(moduleName) {
|
|
this->addOption(storm::settings::OptionBuilder(moduleName, solverCommandOption, true, "If set, this command is used to call the solver and to let the solver know that it should read SMT-LIBv2 commands from standard input. If not set, only a SMT-LIB script file might be exported.").addArgument(storm::settings::ArgumentBuilder::createStringArgument("command", "path to the solver + command line arguments.").setDefaultValueString("").build()).build());
|
|
|
|
this->addOption(storm::settings::OptionBuilder(moduleName, exportScriptOption, true, "If set, the SMT-LIBv2 script will be exportet to this file.").addArgument(storm::settings::ArgumentBuilder::createStringArgument("path", "path and filename to the location where the script file should be exported to.").setDefaultValueString("").build()).build());
|
|
}
|
|
|
|
bool Smt2SmtSolverSettings::isSolverCommandSet() const{
|
|
return this->getOption(solverCommandOption).getHasOptionBeenSet();
|
|
}
|
|
|
|
std::string Smt2SmtSolverSettings::getSolverCommand() const{
|
|
return this->getOption(solverCommandOption).getArgumentByName("command").getValueAsString();
|
|
}
|
|
|
|
|
|
bool Smt2SmtSolverSettings::isExportSmtLibScriptSet() const{
|
|
return this->getOption(exportScriptOption).getHasOptionBeenSet();
|
|
}
|
|
|
|
|
|
std::string Smt2SmtSolverSettings::getExportSmtLibScriptPath() const{
|
|
return this->getOption(exportScriptOption).getArgumentByName("path").getValueAsString();
|
|
}
|
|
|
|
|
|
bool Smt2SmtSolverSettings::check() const {
|
|
if (isSolverCommandSet() || isExportSmtLibScriptSet()) {
|
|
//TODO check if paths are valid
|
|
|
|
}
|
|
return true;
|
|
}
|
|
|
|
} // namespace modules
|
|
} // namespace settings
|
|
} // namespace storm
|