summaryrefslogtreecommitdiff
path: root/src/printer/smt2
diff options
context:
space:
mode:
authorajreynol <andrew.j.reynolds@gmail.com>2016-06-17 15:55:56 -0500
committerajreynol <andrew.j.reynolds@gmail.com>2016-06-17 15:57:28 -0500
commit1a2547995acc5a98c8969e628ac5e1c45b0efe94 (patch)
tree0d9abd19ba7b3b742da3e745da00c0457237f84b /src/printer/smt2
parent0348b525a951a8709f9dc4b5757ce0bcb48a9472 (diff)
Support for separation logic. Enable cbqi by default for pure BV.
Diffstat (limited to 'src/printer/smt2')
-rw-r--r--src/printer/smt2/smt2_printer.cpp19
1 files changed, 18 insertions, 1 deletions
diff --git a/src/printer/smt2/smt2_printer.cpp b/src/printer/smt2/smt2_printer.cpp
index f874074ac..7b6bc8708 100644
--- a/src/printer/smt2/smt2_printer.cpp
+++ b/src/printer/smt2/smt2_printer.cpp
@@ -318,7 +318,12 @@ void Smt2Printer::toStream(std::ostream& out, TNode n,
}
return;
}
-
+
+ if( n.getKind() == kind::SEP_NIL ){
+ out << "sep.nil";
+ return;
+ }
+
bool stillNeedToPrintParams = true;
bool forceBinary = false; // force N-ary to binary when outputing children
// operator
@@ -581,6 +586,12 @@ void Smt2Printer::toStream(std::ostream& out, TNode n,
case kind::APPLY_SELECTOR_TOTAL:
case kind::PARAMETRIC_DATATYPE:
break;
+
+ //separation
+ case kind::EMP_STAR:
+ case kind::SEP_PTO:
+ case kind::SEP_STAR:
+ case kind::SEP_WAND:out << smtKindString(k) << " "; break;
// quantifiers
case kind::FORALL:
@@ -853,6 +864,12 @@ static string smtKindString(Kind k) throw() {
case kind::REGEXP_RANGE: return "re.range";
case kind::REGEXP_LOOP: return "re.loop";
+ //sep theory
+ case kind::SEP_STAR: return "sep";
+ case kind::SEP_PTO: return "pto";
+ case kind::SEP_WAND: return "wand";
+ case kind::EMP_STAR: return "emp";
+
default:
; /* fall through */
}
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback