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:
parent
01f085ab53
commit
8bb2442a3f
5 changed files with 48 additions and 1 deletions
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue