summaryrefslogtreecommitdiff
path: root/src/expr/expr_manager.h
diff options
context:
space:
mode:
authorMorgan Deters <mdeters@gmail.com>2010-03-05 08:26:37 +0000
committerMorgan Deters <mdeters@gmail.com>2010-03-05 08:26:37 +0000
commit88b52c971b43248e6ceacf1c8140a06427d0418d (patch)
tree4ee443c898a858fcdd658f3f043e4180eddd8784 /src/expr/expr_manager.h
parent29cc307cdf2c42bebf4f5615874a864783f47fd0 (diff)
* public/private code untangled (smt/smt_engine.h no longer #includes
expr/node.h). This removes the warnings we had during compilation, and heads off a number of potential linking errors due to improper inlining of private (library-only) stuff in client (out-of-library) code. * "configure" now takes some options as part of a "bare-option" build type (e.g., "./configure debug-coverage" or "./configure production-muzzle"). * split cdo.h, cdlist.h, cdmap.h, and cdset.h from context.h * split cdlist_black unit test from context_black * implement CDMap<>. * give ExprManagers ownership of the context (and have SmtEngine share that one) * fix main driver to properly report file-not-found * fix MemoryMappedInputBuffer class to report reasons for "errno"-returned system errors * src/expr/attribute.h: context-dependent attribute kinds now supported * test/unit/expr/node_white.h: context-dependent attribute tests * src/prop/cnf_conversion.h and associated parts of src/util/options.h and src/main/getopt.cpp: obsolete command-line option, removed. * src/util/Assert.h: assertions are now somewhat more useful (in debug builds, anyway) during stack unwinding. * test/unit/theory/theory_black.h: test context-dependent behavior of registerTerm() attribute for theories * src/expr/node_builder.h: formatting, fixes for arithmetic convenience node builders, check memory allocations * test/unit/expr/node_builder_black.h: add tessts for addition, subtraction, unary minus, and multiplication convenience node builders * src/expr/attribute.h: more comments * (various) code formatting, comment cleanup, added throws specifier to some destructors * contrib/code-checker: prototype perl script to test (some) code policy * contrib/indent-settings: command line for GNU indent to indent using CVC4 style (sort of; this is a work in progress) * COPYING: legal stuff * DESIGN_QUESTIONS: obsolete, removed
Diffstat (limited to 'src/expr/expr_manager.h')
-rw-r--r--src/expr/expr_manager.h26
1 files changed, 21 insertions, 5 deletions
diff --git a/src/expr/expr_manager.h b/src/expr/expr_manager.h
index f5edc5464..ff4e0db6b 100644
--- a/src/expr/expr_manager.h
+++ b/src/expr/expr_manager.h
@@ -30,6 +30,10 @@ class KindType;
class SmtEngine;
class NodeManager;
+namespace context {
+ class Context;
+}/* CVC4::context namespace */
+
class CVC4_PUBLIC ExprManager {
public:
@@ -97,7 +101,7 @@ public:
/** Make a function type with input types from argTypes. */
const FunctionType*
- mkFunctionType(const std::vector<const Type*>& argTypes,
+ mkFunctionType(const std::vector<const Type*>& argTypes,
const Type* range);
/** Make a new sort with the given name. */
@@ -108,16 +112,28 @@ public:
Expr mkVar(const Type* type);
private:
+ /** The context */
+ context::Context* d_ctxt;
+
/** The internal node manager */
NodeManager* d_nodeManager;
-
+
/**
- * Returns the internal node manager. This should only be used by internal
- * users, i.e. the friend classes.
+ * Returns the internal node manager. This should only be used by
+ * internal users, i.e. the friend classes.
*/
NodeManager* getNodeManager() const;
- /** SmtEngine will use all the internals, so it will grab the node manager */
+ /**
+ * Returns the internal Context. Used by internal users, i.e. the
+ * friend classes.
+ */
+ context::Context* getContext() const;
+
+ /**
+ * SmtEngine will use all the internals, so it will grab the
+ * NodeManager.
+ */
friend class SmtEngine;
/** ExprManagerScope reaches in to get the NodeManager */
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback