summaryrefslogtreecommitdiff
path: root/src/options/options_handler.cpp
diff options
context:
space:
mode:
authorajreynol <andrew.j.reynolds@gmail.com>2016-05-18 10:06:49 -0500
committerajreynol <andrew.j.reynolds@gmail.com>2016-05-18 10:06:49 -0500
commit2e02c1c2fb999f2f1cdefe867f843c2c46ad0ef0 (patch)
treee9234dd807818316a9029cab5badc62b6874fa67 /src/options/options_handler.cpp
parent8768c1079798599bbe27b29bc49087d45857a112 (diff)
Refactor modes for sygus+single invocation. Add option --inst-rlv-cond. Minor fixes for inst max level.
Diffstat (limited to 'src/options/options_handler.cpp')
-rw-r--r--src/options/options_handler.cpp36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/options/options_handler.cpp b/src/options/options_handler.cpp
index cbef7109f..867feef6e 100644
--- a/src/options/options_handler.cpp
+++ b/src/options/options_handler.cpp
@@ -425,6 +425,24 @@ all \n\
\n\
";
+const std::string OptionsHandler::s_cegqiSingleInvHelp = "\
+Modes for single invocation techniques, supported by --cegqi-si:\n\
+\n\
+none \n\
++ Do not use single invocation techniques.\n\
+\n\
+use (default) \n\
++ Use single invocation techniques only if grammar is not restrictive.\n\
+\n\
+all-abort \n\
++ Always use single invocation techniques, abort if solution reconstruction will likely fail,\
+ for instance, when the grammar does not have ITE and solution requires it.\n\
+\n\
+all \n\
++ Always use single invocation techniques. \n\
+\n\
+";
+
const std::string OptionsHandler::s_sygusInvTemplHelp = "\
Template modes for sygus invariant synthesis, supported by --sygus-inv-templ:\n\
\n\
@@ -700,6 +718,24 @@ theory::quantifiers::IteLiftQuantMode OptionsHandler::stringToIteLiftQuantMode(s
}
}
+theory::quantifiers::CegqiSingleInvMode OptionsHandler::stringToCegqiSingleInvMode(std::string option, std::string optarg) throw(OptionException) {
+ if(optarg == "none" ) {
+ return theory::quantifiers::CEGQI_SI_MODE_NONE;
+ } else if(optarg == "use" || optarg == "default") {
+ return theory::quantifiers::CEGQI_SI_MODE_USE;
+ } else if(optarg == "all-abort") {
+ return theory::quantifiers::CEGQI_SI_MODE_ALL_ABORT;
+ } else if(optarg == "all") {
+ return theory::quantifiers::CEGQI_SI_MODE_ALL;
+ } else if(optarg == "help") {
+ puts(s_cegqiSingleInvHelp.c_str());
+ exit(1);
+ } else {
+ throw OptionException(std::string("unknown option for --cegqi-si: `") +
+ optarg + "'. Try --cegqi-si help.");
+ }
+}
+
theory::quantifiers::SygusInvTemplMode OptionsHandler::stringToSygusInvTemplMode(std::string option, std::string optarg) throw(OptionException) {
if(optarg == "none" ) {
return theory::quantifiers::SYGUS_INV_TEMPL_MODE_NONE;
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback