summaryrefslogtreecommitdiff
path: root/src/printer
diff options
context:
space:
mode:
authorajreynol <andrew.j.reynolds@gmail.com>2015-06-12 16:32:32 +0200
committerajreynol <andrew.j.reynolds@gmail.com>2015-06-12 16:32:32 +0200
commit61415ee2c5659893055f71d84a38eab8701dc47a (patch)
treeca7c2f9c5f0dc846dd91d6f96d569855eeee531e /src/printer
parentad0863ae8333c4dcd950153e0db8cd4565a250b3 (diff)
Make sygus an output language. Parse declare-fun in sygus. Minor improvements to robustness of sygus parsing.
Diffstat (limited to 'src/printer')
-rw-r--r--src/printer/printer.cpp3
-rw-r--r--src/printer/smt2/smt2_printer.cpp6
-rw-r--r--src/printer/smt2/smt2_printer.h3
3 files changed, 10 insertions, 2 deletions
diff --git a/src/printer/printer.cpp b/src/printer/printer.cpp
index a8e2534dc..242638f82 100644
--- a/src/printer/printer.cpp
+++ b/src/printer/printer.cpp
@@ -55,6 +55,9 @@ Printer* Printer::makePrinter(OutputLanguage lang) throw() {
case LANG_Z3STR:
return new printer::smt2::Smt2Printer(printer::smt2::z3str_variant);
+ case LANG_SYGUS:
+ return new printer::smt2::Smt2Printer(printer::smt2::sygus_variant);
+
case LANG_AST:
return new printer::ast::AstPrinter();
diff --git a/src/printer/smt2/smt2_printer.cpp b/src/printer/smt2/smt2_printer.cpp
index 7648a1587..79cb18d92 100644
--- a/src/printer/smt2/smt2_printer.cpp
+++ b/src/printer/smt2/smt2_printer.cpp
@@ -152,7 +152,11 @@ void Smt2Printer::toStream(std::ostream& out, TNode n,
}
break;
case kind::BITVECTOR_TYPE:
- out << "(_ BitVec " << n.getConst<BitVectorSize>().size << ")";
+ if(d_variant == sygus_variant ){
+ out << "(BitVec " << n.getConst<BitVectorSize>().size << ")";
+ }else{
+ out << "(_ BitVec " << n.getConst<BitVectorSize>().size << ")";
+ }
break;
case kind::FLOATINGPOINT_TYPE:
out << "(_ FloatingPoint "
diff --git a/src/printer/smt2/smt2_printer.h b/src/printer/smt2/smt2_printer.h
index 4455a053c..ba6276aa2 100644
--- a/src/printer/smt2/smt2_printer.h
+++ b/src/printer/smt2/smt2_printer.h
@@ -30,7 +30,8 @@ namespace smt2 {
enum Variant {
no_variant,
smt2_0_variant, // old-style 2.0 syntax, when it makes a difference
- z3str_variant // old-style 2.0 and also z3str syntax
+ z3str_variant, // old-style 2.0 and also z3str syntax
+ sygus_variant // variant for sygus
};/* enum Variant */
class Smt2Printer : public CVC4::Printer {
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback