AC_PROG_ANTLR
CVC4_CXX_OPTION([-Wno-conversion-null], [WNO_CONVERSION_NULL])
+CVC4_CXX_OPTION([-Wno-uninitialized], [WNO_UNINITIALIZED])
+CVC4_CXX_OPTION([-Wno-unused-variable], [WNO_UNUSED_VARIABLE])
+CVC4_CXX_OPTION([-fno-strict-aliasing], [FNO_STRICT_ALIASING])
AC_SUBST([WNO_CONVERSION_NULL])
+AC_SUBST([WNO_UNINITIALIZED])
+AC_SUBST([WNO_UNUSED_VARIABLE])
+AC_SUBST([FNO_STRICT_ALIASING])
# Doxygen configuration
AC_ARG_ENABLE([internals-documentation],
endif
nodist_java_libcvc4jni_la_SOURCES = java.cpp
-java_libcvc4jni_la_CXXFLAGS = -fno-strict-aliasing
+java_libcvc4jni_la_CXXFLAGS = @FNO_STRICT_ALIASING@ @WNO_UNUSED_VARIABLE@ @WNO_UNINITIALIZED@
nodist_csharp_CVC4_la_SOURCES = csharp.cpp
nodist_perl_CVC4_la_SOURCES = perl.cpp
nodist_php_CVC4_la_SOURCES = php.cpp
CVC4.jar
java_libcvc4jni_la-java.lo java.lo: java.cpp
- $(AM_V_CXX)$(LTCXXCOMPILE) -c $(JAVA_CPPFLAGS) -o $@ $<
+ $(AM_V_CXX)$(LTCXXCOMPILE) -c $(JAVA_CPPFLAGS) $(java_libcvc4jni_la_CXXFLAGS) -o $@ $<
CVC4.jar: java.cpp
$(AM_V_GEN) \
(cd java; \
%}
%typemap(throws) ModalException = Exception;
+%typemap(throws) LogicException = Exception;
%typemap(throws) OptionException = Exception;
%typemap(throws) IllegalArgumentException = Exception;
%typemap(throws) AssertionException = Exception;
// Generate an error if the mapping from C++ CVC4 Exception to Java CVC4 Exception doesn't exist above
%typemap(throws) SWIGTYPE, SWIGTYPE &, SWIGTYPE *, SWIGTYPE [], SWIGTYPE [ANY] %{
-#error "exception $1_type doesn't map to Java correctly"
+#error "exception $1_type doesn't map to Java correctly---please edit src/cvc4.i and add it"
%}
%include "java/typemaps.i" // primitive pointers and references
%include "util/array.i"
%include "util/array_store_all.i"
%include "util/hash.i"
-%include "util/util_model.i"
%include "expr/type.i"
%include "util/ascription_type.i"
public:
DeclarationDefinitionCommand(const std::string& id) throw();
~DeclarationDefinitionCommand() throw() {}
+ virtual void invoke(SmtEngine* smtEngine) throw() = 0;
std::string getSymbol() const throw();
};/* class DeclarationDefinitionCommand */
%rename(toBitVectorType) CVC4::Type::operator BitVectorType() const;
%rename(toFunctionType) CVC4::Type::operator FunctionType() const;
%rename(toTupleType) CVC4::Type::operator TupleType() const;
+%rename(toSExprType) CVC4::Type::operator SExprType() const;
%rename(toArrayType) CVC4::Type::operator ArrayType() const;
%rename(toDatatypeType) CVC4::Type::operator DatatypeType() const;
%rename(toConstructorType) CVC4::Type::operator ConstructorType() const;
%rename(toTesterType) CVC4::Type::operator TesterType() const;
%rename(toSortType) CVC4::Type::operator SortType() const;
%rename(toSortConstructorType) CVC4::Type::operator SortConstructorType() const;
-%rename(toKindType) CVC4::Type::operator KindType() const;
+%rename(toPredicateSubtype) CVC4::Type::operator PredicateSubtype() const;
+%rename(toSubrangeType) CVC4::Type::operator SubrangeType() const;
namespace CVC4 {
namespace expr {
array_store_all.i \
ascription_type.i \
rational.i \
- hash.i \
- util_model.i
+ hash.i
DISTCLEANFILES = \
integer.h.tmp \
#include "util/array_store_all.h"
%}
+%rename(equals) CVC4::ArrayStoreAll::operator==(const ArrayStoreAll&) const;
+%ignore CVC4::ArrayStoreAll::operator!=(const ArrayStoreAll&) const;
+%rename(less) CVC4::ArrayStoreAll::operator<(const ArrayStoreAll&) const;
+%rename(lessEqual) CVC4::ArrayStoreAll::operator<=(const ArrayStoreAll&) const;
+%rename(greater) CVC4::ArrayStoreAll::operator>(const ArrayStoreAll&) const;
+%rename(greaterEqual) CVC4::ArrayStoreAll::operator>=(const ArrayStoreAll&) const;
+
%include "expr/type.i"
%include "util/array_store_all.h"
return d_value != y.d_value;
}
- BitVector equals(const BitVector& y) const {
- CheckArgument(d_size == y.d_size, y);
- return d_value == y.d_value;
- }
-
BitVector concat (const BitVector& other) const {
return BitVector(d_size + other.d_size, (d_value.multiplyByPow2(other.d_size)) + other.d_value);
}
%rename(minus) CVC4::BitVector::operator-(const BitVector&) const;
%rename(minus) CVC4::BitVector::operator-() const;
%rename(times) CVC4::BitVector::operator*(const BitVector&) const;
+%rename(bitXor) CVC4::BitVector::operator^(const BitVector&) const;
+%rename(bitOr) CVC4::BitVector::operator|(const BitVector&) const;
+%rename(bitAnd) CVC4::BitVector::operator&(const BitVector&) const;
%rename(complement) CVC4::BitVector::operator~() const;
+%rename(less) CVC4::BitVector::operator<(const BitVector&) const;
+%rename(lessEqual) CVC4::BitVector::operator<=(const BitVector&) const;
+%rename(greater) CVC4::BitVector::operator>(const BitVector&) const;
+%rename(greaterEqual) CVC4::BitVector::operator>=(const BitVector&) const;
%rename(equals) CVC4::BitVectorExtract::operator==(const BitVectorExtract&) const;
+%rename(equals) CVC4::BitVectorBitOf::operator==(const BitVectorBitOf&) const;
%rename(toUnsigned) CVC4::BitVectorSize::operator unsigned() const;
%rename(toUnsigned) CVC4::BitVectorRepeat::operator unsigned() const;
#include "util/bool.h"
%}
+%rename(apply) CVC4::BoolHashFunction::operator()(bool) const;
+
%include "util/bool.h"
%rename(endConst) CVC4::Datatype::end() const;
%rename(getConstructor) CVC4::Datatype::operator[](size_t) const;
+%ignore CVC4::Datatype::operator[](std::string) const;
%rename(apply) CVC4::DatatypeHashFunction::operator()(const Datatype&) const;
%ignore CVC4::DatatypeHashFunction::operator()(const Datatype*) const;
%rename(endConst) CVC4::DatatypeConstructor::end() const;
%rename(getArg) CVC4::DatatypeConstructor::operator[](size_t) const;
+%rename(getArg) CVC4::DatatypeConstructor::operator[](std::string) const;
%ignore CVC4::operator<<(std::ostream&, const Datatype&);
%ignore CVC4::operator<<(std::ostream&, const DatatypeConstructor&);
%ignore CVC4::Integer::Integer(int);
%ignore CVC4::Integer::Integer(unsigned int);
%ignore CVC4::Integer::Integer(const std::string&);
+%ignore CVC4::Integer::Integer(const std::string&, unsigned int);
%rename(assign) CVC4::Integer::operator=(const Integer&);
%rename(equals) CVC4::Integer::operator==(const Integer&) const;
%rename(greater) CVC4::Integer::operator>(const Integer&) const;
%rename(greaterEqual) CVC4::Integer::operator>=(const Integer&) const;
+%rename(apply) CVC4::IntegerHashFunction::operator()(const CVC4::Integer&) const;
+
%ignore CVC4::operator<<(std::ostream&, const Integer&);
%include "util/integer.h"
%ignore CVC4::Rational::Rational(int, int);
%ignore CVC4::Rational::Rational(unsigned int, unsigned int);
%ignore CVC4::Rational::Rational(const std::string&);
+%ignore CVC4::Rational::Rational(const std::string&, unsigned int);
%rename(assign) CVC4::Rational::operator=(const Rational&);
%rename(equals) CVC4::Rational::operator==(const Rational&) const;
%rename(greater) CVC4::Rational::operator>(const Rational&) const;
%rename(greaterEqual) CVC4::Rational::operator>=(const Rational&) const;
+%rename(apply) CVC4::RationalHashFunction::operator()(const CVC4::Rational&) const;
+
%ignore CVC4::operator<<(std::ostream&, const Rational&);
%include "util/rational.h"
std::string toString() const { return self->getValue(); }
};/* CVC4::SExpr */
+%rename(equals) CVC4::SExpr::operator==(const SExpr&) const;
+%ignore CVC4::SExpr::operator!=(const SExpr&) const;
+
%include "util/sexpr.h"
#include "util/statistics.h"
%}
-%include "util/statistics.h"
+%rename(assign) CVC4::Statistics::operator=(const StatisticsBase&);
+%rename(assign) CVC4::Statistics::operator=(const Statistics& stats);
+%include "util/statistics.h"
%rename(equals) CVC4::SubrangeBound::operator==(const SubrangeBound&) const;
%ignore CVC4::SubrangeBound::operator!=(const SubrangeBound&) const;
+%rename(less) CVC4::SubrangeBound::operator<(const SubrangeBound&) const;
+%rename(lessEqual) CVC4::SubrangeBound::operator<=(const SubrangeBound&) const;
+%rename(greater) CVC4::SubrangeBound::operator>(const SubrangeBound&) const;
+%rename(greaterEqual) CVC4::SubrangeBound::operator>=(const SubrangeBound&) const;
+
+%rename(equals) CVC4::SubrangeBounds::operator==(const SubrangeBounds&) const;
+%ignore CVC4::SubrangeBounds::operator!=(const SubrangeBounds&) const;
+%rename(less) CVC4::SubrangeBounds::operator<(const SubrangeBounds&) const;
+%rename(lessEqual) CVC4::SubrangeBounds::operator<=(const SubrangeBounds&) const;
+%rename(greater) CVC4::SubrangeBounds::operator>(const SubrangeBounds&) const;
+%rename(greaterEqual) CVC4::SubrangeBounds::operator>=(const SubrangeBounds&) const;
%ignore CVC4::operator<<(std::ostream&, const SubrangeBound&);