summaryrefslogtreecommitdiff
path: root/src/preproc/preprocessing_pass.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/preproc/preprocessing_pass.h')
-rw-r--r--src/preproc/preprocessing_pass.h22
1 files changed, 21 insertions, 1 deletions
diff --git a/src/preproc/preprocessing_pass.h b/src/preproc/preprocessing_pass.h
index 5c9561c0a..d956993aa 100644
--- a/src/preproc/preprocessing_pass.h
+++ b/src/preproc/preprocessing_pass.h
@@ -14,6 +14,20 @@
namespace CVC4 {
namespace preproc {
+
+/** Useful for counting the number of recursive calls. */
+class ScopeCounter {
+private:
+ unsigned& d_depth;
+public:
+ ScopeCounter(unsigned& d) : d_depth(d) {
+ ++d_depth;
+ }
+ ~ScopeCounter(){
+ --d_depth;
+ }
+};
+
class AssertionPipeline {
std::vector<Node> d_nodes;
@@ -37,9 +51,15 @@ public:
}
};// class AssertionPipeline
+struct PreprocessingPassResult {
+ bool d_noConflict;
+ PreprocessingPassResult(bool noConflict) : d_noConflict(noConflict){
+}
+};
+
class PreprocessingPass {
public:
- virtual void apply(AssertionPipeline* assertionsToPreprocess) = 0;
+ virtual PreprocessingPassResult apply(AssertionPipeline* assertionsToPreprocess) = 0;
void dumpAssertions(const char* key, const AssertionPipeline& assertionList) {
if( Dump.isOn("assertions") &&
Dump.isOn(std::string("assertions:") + key) ) {
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback