summaryrefslogtreecommitdiff
path: root/src/preprocessing/preprocessing_pass_context.h
diff options
context:
space:
mode:
authorjustinxu421 <justinx@stanford.edu>2017-12-10 16:39:02 -0800
committerAndres Noetzli <andres.noetzli@gmail.com>2017-12-10 16:39:02 -0800
commitdc0dd5e34f9b2fe1ef79602cc2a5f3deeb7d684a (patch)
tree15a11feeb526056255f46939e6b4ef8c5306ca83 /src/preprocessing/preprocessing_pass_context.h
parent2119637a89ad7af0eb8a4d326b78f2ecaa89012d (diff)
Add new infrastructure for preprocessing passes (#1053)
This commit adds new infrastructure for preprocessing passes. It is preparation only, it does not change how the current preprocessing passes work (this will be done in future commits).
Diffstat (limited to 'src/preprocessing/preprocessing_pass_context.h')
-rw-r--r--src/preprocessing/preprocessing_pass_context.h49
1 files changed, 49 insertions, 0 deletions
diff --git a/src/preprocessing/preprocessing_pass_context.h b/src/preprocessing/preprocessing_pass_context.h
new file mode 100644
index 000000000..2e7a4eaf2
--- /dev/null
+++ b/src/preprocessing/preprocessing_pass_context.h
@@ -0,0 +1,49 @@
+/********************* */
+/*! \file preprocessing_pass_context.h
+ ** \verbatim
+ ** Top contributors (to current version):
+ ** Justin Xu
+ ** This file is part of the CVC4 project.
+ ** Copyright (c) 2009-2017 by the authors listed in the file AUTHORS
+ ** in the top-level source directory) and their institutional affiliations.
+ ** All rights reserved. See the file COPYING in the top-level source
+ ** directory for licensing information.\endverbatim
+ **
+ ** \brief The preprocessing pass context for passes
+ **
+ ** Implementation of the preprocessing pass context for passes. This context
+ ** allows preprocessing passes to retrieve information besides the assertions
+ ** from the solver and interact with it without getting full access.
+ **/
+
+#include "cvc4_private.h"
+
+#ifndef __CVC4__PREPROCESSING__PREPROCESSING_PASS_CONTEXT_H
+#define __CVC4__PREPROCESSING__PREPROCESSING_PASS_CONTEXT_H
+
+#include "decision/decision_engine.h"
+#include "smt/smt_engine.h"
+#include "theory/arith/pseudoboolean_proc.h"
+#include "theory/booleans/circuit_propagator.h"
+#include "theory/theory_engine.h"
+
+namespace CVC4 {
+namespace preprocessing {
+
+class PreprocessingPassContext {
+ public:
+ PreprocessingPassContext(SmtEngine* smt);
+ SmtEngine* getSmt() { return d_smt; }
+ TheoryEngine* getTheoryEngine() { return d_smt->d_theoryEngine; }
+ DecisionEngine* getDecisionEngine() { return d_smt->d_decisionEngine; }
+ prop::PropEngine* getPropEngine() { return d_smt->d_propEngine; }
+
+ private:
+ /* Pointer to the SmtEngine that this context was created in. */
+ SmtEngine* d_smt;
+}; // class PreprocessingPassContext
+
+} // namespace preprocessing
+} // namespace CVC4
+
+#endif /* __CVC4__PREPROCESSING__PREPROCESSING_PASS_CONTEXT_H */
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback