diff options
author | Christopher L. Conway <christopherleeconway@gmail.com> | 2010-03-31 23:07:12 +0000 |
---|---|---|
committer | Christopher L. Conway <christopherleeconway@gmail.com> | 2010-03-31 23:07:12 +0000 |
commit | 1b054a43b2f5d6725eae8ef8677ae34cbe749e57 (patch) | |
tree | 1c08ad4ffccb80041d26b17938764a86a94cfcce /src/expr/expr_manager.h | |
parent | ca5ec6ea328417757aa4e393ed029b5ed2c76939 (diff) |
Finishing parser cleanup. Code is now review-ready.
Diffstat (limited to 'src/expr/expr_manager.h')
-rw-r--r-- | src/expr/expr_manager.h | 23 |
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; |