summaryrefslogtreecommitdiff
path: root/src/compat
diff options
context:
space:
mode:
authorMorgan Deters <mdeters@gmail.com>2011-09-29 18:38:00 +0000
committerMorgan Deters <mdeters@gmail.com>2011-09-29 18:38:00 +0000
commite664ad1de4d35f5e37055706390a3e0ee6d8219b (patch)
tree96cfa7f62547152fc754c6c90c3527b58edb9972 /src/compat
parent42f89e550bb15d401c335ded7912a871b2b45af3 (diff)
compatibility work, documentation
Diffstat (limited to 'src/compat')
-rw-r--r--src/compat/cvc3_compat.cpp30
-rw-r--r--src/compat/cvc3_compat.h2
2 files changed, 27 insertions, 5 deletions
diff --git a/src/compat/cvc3_compat.cpp b/src/compat/cvc3_compat.cpp
index 896a13681..25901f872 100644
--- a/src/compat/cvc3_compat.cpp
+++ b/src/compat/cvc3_compat.cpp
@@ -648,11 +648,30 @@ void CLFlags::setFlag(const std::string& name,
(*i).second = sv;
}
+void ValidityChecker::setUpOptions(CVC4::Options& options, const CLFlags& clflags) {
+ // always incremental and model-producing in CVC3 compatibility mode
+ options.incrementalSolving = true;
+ options.produceModels = true;
+
+ options.statistics = clflags["stats"].getBool();
+ options.satRandomSeed = double(clflags["seed"].getInt());
+ options.interactive = clflags["interactive"].getBool();
+ if(options.interactive) {
+ options.interactiveSetByUser = true;
+ }
+ options.parseOnly = clflags["parse-only"].getBool();
+ options.setInputLanguage(clflags["lang"].getString().c_str());
+ if(clflags["output-lang"].getString() == "") {
+ options.outputLanguage = CVC4::language::toOutputLanguage(options.inputLanguage);
+ } else {
+ options.setOutputLanguage(clflags["output-lang"].getString().c_str());
+ }
+}
+
ValidityChecker::ValidityChecker() :
d_clflags(new CLFlags()),
d_options() {
- d_options.incrementalSolving = true;
-#warning fixme other options from clflags ??
+ setUpOptions(d_options, *d_clflags);
d_em = new CVC4::ExprManager(d_options);
d_smt = new CVC4::SmtEngine(d_em);
}
@@ -660,8 +679,7 @@ ValidityChecker::ValidityChecker() :
ValidityChecker::ValidityChecker(const CLFlags& clflags) :
d_clflags(new CLFlags(clflags)),
d_options() {
- d_options.incrementalSolving = true;
-#warning fixme other options from clflags ??
+ setUpOptions(d_options, *d_clflags);
d_em = new CVC4::ExprManager(d_options);
d_smt = new CVC4::SmtEngine(d_em);
}
@@ -696,7 +714,7 @@ CLFlags ValidityChecker::createFlags() {
flags.addFlag("version",CLFlag(true, "print version information and exit"));
flags.addFlag("interactive", CLFlag(false, "Interactive mode"));
flags.addFlag("stats", CLFlag(false, "Print run-time statistics"));
- flags.addFlag("seed", CLFlag(1, "Set the seed for random sequence"));
+ flags.addFlag("seed", CLFlag(91648253, "Set the seed for random sequence"));
flags.addFlag("printResults", CLFlag(true, "Print results of interactive commands."));
flags.addFlag("dump-log", CLFlag("", "Dump API call log in CVC3 input "
"format to given file "
@@ -1905,6 +1923,7 @@ void ValidityChecker::loadFile(const std::string& fileName,
CVC4::Options opts = *d_em->getOptions();
opts.inputLanguage = lang;
opts.interactive = interactive;
+ opts.interactiveSetByUser = true;
CVC4::parser::ParserBuilder parserBuilder(d_em, fileName, opts);
CVC4::parser::Parser* parser = parserBuilder.build();
doCommands(parser, d_smt, opts);
@@ -1917,6 +1936,7 @@ void ValidityChecker::loadFile(std::istream& is,
CVC4::Options opts = *d_em->getOptions();
opts.inputLanguage = lang;
opts.interactive = interactive;
+ opts.interactiveSetByUser = true;
CVC4::parser::ParserBuilder parserBuilder(d_em, "[stream]", opts);
CVC4::parser::Parser* parser = parserBuilder.withStreamInput(is).build();
doCommands(parser, d_smt, opts);
diff --git a/src/compat/cvc3_compat.h b/src/compat/cvc3_compat.h
index 81ac3a6aa..63df75a68 100644
--- a/src/compat/cvc3_compat.h
+++ b/src/compat/cvc3_compat.h
@@ -464,6 +464,8 @@ class CVC4_PUBLIC ValidityChecker {
ValidityChecker(const CLFlags& clflags);
+ void setUpOptions(CVC4::Options& options, const CLFlags& clflags);
+
public:
//! Constructor
ValidityChecker();
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback