Remove abstract regular expression constant (#1698)
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>
Fri, 23 Mar 2018 20:23:00 +0000 (15:23 -0500)
committerAina Niemetz <aina.niemetz@gmail.com>
Fri, 23 Mar 2018 20:23:00 +0000 (13:23 -0700)
src/expr/expr.i
src/expr/expr_manager.i
src/theory/strings/kinds
src/theory/strings/theory_strings_type_rules.h
src/util/regexp.cpp
src/util/regexp.h
src/util/regexp.i

index d77981cc48ad992d04490e3f4e6d880f9a8fe33b..1d5207c93b3ea1818da1dd03c208e0ff8e3babbf 100644 (file)
@@ -153,7 +153,6 @@ namespace CVC4 {
 %template(getConstRational) CVC4::Expr::getConst<CVC4::Rational>;
 %template(getConstBitVector) CVC4::Expr::getConst<CVC4::BitVector>;
 %template(getConstString) CVC4::Expr::getConst<CVC4::String>;
-%template(getConstRegExp) CVC4::Expr::getConst<CVC4::RegExp>;
 %template(getConstEmptySet) CVC4::Expr::getConst<CVC4::EmptySet>;
 %template(getConstBoolean) CVC4::Expr::getConst<bool>;
 
index dac3b93125fb30995068767a3216a4e40a15c993..df99af56d7b9ac9f9a39c44695adf12adbbf795d 100644 (file)
@@ -71,7 +71,6 @@
 %template(mkConst) CVC4::ExprManager::mkConst<CVC4::BitVector>;
 %template(mkConst) CVC4::ExprManager::mkConst<CVC4::EmptySet>;
 %template(mkConst) CVC4::ExprManager::mkConst<CVC4::String>;
-%template(mkConst) CVC4::ExprManager::mkConst<CVC4::RegExp>;
 #ifdef SWIGPYTHON
 /* The python bindings cannot differentiate between bool and other basic
  * types like enum and int. Therefore, we rename mkConst for the bool
index 3a5fd59e9d0cb82e11cc10bc60b80763bb04b3b5..15dd5b423f39f0cd0d3b3841d351e2f1609943a9 100644 (file)
@@ -42,7 +42,7 @@ sort STRING_TYPE \
 sort REGEXP_TYPE \
     Cardinality::INTEGERS \
     well-founded \
-        "NodeManager::currentNM()->mkConst(::CVC4::RegExp())" \
+        "NodeManager::currentNM()->mkNode(REGEXP_EMPTY, std::vector<Node>() )" \
         "util/regexp.h" \
     "RegExp type"
 
@@ -60,14 +60,7 @@ constant CONST_STRING \
     "util/regexp.h" \
     "a string of characters"
 
-constant CONST_REGEXP \
-    ::CVC4::RegExp \
-    ::CVC4::RegExpHashFunction \
-    "util/regexp.h" \
-    "a regular expression"
-
 typerule CONST_STRING ::CVC4::theory::strings::StringConstantTypeRule
-typerule CONST_REGEXP ::CVC4::theory::strings::RegExpConstantTypeRule
 
 # equal equal / less than / output
 operator STRING_TO_REGEXP 1 "convert string to regexp"
index 176398776980997e4d2894222aaf30435e2d655d..da1b71fff7f6a78639b9fd3955db8e19432ca6b8 100644 (file)
@@ -235,14 +235,6 @@ public:
   }
 };
 
-class RegExpConstantTypeRule {
-public:
-  inline static TypeNode computeType(NodeManager* nodeManager, TNode n, bool check)
-  {
-    return nodeManager->regExpType();
-  }
-};
-
 class RegExpConcatTypeRule {
 public:
   inline static TypeNode computeType(NodeManager* nodeManager, TNode n, bool check)
index a7e5131ecb98299e82906fdd5bb3b958e4a458ce..9aaad522a234ed78525f360d0716ea98db0f2808 100644 (file)
@@ -404,8 +404,4 @@ std::ostream &operator<<(std::ostream &os, const String &s) {
   return os << "\"" << s.toString(true) << "\"";
 }
 
-std::ostream &operator<<(std::ostream &out, const RegExp &s) {
-  return out << "regexp(" << s.getType() << ')';
-}
-
 }  // namespace CVC4
index efbb4579d0a6b6d2165bb07087af383d14514079..42d23225901b68167b98297db1ef19c53d523827 100644 (file)
@@ -197,35 +197,6 @@ struct CVC4_PUBLIC StringHashFunction {
 
 std::ostream& operator<<(std::ostream& os, const String& s) CVC4_PUBLIC;
 
-class CVC4_PUBLIC RegExp {
- public:
-  RegExp() : d_type(1) {}
-  explicit RegExp(const int t) : d_type(t) {}
-
-  bool operator==(const RegExp& y) const { return d_type == y.d_type; }
-  bool operator!=(const RegExp& y) const { return d_type != y.d_type; }
-  bool operator<(const RegExp& y) const { return d_type < y.d_type; }
-  bool operator>(const RegExp& y) const { return d_type > y.d_type; }
-  bool operator<=(const RegExp& y) const { return d_type <= y.d_type; }
-  bool operator>=(const RegExp& y) const { return d_type >= y.d_type; }
-
-  int getType() const { return d_type; }
-
- private:
-  int d_type;
-}; /* class RegExp */
-
-/**
- * Hash function for the RegExp constants.
- */
-struct CVC4_PUBLIC RegExpHashFunction {
-  inline size_t operator()(const RegExp& s) const {
-    return (size_t)s.getType();
-  }
-}; /* struct RegExpHashFunction */
-
-std::ostream& operator<<(std::ostream& os, const RegExp& s) CVC4_PUBLIC;
-
 }  // namespace CVC4
 
 #endif /* __CVC4__REGEXP_H */
index 9f9826663d6db32cd23205d647df9b52b4895d84..afc51abd74ae4f82f5a05da32ed1fce16f957cc9 100644 (file)
 %rename(greater) CVC4::String::operator>(const String&) const;
 %rename(greaterEqual) CVC4::String::operator>=(const String&) const;
 
-%rename(assign) CVC4::RegExp::operator=(const RegExp&);
-%rename(equals) CVC4::RegExp::operator==(const RegExp&) const;
-%ignore CVC4::RegExp::operator!=(const RegExp&) const;
-%rename(less) CVC4::RegExp::operator<(const RegExp&) const;
-%rename(lessEqual) CVC4::RegExp::operator<=(const RegExp&) const;
-%rename(greater) CVC4::RegExp::operator>(const RegExp&) const;
-%rename(greaterEqual) CVC4::RegExp::operator>=(const RegExp&) const;
-
 %rename(apply) CVC4::strings::StringHashFunction::operator()(const ::CVC4::String&) const;
-%rename(apply) CVC4::RegExpHashFunction::operator()(const RegExp&) const;
 
 %ignore CVC4::operator<<(std::ostream&, const String&);
-%ignore CVC4::operator<<(std::ostream&, const RegExp&);
 
 %apply int &OUTPUT { int &c };
 %include "util/regexp.h"