From 91424455840a7365a328cbcc3d02ec453fe9d0ea Mon Sep 17 00:00:00 2001 From: Tim King Date: Thu, 14 Nov 2013 11:56:34 -0500 Subject: Adding the changes needed to delete rewriter attributes. This includes being able to list attributes. Additionally, added debugging hooks to node manager and attribute manager. --- src/theory/rewriter_tables_template.h | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'src/theory/rewriter_tables_template.h') diff --git a/src/theory/rewriter_tables_template.h b/src/theory/rewriter_tables_template.h index 408bdec1a..17aed4e42 100644 --- a/src/theory/rewriter_tables_template.h +++ b/src/theory/rewriter_tables_template.h @@ -21,6 +21,8 @@ #include "theory/rewriter.h" #include "theory/rewriter_attributes.h" +#include "expr/attribute_unique_id.h" +#include "expr/attribute.h" ${rewriter_includes} @@ -83,5 +85,23 @@ void Rewriter::shutdown() { ${rewrite_shutdown} } +void Rewriter::garbageCollect() { + typedef CVC4::expr::attr::AttributeUniqueId AttributeUniqueId; + std::vector preids; + ${pre_rewrite_attribute_ids} + + std::vector postids; + ${post_rewrite_attribute_ids} + + std::vector allids; + for(unsigned i = 0; i < preids.size(); ++i){ + allids.push_back(&preids[i]); + } + for(unsigned i = 0; i < postids.size(); ++i){ + allids.push_back(&postids[i]); + } + NodeManager::currentNM()->deleteAttributes(allids); +} + }/* CVC4::theory namespace */ }/* CVC4 namespace */ -- cgit v1.2.3