summaryrefslogtreecommitdiff
path: root/src/smt/command.cpp
diff options
context:
space:
mode:
authorAina Niemetz <aina.niemetz@gmail.com>2018-02-28 12:19:25 -0800
committerGitHub <noreply@github.com>2018-02-28 12:19:25 -0800
commitdfcd935acb928ff27c4b24a89de37338411d2543 (patch)
treebefdc279791a4d1fc2df1fa29b56ab3dc04e8baf /src/smt/command.cpp
parentd39210bb485c13e7f3290e4e7faab9c5830f437d (diff)
SmtEngine::getAssignment now returns a vector of assignments. (#1628)
Diffstat (limited to 'src/smt/command.cpp')
-rw-r--r--src/smt/command.cpp18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/smt/command.cpp b/src/smt/command.cpp
index 25479a20b..040d87250 100644
--- a/src/smt/command.cpp
+++ b/src/smt/command.cpp
@@ -1321,7 +1321,23 @@ void GetAssignmentCommand::invoke(SmtEngine* smtEngine)
{
try
{
- d_result = smtEngine->getAssignment();
+ std::vector<std::pair<Expr,Expr>> assignments = smtEngine->getAssignment();
+ vector<SExpr> sexprs;
+ for (const auto& p : assignments)
+ {
+ vector<SExpr> v;
+ if (p.first.getKind() == kind::APPLY)
+ {
+ v.emplace_back(SExpr::Keyword(p.first.getOperator().toString()));
+ }
+ else
+ {
+ v.emplace_back(SExpr::Keyword(p.first.toString()));
+ }
+ v.emplace_back(SExpr::Keyword(p.second.toString()));
+ sexprs.emplace_back(v);
+ }
+ d_result = SExpr(sexprs);
d_commandStatus = CommandSuccess::instance();
}
catch (RecoverableModalException& e)
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback