diff liboctave/util/lo-regexp.h @ 22333:2758af148ced

move base_list and regexp classes to octave namespace * base-list.h (class octave_base_list): Move class to octave namespace and rename to base_list. * lo-regexp.cc, lo-regexp.h (class regexp): Move class to octave namespace. Move global functions to static functions in regexp class. * comment-list.h, regexp.cc, symtab.h, txt-eng.h, variables.cc, pt-arg-list.cc, pt-arg-list.h, pt-array-list.h, pt-classdef.h, pt-decl.h, pt-mat.cc, pt-misc.h, pt-select.h, pt-stmt.h, child-list.h: Update for namespace changes.
author John W. Eaton <jwe@octave.org>
date Wed, 17 Aug 2016 17:57:49 -0400
parents bac0d6f07a3e
children 4caa7b28d183
line wrap: on
line diff
--- a/liboctave/util/lo-regexp.h	Wed Aug 17 10:30:50 2016 -0700
+++ b/liboctave/util/lo-regexp.h	Wed Aug 17 17:57:49 2016 -0400
@@ -35,247 +35,294 @@
 #include "base-list.h"
 #include "str-vec.h"
 
-class
-OCTAVE_API
-regexp
+namespace octave
 {
-public:
-
-  class opts;
-  class match_data;
-
-  regexp (const std::string& pat = "",
-          const regexp::opts& opt = regexp::opts (),
-          const std::string& w = "regexp")
-    : pattern (pat), options (opt), data (0), named_pats (),
-      nnames (0), named_idx (), who (w)
-  {
-    compile_internal ();
-  }
-
-  regexp (const regexp& rx)
-    : pattern (rx.pattern), data (rx.data), named_pats (rx.named_pats),
-      nnames (rx.nnames), named_idx (rx.named_idx)
-  { }
-
-  regexp& operator = (const regexp& rx)
-  {
-    if (this != &rx)
-      {
-        pattern = rx.pattern;
-        data = rx.data;
-        named_pats = rx.named_pats;
-        nnames = rx.nnames;
-        named_idx = rx.named_idx;
-      }
-
-    return *this;
-  }
-
-  ~regexp (void) { free (); }
-
-  void compile (const std::string& pat,
-                const regexp::opts& opt = regexp::opts ())
-  {
-    pattern = pat;
-    options = opt;
-    compile_internal ();
-  }
-
-  match_data match (const std::string& buffer);
-
-  bool is_match (const std::string& buffer);
-
-  Array<bool> is_match (const string_vector& buffer);
-
-  std::string replace (const std::string& buffer,
-                       const std::string& replacement);
-
-  class opts
+  class
+  OCTAVE_API
+  regexp
   {
   public:
 
-    opts (void)
-      : x_case_insensitive (false), x_dotexceptnewline (false),
-        x_emptymatch (false), x_freespacing (false), x_lineanchors (false),
-        x_once (false) { }
+    class opts;
+    class match_data;
+
+    regexp (const std::string& pat = "",
+            const regexp::opts& opt = regexp::opts (),
+            const std::string& w = "regexp")
+      : pattern (pat), options (opt), data (0), named_pats (),
+      nnames (0), named_idx (), who (w)
+    {
+      compile_internal ();
+    }
+
+    regexp (const regexp& rx)
+      : pattern (rx.pattern), data (rx.data), named_pats (rx.named_pats),
+      nnames (rx.nnames), named_idx (rx.named_idx)
+      { }
 
-    opts (const opts& o)
-      : x_case_insensitive (o.x_case_insensitive),
-        x_dotexceptnewline (o.x_dotexceptnewline),
-        x_emptymatch (o.x_emptymatch),
-        x_freespacing (o.x_freespacing),
-        x_lineanchors (o.x_lineanchors),
-        x_once (o.x_once)
-    { }
+    regexp& operator = (const regexp& rx)
+      {
+        if (this != &rx)
+          {
+            pattern = rx.pattern;
+            data = rx.data;
+            named_pats = rx.named_pats;
+            nnames = rx.nnames;
+            named_idx = rx.named_idx;
+          }
+
+        return *this;
+      }
+
+    ~regexp (void) { free (); }
+
+    void compile (const std::string& pat,
+                  const regexp::opts& opt = regexp::opts ())
+    {
+      pattern = pat;
+      options = opt;
+      compile_internal ();
+    }
+
+    match_data match (const std::string& buffer);
+
+    bool is_match (const std::string& buffer);
 
-    opts& operator = (const opts& o)
+    Array<bool> is_match (const string_vector& buffer);
+
+    std::string replace (const std::string& buffer,
+                         const std::string& replacement);
+
+    static regexp::match_data
+    match (const std::string& pat, const std::string& buffer,
+           const regexp::opts& opt = regexp::opts (),
+           const std::string& who = "regexp")
+    {
+      regexp rx (pat, opt, who);
+
+      return rx.match (buffer);
+    }
+
+    static bool
+    is_match (const std::string& pat, const std::string& buffer,
+              const regexp::opts& opt = regexp::opts (),
+              const std::string& who = "regexp")
     {
-      if (this != &o)
-        {
-          x_case_insensitive = o.x_case_insensitive;
-          x_dotexceptnewline = o.x_dotexceptnewline;
-          x_emptymatch = o.x_emptymatch;
-          x_freespacing = o.x_freespacing;
-          x_lineanchors = o.x_lineanchors;
-          x_once = o.x_once;
-        }
+      regexp rx (pat, opt, who);
+
+      return rx.is_match (buffer);
+    }
+
+    static Array<bool>
+    is_match (const std::string& pat, const string_vector& buffer,
+              const regexp::opts& opt = regexp::opts (),
+              const std::string& who = "regexp")
+    {
+      regexp rx (pat, opt, who);
 
-      return *this;
+      return rx.is_match (buffer);
+    }
+
+    static std::string
+    replace (const std::string& pat, const std::string& buffer,
+             const std::string& replacement,
+             const regexp::opts& opt = regexp::opts (),
+             const std::string& who = "regexp")
+    {
+      regexp rx (pat, opt, who);
+
+      return rx.replace (buffer, replacement);
     }
 
-    ~opts (void) { }
+    class opts
+    {
+    public:
+
+      opts (void)
+        : x_case_insensitive (false), x_dotexceptnewline (false),
+          x_emptymatch (false), x_freespacing (false), x_lineanchors (false),
+          x_once (false) { }
+
+      opts (const opts& o)
+        : x_case_insensitive (o.x_case_insensitive),
+          x_dotexceptnewline (o.x_dotexceptnewline),
+          x_emptymatch (o.x_emptymatch),
+          x_freespacing (o.x_freespacing),
+          x_lineanchors (o.x_lineanchors),
+          x_once (o.x_once)
+      { }
+
+      opts& operator = (const opts& o)
+      {
+        if (this != &o)
+          {
+            x_case_insensitive = o.x_case_insensitive;
+            x_dotexceptnewline = o.x_dotexceptnewline;
+            x_emptymatch = o.x_emptymatch;
+            x_freespacing = o.x_freespacing;
+            x_lineanchors = o.x_lineanchors;
+            x_once = o.x_once;
+          }
+
+        return *this;
+      }
+
+      ~opts (void) { }
+
+      void case_insensitive (bool val) { x_case_insensitive = val; }
+      void dotexceptnewline (bool val) { x_dotexceptnewline = val; }
+      void emptymatch (bool val) { x_emptymatch = val; }
+      void freespacing (bool val) { x_freespacing = val; }
+      void lineanchors (bool val) { x_lineanchors = val; }
+      void once (bool val) { x_once = val; }
+
+      bool case_insensitive (void) const { return x_case_insensitive; }
+      bool dotexceptnewline (void) const { return x_dotexceptnewline; }
+      bool emptymatch (void) const { return x_emptymatch; }
+      bool freespacing (void) const { return x_freespacing; }
+      bool lineanchors (void) const { return x_lineanchors; }
+      bool once (void) const { return x_once; }
+
+    private:
+
+      bool x_case_insensitive;
+      bool x_dotexceptnewline;
+      bool x_emptymatch;
+      bool x_freespacing;
+      bool x_lineanchors;
+      bool x_once;
+    };
+
+    class match_element
+    {
+    public:
 
-    void case_insensitive (bool val) { x_case_insensitive = val; }
-    void dotexceptnewline (bool val) { x_dotexceptnewline = val; }
-    void emptymatch (bool val) { x_emptymatch = val; }
-    void freespacing (bool val) { x_freespacing = val; }
-    void lineanchors (bool val) { x_lineanchors = val; }
-    void once (bool val) { x_once = val; }
+      match_element (const string_vector& nt, const string_vector& t,
+                     const std::string& ms, const Matrix& te,
+                     double s, double e)
+        : x_match_string (ms), x_named_tokens (nt), x_tokens (t),
+          x_token_extents (te), x_start (s), x_end (e)
+      { }
+
+      match_element (const match_element &a)
+        : x_match_string (a.x_match_string),
+          x_named_tokens (a.x_named_tokens), x_tokens (a.x_tokens),
+          x_token_extents (a.x_token_extents),
+          x_start (a.x_start), x_end (a.x_end)
+      { }
+
+      std::string match_string (void) const { return x_match_string; }
+      string_vector named_tokens (void) const { return x_named_tokens; }
+      string_vector tokens (void) const { return x_tokens; }
+      Matrix token_extents (void) const { return x_token_extents; }
+      double start (void) const { return x_start; }
+      double end (void) const { return x_end; }
+
+    private:
+
+      std::string x_match_string;
+      string_vector x_named_tokens;
+      string_vector x_tokens;
+      Matrix x_token_extents;
+      double x_start;
+      double x_end;
+    };
 
-    bool case_insensitive (void) const { return x_case_insensitive; }
-    bool dotexceptnewline (void) const { return x_dotexceptnewline; }
-    bool emptymatch (void) const { return x_emptymatch; }
-    bool freespacing (void) const { return x_freespacing; }
-    bool lineanchors (void) const { return x_lineanchors; }
-    bool once (void) const { return x_once; }
+    class match_data : public base_list<match_element>
+    {
+    public:
+
+      match_data (void)
+        : base_list<match_element> (), named_pats ()
+      { }
+
+      match_data (const std::list<match_element>& l, const string_vector& np)
+        : base_list<match_element> (l), named_pats (np)
+      { }
+
+      match_data (const match_data& rx_lst)
+        : base_list<match_element> (rx_lst),
+        named_pats (rx_lst.named_pats)
+      { }
+
+      match_data& operator = (const match_data& rx_lst)
+      {
+        if (this != &rx_lst)
+          {
+            base_list<match_element>::operator = (rx_lst);
+            named_pats = rx_lst.named_pats;
+          }
+
+        return *this;
+      }
+
+      ~match_data (void) { }
+
+      string_vector named_patterns (void) { return named_pats; }
+
+    private:
+
+      string_vector named_pats;
+    };
 
   private:
 
-    bool x_case_insensitive;
-    bool x_dotexceptnewline;
-    bool x_emptymatch;
-    bool x_freespacing;
-    bool x_lineanchors;
-    bool x_once;
-  };
-
-  class match_element
-  {
-  public:
-
-    match_element (const string_vector& nt, const string_vector& t,
-                   const std::string& ms, const Matrix& te,
-                   double s, double e)
-      : x_match_string (ms), x_named_tokens (nt), x_tokens (t),
-        x_token_extents (te), x_start (s), x_end (e)
-    { }
+    // The pattern we've been asked to match.
+    std::string pattern;
 
-    match_element (const match_element &a)
-      : x_match_string (a.x_match_string),
-        x_named_tokens (a.x_named_tokens), x_tokens (a.x_tokens),
-        x_token_extents (a.x_token_extents),
-        x_start (a.x_start), x_end (a.x_end)
-    { }
-
-    std::string match_string (void) const { return x_match_string; }
-    string_vector named_tokens (void) const { return x_named_tokens; }
-    string_vector tokens (void) const { return x_tokens; }
-    Matrix token_extents (void) const { return x_token_extents; }
-    double start (void) const { return x_start; }
-    double end (void) const { return x_end; }
-
-  private:
+    opts options;
 
-    std::string x_match_string;
-    string_vector x_named_tokens;
-    string_vector x_tokens;
-    Matrix x_token_extents;
-    double x_start;
-    double x_end;
-  };
-
-  class match_data : public octave_base_list<match_element>
-  {
-  public:
-
-    match_data (void)
-      : octave_base_list<match_element> (), named_pats ()
-    { }
+    // Internal data describing the regular expression.
+    void *data;
 
-    match_data (const std::list<match_element>& l, const string_vector& np)
-      : octave_base_list<match_element> (l), named_pats (np)
-    { }
-
-    match_data (const match_data& rx_lst)
-      : octave_base_list<match_element> (rx_lst),
-        named_pats (rx_lst.named_pats)
-    { }
+    std::string m;
+    string_vector named_pats;
+    int nnames;
+    Array<int> named_idx;
+    std::string who;
 
-    match_data& operator = (const match_data& rx_lst)
-    {
-      if (this != &rx_lst)
-        {
-          octave_base_list<match_element>::operator = (rx_lst);
-          named_pats = rx_lst.named_pats;
-        }
-
-      return *this;
-    }
-
-    ~match_data (void) { }
-
-    string_vector named_patterns (void) { return named_pats; }
+    void free (void);
 
-  private:
-
-    string_vector named_pats;
+    void compile_internal (void);
   };
-
-private:
-
-  // The pattern we've been asked to match.
-  std::string pattern;
-
-  opts options;
+}
 
-  // Internal data describing the regular expression.
-  void *data;
+#if defined (OCTAVE_USE_DEPRECATED_FUNCTIONS)
 
-  std::string m;
-  string_vector named_pats;
-  int nnames;
-  Array<int> named_idx;
-  std::string who;
+OCTAVE_DEPRECATED ("use 'octave::regexp' instead")
+typedef octave::regexp regexp;
 
-  void free (void);
-
-  void compile_internal (void);
-};
-
+OCTAVE_DEPRECATED ("use 'octave::regexp::match' instead")
 inline regexp::match_data
 regexp_match (const std::string& pat,
               const std::string& buffer,
               const regexp::opts& opt = regexp::opts (),
               const std::string& who = "regexp")
 {
-  regexp rx (pat, opt, who);
-
-  return rx.match (buffer);
+  return octave::regexp::match (pat, buffer, opt, who);
 }
 
+OCTAVE_DEPRECATED ("use 'octave::regexp::is_match' instead")
 inline bool
 is_regexp_match (const std::string& pat,
                  const std::string& buffer,
                  const regexp::opts& opt = regexp::opts (),
                  const std::string& who = "regexp")
 {
-  regexp rx (pat, opt, who);
-
-  return rx.is_match (buffer);
+  return octave::regexp::is_match (pat, buffer, opt, who);
 }
 
+OCTAVE_DEPRECATED ("use 'octave::regexp::is_match' instead")
 inline Array<bool>
 is_regexp_match (const std::string& pat,
                  const string_vector& buffer,
                  const regexp::opts& opt = regexp::opts (),
                  const std::string& who = "regexp")
 {
-  regexp rx (pat, opt, who);
-
-  return rx.is_match (buffer);
+  return octave::regexp::is_match (pat, buffer, opt, who);
 }
 
+OCTAVE_DEPRECATED ("use 'octave::regexp::replace' instead")
 inline std::string
 regexp_replace (const std::string& pat,
                 const std::string& buffer,
@@ -283,9 +330,9 @@
                 const regexp::opts& opt = regexp::opts (),
                 const std::string& who = "regexp")
 {
-  regexp rx (pat, opt, who);
-
-  return rx.replace (buffer, replacement);
+  return octave::regexp::replace (pat, buffer, replacement, opt, who);
 }
 
 #endif
+
+#endif