diff options
author | Morgan Deters <mdeters@gmail.com> | 2012-11-27 02:13:38 +0000 |
---|---|---|
committer | Morgan Deters <mdeters@gmail.com> | 2012-11-27 02:13:38 +0000 |
commit | b122cec27ca27d0b48e786191448e0053be78ed0 (patch) | |
tree | 615981d8623e830894f02fc528b173ac7461f934 /src/smt/model_postprocessor.h | |
parent | 3da16da97df7cd2efd4b113db3bfef8b9c138ebe (diff) |
Tuples and records merge. Resolves bug 270.
Also some fixes to parametric datatypes I found, and fixes for a handful of bugs, including some observed with --check-models --incremental on together.
(this commit was certified error- and warning-free by the test-and-commit script.)
Diffstat (limited to 'src/smt/model_postprocessor.h')
-rw-r--r-- | src/smt/model_postprocessor.h | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/src/smt/model_postprocessor.h b/src/smt/model_postprocessor.h new file mode 100644 index 000000000..08e6168d9 --- /dev/null +++ b/src/smt/model_postprocessor.h @@ -0,0 +1,50 @@ +/********************* */ +/*! \file model_postprocessor.h + ** \verbatim + ** Original author: mdeters + ** Major contributors: none + ** Minor contributors (to current version): none + ** This file is part of the CVC4 prototype. + ** Copyright (c) 2009-2012 New York University and The University of Iowa + ** See the file COPYING in the top-level source directory for licensing + ** information.\endverbatim + ** + ** \brief + ** + ** + **/ + +#include "cvc4_private.h" + +#ifndef __CVC4__MODEL_POSTPROCESSOR_H +#define __CVC4__MODEL_POSTPROCESSOR_H + +#include "expr/node.h" + +namespace CVC4 { +namespace smt { + +class ModelPostprocessor { +public: + typedef Node return_type; + std::hash_map<TNode, Node, TNodeHashFunction> d_nodes; + + bool alreadyVisited(TNode current, TNode parent) { + return d_nodes.find(current) != d_nodes.end(); + } + + void visit(TNode current, TNode parent); + + void start(TNode n) { } + + Node done(TNode n) { + Assert(alreadyVisited(n, TNode::null())); + TNode retval = d_nodes[n]; + return retval.isNull() ? n : retval; + } +};/* class ModelPostprocessor */ + +}/* CVC4::smt namespace */ +}/* CVC4 namespace */ + +#endif /* __CVC4__MODEL_POSTPROCESSOR_H */ |