diff options
author | Aina Niemetz <aina.niemetz@gmail.com> | 2018-02-28 12:19:25 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-02-28 12:19:25 -0800 |
commit | dfcd935acb928ff27c4b24a89de37338411d2543 (patch) | |
tree | befdc279791a4d1fc2df1fa29b56ab3dc04e8baf /src/smt/command.cpp | |
parent | d39210bb485c13e7f3290e4e7faab9c5830f437d (diff) |
SmtEngine::getAssignment now returns a vector of assignments. (#1628)
Diffstat (limited to 'src/smt/command.cpp')
-rw-r--r-- | src/smt/command.cpp | 18 |
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) |