]> git.lyx.org Git - lyx.git/blobdiff - boost/boost/regex/pattern_except.hpp
Also display the info about BibTeX databases in the TeX info panel.
[lyx.git] / boost / boost / regex / pattern_except.hpp
index 39d28ccfa75a65005652fdbdde57716a3d06b20b..57ea14c2565c01ef573d726842d95283c429d749 100644 (file)
@@ -1,7 +1,7 @@
 /*
  *
  * Copyright (c) 1998-2002
- * Dr John Maddock
+ * John Maddock
  *
  * Use, modification and distribution are subject to the 
  * Boost Software License, Version 1.0. (See accompanying file 
 #include <boost/regex/config.hpp>
 #endif
 
+#include <stdexcept>
+#include <cstddef>
+#include <boost/regex/v4/error_type.hpp>
+
 namespace boost{
 
+#ifdef BOOST_MSVC
+#pragma warning(push)
+#pragma warning(disable: 4103)
+#endif
 #ifdef BOOST_HAS_ABI_HEADERS
 #  include BOOST_ABI_PREFIX
 #endif
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
 
 #ifdef BOOST_MSVC
 #pragma warning(push)
 #pragma warning(disable : 4275)
 #endif
-class BOOST_REGEX_DECL bad_pattern : public std::runtime_error
+class BOOST_REGEX_DECL regex_error : public std::runtime_error
 {
 public:
-   explicit bad_pattern(const std::string& s) : std::runtime_error(s){};
-   ~bad_pattern() throw();
+   explicit regex_error(const std::string& s, regex_constants::error_type err = regex_constants::error_unknown, std::ptrdiff_t pos = 0);
+   explicit regex_error(regex_constants::error_type err);
+   ~regex_error() throw();
+   regex_constants::error_type code()const
+   { return m_error_code; }
+   std::ptrdiff_t position()const
+   { return m_position; }
+   void raise()const;
+private:
+   regex_constants::error_type m_error_code;
+   std::ptrdiff_t m_position;
 };
+
+typedef regex_error bad_pattern;
+typedef regex_error bad_expression;
+
+namespace re_detail{
+
+BOOST_REGEX_DECL void BOOST_REGEX_CALL raise_runtime_error(const std::runtime_error& ex);
+
+template <class traits>
+void raise_error(const traits& t, regex_constants::error_type code)
+{
+   (void)t;  // warning suppression
+   std::runtime_error e(t.error_string(code));
+   ::boost::re_detail::raise_runtime_error(e);
+}
+
+}
+
 #ifdef BOOST_MSVC
 #pragma warning(pop)
 #endif
 
-class BOOST_REGEX_DECL bad_expression : public bad_pattern
-{
-public:
-   explicit bad_expression(const std::string& s) : bad_pattern(s) {}
-   ~bad_expression() throw();
-};
-
+#ifdef BOOST_MSVC
+#pragma warning(push)
+#pragma warning(disable: 4103)
+#endif
 #ifdef BOOST_HAS_ABI_HEADERS
 #  include BOOST_ABI_SUFFIX
 #endif
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
 
 } // namespace boost