Add missing template instanatiation in Java bindings
[cvc5.git] / src / expr / expr_manager.i
1 %{
2 #include "expr/expr_manager.h"
3 %}
4
5 %typemap(javacode) CVC4::ExprManager %{
6 // a ref is kept here to keep Java GC from collecting the Options
7 // before the ExprManager
8 private Object options;
9 %}
10 %typemap(javaconstruct) ExprManager(Options options) {
11 this($imcall, true);
12 this.options = SmtEngine.mkRef(options); // keep ref to options in SWIG proxy class
13 }
14 %typemap(javadestruct, methodname="delete", methodmodifiers="public synchronized") CVC4::ExprManager {
15 SmtEngine.dlRef(options);
16 options = null;
17 if (swigCPtr != 0) {
18 if (swigCMemOwn) {
19 swigCMemOwn = false;
20 CVC4JNI.delete_SmtEngine(swigCPtr);
21 }
22 swigCPtr = 0;
23 }
24 }
25
26 #ifdef SWIGOCAML
27 /* OCaml bindings cannot deal with this degree of overloading */
28 %ignore CVC4::ExprManager::mkExpr(Kind, const std::vector<Expr>&);
29 %ignore CVC4::ExprManager::mkExpr(Kind, Expr, const std::vector<Expr>&);
30 %ignore CVC4::ExprManager::mkExpr(Expr);
31 %ignore CVC4::ExprManager::mkExpr(Expr, Expr);
32 %ignore CVC4::ExprManager::mkExpr(Expr, Expr, Expr);
33 %ignore CVC4::ExprManager::mkExpr(Expr, Expr, Expr, Expr);
34 %ignore CVC4::ExprManager::mkExpr(Expr, Expr, Expr, Expr, Expr);
35 %ignore CVC4::ExprManager::mkExpr(Expr, Expr, Expr, Expr, Expr, Expr);
36 %ignore CVC4::ExprManager::mkExpr(Expr, const std::vector<Expr>&);
37 #endif /* SWIGOCAML */
38
39 %ignore CVC4::stats::getStatisticsRegistry(ExprManager*);
40
41 %include "expr/expr_manager.h"
42
43 %template(mkConst) CVC4::ExprManager::mkConst<CVC4::TypeConstant>;
44 %template(mkConst) CVC4::ExprManager::mkConst<CVC4::ArrayStoreAll>;
45 %template(mkConst) CVC4::ExprManager::mkConst<CVC4::BitVectorSize>;
46 %template(mkConst) CVC4::ExprManager::mkConst<CVC4::AscriptionType>;
47 %template(mkConst) CVC4::ExprManager::mkConst<CVC4::BitVectorBitOf>;
48 %template(mkConst) CVC4::ExprManager::mkConst<CVC4::SubrangeBounds>;
49 %template(mkConst) CVC4::ExprManager::mkConst<CVC4::BitVectorRepeat>;
50 %template(mkConst) CVC4::ExprManager::mkConst<CVC4::BitVectorExtract>;
51 %template(mkConst) CVC4::ExprManager::mkConst<CVC4::BitVectorRotateLeft>;
52 %template(mkConst) CVC4::ExprManager::mkConst<CVC4::BitVectorSignExtend>;
53 %template(mkConst) CVC4::ExprManager::mkConst<CVC4::BitVectorZeroExtend>;
54 %template(mkConst) CVC4::ExprManager::mkConst<CVC4::BitVectorRotateRight>;
55 %template(mkConst) CVC4::ExprManager::mkConst<CVC4::UninterpretedConstant>;
56 %template(mkConst) CVC4::ExprManager::mkConst<CVC4::kind::Kind_t>;
57 %template(mkConst) CVC4::ExprManager::mkConst<CVC4::Datatype>;
58 %template(mkConst) CVC4::ExprManager::mkConst<CVC4::TupleSelect>;
59 %template(mkConst) CVC4::ExprManager::mkConst<CVC4::TupleUpdate>;
60 %template(mkConst) CVC4::ExprManager::mkConst<CVC4::Record>;
61 %template(mkConst) CVC4::ExprManager::mkConst<CVC4::RecordSelect>;
62 %template(mkConst) CVC4::ExprManager::mkConst<CVC4::RecordUpdate>;
63 %template(mkConst) CVC4::ExprManager::mkConst<CVC4::Rational>;
64 %template(mkConst) CVC4::ExprManager::mkConst<CVC4::BitVector>;
65 %template(mkConst) CVC4::ExprManager::mkConst<CVC4::Predicate>;
66 %template(mkConst) CVC4::ExprManager::mkConst<CVC4::String>;
67 %template(mkConst) CVC4::ExprManager::mkConst<CVC4::RegExp>;
68 %template(mkConst) CVC4::ExprManager::mkConst<bool>;
69
70 %include "expr/expr_manager.h"