summaryrefslogtreecommitdiff
path: root/src/theory/theory_engine.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/theory/theory_engine.h')
-rw-r--r--src/theory/theory_engine.h22
1 files changed, 20 insertions, 2 deletions
diff --git a/src/theory/theory_engine.h b/src/theory/theory_engine.h
index 75f4d6a37..d1d6bd1f3 100644
--- a/src/theory/theory_engine.h
+++ b/src/theory/theory_engine.h
@@ -274,7 +274,9 @@ class TheoryEngine {
void spendResource() throw() {
d_engine->spendResource();
}
-
+ void handleUserAttribute( const char* attr, theory::Theory* t ){
+ d_engine->handleUserAttribute( attr, t );
+ }
};/* class TheoryEngine::EngineOutputChannel */
/**
@@ -616,7 +618,7 @@ public:
/**
* collect model info
*/
- void collectModelInfo( theory::TheoryModel* m );
+ void collectModelInfo( theory::TheoryModel* m, bool fullModel );
/**
* Get the current model
@@ -680,6 +682,22 @@ public:
SharedTermsDatabase* getSharedTermsDatabase() { return &d_sharedTerms; }
+private:
+ std::map< std::string, std::vector< theory::Theory* > > d_attr_handle;
+public:
+
+ /** Set user attribute
+ * This function is called when an attribute is set by a user. In SMT-LIBv2 this is done
+ * via the syntax (! n :attr)
+ */
+ void setUserAttribute( std::string& attr, Node n );
+
+ /** Handle user attribute
+ * Associates theory t with the attribute attr. Theory t will be
+ * notifed whenever an attribute of name attr is set.
+ */
+ void handleUserAttribute( const char* attr, theory::Theory* t );
+
};/* class TheoryEngine */
}/* CVC4 namespace */
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback