summaryrefslogtreecommitdiff
path: root/src/printer/printer.cpp
diff options
context:
space:
mode:
authorMorgan Deters <mdeters@gmail.com>2012-06-08 21:21:42 +0000
committerMorgan Deters <mdeters@gmail.com>2012-06-08 21:21:42 +0000
commit58372a2ad23298810ae886a16db3c57f9df251af (patch)
tree7dd58f171e5b972f883a106f404aba989065c179 /src/printer/printer.cpp
parentf1b4a985be64e08b1a440b1eaf75d3f8e2105d01 (diff)
Extend Printer infrastructure also to the "Result" class, meaning that different output languages can write "sat", "unsat", etc., in different ways. No output is changed by this commit, but the flexibility is added that Francois wanted at today's meeting.
Diffstat (limited to 'src/printer/printer.cpp')
-rw-r--r--src/printer/printer.cpp35
1 files changed, 34 insertions, 1 deletions
diff --git a/src/printer/printer.cpp b/src/printer/printer.cpp
index e3b2ed796..cde063584 100644
--- a/src/printer/printer.cpp
+++ b/src/printer/printer.cpp
@@ -48,7 +48,40 @@ Printer* Printer::makePrinter(OutputLanguage lang) throw() {
default:
Unhandled(lang);
}
-
}/* Printer::makePrinter() */
+void Printer::toStream(std::ostream& out, const Result& r) const throw() {
+ if(r.getType() == Result::TYPE_SAT) {
+ switch(r.isSat()) {
+ case Result::UNSAT:
+ out << "unsat";
+ break;
+ case Result::SAT:
+ out << "sat";
+ break;
+ case Result::SAT_UNKNOWN:
+ out << "unknown";
+ if(r.whyUnknown() != Result::UNKNOWN_REASON) {
+ out << " (" << r.whyUnknown() << ")";
+ }
+ break;
+ }
+ } else {
+ switch(r.isValid()) {
+ case Result::INVALID:
+ out << "invalid";
+ break;
+ case Result::VALID:
+ out << "valid";
+ break;
+ case Result::VALIDITY_UNKNOWN:
+ out << "unknown";
+ if(r.whyUnknown() != Result::UNKNOWN_REASON) {
+ out << " (" << r.whyUnknown() << ")";
+ }
+ break;
+ }
+ }
+}/* Printer::toStream() */
+
}/* CVC4 namespace */
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback