summaryrefslogtreecommitdiff
path: root/src/expr/expr_manager.h
diff options
context:
space:
mode:
authorChristopher L. Conway <christopherleeconway@gmail.com>2010-03-31 23:07:12 +0000
committerChristopher L. Conway <christopherleeconway@gmail.com>2010-03-31 23:07:12 +0000
commit1b054a43b2f5d6725eae8ef8677ae34cbe749e57 (patch)
tree1c08ad4ffccb80041d26b17938764a86a94cfcce /src/expr/expr_manager.h
parentca5ec6ea328417757aa4e393ed029b5ed2c76939 (diff)
Finishing parser cleanup. Code is now review-ready.
Diffstat (limited to 'src/expr/expr_manager.h')
-rw-r--r--src/expr/expr_manager.h23
1 files changed, 22 insertions, 1 deletions
diff --git a/src/expr/expr_manager.h b/src/expr/expr_manager.h
index 3c73e1ced..f2009ad80 100644
--- a/src/expr/expr_manager.h
+++ b/src/expr/expr_manager.h
@@ -99,11 +99,26 @@ public:
mkFunctionType(Type* domain,
Type* range);
- /** Make a function type with input types from argTypes. */
+ /** Make a function type with input types from argTypes. <code>argTypes</code>
+ * must have at least one element. */
FunctionType*
mkFunctionType(const std::vector<Type*>& argTypes,
Type* range);
+ /** Make a function type with input types from <code>sorts[0..sorts.size()-2]</code>
+ * and result type <code>sorts[sorts.size()-1]</code>. <code>sorts</code> must have at
+ * least 2 elements.
+ */
+ FunctionType*
+ mkFunctionType(const std::vector<Type*>& sorts);
+
+ /** Make a predicate type with input types from <code>sorts</code>. The result with
+ * be a function type with range <code>BOOLEAN</code>. <code>sorts</code> must have at
+ * least one element.
+ */
+ FunctionType*
+ mkPredicateType(const std::vector<Type*>& sorts);
+
/** Make a new sort with the given name. */
Type* mkSort(const std::string& name);
@@ -111,6 +126,12 @@ public:
Expr mkVar(Type* type, const std::string& name);
Expr mkVar(Type* type);
+ /** Returns the minimum arity of the given kind. */
+ static unsigned int minArity(Kind kind);
+
+ /** Returns the maximum arity of the given kind. */
+ static unsigned int maxArity(Kind kind);
+
private:
/** The context */
context::Context* d_ctxt;
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback