3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-24 12:07:52 +00:00

make smt2 log scope aware

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2019-10-08 18:14:32 -07:00
parent 01f085ab53
commit 8bb2442a3f
5 changed files with 48 additions and 1 deletions

View file

@ -69,7 +69,6 @@ void decl_collector::visit(ast* n) {
if (m_visited.is_marked(n))
return;
datatype_util util(m());
m_trail.push_back(n);
m_todo.push_back(n);
while (!m_todo.empty()) {
n = m_todo.back();
@ -114,6 +113,7 @@ void decl_collector::visit(ast* n) {
UNREACHABLE();
}
m_visited.mark(n, true);
m_trail.push_back(n);
}
}
}
@ -161,4 +161,23 @@ void decl_collector::collect_deps(sort* s, sort_set& set) {
}
}
void decl_collector::push() {
m_trail_lim.push_back(m_trail.size());
m_sorts_lim.push_back(m_sorts.size());
m_decls_lim.push_back(m_decls.size());
}
void decl_collector::pop(unsigned n) {
SASSERT(n > 0);
unsigned sz = m_trail_lim[m_trail_lim.size() - n];
for (unsigned i = m_trail.size(); i-- > sz; ) {
m_visited.mark(m_trail.get(i), false);
}
m_trail.shrink(sz);
m_sorts.shrink(m_sorts_lim[m_sorts_lim.size() - n]);
m_decls.shrink(m_decls_lim[m_decls_lim.size() - n]);
m_trail_lim.shrink(m_trail_lim.size() - n);
m_sorts_lim.shrink(m_sorts_lim.size() - n);
m_decls_lim.shrink(m_decls_lim.size() - n);
}