cvc3 compatibility layer; and another libantlr3c v3.4 incompatibility fix
authorMorgan Deters <mdeters@gmail.com>
Tue, 4 Oct 2011 14:36:57 +0000 (14:36 +0000)
committerMorgan Deters <mdeters@gmail.com>
Tue, 4 Oct 2011 14:36:57 +0000 (14:36 +0000)
src/bindings/Makefile.am
src/parser/cvc/Cvc.g
src/parser/parser.i
src/util/cardinality.i
src/util/datatype.i
src/util/integer.i
src/util/output.i
src/util/rational.i
src/util/stats.h
src/util/stats.i

index e35ec5e67fb61717f8e391ae14e77335bafec03c..e14527ede2cda3b56cbcab92bf048710a1a34088 100644 (file)
@@ -136,7 +136,7 @@ python.lo: python.cpp
        $(AM_V_CXX)$(LTCXXCOMPILE) -c $(PYTHON_CPPFLAGS) -o $@ $<
 python.cpp:
 ocaml.cpp:
-python.lo: ruby.cpp
+ruby.lo: ruby.cpp
        $(AM_V_CXX)$(LTCXXCOMPILE) -c $(RUBY_CPPFLAGS) -o $@ $<
 ruby.cpp:
 tcl.cpp:
index 955f3a1f47cc7ebcfe16bcfae61bb8915049dac3..96c0933d8b17ee1a9cfd6bada6716e29d26debca 100644 (file)
@@ -596,10 +596,10 @@ mainCommand[CVC4::Command*& cmd]
     { cmd = new SetOptionCommand(s, sexpr); }
 
     /* push / pop */
-  | PUSH_TOK k=numeral?
-    { cmd = REPEAT_COMMAND(k, PushCommand()); }
-  | POP_TOK k=numeral?
-    { cmd = REPEAT_COMMAND(k, PopCommand()); }
+  | PUSH_TOK ( k=numeral { cmd = REPEAT_COMMAND(k, PushCommand()); }
+               | { cmd = new PushCommand(); } )
+  | POP_TOK ( k=numeral { cmd = REPEAT_COMMAND(k, PopCommand()); }
+              | { cmd = new PopCommand(); } )
   | POPTO_TOK k=numeral?
     { UNSUPPORTED("POPTO command"); }
 
index dd52bfcda7fc6a2e3e062da6272a9f51f3abe5e4..5e10973d417d91482f77cdf6b2a7a14dfe5553bf 100644 (file)
@@ -12,8 +12,8 @@ namespace CVC4 {
   class ParserExprStream : public CVC4::ExprStream {
     Parser* d_parser;
   public:
-    ExprStream(Parser* parser) : d_parser(parser) {}
-    ~ExprStream() { delete d_parser; }
+    ParserExprStream(Parser* parser) : d_parser(parser) {}
+    ~ParserExprStream() { delete d_parser; }
     Expr nextExpr() { return d_parser->nextExpression(); }
   };/* class Parser::ExprStream */
 
index 760f746c07ad87d566b0dfe1de3ee273b9d7aa6e..82f67382bf7eeb9f711c1fd740149091eb9cddbd 100644 (file)
 %ignore CVC4::operator<<(std::ostream&, const Cardinality&);
 %ignore CVC4::operator<<(std::ostream&, Cardinality::Beth);
 
+  class Beth {
+    Integer d_index;
+
+  public:
+    Beth(const Integer& beth) : d_index(beth) {
+      CheckArgument(beth >= 0, beth,
+                    "Beth index must be a nonnegative integer, not %s.",
+                    beth.toString().c_str());
+    }
+
+    const Integer& getNumber() const throw() {
+      return d_index;
+    }
+  };/* class Cardinality::Beth */
+
+  class Unknown {
+  public:
+    Unknown() throw() {}
+    ~Unknown() throw() {}
+  };/* class Cardinality::Unknown */
+
 %include "util/cardinality.h"
+
+%{
+namespace CVC4 {
+  typedef CVC4::Cardinality::Beth Beth;
+  typedef CVC4::Cardinality::Unknown Unknown;
+}
+%}
index b62033e1796e7edad11b332bf0728bb99f7e8baa..fe696029de2fff4faea0b766978ef424a8a7fec1 100644 (file)
@@ -1,8 +1,5 @@
 %{
 #include "util/datatype.h"
-namespace CVC4 {
-//typedef CVC4::Datatype::Constructor DatatypeConstructor;
-}
 %}
 
 namespace CVC4 {
@@ -33,6 +30,11 @@ namespace CVC4 {
 %rename(apply) CVC4::DatatypeHashFunction::operator()(const Datatype::Constructor&) const;
 %ignore CVC4::DatatypeHashFunction::operator()(const Datatype::Constructor*) const;
 
+%rename(beginConst) CVC4::Constructor::begin() const;
+%rename(endConst) CVC4::Constructor::end() const;
+
+%rename(getArg) CVC4::Constructor::operator[](size_t) const;
+
 %ignore CVC4::operator<<(std::ostream&, const Datatype&);
 %ignore CVC4::operator<<(std::ostream&, const Datatype::Constructor&);
 %ignore CVC4::operator<<(std::ostream&, const Datatype::Constructor::Arg&);
@@ -226,7 +228,6 @@ namespace CVC4 {
     const Arg& operator[](size_t index) const;
 
   };/* class Datatype::Constructor */
-}
 
   class SelfType {
   };/* class Datatype::SelfType */
@@ -245,6 +246,7 @@ namespace CVC4 {
     inline UnresolvedType(std::string name);
     inline std::string getName() const throw();
   };/* class Datatype::UnresolvedType */
+}
 
 %{
 namespace CVC4 {
index 4aaa532a7dc1cc9e2751fea7b1cc9809fbdf2ada..bad6b196fcafcc34ff6c82db196ab6f89415bf14 100644 (file)
@@ -4,6 +4,7 @@
 
 %ignore CVC4::Integer::Integer(int);
 %ignore CVC4::Integer::Integer(unsigned int);
+%ignore CVC4::Integer::Integer(const std::string&);
 
 %rename(assign) CVC4::Integer::operator=(const Integer&);
 %rename(equals) CVC4::Integer::operator==(const Integer&) const;
index 10653c2f84c2a891781ab32b0496556aefbf5977..b9c0e32ee5ce058ccf76476c529eeba22cf0a6a2 100644 (file)
 %ignore CVC4::null_os;
 %ignore CVC4::DumpC::dump_cout;
 
+%ignore operator<<;
+%ignore on(std::string);
+%ignore isOn(std::string);
+%ignore off(std::string);
+%ignore printf(std::string, const char*, ...);
+%ignore operator()(std::string);
+
+%ignore CVC4::ScopedDebug::ScopedDebug(std::string);
+%ignore CVC4::ScopedDebug::ScopedDebug(std::string, bool);
+
+%ignore CVC4::ScopedTrace::ScopedTrace(std::string);
+%ignore CVC4::ScopedTrace::ScopedTrace(std::string, bool);
+
+%rename(getostream) operator std::ostream&;
+%rename(getCVC4ostream) operator CVC4ostream;
+%rename(get) operator();
+%rename(ok) operator bool;
+
 %include "util/output.h"
index 512d3ea50da27b88e8df3ace8bf5470d6b34995b..135302c66846b1ab342eaaa2a46a5517145361c0 100644 (file)
@@ -6,6 +6,7 @@
 %ignore CVC4::Rational::Rational(unsigned int);
 %ignore CVC4::Rational::Rational(int, int);
 %ignore CVC4::Rational::Rational(unsigned int, unsigned int);
+%ignore CVC4::Rational::Rational(const std::string&);
 
 %rename(assign) CVC4::Rational::operator=(const Rational&);
 %rename(equals) CVC4::Rational::operator==(const Rational&) const;
index 3a2847512ec4394cdd9247c098402b1c00970b83..e955a7d289387fd62e1ac44e493733b48c8199e2 100644 (file)
@@ -45,8 +45,6 @@ class ExprManager;
 
 class CVC4_PUBLIC Stat;
 
-inline std::ostream& operator<<(std::ostream& os, const timespec& t);
-
 /**
  * The main statistics registry.  This registry maintains the list of
  * currently active statistics and is able to "flush" them all.
@@ -643,12 +641,14 @@ inline bool operator>=(const timespec& a, const timespec& b) {
 }
 
 /** Output a timespec on an output stream. */
+inline std::ostream& operator<<(std::ostream& os, const timespec& t) CVC4_PUBLIC;
 inline std::ostream& operator<<(std::ostream& os, const timespec& t) {
   // assumes t.tv_nsec is in range
   return os << t.tv_sec << "."
             << std::setfill('0') << std::setw(8) << std::right << t.tv_nsec;
 }
 
+class CVC4_PUBLIC CodeTimer;
 
 /**
  * A timer statistic.  The timer can be started and stopped
@@ -666,27 +666,7 @@ class CVC4_PUBLIC TimerStat : public BackedStat< timespec > {
 
 public:
 
-  /**
-   * Utility class to make it easier to call stop() at the end of a
-   * code block.  When constructed, it starts the timer.  When
-   * destructed, it stops the timer.
-   */
-  class CodeTimer {
-    TimerStat& d_timer;
-
-    /** Private copy constructor undefined (no copy permitted). */
-    CodeTimer(const CodeTimer& timer) CVC4_UNDEFINED;
-    /** Private assignment operator undefined (no copy permitted). */
-    CodeTimer& operator=(const CodeTimer& timer) CVC4_UNDEFINED;
-
-  public:
-    CodeTimer(TimerStat& timer) : d_timer(timer) {
-      d_timer.start();
-    }
-    ~CodeTimer() {
-      d_timer.stop();
-    }
-  };/* class TimerStat::CodeTimer */
+  typedef CVC4::CodeTimer CodeTimer;
 
   /**
    * Construct a timer statistic with the given name.  Newly-constructed
@@ -712,6 +692,29 @@ public:
 };/* class TimerStat */
 
 
+/**
+ * Utility class to make it easier to call stop() at the end of a
+ * code block.  When constructed, it starts the timer.  When
+ * destructed, it stops the timer.
+ */
+class CVC4_PUBLIC CodeTimer {
+  TimerStat& d_timer;
+
+  /** Private copy constructor undefined (no copy permitted). */
+  CodeTimer(const CodeTimer& timer) CVC4_UNDEFINED;
+  /** Private assignment operator undefined (no copy permitted). */
+  CodeTimer& operator=(const CodeTimer& timer) CVC4_UNDEFINED;
+
+public:
+  CodeTimer(TimerStat& timer) : d_timer(timer) {
+    d_timer.start();
+  }
+  ~CodeTimer() {
+    d_timer.stop();
+  }
+};/* class CodeTimer */
+
+
 /**
  * To use a statistic, you need to declare it, initialize it in your
  * constructor, register it in your constructor, and deregister it in
index 48828cb7e7f9e5a6bcef91acbd04111a1497e232..5d3b81d4d828a5855522321ac122c83d847cf1a9 100644 (file)
@@ -2,20 +2,20 @@
 #include "util/stats.h"
 %}
 
-%ignore CVC4::operator<<(std::ostream&, const ::timespec&);
+%ignore CVC4::operator<<(std::ostream&, const timespec&);
 
 %rename(increment) CVC4::IntStat::operator++();
 %rename(plusAssign) CVC4::IntStat::operator+=(int64_t);
 
-%rename(plusAssign) CVC4::operator+=(::timespec&, const ::timespec&);
-%rename(minusAssign) CVC4::operator-=(::timespec&, const ::timespec&);
-%rename(plus) CVC4::operator+(const ::timespec&, const ::timespec&);
-%rename(minus) CVC4::operator-(const ::timespec&, const ::timespec&);
-%rename(equals) CVC4::operator==(const ::timespec&, const ::timespec&);
-%ignore CVC4::operator!=(const ::timespec&, const ::timespec&);
-%rename(less) CVC4::operator<(const ::timespec&, const ::timespec&);
-%rename(lessEqual) CVC4::operator<=(const ::timespec&, const ::timespec&);
-%rename(greater) CVC4::operator>(const ::timespec&, const ::timespec&);
-%rename(greaterEqual) CVC4::operator>=(const ::timespec&, const ::timespec&);
+%rename(plusAssign) CVC4::operator+=(timespec&, const timespec&);
+%rename(minusAssign) CVC4::operator-=(timespec&, const timespec&);
+%rename(plus) CVC4::operator+(const timespec&, const timespec&);
+%rename(minus) CVC4::operator-(const timespec&, const timespec&);
+%rename(equals) CVC4::operator==(const timespec&, const timespec&);
+%ignore CVC4::operator!=(const timespec&, const timespec&);
+%rename(less) CVC4::operator<(const timespec&, const timespec&);
+%rename(lessEqual) CVC4::operator<=(const timespec&, const timespec&);
+%rename(greater) CVC4::operator>(const timespec&, const timespec&);
+%rename(greaterEqual) CVC4::operator>=(const timespec&, const timespec&);
 
 %include "util/stats.h"