mirror of
https://github.com/boostorg/regex.git
synced 2025-07-02 23:26:34 +02:00
reorganised regex config setup
[SVN r10064]
This commit is contained in:
@ -13,7 +13,7 @@
|
|||||||
<H3><IMG SRC="../../c++boost.gif" WIDTH=276 HEIGHT=86 ALT="C++ Boost"></H3></TD>
|
<H3><IMG SRC="../../c++boost.gif" WIDTH=276 HEIGHT=86 ALT="C++ Boost"></H3></TD>
|
||||||
<TD WIDTH="50%" VALIGN="TOP">
|
<TD WIDTH="50%" VALIGN="TOP">
|
||||||
<H3 ALIGN="CENTER">Regex++, Appendices.</H3>
|
<H3 ALIGN="CENTER">Regex++, Appendices.</H3>
|
||||||
<I><P ALIGN="CENTER">(version 3.10, 18 April 2000)</I> </P>
|
<I><P ALIGN="CENTER">(version 3.11, 18 April 2000)</I> </P>
|
||||||
<I><PRE>Copyright (c) 1998-2000
|
<I><PRE>Copyright (c) 1998-2000
|
||||||
Dr John Maddock
|
Dr John Maddock
|
||||||
|
|
||||||
|
456
configure.in
456
configure.in
@ -111,16 +111,6 @@ AC_DEFINE_UNQUOTED(BOOST_RE_SIZEOF_INT, [$ac_cv_sizeof_int])
|
|||||||
AC_DEFINE_UNQUOTED(BOOST_RE_SIZEOF_LONG, [$ac_cv_sizeof_long])
|
AC_DEFINE_UNQUOTED(BOOST_RE_SIZEOF_LONG, [$ac_cv_sizeof_long])
|
||||||
|
|
||||||
|
|
||||||
if test "$ac_cv_sizeof_int" -lt 4; then
|
|
||||||
if test "$ac_cv_sizeof_long" -ge 4; then
|
|
||||||
AC_DEFINE(BOOST_RE_INT32_LONG)
|
|
||||||
else
|
|
||||||
AC_MSG_ERROR(Cannot find any 32-bit integer type for your compiler)
|
|
||||||
fi
|
|
||||||
ac_ext=$use_ac_ext
|
|
||||||
fi
|
|
||||||
ac_ext=$use_ac_ext
|
|
||||||
|
|
||||||
|
|
||||||
ac_ext=$use_ac_ext
|
ac_ext=$use_ac_ext
|
||||||
|
|
||||||
@ -192,37 +182,6 @@ void do_throw()
|
|||||||
AC_MSG_ERROR(Sorry, without exception handling you can't compile this library)])
|
AC_MSG_ERROR(Sorry, without exception handling you can't compile this library)])
|
||||||
|
|
||||||
|
|
||||||
AC_ARG_ENABLE(mutable, [--disable-mutable turns off mutable support])
|
|
||||||
if test "$enable_mutable" = "no"; then
|
|
||||||
AC_DEFINE(BOOST_RE_NO_MUTABLE, [])
|
|
||||||
else
|
|
||||||
|
|
||||||
AC_MSG_CHECKING(for mutable keyword)
|
|
||||||
AC_TRY_COMPILE(
|
|
||||||
[
|
|
||||||
#include <stdlib.h>
|
|
||||||
|
|
||||||
class foo
|
|
||||||
{
|
|
||||||
mutable int val;
|
|
||||||
public:
|
|
||||||
foo(int i) : val(i) {}
|
|
||||||
void set(int i)const;
|
|
||||||
};
|
|
||||||
|
|
||||||
void foo::set(int i)const
|
|
||||||
{
|
|
||||||
val = i;
|
|
||||||
}
|
|
||||||
],
|
|
||||||
[
|
|
||||||
const foo f(4);
|
|
||||||
f.set(3);
|
|
||||||
],
|
|
||||||
[AC_MSG_RESULT(yes)],
|
|
||||||
[AC_DEFINE(BOOST_RE_NO_MUTABLE, []) AC_MSG_RESULT(no)])
|
|
||||||
fi
|
|
||||||
|
|
||||||
AC_MSG_CHECKING(for default template parameter support)
|
AC_MSG_CHECKING(for default template parameter support)
|
||||||
AC_TRY_COMPILE(
|
AC_TRY_COMPILE(
|
||||||
[
|
[
|
||||||
@ -304,44 +263,6 @@ int foo(const dummy<T>& )
|
|||||||
[AC_MSG_RESULT(yes)],
|
[AC_MSG_RESULT(yes)],
|
||||||
[AC_DEFINE(BOOST_RE_NO_PARTIAL_FUNC_SPEC, []) AC_MSG_RESULT(no)])
|
[AC_DEFINE(BOOST_RE_NO_PARTIAL_FUNC_SPEC, []) AC_MSG_RESULT(no)])
|
||||||
|
|
||||||
AC_MSG_CHECKING([for template friend functions])
|
|
||||||
AC_TRY_COMPILE(
|
|
||||||
[
|
|
||||||
#include <stdlib.h>
|
|
||||||
|
|
||||||
template <class T2>
|
|
||||||
void foo(T2 t);
|
|
||||||
|
|
||||||
template <class T>
|
|
||||||
struct dummy
|
|
||||||
{
|
|
||||||
template <class T2> friend void foo(T2);
|
|
||||||
private:
|
|
||||||
void foo2();
|
|
||||||
void foo3()const;
|
|
||||||
};
|
|
||||||
|
|
||||||
template <class T2>
|
|
||||||
void foo(T2 t)
|
|
||||||
{
|
|
||||||
dummy<T2> d1;
|
|
||||||
d1.foo2();
|
|
||||||
d1.foo3();
|
|
||||||
dummy<int> d2;
|
|
||||||
d2.foo2();
|
|
||||||
d2.foo3();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
],
|
|
||||||
[
|
|
||||||
foo(3);
|
|
||||||
foo(2.345);
|
|
||||||
],
|
|
||||||
[AC_MSG_RESULT(yes)],
|
|
||||||
[AC_DEFINE(BOOST_RE_NO_TEMPLATE_FRIEND, []) AC_MSG_RESULT(no)])
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
AC_ARG_ENABLE(ms-windows, [--disable-ms-windows turns off native MS Windows support (when available)])
|
AC_ARG_ENABLE(ms-windows, [--disable-ms-windows turns off native MS Windows support (when available)])
|
||||||
AC_ARG_ENABLE(threads, [--disable-threads turns off multi-threading support (when available)])
|
AC_ARG_ENABLE(threads, [--disable-threads turns off multi-threading support (when available)])
|
||||||
@ -362,7 +283,6 @@ AC_TRY_COMPILE(
|
|||||||
int i = GetVersion();
|
int i = GetVersion();
|
||||||
],
|
],
|
||||||
[iswin="true"
|
[iswin="true"
|
||||||
AC_DEFINE(BOOST_RE_PLATFORM_WINDOWS, [])
|
|
||||||
AC_MSG_RESULT(yes)],
|
AC_MSG_RESULT(yes)],
|
||||||
[AC_MSG_RESULT(no)
|
[AC_MSG_RESULT(no)
|
||||||
enable_ms_windows="no"]
|
enable_ms_windows="no"]
|
||||||
@ -438,21 +358,6 @@ enable_ms_windows="no"
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
if test "$iswin" != "true"; then
|
|
||||||
|
|
||||||
AC_MSG_CHECKING(for MS DOS)
|
|
||||||
AC_TRY_COMPILE(
|
|
||||||
[
|
|
||||||
#include <dos.h>
|
|
||||||
],
|
|
||||||
[
|
|
||||||
int i = _doserrno;
|
|
||||||
],
|
|
||||||
[AC_DEFINE(BOOST_RE_PLATFORM_DOS, []) AC_MSG_RESULT(yes)],
|
|
||||||
[AC_MSG_RESULT(no)])
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
AC_MSG_CHECKING(for bool support)
|
AC_MSG_CHECKING(for bool support)
|
||||||
AC_TRY_COMPILE(
|
AC_TRY_COMPILE(
|
||||||
@ -570,7 +475,7 @@ fi
|
|||||||
|
|
||||||
AC_ARG_ENABLE(member-templates, [--disable-member-templates turns off member template class and function support])
|
AC_ARG_ENABLE(member-templates, [--disable-member-templates turns off member template class and function support])
|
||||||
if test "$enable_member_templates" = "no"; then
|
if test "$enable_member_templates" = "no"; then
|
||||||
AC_DEFINE(BOOST_RE_NO_MEMBER_TEMPLATES, [])
|
AC_DEFINE(BOOST_NO_MEMBER_TEMPLATES, [])
|
||||||
else
|
else
|
||||||
|
|
||||||
AC_MSG_CHECKING(for member template classes and functions)
|
AC_MSG_CHECKING(for member template classes and functions)
|
||||||
@ -608,7 +513,7 @@ public:
|
|||||||
fa = ia;
|
fa = ia;
|
||||||
],
|
],
|
||||||
[AC_MSG_RESULT(yes)],
|
[AC_MSG_RESULT(yes)],
|
||||||
[AC_DEFINE(BOOST_RE_NO_MEMBER_TEMPLATES,[])
|
[AC_DEFINE(BOOST_NO_MEMBER_TEMPLATES,[])
|
||||||
AC_MSG_RESULT(no)])
|
AC_MSG_RESULT(no)])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -765,100 +670,6 @@ AC_DEFINE(BOOST_RE_THREADS, [])],
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
AC_ARG_ENABLE(nested-template-prefix, [--disable-nested-template-prefix turns off use of \"template\" as the nested template class access specifier.])
|
|
||||||
if test "$enable_nested_template_prefix" = "no" || test "$enable_member_templates" = "no"; then
|
|
||||||
AC_DEFINE(BOOST_RE_NESTED_TEMPLATE_DECL, [])
|
|
||||||
else
|
|
||||||
|
|
||||||
AC_MSG_CHECKING(for template nested class access)
|
|
||||||
AC_TRY_COMPILE(
|
|
||||||
[
|
|
||||||
template <class T>
|
|
||||||
class alloc
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
void* allocate(int);
|
|
||||||
void deallocate(void*);
|
|
||||||
alloc();
|
|
||||||
alloc(const alloc&);
|
|
||||||
template <class U>
|
|
||||||
alloc(const alloc<U>&) {}
|
|
||||||
alloc& operator=(const alloc&);
|
|
||||||
template <class U>
|
|
||||||
alloc& operator=(const alloc<U>&)
|
|
||||||
{ return *this; }
|
|
||||||
|
|
||||||
template <class U>
|
|
||||||
struct rebind
|
|
||||||
{
|
|
||||||
typedef alloc<U> other;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
],
|
|
||||||
[
|
|
||||||
alloc<int> ia;
|
|
||||||
alloc<double> da(ia);
|
|
||||||
alloc<float> fa;
|
|
||||||
fa.allocate(5);
|
|
||||||
fa = ia;
|
|
||||||
alloc<int>::template rebind<double>::other da2(ia);
|
|
||||||
],
|
|
||||||
[
|
|
||||||
AC_MSG_RESULT(yes)
|
|
||||||
AC_DEFINE(BOOST_RE_NESTED_TEMPLATE_DECL,template)
|
|
||||||
],
|
|
||||||
[
|
|
||||||
AC_DEFINE(BOOST_RE_NESTED_TEMPLATE_DECL,[])
|
|
||||||
AC_MSG_RESULT(no)
|
|
||||||
])
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
AC_MSG_CHECKING(for explicit template instantiation)
|
|
||||||
AC_TRY_COMPILE(
|
|
||||||
[
|
|
||||||
#include "confdefs.h"
|
|
||||||
#include <stdlib.h>
|
|
||||||
|
|
||||||
template <class T>
|
|
||||||
class factorial
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
factorial();
|
|
||||||
T operator()(T);
|
|
||||||
};
|
|
||||||
|
|
||||||
template <class T>
|
|
||||||
factorial<T>::factorial()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
template <class T>
|
|
||||||
T factorial<T>::operator()(T t)
|
|
||||||
{
|
|
||||||
T result = 1;
|
|
||||||
for(T i = 1; i <= t; ++i)
|
|
||||||
{
|
|
||||||
result *= i;
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
template class factorial<int>;
|
|
||||||
template class factorial<short>;
|
|
||||||
],
|
|
||||||
[
|
|
||||||
],
|
|
||||||
[
|
|
||||||
AC_MSG_RESULT(yes)
|
|
||||||
],
|
|
||||||
[
|
|
||||||
AC_DEFINE(BOOST_RE_NO_TEMPLATE_INST,[])
|
|
||||||
AC_MSG_RESULT(no)
|
|
||||||
])
|
|
||||||
|
|
||||||
|
|
||||||
AC_ARG_ENABLE(fastcall, [--disable-fastcall turns off use __fastcall and __stdcall.])
|
AC_ARG_ENABLE(fastcall, [--disable-fastcall turns off use __fastcall and __stdcall.])
|
||||||
if test "$enable_fastcall" = "no" || test "$enable_ms_windows" != "no"; then
|
if test "$enable_fastcall" = "no" || test "$enable_ms_windows" != "no"; then
|
||||||
AC_DEFINE(BOOST_RE_CALL, [])
|
AC_DEFINE(BOOST_RE_CALL, [])
|
||||||
@ -921,58 +732,6 @@ have_std_namespace="yes"
|
|||||||
[AC_MSG_RESULT(no - either STL is not present or in a non-standard namespace.)
|
[AC_MSG_RESULT(no - either STL is not present or in a non-standard namespace.)
|
||||||
AC_MSG_ERROR([Sorry, you can't compile this library unless the standard library is in namespace std.])])
|
AC_MSG_ERROR([Sorry, you can't compile this library unless the standard library is in namespace std.])])
|
||||||
|
|
||||||
AC_MSG_CHECKING(for <iterator>)
|
|
||||||
AC_TRY_COMPILE(
|
|
||||||
[
|
|
||||||
#include <iterator>
|
|
||||||
|
|
||||||
],
|
|
||||||
[
|
|
||||||
],
|
|
||||||
[AC_MSG_RESULT(yes)
|
|
||||||
],
|
|
||||||
[AC_MSG_RESULT(no)
|
|
||||||
AC_DEFINE(BOOST_RE_NO_ITERATOR_H, [])
|
|
||||||
])
|
|
||||||
|
|
||||||
AC_MSG_CHECKING(for <algorithm>)
|
|
||||||
AC_TRY_COMPILE(
|
|
||||||
[
|
|
||||||
#include <algorithm>
|
|
||||||
#include "confdefs.h"
|
|
||||||
|
|
||||||
],
|
|
||||||
[
|
|
||||||
],
|
|
||||||
[AC_MSG_RESULT(yes)
|
|
||||||
],
|
|
||||||
[AC_MSG_RESULT(no)
|
|
||||||
need_algo="yes"
|
|
||||||
])
|
|
||||||
|
|
||||||
if test "$enable_stl" != "no" && test "$need_algo" = "yes"; then
|
|
||||||
AC_MSG_CHECKING(for <algo>)
|
|
||||||
AC_TRY_COMPILE(
|
|
||||||
[
|
|
||||||
#include <algo>
|
|
||||||
|
|
||||||
],
|
|
||||||
[
|
|
||||||
],
|
|
||||||
[AC_MSG_RESULT(yes)
|
|
||||||
AC_DEFINE(BOOST_RE_USE_ALGO, [])
|
|
||||||
],
|
|
||||||
[AC_MSG_RESULT(no - disabling STL support)
|
|
||||||
AC_DEFINE(BOOST_RE_NO_STL, [])
|
|
||||||
AC_DEFINE(BOOST_RE_NO_EXCEPTION_H, [])
|
|
||||||
AC_DEFINE(BOOST_RE_NO_ITERATOR_H, [])
|
|
||||||
AC_DEFINE(BOOST_RE_NO_MEMORY_H, [])
|
|
||||||
AC_DEFINE(BOOST_RE_NO_LOCALE_H, [])
|
|
||||||
AC_DEFINE(BOOST_RE_NO_STRING_H, [])
|
|
||||||
enable_stl="no"
|
|
||||||
])
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
AC_MSG_CHECKING(for <memory>)
|
AC_MSG_CHECKING(for <memory>)
|
||||||
AC_TRY_COMPILE(
|
AC_TRY_COMPILE(
|
||||||
@ -983,7 +742,7 @@ AC_TRY_COMPILE(
|
|||||||
template <class A>
|
template <class A>
|
||||||
struct tester
|
struct tester
|
||||||
{
|
{
|
||||||
typedef typename A::BOOST_RE_NESTED_TEMPLATE_DECL rebind<int> binder;
|
typedef typename A::template rebind<int> binder;
|
||||||
typedef typename binder::other alloc_type;
|
typedef typename binder::other alloc_type;
|
||||||
alloc_type a;
|
alloc_type a;
|
||||||
tester(A al): a(al) {}
|
tester(A al): a(al) {}
|
||||||
@ -994,7 +753,7 @@ std::allocator<double> d(a);
|
|||||||
|
|
||||||
typedef std::allocator<char> alloc_type;
|
typedef std::allocator<char> alloc_type;
|
||||||
|
|
||||||
alloc_type::BOOST_RE_NESTED_TEMPLATE_DECL rebind<int>::other o(a);
|
alloc_type::template rebind<int>::other o(a);
|
||||||
|
|
||||||
tester<std::allocator<char> > t(a);
|
tester<std::allocator<char> > t(a);
|
||||||
],
|
],
|
||||||
@ -1003,7 +762,7 @@ tester<std::allocator<char> > t(a);
|
|||||||
[AC_MSG_RESULT(yes)
|
[AC_MSG_RESULT(yes)
|
||||||
],
|
],
|
||||||
[AC_MSG_RESULT(no)
|
[AC_MSG_RESULT(no)
|
||||||
AC_DEFINE(BOOST_RE_NO_MEMORY_H, [])
|
AC_DEFINE(BOOST_NO_STD_ALLOCATOR, [])
|
||||||
])
|
])
|
||||||
|
|
||||||
|
|
||||||
@ -1112,211 +871,13 @@ AC_TRY_COMPILE(
|
|||||||
i = std::distance(j, k);
|
i = std::distance(j, k);
|
||||||
],
|
],
|
||||||
[AC_MSG_RESULT(yes)
|
[AC_MSG_RESULT(yes)
|
||||||
AC_DEFINE(BOOST_RE_DISTANCE_T_1)
|
|
||||||
have_dist="yes"
|
have_dist="yes"
|
||||||
],
|
],
|
||||||
[])
|
|
||||||
|
|
||||||
if test "$enable_stl" != "no" && test "$have_dist" != "yes"; then
|
|
||||||
AC_TRY_COMPILE(
|
|
||||||
[
|
[
|
||||||
#include <iterator>
|
AC_MSG_RESULT(no)
|
||||||
#include "confdefs.h"
|
AC_DEFINE(BOOST_NO_STD_DISTANCE)
|
||||||
|
])
|
||||||
|
|
||||||
],
|
|
||||||
[
|
|
||||||
int i, *j, *k;
|
|
||||||
std::distance(j, k, i);
|
|
||||||
],
|
|
||||||
[AC_MSG_RESULT(yes)
|
|
||||||
AC_DEFINE(BOOST_RE_DISTANCE_T_2)
|
|
||||||
have_dist="yes"
|
|
||||||
],
|
|
||||||
[AC_MSG_RESULT(no)
|
|
||||||
AC_DEFINE(BOOST_RE_DISTANCE_T_0)
|
|
||||||
have_dist="yes"])
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$enable_stl" != "no" && test "$have_si" != "yes"; then
|
|
||||||
AC_MSG_CHECKING(for standard iterator syntax)
|
|
||||||
AC_TRY_COMPILE(
|
|
||||||
[
|
|
||||||
#include <iterator>
|
|
||||||
#include "confdefs.h"
|
|
||||||
|
|
||||||
],
|
|
||||||
[
|
|
||||||
std::iterator<std::output_iterator_tag, char, std::ptrdiff_t, char*, char&> oi;
|
|
||||||
std::iterator<std::input_iterator_tag, char, std::ptrdiff_t, char*, char&> ii;
|
|
||||||
std::iterator<std::forward_iterator_tag, char, std::ptrdiff_t, char*, char&> fi;
|
|
||||||
std::iterator<std::bidirectional_iterator_tag, char, std::ptrdiff_t, char*, char&> bi;
|
|
||||||
std::iterator<std::random_access_iterator_tag, char, std::ptrdiff_t, char*, char&> ri;
|
|
||||||
],
|
|
||||||
[AC_MSG_RESULT(yes)
|
|
||||||
AC_DEFINE(BOOST_RE_ITERATOR_T_1)
|
|
||||||
have_si="yes"
|
|
||||||
have_oi="yes"
|
|
||||||
have_ii="yes"
|
|
||||||
have_fi="yes"
|
|
||||||
have_bi="yes"
|
|
||||||
have_ri="yes"
|
|
||||||
],
|
|
||||||
[])
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$enable_stl" != "no" && test "$have_si" != "yes"; then
|
|
||||||
AC_TRY_COMPILE(
|
|
||||||
[
|
|
||||||
#include <iterator>
|
|
||||||
#include "confdefs.h"
|
|
||||||
|
|
||||||
],
|
|
||||||
[
|
|
||||||
std::iterator<std::output_iterator_tag, char, std::ptrdiff_t> oi;
|
|
||||||
std::iterator<std::input_iterator_tag, char, std::ptrdiff_t> ii;
|
|
||||||
std::iterator<std::forward_iterator_tag, char, std::ptrdiff_t> fi;
|
|
||||||
std::iterator<std::bidirectional_iterator_tag, char, std::ptrdiff_t> bi;
|
|
||||||
std::iterator<std::random_access_iterator_tag, char, std::ptrdiff_t> ri;
|
|
||||||
],
|
|
||||||
[AC_MSG_RESULT(yes)
|
|
||||||
AC_DEFINE(BOOST_RE_ITERATOR_T_2)
|
|
||||||
have_si="yes"
|
|
||||||
have_oi="yes"
|
|
||||||
have_ii="yes"
|
|
||||||
have_fi="yes"
|
|
||||||
have_bi="yes"
|
|
||||||
have_ri="yes"
|
|
||||||
],
|
|
||||||
[AC_MSG_RESULT(no)])
|
|
||||||
AC_DEFINE(BOOST_RE_ITERATOR_T_0)
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
if test "$have_oi" != "yes"; then
|
|
||||||
AC_MSG_CHECKING(for output iterator syntax)
|
|
||||||
AC_TRY_COMPILE(
|
|
||||||
[
|
|
||||||
#include <iterator>
|
|
||||||
#include "confdefs.h"
|
|
||||||
|
|
||||||
],
|
|
||||||
[
|
|
||||||
std::output_iterator oi;
|
|
||||||
],
|
|
||||||
[AC_MSG_RESULT(yes)
|
|
||||||
AC_DEFINE(BOOST_RE_OI_T_3)
|
|
||||||
have_oi="yes"
|
|
||||||
],
|
|
||||||
[AC_MSG_RESULT(no)
|
|
||||||
AC_DEFINE(BOOST_RE_OI_T_0)
|
|
||||||
have_oi="yes"])
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$enable_stl" != "no" && test "$have_ii" != "yes"; then
|
|
||||||
AC_MSG_CHECKING(for input iterator syntax)
|
|
||||||
AC_TRY_COMPILE(
|
|
||||||
[
|
|
||||||
#include <iterator>
|
|
||||||
#include "confdefs.h"
|
|
||||||
|
|
||||||
],
|
|
||||||
[
|
|
||||||
std::input_iterator<char, std::ptrdiff_t> oi;
|
|
||||||
],
|
|
||||||
[AC_MSG_RESULT(yes)
|
|
||||||
AC_DEFINE(BOOST_RE_II_T_3)
|
|
||||||
have_ii="yes"
|
|
||||||
],
|
|
||||||
[])
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$enable_stl" != "no" && test "$have_ii" != "yes"; then
|
|
||||||
AC_TRY_COMPILE(
|
|
||||||
[
|
|
||||||
#include <iterator>
|
|
||||||
#include "confdefs.h"
|
|
||||||
|
|
||||||
],
|
|
||||||
[
|
|
||||||
std::input_iterator<char> oi;
|
|
||||||
],
|
|
||||||
[AC_MSG_RESULT(yes)
|
|
||||||
AC_DEFINE(BOOST_RE_II_T_4)
|
|
||||||
have_ii="yes"
|
|
||||||
],
|
|
||||||
[AC_MSG_RESULT(no)
|
|
||||||
AC_DEFINE(BOOST_RE_II_T_0)
|
|
||||||
have_ii="yes"])
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$enable_stl" != "no" && test "$have_fi" != "yes"; then
|
|
||||||
AC_MSG_CHECKING(for forward iterator syntax)
|
|
||||||
AC_TRY_COMPILE(
|
|
||||||
[
|
|
||||||
#include <iterator>
|
|
||||||
#include "confdefs.h"
|
|
||||||
|
|
||||||
],
|
|
||||||
[
|
|
||||||
std::forward_iterator<int, std::ptrdiff_t> oi;
|
|
||||||
],
|
|
||||||
[AC_MSG_RESULT(yes)
|
|
||||||
AC_DEFINE(BOOST_RE_FI_T_3)
|
|
||||||
have_fi="yes"
|
|
||||||
],
|
|
||||||
[AC_MSG_RESULT(no)
|
|
||||||
AC_DEFINE(BOOST_RE_FI_T_0)
|
|
||||||
have_fi="yes"])
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$enable_stl" != "no" && test "$have_bi" != "yes"; then
|
|
||||||
AC_MSG_CHECKING(for bidirectional iterator syntax)
|
|
||||||
AC_TRY_COMPILE(
|
|
||||||
[
|
|
||||||
#include <iterator>
|
|
||||||
#include "confdefs.h"
|
|
||||||
|
|
||||||
],
|
|
||||||
[
|
|
||||||
std::bidirectional_iterator<int, std::ptrdiff_t> oi;
|
|
||||||
],
|
|
||||||
[AC_MSG_RESULT(yes)
|
|
||||||
AC_DEFINE(BOOST_RE_BI_T_)
|
|
||||||
have_bi="yes"
|
|
||||||
],
|
|
||||||
[AC_MSG_RESULT(no)
|
|
||||||
AC_DEFINE(BOOST_RE_BI_T_0)
|
|
||||||
have_bi="yes"])
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$enable_stl" != "no" && test "$have_ri" != "yes"; then
|
|
||||||
AC_MSG_CHECKING(for random access iterator syntax)
|
|
||||||
AC_TRY_COMPILE(
|
|
||||||
[
|
|
||||||
#include <iterator>
|
|
||||||
#include "confdefs.h"
|
|
||||||
|
|
||||||
],
|
|
||||||
[
|
|
||||||
std::random_access_iterator<int, std::ptrdiff_t> oi;
|
|
||||||
],
|
|
||||||
[AC_MSG_RESULT(yes)
|
|
||||||
AC_DEFINE(BOOST_RE_RI_T_3)
|
|
||||||
have_ri="yes"
|
|
||||||
],
|
|
||||||
[AC_MSG_RESULT(no)
|
|
||||||
AC_DEFINE(BOOST_RE_RI_T_0)
|
|
||||||
have_ri="yes"])
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$enable_stl" != "no"; then
|
if test "$enable_stl" != "no"; then
|
||||||
AC_MSG_CHECKING(for output iterator assignment)
|
AC_MSG_CHECKING(for output iterator assignment)
|
||||||
@ -1697,5 +1258,6 @@ rm -f jm_opt.out
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* FILE jgrep.cpp
|
* FILE jgrep.cpp
|
||||||
* VERSION 3.10
|
* VERSION 3.11
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* FILE jgrep.h
|
* FILE jgrep.h
|
||||||
* VERSION 3.10
|
* VERSION 3.11
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _JGREP_H
|
#ifndef _JGREP_H
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* FILE main.cpp
|
* FILE main.cpp
|
||||||
* VERSION 3.10
|
* VERSION 3.11
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
2
faq.htm
2
faq.htm
@ -13,7 +13,7 @@
|
|||||||
<H3><IMG SRC="../../c++boost.gif" WIDTH=276 HEIGHT=86 ALT="C++ Boost"></H3></TD>
|
<H3><IMG SRC="../../c++boost.gif" WIDTH=276 HEIGHT=86 ALT="C++ Boost"></H3></TD>
|
||||||
<TD WIDTH="50%" VALIGN="TOP">
|
<TD WIDTH="50%" VALIGN="TOP">
|
||||||
<H3 ALIGN="CENTER">Regex++, FAQ.</H3>
|
<H3 ALIGN="CENTER">Regex++, FAQ.</H3>
|
||||||
<I><P ALIGN="CENTER">(version 3.10, 18 April 2000)</I> </P>
|
<I><P ALIGN="CENTER">(version 3.11, 18 April 2000)</I> </P>
|
||||||
<I><PRE>Copyright (c) 1998-2000
|
<I><PRE>Copyright (c) 1998-2000
|
||||||
Dr John Maddock
|
Dr John Maddock
|
||||||
|
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
<H3> Regex++, Format String Reference.</H3>
|
<H3> Regex++, Format String Reference.</H3>
|
||||||
</CENTER>
|
</CENTER>
|
||||||
<CENTER>
|
<CENTER>
|
||||||
<I>(version 3.10, 18 April 2000)</I>
|
<I>(version 3.11, 18 April 2000)</I>
|
||||||
</CENTER>
|
</CENTER>
|
||||||
<PRE><I>Copyright (c) 1998-2000
|
<PRE><I>Copyright (c) 1998-2000
|
||||||
Dr John Maddock
|
Dr John Maddock
|
||||||
|
@ -20,7 +20,7 @@ content="C:\PROGRAM FILES\MICROSOFT OFFICE\OFFICE\html.dot">
|
|||||||
</td>
|
</td>
|
||||||
<td valign="top" width="50%"><h3 align="center">Regex++,
|
<td valign="top" width="50%"><h3 align="center">Regex++,
|
||||||
RegEx Class Reference. </h3>
|
RegEx Class Reference. </h3>
|
||||||
<p><i>(version 3.10, 18 April 2000)</i> </p>
|
<p><i>(version 3.11, 18 April 2000)</i> </p>
|
||||||
<pre><i>Copyright (c) 1998-2000
|
<pre><i>Copyright (c) 1998-2000
|
||||||
Dr John Maddock
|
Dr John Maddock
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
/*
|
/*
|
||||||
* LOCATION: see http://www.boost.org for most recent version.
|
* LOCATION: see http://www.boost.org for most recent version.
|
||||||
* FILE cregex.cpp
|
* FILE cregex.cpp
|
||||||
* VERSION 3.10
|
* VERSION 3.11
|
||||||
* DESCRIPTION: Declares POSIX API functions
|
* DESCRIPTION: Declares POSIX API functions
|
||||||
* + boost::RegEx high level wrapper.
|
* + boost::RegEx high level wrapper.
|
||||||
*/
|
*/
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
/*
|
/*
|
||||||
* LOCATION: see http://www.boost.org for most recent version.
|
* LOCATION: see http://www.boost.org for most recent version.
|
||||||
* FILE regex.h
|
* FILE regex.h
|
||||||
* VERSION 3.10
|
* VERSION 3.11
|
||||||
* DESCRIPTION: Declares POSIX API functions
|
* DESCRIPTION: Declares POSIX API functions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
/*
|
/*
|
||||||
* LOCATION: see http://www.boost.org for most recent version.
|
* LOCATION: see http://www.boost.org for most recent version.
|
||||||
* FILE regex.cpp
|
* FILE regex.cpp
|
||||||
* VERSION 3.10
|
* VERSION 3.11
|
||||||
* DESCRIPTION: Declares boost::reg_expression<> and associated
|
* DESCRIPTION: Declares boost::reg_expression<> and associated
|
||||||
* functions and classes. This header is the main
|
* functions and classes. This header is the main
|
||||||
* entry point for the template regex code.
|
* entry point for the template regex code.
|
||||||
@ -105,9 +105,9 @@ public:
|
|||||||
{
|
{
|
||||||
return static_cast<const regex_traits<wchar_t>*>(this)->translate(c, true);
|
return static_cast<const regex_traits<wchar_t>*>(this)->translate(c, true);
|
||||||
}
|
}
|
||||||
jm_uintfast32_t BOOST_RE_CALL lookup_classname(const wchar_t* first, const wchar_t* last)const
|
boost::uint_fast32_t BOOST_RE_CALL lookup_classname(const wchar_t* first, const wchar_t* last)const
|
||||||
{
|
{
|
||||||
jm_uintfast32_t result = static_cast<const regex_traits<wchar_t>*>(this)->lookup_classname(first, last);
|
boost::uint_fast32_t result = static_cast<const regex_traits<wchar_t>*>(this)->lookup_classname(first, last);
|
||||||
if((result & base_type::char_class_upper) == base_type::char_class_upper)
|
if((result & base_type::char_class_upper) == base_type::char_class_upper)
|
||||||
result |= base_type::char_class_alpha;
|
result |= base_type::char_class_alpha;
|
||||||
return result;
|
return result;
|
||||||
@ -242,7 +242,7 @@ struct re_literal : public re_syntax_base
|
|||||||
struct re_set_long : public re_syntax_base
|
struct re_set_long : public re_syntax_base
|
||||||
{
|
{
|
||||||
unsigned int csingles, cranges, cequivalents;
|
unsigned int csingles, cranges, cequivalents;
|
||||||
jm_uintfast32_t cclasses;
|
boost::uint_fast32_t cclasses;
|
||||||
bool isnot;
|
bool isnot;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -523,7 +523,7 @@ public:
|
|||||||
set_expression(first, last, f | regbase::use_except);
|
set_expression(first, last, f | regbase::use_except);
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
#ifndef BOOST_RE_NO_MEMBER_TEMPLATES
|
#ifndef BOOST_NO_MEMBER_TEMPLATES
|
||||||
|
|
||||||
template <class ST, class SA>
|
template <class ST, class SA>
|
||||||
unsigned int BOOST_RE_CALL set_expression(const std::basic_string<charT, ST, SA>& p, flag_type f = regbase::normal)
|
unsigned int BOOST_RE_CALL set_expression(const std::basic_string<charT, ST, SA>& p, flag_type f = regbase::normal)
|
||||||
@ -671,8 +671,8 @@ private:
|
|||||||
void BOOST_RE_CALL fixup_apply(re_detail::re_syntax_base* b, unsigned cbraces);
|
void BOOST_RE_CALL fixup_apply(re_detail::re_syntax_base* b, unsigned cbraces);
|
||||||
void BOOST_RE_CALL move_offsets(re_detail::re_syntax_base* j, unsigned size);
|
void BOOST_RE_CALL move_offsets(re_detail::re_syntax_base* j, unsigned size);
|
||||||
re_detail::re_syntax_base* BOOST_RE_CALL compile_set(const charT*& first, const charT* last);
|
re_detail::re_syntax_base* BOOST_RE_CALL compile_set(const charT*& first, const charT* last);
|
||||||
re_detail::re_syntax_base* BOOST_RE_CALL compile_set_aux(re_detail::jstack<traits_string_type, Allocator>& singles, re_detail::jstack<traits_string_type, Allocator>& ranges, re_detail::jstack<jm_uintfast32_t, Allocator>& classes, re_detail::jstack<traits_string_type, Allocator>& equivalents, bool isnot, const re_detail::_narrow_type&);
|
re_detail::re_syntax_base* BOOST_RE_CALL compile_set_aux(re_detail::jstack<traits_string_type, Allocator>& singles, re_detail::jstack<traits_string_type, Allocator>& ranges, re_detail::jstack<boost::uint_fast32_t, Allocator>& classes, re_detail::jstack<traits_string_type, Allocator>& equivalents, bool isnot, const re_detail::_narrow_type&);
|
||||||
re_detail::re_syntax_base* BOOST_RE_CALL compile_set_aux(re_detail::jstack<traits_string_type, Allocator>& singles, re_detail::jstack<traits_string_type, Allocator>& ranges, re_detail::jstack<jm_uintfast32_t, Allocator>& classes, re_detail::jstack<traits_string_type, Allocator>& equivalents, bool isnot, const re_detail::_wide_type&);
|
re_detail::re_syntax_base* BOOST_RE_CALL compile_set_aux(re_detail::jstack<traits_string_type, Allocator>& singles, re_detail::jstack<traits_string_type, Allocator>& ranges, re_detail::jstack<boost::uint_fast32_t, Allocator>& classes, re_detail::jstack<traits_string_type, Allocator>& equivalents, bool isnot, const re_detail::_wide_type&);
|
||||||
re_detail::re_syntax_base* BOOST_RE_CALL compile_set_simple(re_detail::re_syntax_base* dat, unsigned long cls, bool isnot = false);
|
re_detail::re_syntax_base* BOOST_RE_CALL compile_set_simple(re_detail::re_syntax_base* dat, unsigned long cls, bool isnot = false);
|
||||||
unsigned int BOOST_RE_CALL parse_inner_set(const charT*& first, const charT* last);
|
unsigned int BOOST_RE_CALL parse_inner_set(const charT*& first, const charT* last);
|
||||||
|
|
||||||
@ -740,8 +740,7 @@ struct sub_match
|
|||||||
operator std::basic_string<value_type> ()const
|
operator std::basic_string<value_type> ()const
|
||||||
{
|
{
|
||||||
std::basic_string<value_type> result;
|
std::basic_string<value_type> result;
|
||||||
unsigned len;
|
unsigned len = boost::re_detail::distance((iterator)first, (iterator)second);
|
||||||
BOOST_RE_DISTANCE((iterator)first, (iterator)second, len);
|
|
||||||
result.reserve(len);
|
result.reserve(len);
|
||||||
iterator i = first;
|
iterator i = first;
|
||||||
while(i != second)
|
while(i != second)
|
||||||
@ -778,8 +777,7 @@ struct sub_match
|
|||||||
|
|
||||||
difference_type BOOST_RE_CALL length()const
|
difference_type BOOST_RE_CALL length()const
|
||||||
{
|
{
|
||||||
difference_type n;
|
difference_type n = boost::re_detail::distance((iterator)first, (iterator)second);
|
||||||
BOOST_RE_DISTANCE((iterator)first, (iterator)second, n);
|
|
||||||
return n;
|
return n;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -846,7 +844,7 @@ class match_results_base
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
typedef Allocator alloc_type;
|
typedef Allocator alloc_type;
|
||||||
typedef BOOST_RE_MAYBE_TYPENAME REBIND_TYPE(iterator, Allocator) iterator_alloc;
|
typedef typename boost::re_detail::rebind_allocator<iterator, Allocator>::type iterator_alloc;
|
||||||
typedef typename iterator_alloc::size_type size_type;
|
typedef typename iterator_alloc::size_type size_type;
|
||||||
#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_NO_STD_ITERATOR_TRAITS)
|
#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_NO_STD_ITERATOR_TRAITS)
|
||||||
typedef typename std::iterator_traits<iterator>::difference_type difference_type;
|
typedef typename std::iterator_traits<iterator>::difference_type difference_type;
|
||||||
@ -859,7 +857,7 @@ public:
|
|||||||
typedef iterator iterator_type;
|
typedef iterator iterator_type;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
typedef BOOST_RE_MAYBE_TYPENAME REBIND_TYPE(char, Allocator) c_alloc;
|
typedef typename boost::re_detail::rebind_allocator<char, Allocator>::type c_alloc;
|
||||||
|
|
||||||
struct c_reference : public c_alloc
|
struct c_reference : public c_alloc
|
||||||
{
|
{
|
||||||
@ -929,8 +927,7 @@ public:
|
|||||||
const sub_match<iterator>& m = (*this)[sub];
|
const sub_match<iterator>& m = (*this)[sub];
|
||||||
if(m.matched == false)
|
if(m.matched == false)
|
||||||
return 0;
|
return 0;
|
||||||
difference_type n;
|
difference_type n = boost::re_detail::distance((iterator)m.first, (iterator)m.second);
|
||||||
BOOST_RE_DISTANCE((iterator)m.first, (iterator)m.second, n);
|
|
||||||
return n;
|
return n;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -950,8 +947,7 @@ public:
|
|||||||
const sub_match<iterator>& s = (*this)[sub];
|
const sub_match<iterator>& s = (*this)[sub];
|
||||||
if(s.matched == false)
|
if(s.matched == false)
|
||||||
return -1;
|
return -1;
|
||||||
difference_type n;
|
difference_type n = boost::re_detail::distance((iterator)(ref->base), (iterator)(s.first));
|
||||||
BOOST_RE_DISTANCE((iterator)ref->base, (iterator)s.first, n);
|
|
||||||
return n;
|
return n;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1270,13 +1266,13 @@ void BOOST_RE_CALL match_results_base<iterator, Allocator>::maybe_assign(const m
|
|||||||
{
|
{
|
||||||
//
|
//
|
||||||
// leftmost takes priority over longest:
|
// leftmost takes priority over longest:
|
||||||
BOOST_RE_DISTANCE(base, p1->first, base1);
|
base1 = boost::re_detail::distance(base, p1->first);
|
||||||
BOOST_RE_DISTANCE(base, p2->first, base2);
|
base2 = boost::re_detail::distance(base, p2->first);
|
||||||
if(base1 < base2) return;
|
if(base1 < base2) return;
|
||||||
if(base2 < base1) break;
|
if(base2 < base1) break;
|
||||||
|
|
||||||
BOOST_RE_DISTANCE(p1->first, p1->second, len1);
|
len1 = boost::re_detail::distance(p1->first, p1->second);
|
||||||
BOOST_RE_DISTANCE(p2->first, p2->second, len2);
|
len2 = boost::re_detail::distance(p2->first, p2->second);
|
||||||
if((len1 != len2) || ((p1->matched == false) && (p2->matched == true)))
|
if((len1 != len2) || ((p1->matched == false) && (p2->matched == true)))
|
||||||
break;
|
break;
|
||||||
if((p1->matched == true) && (p2->matched == false))
|
if((p1->matched == true) && (p2->matched == false))
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
/*
|
/*
|
||||||
* LOCATION: see http://www.boost.org for most recent version.
|
* LOCATION: see http://www.boost.org for most recent version.
|
||||||
* FILE fileiter.hpp
|
* FILE fileiter.hpp
|
||||||
* VERSION 3.10
|
* VERSION 3.11
|
||||||
* DESCRIPTION: Declares various platform independent file and
|
* DESCRIPTION: Declares various platform independent file and
|
||||||
* directory iterators, plus binary file input in
|
* directory iterators, plus binary file input in
|
||||||
* the form of class map_file.
|
* the form of class map_file.
|
||||||
@ -196,7 +196,7 @@ public:
|
|||||||
friend class mapfile_iterator;
|
friend class mapfile_iterator;
|
||||||
};
|
};
|
||||||
|
|
||||||
class BOOST_RE_IX_DECL mapfile_iterator : public BOOST_RE_RA_ITERATOR(char, long)
|
class BOOST_RE_IX_DECL mapfile_iterator
|
||||||
{
|
{
|
||||||
typedef mapfile::pointer internal_pointer;
|
typedef mapfile::pointer internal_pointer;
|
||||||
internal_pointer* node;
|
internal_pointer* node;
|
||||||
@ -325,7 +325,7 @@ struct file_iterator_ref
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class BOOST_RE_IX_DECL file_iterator : public BOOST_RE_INPUT_ITERATOR(const char*, std::ptrdiff_t)
|
class BOOST_RE_IX_DECL file_iterator
|
||||||
{
|
{
|
||||||
char* _root;
|
char* _root;
|
||||||
char* _path;
|
char* _path;
|
||||||
@ -333,6 +333,12 @@ class BOOST_RE_IX_DECL file_iterator : public BOOST_RE_INPUT_ITERATOR(const char
|
|||||||
file_iterator_ref* ref;
|
file_iterator_ref* ref;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
typedef std::ptrdiff_t difference_type;
|
||||||
|
typedef const char* value_type;
|
||||||
|
typedef const char** pointer;
|
||||||
|
typedef const char*& reference;
|
||||||
|
typedef std::input_iterator_tag category;
|
||||||
|
|
||||||
file_iterator();
|
file_iterator();
|
||||||
file_iterator(const char* wild);
|
file_iterator(const char* wild);
|
||||||
~file_iterator();
|
~file_iterator();
|
||||||
@ -366,7 +372,7 @@ inline bool operator < (const file_iterator&, const file_iterator&)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
class BOOST_RE_IX_DECL directory_iterator : public BOOST_RE_INPUT_ITERATOR(const char*, std::ptrdiff_t)
|
class BOOST_RE_IX_DECL directory_iterator
|
||||||
{
|
{
|
||||||
char* _root;
|
char* _root;
|
||||||
char* _path;
|
char* _path;
|
||||||
@ -374,6 +380,12 @@ class BOOST_RE_IX_DECL directory_iterator : public BOOST_RE_INPUT_ITERATOR(const
|
|||||||
file_iterator_ref* ref;
|
file_iterator_ref* ref;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
typedef std::ptrdiff_t difference_type;
|
||||||
|
typedef const char* value_type;
|
||||||
|
typedef const char** pointer;
|
||||||
|
typedef const char*& reference;
|
||||||
|
typedef std::input_iterator_tag category;
|
||||||
|
|
||||||
directory_iterator();
|
directory_iterator();
|
||||||
directory_iterator(const char* wild);
|
directory_iterator(const char* wild);
|
||||||
~directory_iterator();
|
~directory_iterator();
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
/*
|
/*
|
||||||
* LOCATION: see http://www.boost.org for most recent version.
|
* LOCATION: see http://www.boost.org for most recent version.
|
||||||
* FILE regex_compile.hpp
|
* FILE regex_compile.hpp
|
||||||
* VERSION 3.10
|
* VERSION 3.11
|
||||||
* DESCRIPTION: Declares reg_expression<> member functions. This is
|
* DESCRIPTION: Declares reg_expression<> member functions. This is
|
||||||
* an internal header file, do not include directly.
|
* an internal header file, do not include directly.
|
||||||
*/
|
*/
|
||||||
@ -644,7 +644,7 @@ re_detail::re_syntax_base* BOOST_RE_CALL reg_expression<charT, traits, Allocator
|
|||||||
{
|
{
|
||||||
re_detail::jstack<traits_string_type, Allocator> singles(64, data.allocator());
|
re_detail::jstack<traits_string_type, Allocator> singles(64, data.allocator());
|
||||||
re_detail::jstack<traits_string_type, Allocator> ranges(64, data.allocator());
|
re_detail::jstack<traits_string_type, Allocator> ranges(64, data.allocator());
|
||||||
re_detail::jstack<jm_uintfast32_t, Allocator> classes(64, data.allocator());
|
re_detail::jstack<boost::uint_fast32_t, Allocator> classes(64, data.allocator());
|
||||||
re_detail::jstack<traits_string_type, Allocator> equivalents(64, data.allocator());
|
re_detail::jstack<traits_string_type, Allocator> equivalents(64, data.allocator());
|
||||||
classes.push(cls);
|
classes.push(cls);
|
||||||
if(dat)
|
if(dat)
|
||||||
@ -660,7 +660,7 @@ re_detail::re_syntax_base* BOOST_RE_CALL reg_expression<charT, traits, Allocator
|
|||||||
{
|
{
|
||||||
re_detail::jstack<traits_string_type, Allocator> singles(64, data.allocator());
|
re_detail::jstack<traits_string_type, Allocator> singles(64, data.allocator());
|
||||||
re_detail::jstack<traits_string_type, Allocator> ranges(64, data.allocator());
|
re_detail::jstack<traits_string_type, Allocator> ranges(64, data.allocator());
|
||||||
re_detail::jstack<jm_uintfast32_t, Allocator> classes(64, data.allocator());
|
re_detail::jstack<boost::uint_fast32_t, Allocator> classes(64, data.allocator());
|
||||||
re_detail::jstack<traits_string_type, Allocator> equivalents(64, data.allocator());
|
re_detail::jstack<traits_string_type, Allocator> equivalents(64, data.allocator());
|
||||||
bool has_digraphs = false;
|
bool has_digraphs = false;
|
||||||
jm_assert(traits_inst.syntax_type((traits_size_type)(traits_uchar_type)*first) == traits_type::syntax_open_set);
|
jm_assert(traits_inst.syntax_type((traits_size_type)(traits_uchar_type)*first) == traits_type::syntax_open_set);
|
||||||
@ -719,7 +719,7 @@ re_detail::re_syntax_base* BOOST_RE_CALL reg_expression<charT, traits, Allocator
|
|||||||
fail(REG_ERANGE);
|
fail(REG_ERANGE);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
jm_uintfast32_t id = traits_inst.lookup_classname(base+2, first-2);
|
boost::uint_fast32_t id = traits_inst.lookup_classname(base+2, first-2);
|
||||||
if(_flags & regbase::icase)
|
if(_flags & regbase::icase)
|
||||||
{
|
{
|
||||||
if((id == traits_type::char_class_upper) || (id == traits_type::char_class_lower))
|
if((id == traits_type::char_class_upper) || (id == traits_type::char_class_lower))
|
||||||
@ -973,13 +973,13 @@ re_detail::re_syntax_base* BOOST_RE_CALL reg_expression<charT, traits, Allocator
|
|||||||
}
|
}
|
||||||
|
|
||||||
template <class charT, class traits, class Allocator>
|
template <class charT, class traits, class Allocator>
|
||||||
re_detail::re_syntax_base* BOOST_RE_CALL reg_expression<charT, traits, Allocator>::compile_set_aux(re_detail::jstack<traits_string_type, Allocator>& singles, re_detail::jstack<traits_string_type, Allocator>& ranges, re_detail::jstack<jm_uintfast32_t, Allocator>& classes, re_detail::jstack<traits_string_type, Allocator>& equivalents, bool isnot, const re_detail::_wide_type&)
|
re_detail::re_syntax_base* BOOST_RE_CALL reg_expression<charT, traits, Allocator>::compile_set_aux(re_detail::jstack<traits_string_type, Allocator>& singles, re_detail::jstack<traits_string_type, Allocator>& ranges, re_detail::jstack<boost::uint_fast32_t, Allocator>& classes, re_detail::jstack<traits_string_type, Allocator>& equivalents, bool isnot, const re_detail::_wide_type&)
|
||||||
{
|
{
|
||||||
size_type base = data.size();
|
size_type base = data.size();
|
||||||
data.extend(sizeof(re_detail::re_set_long));
|
data.extend(sizeof(re_detail::re_set_long));
|
||||||
unsigned int csingles = 0;
|
unsigned int csingles = 0;
|
||||||
unsigned int cranges = 0;
|
unsigned int cranges = 0;
|
||||||
jm_uintfast32_t cclasses = 0;
|
boost::uint_fast32_t cclasses = 0;
|
||||||
unsigned int cequivalents = 0;
|
unsigned int cequivalents = 0;
|
||||||
bool nocollate_state = flags() & regbase::nocollate;
|
bool nocollate_state = flags() & regbase::nocollate;
|
||||||
|
|
||||||
@ -1011,7 +1011,7 @@ re_detail::re_syntax_base* BOOST_RE_CALL reg_expression<charT, traits, Allocator
|
|||||||
// be sure...
|
// be sure...
|
||||||
// delay throw to later:
|
// delay throw to later:
|
||||||
#ifdef __BORLANDC__
|
#ifdef __BORLANDC__
|
||||||
jm_uintfast32_t f = _flags;
|
boost::uint_fast32_t f = _flags;
|
||||||
_flags &= ~regbase::use_except;
|
_flags &= ~regbase::use_except;
|
||||||
#endif
|
#endif
|
||||||
fail(REG_ERANGE);
|
fail(REG_ERANGE);
|
||||||
@ -1052,7 +1052,7 @@ re_detail::re_syntax_base* BOOST_RE_CALL reg_expression<charT, traits, Allocator
|
|||||||
}
|
}
|
||||||
|
|
||||||
template <class charT, class traits, class Allocator>
|
template <class charT, class traits, class Allocator>
|
||||||
re_detail::re_syntax_base* BOOST_RE_CALL reg_expression<charT, traits, Allocator>::compile_set_aux(re_detail::jstack<traits_string_type, Allocator>& singles, re_detail::jstack<traits_string_type, Allocator>& ranges, re_detail::jstack<jm_uintfast32_t, Allocator>& classes, re_detail::jstack<traits_string_type, Allocator>& equivalents, bool isnot, const re_detail::_narrow_type&)
|
re_detail::re_syntax_base* BOOST_RE_CALL reg_expression<charT, traits, Allocator>::compile_set_aux(re_detail::jstack<traits_string_type, Allocator>& singles, re_detail::jstack<traits_string_type, Allocator>& ranges, re_detail::jstack<boost::uint_fast32_t, Allocator>& classes, re_detail::jstack<traits_string_type, Allocator>& equivalents, bool isnot, const re_detail::_narrow_type&)
|
||||||
{
|
{
|
||||||
re_detail::re_set* dat = (re_detail::re_set*)data.extend(sizeof(re_detail::re_set));
|
re_detail::re_set* dat = (re_detail::re_set*)data.extend(sizeof(re_detail::re_set));
|
||||||
std::memset(dat, 0, sizeof(re_detail::re_set));
|
std::memset(dat, 0, sizeof(re_detail::re_set));
|
||||||
@ -1084,7 +1084,7 @@ re_detail::re_syntax_base* BOOST_RE_CALL reg_expression<charT, traits, Allocator
|
|||||||
// be sure...
|
// be sure...
|
||||||
// delay throw to later:
|
// delay throw to later:
|
||||||
#ifdef __BORLANDC__
|
#ifdef __BORLANDC__
|
||||||
jm_uintfast32_t f = _flags;
|
boost::uint_fast32_t f = _flags;
|
||||||
_flags &= ~regbase::use_except;
|
_flags &= ~regbase::use_except;
|
||||||
#endif
|
#endif
|
||||||
fail(REG_ERANGE);
|
fail(REG_ERANGE);
|
||||||
@ -1117,7 +1117,7 @@ re_detail::re_syntax_base* BOOST_RE_CALL reg_expression<charT, traits, Allocator
|
|||||||
equivalents.pop();
|
equivalents.pop();
|
||||||
}
|
}
|
||||||
|
|
||||||
jm_uintfast32_t flags = 0;
|
boost::uint_fast32_t flags = 0;
|
||||||
while(classes.empty() == false)
|
while(classes.empty() == false)
|
||||||
{
|
{
|
||||||
flags |= classes.peek();
|
flags |= classes.peek();
|
||||||
@ -1159,7 +1159,7 @@ inline
|
|||||||
template <class charT, class traits, class Allocator>
|
template <class charT, class traits, class Allocator>
|
||||||
void BOOST_RE_CALL reg_expression<charT, traits, Allocator>::fixup_apply(re_detail::re_syntax_base* b, unsigned cbraces)
|
void BOOST_RE_CALL reg_expression<charT, traits, Allocator>::fixup_apply(re_detail::re_syntax_base* b, unsigned cbraces)
|
||||||
{
|
{
|
||||||
typedef BOOST_RE_MAYBE_TYPENAME REBIND_TYPE(bool, Allocator) b_alloc;
|
typedef typename boost::re_detail::rebind_allocator<bool, Allocator>::type b_alloc;
|
||||||
|
|
||||||
register unsigned char* base = (unsigned char*)b;
|
register unsigned char* base = (unsigned char*)b;
|
||||||
register re_detail::re_syntax_base* ptr = b;
|
register re_detail::re_syntax_base* ptr = b;
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
/*
|
/*
|
||||||
* LOCATION: see http://www.boost.org for most recent version.
|
* LOCATION: see http://www.boost.org for most recent version.
|
||||||
* FILE regex_config.hpp
|
* FILE regex_config.hpp
|
||||||
* VERSION 3.10
|
* VERSION 3.11
|
||||||
* DESCRIPTION: auto-configure options for regular expression code.
|
* DESCRIPTION: auto-configure options for regular expression code.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -50,6 +50,10 @@ full list of macros and their usage.
|
|||||||
#include <clocale>
|
#include <clocale>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <boost/smart_ptr.hpp>
|
#include <boost/smart_ptr.hpp>
|
||||||
|
#ifdef __CYGWIN__
|
||||||
|
#include <sys/types.h>
|
||||||
|
#endif
|
||||||
|
#include <boost/cstdint.hpp>
|
||||||
#else
|
#else
|
||||||
//
|
//
|
||||||
// C build,
|
// C build,
|
||||||
@ -85,23 +89,17 @@ full list of macros and their usage.
|
|||||||
#if __BORLANDC__ < 0x500
|
#if __BORLANDC__ < 0x500
|
||||||
#define BOOST_RE_NO_NAMESPACES
|
#define BOOST_RE_NO_NAMESPACES
|
||||||
#define BOOST_RE_NO_BOOL
|
#define BOOST_RE_NO_BOOL
|
||||||
#define BOOST_RE_NO_MUTABLE
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// versions prior to 0x530 not supported:
|
// versions prior to 0x530 not supported:
|
||||||
#if __BORLANDC__ < 0x540
|
#if __BORLANDC__ < 0x540
|
||||||
#define BOOST_RE_NO_MEMBER_TEMPLATES
|
|
||||||
// inline contructors exhibit strange behaviour
|
// inline contructors exhibit strange behaviour
|
||||||
// under Builder 3 and C++ 5.x when throwing exceptions
|
// under Builder 3 and C++ 5.x when throwing exceptions
|
||||||
#define INLINE_EXCEPTION_BUG
|
#define INLINE_EXCEPTION_BUG
|
||||||
#define BOOST_RE_NESTED_TEMPLATE_DECL
|
|
||||||
#define BOOST_RE_NO_PARTIAL_FUNC_SPEC
|
#define BOOST_RE_NO_PARTIAL_FUNC_SPEC
|
||||||
#define BOOST_RE_NO_STRING_DEF_ARGS
|
#define BOOST_RE_NO_STRING_DEF_ARGS
|
||||||
#define BOOST_RE_NO_TYPEINFO // bad_cast etc not in namespace std.
|
#define BOOST_RE_NO_TYPEINFO // bad_cast etc not in namespace std.
|
||||||
#endif
|
#endif
|
||||||
//
|
|
||||||
// Builder 4 seems to have broken template friend support:
|
|
||||||
#define BOOST_RE_NO_TEMPLATE_FRIEND
|
|
||||||
|
|
||||||
#if (__BORLANDC__ == 0x550) || (__BORLANDC__ == 0x551)
|
#if (__BORLANDC__ == 0x550) || (__BORLANDC__ == 0x551)
|
||||||
// problems with std::basic_string and dll RTL:
|
// problems with std::basic_string and dll RTL:
|
||||||
@ -122,12 +120,6 @@ full list of macros and their usage.
|
|||||||
#error exception handling support required
|
#error exception handling support required
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef _Windows
|
|
||||||
#define BOOST_RE_PLATFORM_WINDOWS
|
|
||||||
#else
|
|
||||||
#define BOOST_RE_PLATFORM_DOS
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef __WIN32__
|
#ifndef __WIN32__
|
||||||
#define BOOST_RE_CALL
|
#define BOOST_RE_CALL
|
||||||
#define BOOST_RE_CCALL
|
#define BOOST_RE_CCALL
|
||||||
@ -136,8 +128,6 @@ full list of macros and their usage.
|
|||||||
#define BOOST_RE_CCALL __stdcall
|
#define BOOST_RE_CCALL __stdcall
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define BOOST_RE_INT64t __int64
|
|
||||||
#define BOOST_RE_IMM64(val) val##i64
|
|
||||||
#define BOOST_RE_NO_CAT
|
#define BOOST_RE_NO_CAT
|
||||||
// broken wide character support:
|
// broken wide character support:
|
||||||
#define BOOST_RE_NO_SWPRINTF
|
#define BOOST_RE_NO_SWPRINTF
|
||||||
@ -180,15 +170,12 @@ full list of macros and their usage.
|
|||||||
#define BOOST_RE_NO_NAMESPACES
|
#define BOOST_RE_NO_NAMESPACES
|
||||||
#define BOOST_RE_NO_DEFAULT_PARAM
|
#define BOOST_RE_NO_DEFAULT_PARAM
|
||||||
#define BOOST_RE_NO_BOOL
|
#define BOOST_RE_NO_BOOL
|
||||||
#define BOOST_RE_NO_MUTABLE
|
|
||||||
#define BOOST_RE_NO_WCSTRING
|
#define BOOST_RE_NO_WCSTRING
|
||||||
#define BOOST_RE_NO_LOCALE_H
|
#define BOOST_RE_NO_LOCALE_H
|
||||||
#define BOOST_RE_NO_TEMPLATE_RETURNS
|
#define BOOST_RE_NO_TEMPLATE_RETURNS
|
||||||
#define BOOST_RE_NO_INT64
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if BOOST_MSVC < 1200
|
#if BOOST_MSVC < 1200
|
||||||
#define BOOST_RE_NESTED_TEMPLATE_DECL
|
|
||||||
#define BOOST_RE_NO_STRING_DEF_ARGS
|
#define BOOST_RE_NO_STRING_DEF_ARGS
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -196,16 +183,11 @@ full list of macros and their usage.
|
|||||||
#error exception handling support required
|
#error exception handling support required
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define BOOST_RE_PLATFORM_WINDOWS
|
|
||||||
//
|
//
|
||||||
// no support for nested template classes yet....
|
// no support for nested template classes yet....
|
||||||
// although this part of VC6 is badly documented
|
// although this part of VC6 is badly documented
|
||||||
#define BOOST_RE_NO_MEMBER_TEMPLATES
|
|
||||||
#define BOOST_RE_INT64t __int64
|
|
||||||
#define BOOST_RE_IMM64(val) val##i64
|
|
||||||
#define BOOST_RE_NO_CAT
|
#define BOOST_RE_NO_CAT
|
||||||
#define BOOST_RE_NO_PARTIAL_FUNC_SPEC
|
#define BOOST_RE_NO_PARTIAL_FUNC_SPEC
|
||||||
#define BOOST_RE_NO_TEMPLATE_FRIEND
|
|
||||||
#define BOOST_RE_NO_SWPRINTF
|
#define BOOST_RE_NO_SWPRINTF
|
||||||
|
|
||||||
#ifdef _MT
|
#ifdef _MT
|
||||||
@ -238,13 +220,8 @@ full list of macros and their usage.
|
|||||||
#ifdef __GNUC__
|
#ifdef __GNUC__
|
||||||
#if (__GNUC__ < 2) || ((__GNUC__ == 2) && (__GNUC_MINOR__ < 91))
|
#if (__GNUC__ < 2) || ((__GNUC__ == 2) && (__GNUC_MINOR__ < 91))
|
||||||
#define BOOST_RE_NO_NAMESPACES
|
#define BOOST_RE_NO_NAMESPACES
|
||||||
#define BOOST_RE_NO_MUTABLE
|
|
||||||
#define BOOST_RE_NO_MEMBER_TEMPLATES
|
|
||||||
#define BOOST_RE_NO_PARTIAL_FUNC_SPEC
|
#define BOOST_RE_NO_PARTIAL_FUNC_SPEC
|
||||||
#define BOOST_RE_NO_TEMPLATE_FRIEND
|
|
||||||
#endif
|
#endif
|
||||||
#define BOOST_RE_INT64t long long
|
|
||||||
#define BOOST_RE_IMM64(val) val##LL
|
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
/* there seems to be a problem with <windows.h> in gcc */
|
/* there seems to be a problem with <windows.h> in gcc */
|
||||||
@ -254,7 +231,6 @@ full list of macros and their usage.
|
|||||||
#define BOOST_RE_NO_TEMPLATE_SWITCH_MERGE
|
#define BOOST_RE_NO_TEMPLATE_SWITCH_MERGE
|
||||||
#endif
|
#endif
|
||||||
#define BOOST_RE_NO_CAT
|
#define BOOST_RE_NO_CAT
|
||||||
#define BOOST_RE_NESTED_TEMPLATE_DECL
|
|
||||||
#define BOOST_RE_NO_SWPRINTF
|
#define BOOST_RE_NO_SWPRINTF
|
||||||
#include <string>
|
#include <string>
|
||||||
#ifdef __BASTRING__
|
#ifdef __BASTRING__
|
||||||
@ -278,15 +254,9 @@ full list of macros and their usage.
|
|||||||
#ifdef __SUNPRO_CC
|
#ifdef __SUNPRO_CC
|
||||||
#if (__SUNPRO_CC < 0x500)
|
#if (__SUNPRO_CC < 0x500)
|
||||||
#define BOOST_RE_NO_NAMESPACES
|
#define BOOST_RE_NO_NAMESPACES
|
||||||
#define BOOST_RE_NO_MUTABLE
|
|
||||||
#define BOOST_RE_NO_MEMBER_TEMPLATES
|
|
||||||
#define BOOST_RE_OLD_IOSTREAM
|
#define BOOST_RE_OLD_IOSTREAM
|
||||||
#endif
|
#endif
|
||||||
#define BOOST_RE_INT64t long long
|
|
||||||
#define BOOST_RE_IMM64(val) val##LL
|
|
||||||
#define BOOST_RE_NESTED_TEMPLATE_DECL
|
|
||||||
#define BOOST_RE_NO_SWPRINTF
|
#define BOOST_RE_NO_SWPRINTF
|
||||||
#define BOOST_RE_NO_TEMPLATE_FRIEND
|
|
||||||
#define BOOST_RE_NO_LOCALE_H
|
#define BOOST_RE_NO_LOCALE_H
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -296,20 +266,13 @@ full list of macros and their usage.
|
|||||||
# if (__HP_aCC < 31400)
|
# if (__HP_aCC < 31400)
|
||||||
// non-conformant aCC:
|
// non-conformant aCC:
|
||||||
#define BOOST_RE_NO_NAMESPACES
|
#define BOOST_RE_NO_NAMESPACES
|
||||||
#define BOOST_RE_NO_MUTABLE
|
|
||||||
#define BOOST_RE_OLD_IOSTREAM
|
#define BOOST_RE_OLD_IOSTREAM
|
||||||
#define BOOST_RE_NESTED_TEMPLATE_DECL
|
#define BOOST_NO_STD_ALLOCATOR
|
||||||
#define BOOST_RE_NO_TEMPLATE_FRIEND
|
|
||||||
#else
|
#else
|
||||||
#if !defined(_NAMESPACE_STD)
|
#if !defined(_NAMESPACE_STD)
|
||||||
#define BOOST_RE_OLD_IOSTREAM
|
#define BOOST_RE_OLD_IOSTREAM
|
||||||
#endif
|
#endif
|
||||||
#define BOOST_RE_NESTED_TEMPLATE_DECL template
|
|
||||||
#endif
|
#endif
|
||||||
#define BOOST_RE_NO_MEMBER_TEMPLATES
|
|
||||||
#define BOOST_RE_NO_MEMORY_H
|
|
||||||
#define BOOST_RE_INT64t long long
|
|
||||||
#define BOOST_RE_IMM64(val) val##LL
|
|
||||||
#define BOOST_RE_NO_SWPRINTF
|
#define BOOST_RE_NO_SWPRINTF
|
||||||
#define BOOST_RE_NO_CAT
|
#define BOOST_RE_NO_CAT
|
||||||
#endif
|
#endif
|
||||||
@ -362,20 +325,6 @@ full list of macros and their usage.
|
|||||||
#define BOOST_RE_MAYBE_ACCESS_SPEC
|
#define BOOST_RE_MAYBE_ACCESS_SPEC
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !defined(BOOST_RE_INT64t) || !defined(BOOST_RE_IMM64)
|
|
||||||
#define BOOST_RE_NO_INT64
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef BOOST_RE_INT32_LONG
|
|
||||||
typedef unsigned int jm_uintfast32_t;
|
|
||||||
#else
|
|
||||||
typedef unsigned long jm_uintfast32_t;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef BOOST_RE_NESTED_TEMPLATE_DECL
|
|
||||||
#define BOOST_RE_NESTED_TEMPLATE_DECL template
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef BOOST_RE_IX_DECL
|
#ifndef BOOST_RE_IX_DECL
|
||||||
#define BOOST_RE_IX_DECL
|
#define BOOST_RE_IX_DECL
|
||||||
#endif
|
#endif
|
||||||
@ -432,7 +381,7 @@ typedef unsigned long jm_uintfast32_t;
|
|||||||
#define BOOST_RE_NO_WCSTRING
|
#define BOOST_RE_NO_WCSTRING
|
||||||
#endif
|
#endif
|
||||||
#if !defined(__STL_MEMBER_TEMPLATE_CLASSES) || !defined(__STL_MEMBER_TEMPLATES)
|
#if !defined(__STL_MEMBER_TEMPLATE_CLASSES) || !defined(__STL_MEMBER_TEMPLATES)
|
||||||
#define BOOST_RE_NO_MEMBER_TEMPLATES
|
#define BOOST_NO_MEMBER_TEMPLATES
|
||||||
#endif
|
#endif
|
||||||
#define BOOST_RE_NO_TYPEINFO
|
#define BOOST_RE_NO_TYPEINFO
|
||||||
|
|
||||||
@ -449,30 +398,14 @@ typedef unsigned long jm_uintfast32_t;
|
|||||||
|
|
||||||
#define BOOST_RE_ALGO_INCLUDED
|
#define BOOST_RE_ALGO_INCLUDED
|
||||||
|
|
||||||
#define BOOST_RE_DISTANCE(i, j, n) do { n = 0; std::distance(i, j, n); } while(false)
|
#if !defined( __STL_CLASS_PARTIAL_SPECIALIZATION) || !defined(__SGI_STL_PORT)
|
||||||
#define BOOST_RE_OUTPUT_ITERATOR(T, D) std::output_iterator
|
#define BOOST_NO_STD_DISTANCE
|
||||||
#define BOOST_RE_INPUT_ITERATOR(T, D) std::input_iterator<T, D>
|
#endif
|
||||||
#define BOOST_RE_FWD_ITERATOR(T, D) std::forward_iterator<T, D>
|
|
||||||
#define BOOST_RE_BIDI_ITERATOR(T, D) std::bidirectional_iterator<T, D>
|
|
||||||
#define BOOST_RE_RA_ITERATOR(T, D) std::random_access_iterator<T, D>
|
|
||||||
|
|
||||||
#if defined(__STL_USE_STD_ALLOCATORS) || (defined(__SGI_STL_PORT ) && !defined(__STL_MEMBER_TEMPLATE_CLASSES) && !defined(__STL_MEMBER_TEMPLATES))
|
#if defined(__STL_USE_STD_ALLOCATORS) || (defined(__SGI_STL_PORT ) && !defined(__STL_MEMBER_TEMPLATE_CLASSES) && !defined(__STL_MEMBER_TEMPLATES))
|
||||||
|
|
||||||
/* new style allocator's with nested template classes */
|
/* new style allocator's with nested template classes */
|
||||||
#undef BOOST_RE_NO_MEMBER_TEMPLATES
|
|
||||||
#define REBIND_INSTANCE(x, y, inst) y::BOOST_RE_NESTED_TEMPLATE_DECL rebind<x>::other(inst)
|
|
||||||
#define REBIND_TYPE(x, y) y::BOOST_RE_NESTED_TEMPLATE_DECL rebind<x>::other
|
|
||||||
#define BOOST_RE_DEF_ALLOC_PARAM(x) BOOST_RE_TRICKY_DEFAULT_PARAM( std::allocator<x> )
|
|
||||||
#define BOOST_RE_DEF_ALLOC(x) std::allocator<x>
|
|
||||||
|
|
||||||
#else /* __STL_USE_STD_ALLOCATORS */
|
#else /* __STL_USE_STD_ALLOCATORS */
|
||||||
#define BOOST_RE_OLD_ALLOCATORS
|
#define BOOST_NO_STD_ALLOCATOR
|
||||||
#define REBIND_INSTANCE(x, y, inst) BOOST_RE_MAYBE_ACCESS_SPEC boost::re_detail::re_alloc_binder<x, y>(inst)
|
|
||||||
#define REBIND_TYPE(x, y) BOOST_RE_MAYBE_ACCESS_SPEC re_alloc_binder<x, y>
|
|
||||||
#define BOOST_RE_DEF_ALLOC_PARAM(x) BOOST_RE_TRICKY_DEFAULT_PARAM( jm_def_alloc )
|
|
||||||
#define BOOST_RE_DEF_ALLOC(x) jm_def_alloc
|
|
||||||
#define BOOST_RE_NEED_BINDER
|
|
||||||
#define BOOST_RE_NEED_ALLOC
|
|
||||||
#endif /* __STL_USE_STD_ALLOCATORS */
|
#endif /* __STL_USE_STD_ALLOCATORS */
|
||||||
|
|
||||||
#define BOOST_RE_STL_DONE
|
#define BOOST_RE_STL_DONE
|
||||||
@ -496,7 +429,7 @@ typedef unsigned long jm_uintfast32_t;
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(RWSTD_NO_MEMBER_TEMPLATES) || defined(RWSTD_NO_MEM_CLASS_TEMPLATES)
|
#if defined(RWSTD_NO_MEMBER_TEMPLATES) || defined(RWSTD_NO_MEM_CLASS_TEMPLATES)
|
||||||
#define BOOST_RE_NO_MEMBER_TEMPLATES
|
#define BOOST_NO_MEMBER_TEMPLATES
|
||||||
#endif
|
#endif
|
||||||
#ifdef _RWSTD_NO_TEMPLATE_ON_RETURN_TYPE
|
#ifdef _RWSTD_NO_TEMPLATE_ON_RETURN_TYPE
|
||||||
#define BOOST_RE_NO_TEMPLATE_RETURNS
|
#define BOOST_RE_NO_TEMPLATE_RETURNS
|
||||||
@ -506,10 +439,6 @@ typedef unsigned long jm_uintfast32_t;
|
|||||||
#error exception handling support required
|
#error exception handling support required
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef RWSTD_NO_MUTABLE
|
|
||||||
#define BOOST_RE_NO_MUTABLE
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef RWSTD_NO_DEFAULT_TEMPLATES
|
#ifdef RWSTD_NO_DEFAULT_TEMPLATES
|
||||||
#define BOOST_RE_NO_DEFAULT_PARAM
|
#define BOOST_RE_NO_DEFAULT_PARAM
|
||||||
#define BOOST_RE_NO_TRICKY_DEFAULT_PARAM
|
#define BOOST_RE_NO_TRICKY_DEFAULT_PARAM
|
||||||
@ -525,57 +454,20 @@ typedef unsigned long jm_uintfast32_t;
|
|||||||
#define BOOST_RE_NO_BOOL
|
#define BOOST_RE_NO_BOOL
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if BOOST_RWSTD_VER > 0x020000
|
#if (BOOST_RWSTD_VER < 0x020000) || defined(_RWSTD_NO_CLASS_PARTIAL_SPEC)
|
||||||
#ifdef _RWSTD_NO_CLASS_PARTIAL_SPEC
|
#define BOOST_NO_STD_DISTANCE
|
||||||
#define BOOST_RE_DISTANCE(i, j, n) do { n = 0; std::distance(i, j, n); } while(false)
|
|
||||||
#else
|
|
||||||
#define BOOST_RE_DISTANCE(i, j, n) (n = std::distance(i, j))
|
|
||||||
#endif
|
|
||||||
#define BOOST_RE_OUTPUT_ITERATOR(T, D) std::iterator<std::output_iterator_tag, T, D, T*, T&>
|
|
||||||
#define BOOST_RE_INPUT_ITERATOR(T, D) std::iterator<std::input_iterator_tag, T, D, T*, T&>
|
|
||||||
#define BOOST_RE_FWD_ITERATOR(T, D) std::iterator<std::forward_iterator_tag, T, D, T*, T&>
|
|
||||||
#define BOOST_RE_BIDI_ITERATOR(T, D) std::iterator<std::bidirectional_iterator_tag, T, D, T*, T&>
|
|
||||||
#define BOOST_RE_RA_ITERATOR(T, D) std::iterator<std::random_access_iterator_tag, T, D, T*, T&>
|
|
||||||
#else
|
|
||||||
#define BOOST_RE_DISTANCE(i, j, n) std::distance(i, j, n)do { n = 0; std::distance(i, j, n); } while(false)
|
|
||||||
#define BOOST_RE_OUTPUT_ITERATOR(T, D) std::output_iterator
|
|
||||||
#if BOOST_RWSTD_VER >= 0x0200
|
|
||||||
#define BOOST_RE_INPUT_ITERATOR(T, D) std::input_iterator<T>
|
|
||||||
#else
|
|
||||||
#define BOOST_RE_INPUT_ITERATOR(T, D) std::input_iterator<T, D>
|
|
||||||
#endif
|
|
||||||
#define BOOST_RE_FWD_ITERATOR(T, D) std::forward_iterator<T, D>
|
|
||||||
#define BOOST_RE_BIDI_ITERATOR(T, D) std::bidirectional_iterator<T, D>
|
|
||||||
#define BOOST_RE_RA_ITERATOR(T, D) std::random_access_iterator<T, D>
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
||||||
#if defined(_RWSTD_ALLOCATOR) && !defined(BOOST_RE_NO_MEMORY_H) && !defined(BOOST_RE_NO_MEMBER_TEMPLATES)
|
#if !defined(_RWSTD_ALLOCATOR)
|
||||||
|
|
||||||
/* new style allocator */
|
|
||||||
|
|
||||||
#define REBIND_INSTANCE(x, y, inst) y::BOOST_RE_NESTED_TEMPLATE_DECL rebind<x>::other(inst)
|
|
||||||
#define REBIND_TYPE(x, y) y::BOOST_RE_NESTED_TEMPLATE_DECL rebind<x>::other
|
|
||||||
#define BOOST_RE_DEF_ALLOC_PARAM(x) BOOST_RE_TRICKY_DEFAULT_PARAM( std::allocator<x> )
|
|
||||||
#define BOOST_RE_DEF_ALLOC(x) std::allocator<x>
|
|
||||||
|
|
||||||
#else
|
|
||||||
/*
|
/*
|
||||||
// old style allocator
|
// old style allocator
|
||||||
// this varies a great deal between versions, and there is no way
|
// this varies a great deal between versions, and there is no way
|
||||||
// that I can tell of differentiating between them, so use our
|
// that I can tell of differentiating between them, so use our
|
||||||
// own default allocator...
|
// own default allocator...
|
||||||
*/
|
*/
|
||||||
#define BOOST_RE_OLD_ALLOCATORS
|
#define BOOST_NO_STD_ALLOCATOR
|
||||||
#define REBIND_INSTANCE(x, y, inst) BOOST_RE_MAYBE_ACCESS_SPEC boost::re_detail::re_alloc_binder<x, y>(inst)
|
|
||||||
#define REBIND_TYPE(x, y) BOOST_RE_MAYBE_ACCESS_SPEC re_alloc_binder<x, y>
|
|
||||||
#define BOOST_RE_DEF_ALLOC_PARAM(x) BOOST_RE_TRICKY_DEFAULT_PARAM( jm_def_alloc )
|
|
||||||
#define BOOST_RE_DEF_ALLOC(x) jm_def_alloc
|
|
||||||
|
|
||||||
#define BOOST_RE_NEED_BINDER
|
|
||||||
#define BOOST_RE_NEED_ALLOC
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define BOOST_RE_STL_DONE
|
#define BOOST_RE_STL_DONE
|
||||||
@ -583,57 +475,14 @@ typedef unsigned long jm_uintfast32_t;
|
|||||||
#define BOOST_RE_NO_OI_ASSIGN
|
#define BOOST_RE_NO_OI_ASSIGN
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#elif defined (ITERATOR_H)
|
|
||||||
|
|
||||||
/* HP STL */
|
|
||||||
|
|
||||||
#define BOOST_RE_NO_LOCALE_H
|
|
||||||
|
|
||||||
#include <algo.h>
|
|
||||||
#define BOOST_RE_ALGO_INCLUDED
|
|
||||||
|
|
||||||
#define BOOST_RE_DISTANCE(i, j, n) std::distance(i, j, n)do { n = 0; std::distance(i, j, n); } while(false)
|
|
||||||
#define BOOST_RE_OUTPUT_ITERATOR(T, D) std::output_iterator
|
|
||||||
#define BOOST_RE_INPUT_ITERATOR(T, D) std::input_iterator<T, D>
|
|
||||||
#define BOOST_RE_FWD_ITERATOR(T, D) std::forward_iterator<T, D>
|
|
||||||
#define BOOST_RE_BIDI_ITERATOR(T, D) std::bidirectional_iterator<T, D>
|
|
||||||
#define BOOST_RE_RA_ITERATOR(T, D) std::random_access_iterator<T, D>
|
|
||||||
|
|
||||||
/* old style allocator */
|
|
||||||
#define BOOST_RE_OLD_ALLOCATORS
|
|
||||||
#define REBIND_INSTANCE(x, y, inst) BOOST_RE_MAYBE_ACCESS_SPEC boost::re_detail::re_alloc_binder<x, y>(inst)
|
|
||||||
#define REBIND_TYPE(x, y) BOOST_RE_MAYBE_ACCESS_SPEC re_alloc_binder<x, y>
|
|
||||||
#define BOOST_RE_DEF_ALLOC_PARAM(x) BOOST_RE_TRICKY_DEFAULT_PARAM( jm_def_alloc )
|
|
||||||
#define BOOST_RE_DEF_ALLOC(x) jm_def_alloc
|
|
||||||
|
|
||||||
#define BOOST_RE_NEED_BINDER
|
|
||||||
#define BOOST_RE_NEED_ALLOC
|
|
||||||
#define BOOST_RE_NO_NOT_EQUAL
|
|
||||||
|
|
||||||
#define BOOST_RE_STL_DONE
|
|
||||||
|
|
||||||
#elif (defined(BOOST_MSVC) || defined(__ICL)) && (defined(_YVALS) || defined(_CPPLIB_VER))
|
#elif (defined(BOOST_MSVC) || defined(__ICL)) && (defined(_YVALS) || defined(_CPPLIB_VER))
|
||||||
|
|
||||||
/* VC6 or Intel C++, with Dinkum STL */
|
/* VC6 or Intel C++, with Dinkum STL */
|
||||||
#define BOOST_RE_NO_OI_ASSIGN
|
#define BOOST_RE_NO_OI_ASSIGN
|
||||||
|
|
||||||
#define BOOST_RE_DISTANCE(i, j, n) n = std::distance(i, j)
|
|
||||||
#define BOOST_RE_OUTPUT_ITERATOR(T, D) std::iterator<std::output_iterator_tag, T, D>
|
|
||||||
#define BOOST_RE_INPUT_ITERATOR(T, D) std::iterator<std::input_iterator_tag, T, D>
|
|
||||||
#define BOOST_RE_FWD_ITERATOR(T, D) std::iterator<std::forward_iterator_tag, T, D>
|
|
||||||
#define BOOST_RE_BIDI_ITERATOR(T, D) std::iterator<std::bidirectional_iterator_tag, T, D>
|
|
||||||
#define BOOST_RE_RA_ITERATOR(T, D) std::iterator<std::random_access_iterator_tag, T, D>
|
|
||||||
|
|
||||||
/* MS's allocators are rather ambiguous about their properties
|
/* MS's allocators are rather ambiguous about their properties
|
||||||
at least as far as MSDN is concerned, so play safe: */
|
at least as far as MSDN is concerned, so play safe: */
|
||||||
#define BOOST_RE_OLD_ALLOCATORS
|
#define BOOST_NO_STD_ALLOCATOR
|
||||||
#define REBIND_INSTANCE(x, y, inst) BOOST_RE_MAYBE_ACCESS_SPEC boost::re_detail::re_alloc_binder<x, y>(inst)
|
|
||||||
#define REBIND_TYPE(x, y) BOOST_RE_MAYBE_ACCESS_SPEC re_alloc_binder<x, y>
|
|
||||||
#define BOOST_RE_DEF_ALLOC_PARAM(x) BOOST_RE_TRICKY_DEFAULT_PARAM( jm_def_alloc )
|
|
||||||
#define BOOST_RE_DEF_ALLOC(x) jm_def_alloc
|
|
||||||
|
|
||||||
#define BOOST_RE_NEED_BINDER
|
|
||||||
#define BOOST_RE_NEED_ALLOC
|
|
||||||
|
|
||||||
#define BOOST_RE_STL_DONE
|
#define BOOST_RE_STL_DONE
|
||||||
#ifndef _CPPLIB_VER
|
#ifndef _CPPLIB_VER
|
||||||
@ -650,59 +499,12 @@ typedef unsigned long jm_uintfast32_t;
|
|||||||
/* unknown STL version
|
/* unknown STL version
|
||||||
try the defaults: */
|
try the defaults: */
|
||||||
|
|
||||||
// dwa 10/05/00 Why were we assuming a broken distance in this case?
|
|
||||||
#define BOOST_RE_DISTANCE(i, j, n) (n = std::distance(i, j))
|
|
||||||
/* these may be suspect for older libraries */
|
|
||||||
#define BOOST_RE_OUTPUT_ITERATOR(T, D) std::iterator<std::output_iterator_tag, T, D, T*, T&>
|
|
||||||
#define BOOST_RE_INPUT_ITERATOR(T, D) std::iterator<std::input_iterator_tag, T, D, T*, T&>
|
|
||||||
#define BOOST_RE_FWD_ITERATOR(T, D) std::iterator<std::forward_iterator_tag, T, D, T*, T&>
|
|
||||||
#define BOOST_RE_BIDI_ITERATOR(T, D) std::iterator<std::bidirectional_iterator_tag, T, D, T*, T&>
|
|
||||||
#define BOOST_RE_RA_ITERATOR(T, D) std::iterator<std::random_access_iterator_tag, T, D, T*, T&>
|
|
||||||
|
|
||||||
#endif /* <iterator> config */
|
#endif /* <iterator> config */
|
||||||
|
|
||||||
#else /* no <iterator> at all */
|
|
||||||
|
|
||||||
#define BOOST_RE_DISTANCE(i, j, n) (n = j - i)
|
|
||||||
#define BOOST_RE_OUTPUT_ITERATOR(T, D) boost::re_detail::dummy_iterator_base<T>
|
|
||||||
#define BOOST_RE_INPUT_ITERATOR(T, D) boost::re_detail::dummy_iterator_base<T>
|
|
||||||
#define BOOST_RE_FWD_ITERATOR(T, D) boost::re_detail::dummy_iterator_base<T>
|
|
||||||
#define BOOST_RE_BIDI_ITERATOR(T, D) boost::re_detail::dummy_iterator_base<T>
|
|
||||||
#define BOOST_RE_RA_ITERATOR(T, D) boost::re_detail::dummy_iterator_base<T>
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* now do allocator if not already done */
|
/* now do allocator if not already done */
|
||||||
|
|
||||||
#ifndef BOOST_RE_STL_DONE
|
|
||||||
|
|
||||||
#ifdef BOOST_RE_NO_MEMORY_H
|
|
||||||
|
|
||||||
/* old style allocator */
|
|
||||||
|
|
||||||
#define BOOST_RE_OLD_ALLOCATORS
|
|
||||||
|
|
||||||
#define REBIND_INSTANCE(x, y, inst) BOOST_RE_MAYBE_ACCESS_SPEC boost::re_detail::re_alloc_binder<x, y>(inst)
|
|
||||||
#define REBIND_TYPE(x, y) BOOST_RE_MAYBE_ACCESS_SPEC re_alloc_binder<x, y>
|
|
||||||
#define BOOST_RE_DEF_ALLOC_PARAM(x) BOOST_RE_TRICKY_DEFAULT_PARAM( jm_def_alloc )
|
|
||||||
#define BOOST_RE_DEF_ALLOC(x) jm_def_alloc
|
|
||||||
|
|
||||||
#define BOOST_RE_NEED_BINDER
|
|
||||||
#define BOOST_RE_NEED_ALLOC
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
/* new style allocator's with nested template classes */
|
|
||||||
|
|
||||||
#define REBIND_INSTANCE(x, y, inst) y::BOOST_RE_NESTED_TEMPLATE_DECL rebind<x>::other(inst)
|
|
||||||
#define REBIND_TYPE(x, y) y::BOOST_RE_NESTED_TEMPLATE_DECL rebind<x>::other
|
|
||||||
#define BOOST_RE_DEF_ALLOC_PARAM(x) BOOST_RE_TRICKY_DEFAULT_PARAM( std::allocator<x> )
|
|
||||||
#define BOOST_RE_DEF_ALLOC(x) std::allocator<x>
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
|
||||||
#endif // BOOST_RE_AUTO_CONFIGURE
|
#endif // BOOST_RE_AUTO_CONFIGURE
|
||||||
|
|
||||||
|
|
||||||
@ -738,12 +540,6 @@ typedef unsigned long jm_uintfast32_t;
|
|||||||
|
|
||||||
/* compiler configuration goes here: */
|
/* compiler configuration goes here: */
|
||||||
|
|
||||||
#ifdef BOOST_RE_NO_MUTABLE
|
|
||||||
#define BOOST_RE_MUTABLE
|
|
||||||
#else
|
|
||||||
#define BOOST_RE_MUTABLE mutable
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined( BOOST_RE_NO_BOOL) && !defined(bool)
|
#if defined( BOOST_RE_NO_BOOL) && !defined(bool)
|
||||||
#define bool int
|
#define bool int
|
||||||
#define true 1
|
#define true 1
|
||||||
@ -766,6 +562,9 @@ typedef unsigned long jm_uintfast32_t;
|
|||||||
#define BOOST_RE_NO_STRING_DEF_ARGS
|
#define BOOST_RE_NO_STRING_DEF_ARGS
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(BOOST_NO_MEMBER_TEMPLATES) && !defined(BOOST_NO_STD_ALLOCATOR)
|
||||||
|
#define BOOST_NO_STD_ALLOCATOR
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/* add our class def's if they are needed: */
|
/* add our class def's if they are needed: */
|
||||||
@ -834,7 +633,7 @@ public:
|
|||||||
|
|
||||||
const Allocator& BOOST_RE_CALL instance()const { return *this; }
|
const Allocator& BOOST_RE_CALL instance()const { return *this; }
|
||||||
|
|
||||||
#ifndef BOOST_RE_NO_MEMBER_TEMPLATES
|
#ifndef BOOST_NO_MEMBER_TEMPLATES
|
||||||
|
|
||||||
template <class U>
|
template <class U>
|
||||||
struct rebind
|
struct rebind
|
||||||
@ -887,7 +686,7 @@ public:
|
|||||||
::operator delete(p);
|
::operator delete(p);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef BOOST_RE_NO_MEMBER_TEMPLATES
|
#ifndef BOOST_NO_MEMBER_TEMPLATES
|
||||||
template <class U>
|
template <class U>
|
||||||
struct rebind
|
struct rebind
|
||||||
{
|
{
|
||||||
@ -935,15 +734,39 @@ inline bool BOOST_RE_CALL boolify(I val)
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
template <class T, class A>
|
||||||
|
struct rebind_allocator
|
||||||
|
{
|
||||||
|
#ifdef BOOST_NO_STD_ALLOCATOR
|
||||||
|
typedef re_alloc_binder<T,A> type;
|
||||||
|
#else
|
||||||
|
typedef typename A::template rebind<T> binder;
|
||||||
|
typedef typename binder::other type;
|
||||||
|
#endif
|
||||||
|
};
|
||||||
|
|
||||||
|
#ifdef BOOST_NO_STD_DISTANCE
|
||||||
|
template <class T>
|
||||||
|
std::ptrdiff_t distance(const T& x, const T& y)
|
||||||
|
{ return y - x; }
|
||||||
|
#else
|
||||||
|
using std::distance;
|
||||||
|
#endif
|
||||||
|
|
||||||
} // namespace re_detail
|
} // namespace re_detail
|
||||||
#ifdef BOOST_RE_NEED_BINDER
|
|
||||||
using re_detail::re_alloc_binder;
|
|
||||||
#endif
|
|
||||||
#ifdef BOOST_RE_NEED_ALLOC
|
|
||||||
using re_detail::jm_def_alloc;
|
|
||||||
#endif
|
|
||||||
} // namespace boost
|
} // namespace boost
|
||||||
|
|
||||||
|
#ifdef BOOST_NO_STD_ALLOCATOR
|
||||||
|
#define BOOST_RE_DEF_ALLOC(T) boost::re_detail::jm_def_alloc
|
||||||
|
#define BOOST_RE_DEF_ALLOC_PARAM(T) BOOST_RE_DEFAULT_PARAM(boost::re_detail::jm_def_alloc)
|
||||||
|
#else
|
||||||
|
#include <memory>
|
||||||
|
#define BOOST_RE_DEF_ALLOC(T) std::allocator<T>
|
||||||
|
#define BOOST_RE_DEF_ALLOC_PARAM(T) BOOST_RE_TRICKY_DEFAULT_PARAM(std::allocator<T>)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#ifdef __GNUC__
|
#ifdef __GNUC__
|
||||||
#define INLINE_EXCEPTION_BUG
|
#define INLINE_EXCEPTION_BUG
|
||||||
#endif
|
#endif
|
||||||
@ -1022,11 +845,6 @@ public:
|
|||||||
|
|
||||||
#ifdef __BORLANDC__
|
#ifdef __BORLANDC__
|
||||||
#pragma message "macro allocator: " BOOST_RE_DEF_ALLOC_PARAM(wchar_t)
|
#pragma message "macro allocator: " BOOST_RE_DEF_ALLOC_PARAM(wchar_t)
|
||||||
#pragma message "macro jm_input_iterator: " BOOST_RE_INPUT_ITERATOR(char, std::ptrdiff_t)
|
|
||||||
#pragma message "macro jm_output_iterator: " BOOST_RE_OUTPUT_ITERATOR(char, std::ptrdiff_t)
|
|
||||||
#pragma message "macro jm_fwd_iterator: " BOOST_RE_FWD_ITERATOR(char, std::ptrdiff_t)
|
|
||||||
#pragma message "macro jm_bidi_iterator: " BOOST_RE_BIDI_ITERATOR(char, std::ptrdiff_t)
|
|
||||||
#pragma message "macro jm_ra_iterator: " BOOST_RE_RA_ITERATOR(char, std::ptrdiff_t)
|
|
||||||
#ifdef BOOST_RE_LOCALE_CPP
|
#ifdef BOOST_RE_LOCALE_CPP
|
||||||
#pragma message "locale support enabled"
|
#pragma message "locale support enabled"
|
||||||
#endif
|
#endif
|
||||||
@ -1275,5 +1093,6 @@ namespace std{
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
/*
|
/*
|
||||||
* LOCATION: see http://www.boost.org for most recent version.
|
* LOCATION: see http://www.boost.org for most recent version.
|
||||||
* FILE regex_cstring.hpp
|
* FILE regex_cstring.hpp
|
||||||
* VERSION 3.10
|
* VERSION 3.11
|
||||||
* DESCRIPTION: This is an internal header file, do not include directly.
|
* DESCRIPTION: This is an internal header file, do not include directly.
|
||||||
* String support and helper functions, for regular
|
* String support and helper functions, for regular
|
||||||
* expression library.
|
* expression library.
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
/*
|
/*
|
||||||
* LOCATION: see http://www.boost.org for most recent version.
|
* LOCATION: see http://www.boost.org for most recent version.
|
||||||
* FILE regex_format.hpp
|
* FILE regex_format.hpp
|
||||||
* VERSION 3.10
|
* VERSION 3.11
|
||||||
* DESCRIPTION: Provides formatting output routines for search and replace
|
* DESCRIPTION: Provides formatting output routines for search and replace
|
||||||
* operations. Note this is an internal header file included
|
* operations. Note this is an internal header file included
|
||||||
* by regex.hpp, do not include on its own.
|
* by regex.hpp, do not include on its own.
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
/*
|
/*
|
||||||
* LOCATION: see http://www.boost.org for most recent version.
|
* LOCATION: see http://www.boost.org for most recent version.
|
||||||
* FILE regex_kmp.hpp
|
* FILE regex_kmp.hpp
|
||||||
* VERSION 3.10
|
* VERSION 3.11
|
||||||
* DESCRIPTION: Provides Knuth Morris Pratt search operations.
|
* DESCRIPTION: Provides Knuth Morris Pratt search operations.
|
||||||
* Note this is an internal header file included
|
* Note this is an internal header file included
|
||||||
* by regex.hpp, do not include on its own.
|
* by regex.hpp, do not include on its own.
|
||||||
@ -53,17 +53,17 @@ struct kmp_info
|
|||||||
template <class charT, class Allocator>
|
template <class charT, class Allocator>
|
||||||
void kmp_free(kmp_info<charT>* pinfo, const Allocator& a)
|
void kmp_free(kmp_info<charT>* pinfo, const Allocator& a)
|
||||||
{
|
{
|
||||||
typedef BOOST_RE_MAYBE_TYPENAME REBIND_TYPE(char, Allocator) atype;
|
typedef typename boost::re_detail::rebind_allocator<char, Allocator>::type atype;
|
||||||
atype(a).deallocate((char*)pinfo, pinfo->size);
|
atype(a).deallocate((char*)pinfo, pinfo->size);
|
||||||
}
|
}
|
||||||
|
|
||||||
template <class iterator, class charT, class Trans, class Allocator>
|
template <class iterator, class charT, class Trans, class Allocator>
|
||||||
kmp_info<charT>* kmp_compile(iterator first, iterator last, charT, Trans translate, const Allocator& a)
|
kmp_info<charT>* kmp_compile(iterator first, iterator last, charT, Trans translate, const Allocator& a)
|
||||||
{
|
{
|
||||||
typedef BOOST_RE_MAYBE_TYPENAME REBIND_TYPE(char, Allocator) atype;
|
typedef typename boost::re_detail::rebind_allocator<char, Allocator>::type atype;
|
||||||
int i, j, m;
|
int i, j, m;
|
||||||
i = 0;
|
i = 0;
|
||||||
BOOST_RE_DISTANCE(first, last, m);
|
m = boost::re_detail::distance(first, last);
|
||||||
++m;
|
++m;
|
||||||
unsigned int size = sizeof(kmp_info<charT>) + sizeof(int)*m + sizeof(charT)*m;
|
unsigned int size = sizeof(kmp_info<charT>) + sizeof(int)*m + sizeof(charT)*m;
|
||||||
--m;
|
--m;
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
/*
|
/*
|
||||||
* LOCATION: see http://www.boost.org for most recent version.
|
* LOCATION: see http://www.boost.org for most recent version.
|
||||||
* FILE regex_libary_include.hpp
|
* FILE regex_libary_include.hpp
|
||||||
* VERSION 3.10
|
* VERSION 3.11
|
||||||
* DESCRIPTION: Automatic library inclusion for Borland/Microsoft compilers.
|
* DESCRIPTION: Automatic library inclusion for Borland/Microsoft compilers.
|
||||||
* Note this is an internal header file included
|
* Note this is an internal header file included
|
||||||
* by regex.hpp, do not include on its own.
|
* by regex.hpp, do not include on its own.
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
/*
|
/*
|
||||||
* LOCATION: see http://www.boost.org for most recent version.
|
* LOCATION: see http://www.boost.org for most recent version.
|
||||||
* FILE regex_match.hpp
|
* FILE regex_match.hpp
|
||||||
* VERSION 3.10
|
* VERSION 3.11
|
||||||
* DESCRIPTION: Regular expression matching algorithms.
|
* DESCRIPTION: Regular expression matching algorithms.
|
||||||
* Note this is an internal header file included
|
* Note this is an internal header file included
|
||||||
* by regex.hpp, do not include on its own.
|
* by regex.hpp, do not include on its own.
|
||||||
@ -150,8 +150,8 @@ template <class iterator, class Allocator>
|
|||||||
class _priv_match_data
|
class _priv_match_data
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
typedef BOOST_RE_MAYBE_TYPENAME REBIND_TYPE(int, Allocator) i_alloc;
|
typedef typename boost::re_detail::rebind_allocator<int, Allocator>::type i_alloc;
|
||||||
typedef BOOST_RE_MAYBE_TYPENAME REBIND_TYPE(iterator, Allocator) it_alloc;
|
typedef typename boost::re_detail::rebind_allocator<iterator, Allocator>::type it_alloc;
|
||||||
|
|
||||||
match_results_base<iterator, Allocator> temp_match;
|
match_results_base<iterator, Allocator> temp_match;
|
||||||
// failure stacks:
|
// failure stacks:
|
||||||
@ -209,12 +209,10 @@ void _priv_match_data<iterator, Allocator>::free()
|
|||||||
{
|
{
|
||||||
if(caccumulators)
|
if(caccumulators)
|
||||||
{
|
{
|
||||||
//REBIND_INSTANCE(int, Allocator, temp_match.allocator()).deallocate(accumulators, caccumulators);
|
|
||||||
i_alloc temp1(temp_match.allocator());
|
i_alloc temp1(temp_match.allocator());
|
||||||
temp1.deallocate(accumulators, caccumulators);
|
temp1.deallocate(accumulators, caccumulators);
|
||||||
for(unsigned i = 0; i < caccumulators; ++i)
|
for(unsigned i = 0; i < caccumulators; ++i)
|
||||||
jm_destroy(loop_starts + i);
|
jm_destroy(loop_starts + i);
|
||||||
//REBIND_INSTANCE(iterator, Allocator, temp_match.allocator()).deallocate(loop_starts, caccumulators);
|
|
||||||
it_alloc temp2(temp_match.allocator());
|
it_alloc temp2(temp_match.allocator());
|
||||||
temp2.deallocate(loop_starts, caccumulators);
|
temp2.deallocate(loop_starts, caccumulators);
|
||||||
}
|
}
|
||||||
|
@ -10,21 +10,6 @@
|
|||||||
/* BOOST_NO_STDC_NAMESPACE C library not in namespace std */
|
/* BOOST_NO_STDC_NAMESPACE C library not in namespace std */
|
||||||
/* #define BOOST_NO_STDC_NAMESPACE */
|
/* #define BOOST_NO_STDC_NAMESPACE */
|
||||||
|
|
||||||
/* BOOST_RE_NO_MUTABLE Disables use of mutable keyword. */
|
|
||||||
/* #define BOOST_RE_NO_MUTABLE */
|
|
||||||
|
|
||||||
/* BOOST_RE_INT32_LONG If 32-bit integers are long */
|
|
||||||
/* #define BOOST_RE_INT32_LONG */
|
|
||||||
|
|
||||||
/* BOOST_RE_NO_TEMPLATE_FRIEND If template friend declarations are not supported */
|
|
||||||
/* #define BOOST_RE_NO_TEMPLATE_FRIEND */
|
|
||||||
|
|
||||||
/* BOOST_RE_PLATFORM_WINDOWS Platform is MS Windows. */
|
|
||||||
/* #define BOOST_RE_PLATFORM_WINDOWS */
|
|
||||||
|
|
||||||
/* BOOST_RE_PLATFORM_DOS Platform if MSDOS. */
|
|
||||||
/* #define BOOST_RE_PLATFORM_DOS */
|
|
||||||
|
|
||||||
/* BOOST_RE_PLATFORM_W32 Platform is MS Win32 */
|
/* BOOST_RE_PLATFORM_W32 Platform is MS Win32 */
|
||||||
/* #define BOOST_RE_PLATFORM_W32 */
|
/* #define BOOST_RE_PLATFORM_W32 */
|
||||||
|
|
||||||
@ -49,8 +34,8 @@
|
|||||||
/* BOOST_RE_NO_WSPRINTF If there is no wsprintf available. */
|
/* BOOST_RE_NO_WSPRINTF If there is no wsprintf available. */
|
||||||
/* #define BOOST_RE_NO_WSPRINTF */
|
/* #define BOOST_RE_NO_WSPRINTF */
|
||||||
|
|
||||||
/* BOOST_RE_NO_MEMBER_TEMPLATES If member function templates or nested template classes are not allowed. */
|
/* BOOST_NO_MEMBER_TEMPLATES If member function templates or nested template classes are not allowed. */
|
||||||
/* #define BOOST_RE_NO_MEMBER_TEMPLATES */
|
/* #define BOOST_NO_MEMBER_TEMPLATES */
|
||||||
|
|
||||||
/* BOOST_RE_NO_TEMPLATE_RETURNS If template functions based on return type are not supported. */
|
/* BOOST_RE_NO_TEMPLATE_RETURNS If template functions based on return type are not supported. */
|
||||||
/* #define BOOST_RE_NO_TEMPLATE_RETURNS */
|
/* #define BOOST_RE_NO_TEMPLATE_RETURNS */
|
||||||
@ -58,25 +43,6 @@
|
|||||||
/* BOOST_RE_NO_PARTIAL_FUNC_SPEC If partial template function specialisation is not supported */
|
/* BOOST_RE_NO_PARTIAL_FUNC_SPEC If partial template function specialisation is not supported */
|
||||||
/* #define BOOST_RE_NO_PARTIAL_FUNC_SPEC */
|
/* #define BOOST_RE_NO_PARTIAL_FUNC_SPEC */
|
||||||
|
|
||||||
/* BOOST_RE_NO_INT64 If 64bit integers are not supported. */
|
|
||||||
/* BOOST_RE_INT64t The type of a 64-bit signed integer if available. */
|
|
||||||
/* BOOST_RE_IMM64(val) Declares a 64-bit immediate value by appending any
|
|
||||||
necessary suffix to val. */
|
|
||||||
/* BOOST_RE_INT64_T 0 = NA
|
|
||||||
1 = short
|
|
||||||
2 = int
|
|
||||||
3 = long
|
|
||||||
4 = int64_t
|
|
||||||
5 = long long
|
|
||||||
6 = __int64 */
|
|
||||||
/* #define BOOST_RE_INT64_T_0 */
|
|
||||||
/* #define BOOST_RE_INT64_T_1 */
|
|
||||||
/* #define BOOST_RE_INT64_T_2 */
|
|
||||||
/* #define BOOST_RE_INT64_T_3 */
|
|
||||||
/* #define BOOST_RE_INT64_T_4 */
|
|
||||||
/* #define BOOST_RE_INT64_T_5 */
|
|
||||||
/* #define BOOST_RE_INT64_T_6 */
|
|
||||||
|
|
||||||
/* BOOST_RE_NO_CAT Define if the compiler does not support POSIX style
|
/* BOOST_RE_NO_CAT Define if the compiler does not support POSIX style
|
||||||
message categories (catopen catgets catclose). */
|
message categories (catopen catgets catclose). */
|
||||||
/* #define BOOST_RE_NO_CAT */
|
/* #define BOOST_RE_NO_CAT */
|
||||||
@ -85,15 +51,6 @@
|
|||||||
the current translation mode. */
|
the current translation mode. */
|
||||||
/* #define BOOST_RE_THREADS */
|
/* #define BOOST_RE_THREADS */
|
||||||
|
|
||||||
/* BOOST_RE_NESTED_TEMPLATE_DECL Defaults to template, the standard prefix when accessing
|
|
||||||
nested template classes, can be redefined to nothing if
|
|
||||||
the compiler does not support this. */
|
|
||||||
/* #define BOOST_RE_NESTED_TEMPLATE_DECL */
|
|
||||||
|
|
||||||
/* BOOST_RE_NO_TEMPLATE_INST If explicit template instantiation with the "template class X<T>"
|
|
||||||
syntax is not supported */
|
|
||||||
/* #define BOOST_RE_NO_TEMPLATE_INST */
|
|
||||||
|
|
||||||
/* BOOST_RE_NO_TEMPLATE_MERGE If template in separate translation units don't merge at link time */
|
/* BOOST_RE_NO_TEMPLATE_MERGE If template in separate translation units don't merge at link time */
|
||||||
/* #define BOOST_RE_NO_TEMPLATE_MERGE */
|
/* #define BOOST_RE_NO_TEMPLATE_MERGE */
|
||||||
|
|
||||||
@ -127,11 +84,11 @@
|
|||||||
/* BOOST_RE_NO_ITERATOR_H Define if you do not have a version of <iterator>. */
|
/* BOOST_RE_NO_ITERATOR_H Define if you do not have a version of <iterator>. */
|
||||||
/* #define BOOST_RE_NO_ITERATOR_H */
|
/* #define BOOST_RE_NO_ITERATOR_H */
|
||||||
|
|
||||||
/* BOOST_RE_NO_MEMORY_H Define if <memory> does not fully comply with the
|
/* BOOST_NO_STD_ALLOCATOR Define if <memory> does not fully comply with the
|
||||||
latest standard, and is not auto-recognised,
|
latest standard, and is not auto-recognised,
|
||||||
that means nested template classes
|
that means nested template classes
|
||||||
which hardly any compilers support at present. */
|
which hardly any compilers support at present. */
|
||||||
/* #define BOOST_RE_NO_MEMORY_H */
|
/* #define BOOST_NO_STD_ALLOCATOR */
|
||||||
|
|
||||||
/* BOOST_RE_NO_LOCALE_H Define if there is no verion of the standard
|
/* BOOST_RE_NO_LOCALE_H Define if there is no verion of the standard
|
||||||
<locale> header available. */
|
<locale> header available. */
|
||||||
@ -154,267 +111,14 @@
|
|||||||
/* BOOST_RE_OLD_IOSTREAM If the new iostreamm classes are not available */
|
/* BOOST_RE_OLD_IOSTREAM If the new iostreamm classes are not available */
|
||||||
/* #define BOOST_RE_OLD_IOSTREAM */
|
/* #define BOOST_RE_OLD_IOSTREAM */
|
||||||
|
|
||||||
/* BOOST_RE_DISTANCE_T For std::distance:
|
/* BOOST_NO_STD_DISTANCE If std::distance is not present or non-standard */
|
||||||
0 = NA
|
/* #define BOOST_NO_STD_DISTANCE */
|
||||||
1 = std::distance(i, j, n)
|
|
||||||
2 = n = std::distance(i, j) */
|
|
||||||
/* #define BOOST_RE_DISTANCE_T_0 */
|
|
||||||
/* #define BOOST_RE_DISTANCE_T_1 */
|
|
||||||
/* #define BOOST_RE_DISTANCE_T_2 */
|
|
||||||
|
|
||||||
/* BOOST_RE_ITERATOR_T Defines generic standard iterator type if available, use this as
|
|
||||||
a shortcut to define all the other iterator types.
|
|
||||||
1 = std::iterator<std::tag_type, T, D, T*, T&>
|
|
||||||
2 = std::iterator<std::tag_type, T, D> */
|
|
||||||
/* #define BOOST_RE_ITERATOR_T_0 */
|
|
||||||
/* #define BOOST_RE_ITERATOR_T_1 */
|
|
||||||
/* #define BOOST_RE_ITERATOR_T_2 */
|
|
||||||
|
|
||||||
/* BOOST_RE_OI_T For output iterators:
|
|
||||||
0 = NA
|
|
||||||
1 = std::iterator<std::output_iterator_tag, T, D, T*, T&>
|
|
||||||
2 = std::iterator<std::output_iterator_tag, T, D>
|
|
||||||
3 = std::output_iterator */
|
|
||||||
/* #define BOOST_RE_OI_T_0 */
|
|
||||||
/* #define BOOST_RE_OI_T_1 */
|
|
||||||
/* #define BOOST_RE_OI_T_2 */
|
|
||||||
/* #define BOOST_RE_OI_T_3 */
|
|
||||||
|
|
||||||
/* BOOST_RE_II_T For input iterators:
|
|
||||||
0 = NA
|
|
||||||
1 = std::iterator<std::input_iterator_tag, T, D, T*, T&>
|
|
||||||
2 = std::iterator<std::input_iterator_tag, T, D>
|
|
||||||
3 = std::input_iterator<T, D>
|
|
||||||
4 = std::input_iterator<T> */
|
|
||||||
/* #define BOOST_RE_II_T_0 */
|
|
||||||
/* #define BOOST_RE_II_T_1 */
|
|
||||||
/* #define BOOST_RE_II_T_2 */
|
|
||||||
/* #define BOOST_RE_II_T_3 */
|
|
||||||
/* #define BOOST_RE_II_T_4 */
|
|
||||||
|
|
||||||
|
|
||||||
/* BOOST_RE_FI_T For forward iterators:
|
|
||||||
0 = NA
|
|
||||||
1 = std::iterator<std::forward_iterator_tag, T, D, T*, T&>
|
|
||||||
2 = std::iterator<std::forward_iterator_tag, T, D>
|
|
||||||
3 = std::forward_iterator<T, D> */
|
|
||||||
/* #define BOOST_RE_FI_T_0 */
|
|
||||||
/* #define BOOST_RE_FI_T_1 */
|
|
||||||
/* #define BOOST_RE_FI_T_2 */
|
|
||||||
/* #define BOOST_RE_FI_T_3 */
|
|
||||||
|
|
||||||
/* BOOST_RE_BI_T For bidirectional iterators:
|
|
||||||
0 = NA
|
|
||||||
1 = std::iterator<std::bidirectional_iterator_tag, T, D, T*, T&>
|
|
||||||
2 = std::iterator<std::bidirectional_iterator_tag, T, D>
|
|
||||||
3 = std::bidirectional_iterator<T, D> */
|
|
||||||
/* #define BOOST_RE_BI_T_0 */
|
|
||||||
/* #define BOOST_RE_BI_T_1 */
|
|
||||||
/* #define BOOST_RE_BI_T_2 */
|
|
||||||
/* #define BOOST_RE_BI_T_3 */
|
|
||||||
|
|
||||||
/* BOOST_RE_RI_T For random access iterators:
|
|
||||||
0 = NA
|
|
||||||
1 = std::iterator<std::random_access_iterator_tag, T, D, T*, T&>
|
|
||||||
2 = std::iterator<std::random_access_iterator_tag, T, D>
|
|
||||||
3 = std::random_access_iterator<T, D> */
|
|
||||||
/* #define BOOST_RE_RI_T_0 */
|
|
||||||
/* #define BOOST_RE_RI_T_1 */
|
|
||||||
/* #define BOOST_RE_RI_T_2 */
|
|
||||||
/* #define BOOST_RE_RI_T_3 */
|
|
||||||
|
|
||||||
/* BOOST_RE_NO_OI_ASSIGN If output iterators ostream_iterator<>, back_insert_iterator<> and
|
/* BOOST_RE_NO_OI_ASSIGN If output iterators ostream_iterator<>, back_insert_iterator<> and
|
||||||
front_insert_iterator<> do not have assignment operators */
|
front_insert_iterator<> do not have assignment operators */
|
||||||
/* #define BOOST_RE_NO_OI_ASSIGN */
|
/* #define BOOST_RE_NO_OI_ASSIGN */
|
||||||
|
|
||||||
|
|
||||||
#ifdef BOOST_RE_INT64_T_0
|
|
||||||
#define BOOST_RE_NO_INT64
|
|
||||||
#elif defined(BOOST_RE_INT64_T_1)
|
|
||||||
#define BOOST_RE_INT64t short
|
|
||||||
#define BOOST_RE_IMM64(val) val
|
|
||||||
#elif defined(BOOST_RE_INT64_T_2)
|
|
||||||
#define BOOST_RE_INT64t int
|
|
||||||
#define BOOST_RE_IMM64(val) val
|
|
||||||
#elif defined(BOOST_RE_INT64_T_3)
|
|
||||||
#define BOOST_RE_INT64t long
|
|
||||||
#define BOOST_RE_IMM64(val) val##L
|
|
||||||
#elif defined(BOOST_RE_INT64_T_4)
|
|
||||||
#define BOOST_RE_INT64t int64_t
|
|
||||||
#define BOOST_RE_IMM64(val) INT64_C(val)
|
|
||||||
#elif defined(BOOST_RE_INT64_T_5)
|
|
||||||
#define BOOST_RE_INT64t long long
|
|
||||||
#define BOOST_RE_IMM64(val) val##LL
|
|
||||||
#elif defined(BOOST_RE_INT64_T_6)
|
|
||||||
#define BOOST_RE_INT64t __int64
|
|
||||||
#define BOOST_RE_IMM64(val) val##i64
|
|
||||||
#else
|
|
||||||
syntax error: unknown value for BOOST_RE_INT64_T
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef BOOST_RE_DISTANCE_T_0
|
|
||||||
# define BOOST_RE_DISTANCE(i, j, n) n = j - i
|
|
||||||
#elif defined(BOOST_RE_DISTANCE_T_1)
|
|
||||||
# define BOOST_RE_DISTANCE(i, j, n) n = std::distance(i, j)
|
|
||||||
#elif defined(BOOST_RE_DISTANCE_T_2)
|
|
||||||
# define BOOST_RE_DISTANCE(i, j, n) (n = 0, std::distance(i, j, n))
|
|
||||||
#else
|
|
||||||
syntax erorr
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef BOOST_RE_ITERATOR_T_0
|
|
||||||
#ifndef BOOST_RE_OI_T_0
|
|
||||||
#define BOOST_RE_OI_T_0 BOOST_RE_ITERATOR_T_0
|
|
||||||
#endif
|
|
||||||
#ifndef BOOST_RE_II_T_0
|
|
||||||
#define BOOST_RE_II_T_0 BOOST_RE_ITERATOR_T_0
|
|
||||||
#endif
|
|
||||||
#ifndef BOOST_RE_FI_T_0
|
|
||||||
#define BOOST_RE_FI_T_0 BOOST_RE_ITERATOR_T_0
|
|
||||||
#endif
|
|
||||||
#ifndef BOOST_RE_BI_T_0
|
|
||||||
#define BOOST_RE_BI_T_0 BOOST_RE_ITERATOR_T_0
|
|
||||||
#endif
|
|
||||||
#ifndef BOOST_RE_RI_T_0
|
|
||||||
#define BOOST_RE_RI_T_0 BOOST_RE_ITERATOR_T_0
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef BOOST_RE_ITERATOR_T_1
|
|
||||||
#ifndef BOOST_RE_OI_T_1
|
|
||||||
#define BOOST_RE_OI_T_1 BOOST_RE_ITERATOR_T_1
|
|
||||||
#endif
|
|
||||||
#ifndef BOOST_RE_II_T_1
|
|
||||||
#define BOOST_RE_II_T_1 BOOST_RE_ITERATOR_T_1
|
|
||||||
#endif
|
|
||||||
#ifndef BOOST_RE_FI_T_1
|
|
||||||
#define BOOST_RE_FI_T_1 BOOST_RE_ITERATOR_T_1
|
|
||||||
#endif
|
|
||||||
#ifndef BOOST_RE_BI_T_1
|
|
||||||
#define BOOST_RE_BI_T_1 BOOST_RE_ITERATOR_T_1
|
|
||||||
#endif
|
|
||||||
#ifndef BOOST_RE_RI_T_1
|
|
||||||
#define BOOST_RE_RI_T_1 BOOST_RE_ITERATOR_T_1
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef BOOST_RE_ITERATOR_T_2
|
|
||||||
#ifndef BOOST_RE_OI_T_2
|
|
||||||
#define BOOST_RE_OI_T_2 BOOST_RE_ITERATOR_T_2
|
|
||||||
#endif
|
|
||||||
#ifndef BOOST_RE_II_T_2
|
|
||||||
#define BOOST_RE_II_T_2 BOOST_RE_ITERATOR_T_2
|
|
||||||
#endif
|
|
||||||
#ifndef BOOST_RE_FI_T_2
|
|
||||||
#define BOOST_RE_FI_T_2 BOOST_RE_ITERATOR_T_2
|
|
||||||
#endif
|
|
||||||
#ifndef BOOST_RE_BI_T_2
|
|
||||||
#define BOOST_RE_BI_T_2 BOOST_RE_ITERATOR_T_2
|
|
||||||
#endif
|
|
||||||
#ifndef BOOST_RE_RI_T_2
|
|
||||||
#define BOOST_RE_RI_T_2 BOOST_RE_ITERATOR_T_2
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef BOOST_RE_ITERATOR_T_3
|
|
||||||
#ifndef BOOST_RE_OI_T_3
|
|
||||||
#define BOOST_RE_OI_T_3 BOOST_RE_ITERATOR_T_3
|
|
||||||
#endif
|
|
||||||
#ifndef BOOST_RE_II_T_3
|
|
||||||
#define BOOST_RE_II_T_3 BOOST_RE_ITERATOR_T_3
|
|
||||||
#endif
|
|
||||||
#ifndef BOOST_RE_FI_T_3
|
|
||||||
#define BOOST_RE_FI_T_3 BOOST_RE_ITERATOR_T_3
|
|
||||||
#endif
|
|
||||||
#ifndef BOOST_RE_BI_T_3
|
|
||||||
#define BOOST_RE_BI_T_3 BOOST_RE_ITERATOR_T_3
|
|
||||||
#endif
|
|
||||||
#ifndef BOOST_RE_RI_T_3
|
|
||||||
#define BOOST_RE_RI_T_3 BOOST_RE_ITERATOR_T_3
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef BOOST_RE_ITERATOR_T_4
|
|
||||||
#ifndef BOOST_RE_OI_T_4
|
|
||||||
#define BOOST_RE_OI_T_4 BOOST_RE_ITERATOR_T_4
|
|
||||||
#endif
|
|
||||||
#ifndef BOOST_RE_II_T_4
|
|
||||||
#define BOOST_RE_II_T_4 BOOST_RE_ITERATOR_T_4
|
|
||||||
#endif
|
|
||||||
#ifndef BOOST_RE_FI_T_4
|
|
||||||
#define BOOST_RE_FI_T_4 BOOST_RE_ITERATOR_T_4
|
|
||||||
#endif
|
|
||||||
#ifndef BOOST_RE_BI_T_4
|
|
||||||
#define BOOST_RE_BI_T_4 BOOST_RE_ITERATOR_T_4
|
|
||||||
#endif
|
|
||||||
#ifndef BOOST_RE_RI_T_4
|
|
||||||
#define BOOST_RE_RI_T_4 BOOST_RE_ITERATOR_T_4
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef BOOST_RE_OI_T_0
|
|
||||||
# define BOOST_RE_OUTPUT_ITERATOR(T, D) boost::re_detail::dummy_iterator_base<T>
|
|
||||||
#elif defined(BOOST_RE_OI_T_1)
|
|
||||||
# define BOOST_RE_OUTPUT_ITERATOR(T, D) std::iterator<std::output_iterator_tag, T, D, T*, T&>
|
|
||||||
#elif defined(BOOST_RE_OI_T_2)
|
|
||||||
# define BOOST_RE_OUTPUT_ITERATOR(T, D) std::iterator<std::output_iterator_tag, T, D>
|
|
||||||
#elif defined(BOOST_RE_OI_T_3)
|
|
||||||
# define BOOST_RE_OUTPUT_ITERATOR(T, D) std::output_iterator
|
|
||||||
#else
|
|
||||||
syntax error
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef BOOST_RE_II_T_0
|
|
||||||
# define BOOST_RE_INPUT_ITERATOR(T, D) boost::re_detail::dummy_iterator_base<T>
|
|
||||||
#elif defined(BOOST_RE_II_T_1)
|
|
||||||
#define BOOST_RE_INPUT_ITERATOR(T, D) std::iterator<std::input_iterator_tag, T, D, T*, T&>
|
|
||||||
#elif defined(BOOST_RE_II_T_2)
|
|
||||||
#define BOOST_RE_INPUT_ITERATOR(T, D) std::iterator<std::input_iterator_tag, T, D>
|
|
||||||
#elif defined(BOOST_RE_II_T_3)
|
|
||||||
# define BOOST_RE_INPUT_ITERATOR(T, D) std::input_iterator<T, D>
|
|
||||||
#elif defined(BOOST_RE_II_T_4)
|
|
||||||
# define BOOST_RE_INPUT_ITERATOR(T, D) std::input_iterator<T>
|
|
||||||
#else
|
|
||||||
syntax error
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef BOOST_RE_FI_T_0
|
|
||||||
# define BOOST_RE_FWD_ITERATOR(T, D) boost::re_detail::dummy_iterator_base<T>
|
|
||||||
#elif defined(BOOST_RE_FI_T_1)
|
|
||||||
# define BOOST_RE_FWD_ITERATOR(T, D) std::iterator<std::forward_iterator_tag, T, D, T*, T&>
|
|
||||||
#elif defined(BOOST_RE_FI_T_2)
|
|
||||||
# define BOOST_RE_FWD_ITERATOR(T, D) std::iterator<std::forward_iterator_tag, T, D>
|
|
||||||
#elif defined(BOOST_RE_FI_T_3)
|
|
||||||
# define BOOST_RE_FWD_ITERATOR(T, D) std::forward_iterator<T, D>
|
|
||||||
#else
|
|
||||||
syntax error
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef BOOST_RE_BI_T_0
|
|
||||||
# define BOOST_RE_BIDI_ITERATOR(T, D) boost::re_detail::dummy_iterator_base<T>
|
|
||||||
#elif defined(BOOST_RE_BI_T_1)
|
|
||||||
# define BOOST_RE_BIDI_ITERATOR(T, D) std::iterator<std::bidirectional_iterator_tag, T, D, T*, T&>
|
|
||||||
#elif defined(BOOST_RE_BI_T_2)
|
|
||||||
# define BOOST_RE_BIDI_ITERATOR(T, D) std::iterator<std::bidirectional_iterator_tag, T, D>
|
|
||||||
#elif defined(BOOST_RE_BI_T_3)
|
|
||||||
# define BOOST_RE_BIDI_ITERATOR(T, D) std::bidirectional_iterator<T, D>
|
|
||||||
#else
|
|
||||||
syntax error
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef BOOST_RE_RI_T_0
|
|
||||||
# define BOOST_RE_RA_ITERATOR(T, D) boost::re_detail::dummy_iterator_base<T>
|
|
||||||
#elif defined(BOOST_RE_RI_T_1)
|
|
||||||
# define BOOST_RE_RA_ITERATOR(T, D) std::iterator<std::random_access_iterator_tag, T, D, T*, T&>
|
|
||||||
#elif defined(BOOST_RE_RI_T_2)
|
|
||||||
# define BOOST_RE_RA_ITERATOR(T, D) std::iterator<std::random_access_iterator_tag, T, D>
|
|
||||||
#elif defined(BOOST_RE_RI_T_3)
|
|
||||||
# define BOOST_RE_RA_ITERATOR(T, D) std::random_access_iterator<T, D>
|
|
||||||
#else
|
|
||||||
syntax error
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#include <stdexcept>
|
#include <stdexcept>
|
||||||
|
|
||||||
#ifndef BOOST_RE_NO_ITERATOR_H
|
#ifndef BOOST_RE_NO_ITERATOR_H
|
||||||
@ -426,24 +130,6 @@ syntax error
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(BOOST_RE_NO_MEMORY_H) || defined(__GNUC__)
|
|
||||||
#define BOOST_RE_OLD_ALLOCATORS
|
|
||||||
#define REBIND_INSTANCE(x, y, inst) re_alloc_binder<x, y>(inst)
|
|
||||||
#define REBIND_TYPE(x, y) re_alloc_binder<x, y>
|
|
||||||
#define BOOST_RE_DEF_ALLOC_PARAM(x) BOOST_RE_DEFAULT_PARAM( boost::re_detail::jm_def_alloc )
|
|
||||||
#define BOOST_RE_DEF_ALLOC(x) boost::re_detail::jm_def_alloc
|
|
||||||
|
|
||||||
#define BOOST_RE_NEED_BINDER
|
|
||||||
#define BOOST_RE_NEED_ALLOC
|
|
||||||
#else
|
|
||||||
#include <memory>
|
|
||||||
#define REBIND_INSTANCE(x, y, inst) y::BOOST_RE_NESTED_TEMPLATE_DECL rebind<x>::other(inst)
|
|
||||||
#define REBIND_TYPE(x, y) y::BOOST_RE_NESTED_TEMPLATE_DECL rebind<x>::other
|
|
||||||
#define BOOST_RE_DEF_ALLOC_PARAM(x) BOOST_RE_TRICKY_DEFAULT_PARAM( std::allocator<x> )
|
|
||||||
#define BOOST_RE_DEF_ALLOC(x) std::allocator<x>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#endif // BOOST_RE_AUTO_CONFIGURE
|
#endif // BOOST_RE_AUTO_CONFIGURE
|
||||||
|
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
/*
|
/*
|
||||||
* LOCATION: see http://www.boost.org for most recent version.
|
* LOCATION: see http://www.boost.org for most recent version.
|
||||||
* FILE regex_raw_buffer.hpp
|
* FILE regex_raw_buffer.hpp
|
||||||
* VERSION 3.10
|
* VERSION 3.11
|
||||||
* DESCRIPTION: Raw character buffer for regex code.
|
* DESCRIPTION: Raw character buffer for regex code.
|
||||||
* Note this is an internal header file included
|
* Note this is an internal header file included
|
||||||
* by regex.hpp, do not include on its own.
|
* by regex.hpp, do not include on its own.
|
||||||
@ -109,7 +109,7 @@ class raw_storage
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
typedef Allocator allocator_type;
|
typedef Allocator allocator_type;
|
||||||
typedef BOOST_RE_MAYBE_TYPENAME REBIND_TYPE(unsigned char, allocator_type) alloc_inst_type;
|
typedef typename boost::re_detail::rebind_allocator<unsigned char, allocator_type>::type alloc_inst_type;
|
||||||
typedef typename alloc_inst_type::size_type size_type;
|
typedef typename alloc_inst_type::size_type size_type;
|
||||||
typedef typename alloc_inst_type::pointer pointer;
|
typedef typename alloc_inst_type::pointer pointer;
|
||||||
private:
|
private:
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
/*
|
/*
|
||||||
* LOCATION: see http://www.boost.org for most recent version.
|
* LOCATION: see http://www.boost.org for most recent version.
|
||||||
* FILE regex_split.hpp
|
* FILE regex_split.hpp
|
||||||
* VERSION 3.10
|
* VERSION 3.11
|
||||||
* DESCRIPTION: Implements regex_split and associated functions.
|
* DESCRIPTION: Implements regex_split and associated functions.
|
||||||
* Note this is an internal header file included
|
* Note this is an internal header file included
|
||||||
* by regex.hpp, do not include on its own.
|
* by regex.hpp, do not include on its own.
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
/*
|
/*
|
||||||
* LOCATION: see http://www.boost.org for most recent version.
|
* LOCATION: see http://www.boost.org for most recent version.
|
||||||
* FILE regex_stack.hpp
|
* FILE regex_stack.hpp
|
||||||
* VERSION 3.10
|
* VERSION 3.11
|
||||||
* DESCRIPTION: Implements customised internal regex stacks.
|
* DESCRIPTION: Implements customised internal regex stacks.
|
||||||
* Note this is an internal header file included
|
* Note this is an internal header file included
|
||||||
* by regex.hpp, do not include on its own.
|
* by regex.hpp, do not include on its own.
|
||||||
@ -52,8 +52,8 @@ template <class T, class Allocator BOOST_RE_DEF_ALLOC_PARAM(T) >
|
|||||||
class jstack
|
class jstack
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
typedef BOOST_RE_MAYBE_TYPENAME REBIND_TYPE(unsigned char, Allocator) allocator_type;
|
typedef typename boost::re_detail::rebind_allocator<unsigned char, Allocator>::type allocator_type;
|
||||||
typedef BOOST_RE_MAYBE_TYPENAME REBIND_TYPE(T, Allocator) T_alloc_type;
|
typedef typename boost::re_detail::rebind_allocator<T, Allocator>::type T_alloc_type;
|
||||||
typedef typename T_alloc_type::size_type size_type;
|
typedef typename T_alloc_type::size_type size_type;
|
||||||
typedef T value_type;
|
typedef T value_type;
|
||||||
struct node
|
struct node
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
/*
|
/*
|
||||||
* LOCATION: see http://www.boost.org for most recent version.
|
* LOCATION: see http://www.boost.org for most recent version.
|
||||||
* FILE regex_synch.hpp
|
* FILE regex_synch.hpp
|
||||||
* VERSION 3.10
|
* VERSION 3.11
|
||||||
* DESCRIPTION: Thread synchronisation for regex code.
|
* DESCRIPTION: Thread synchronisation for regex code.
|
||||||
* Note this is an internal header file included
|
* Note this is an internal header file included
|
||||||
* by regex.hpp, do not include on its own.
|
* by regex.hpp, do not include on its own.
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
/*
|
/*
|
||||||
* LOCATION: see http://www.boost.org for most recent version.
|
* LOCATION: see http://www.boost.org for most recent version.
|
||||||
* FILE pattern_except.cpp
|
* FILE pattern_except.cpp
|
||||||
* VERSION 3.10
|
* VERSION 3.11
|
||||||
* DESCRIPTION: Declares pattern-matching exception classes.
|
* DESCRIPTION: Declares pattern-matching exception classes.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
/*
|
/*
|
||||||
* LOCATION: see http://www.boost.org for most recent version.
|
* LOCATION: see http://www.boost.org for most recent version.
|
||||||
* FILE regex.cpp
|
* FILE regex.cpp
|
||||||
* VERSION 3.10
|
* VERSION 3.11
|
||||||
* DESCRIPTION: Declares regular expression traits classes.
|
* DESCRIPTION: Declares regular expression traits classes.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -164,7 +164,7 @@ protected:
|
|||||||
static unsigned short class_map[map_size];
|
static unsigned short class_map[map_size];
|
||||||
static char lower_case_map[map_size];
|
static char lower_case_map[map_size];
|
||||||
|
|
||||||
static jm_uintfast32_t BOOST_RE_CALL do_lookup_class(const char* p);
|
static boost::uint_fast32_t BOOST_RE_CALL do_lookup_class(const char* p);
|
||||||
static bool BOOST_RE_CALL do_lookup_collate(std::string& buf, const char* p);
|
static bool BOOST_RE_CALL do_lookup_collate(std::string& buf, const char* p);
|
||||||
static void BOOST_RE_CALL do_update_ctype();
|
static void BOOST_RE_CALL do_update_ctype();
|
||||||
static void BOOST_RE_CALL do_update_collate();
|
static void BOOST_RE_CALL do_update_collate();
|
||||||
@ -213,7 +213,7 @@ public:
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool BOOST_RE_CALL is_class(char c, jm_uintfast32_t f)
|
static bool BOOST_RE_CALL is_class(char c, boost::uint_fast32_t f)
|
||||||
{
|
{
|
||||||
return BOOST_RE_MAKE_BOOL(class_map[(size_type)(uchar_type)c] & f);
|
return BOOST_RE_MAKE_BOOL(class_map[(size_type)(uchar_type)c] & f);
|
||||||
}
|
}
|
||||||
@ -221,7 +221,7 @@ public:
|
|||||||
static int BOOST_RE_CALL toi(char c);
|
static int BOOST_RE_CALL toi(char c);
|
||||||
static int BOOST_RE_CALL toi(const char*& first, const char* last, int radix);
|
static int BOOST_RE_CALL toi(const char*& first, const char* last, int radix);
|
||||||
|
|
||||||
static jm_uintfast32_t BOOST_RE_CALL lookup_classname(const char* first, const char* last)
|
static boost::uint_fast32_t BOOST_RE_CALL lookup_classname(const char* first, const char* last)
|
||||||
{
|
{
|
||||||
std::string s(first, last);
|
std::string s(first, last);
|
||||||
return do_lookup_class(s.c_str());
|
return do_lookup_class(s.c_str());
|
||||||
@ -293,7 +293,7 @@ public:
|
|||||||
static bool BOOST_RE_CALL is_combining(wchar_t c)
|
static bool BOOST_RE_CALL is_combining(wchar_t c)
|
||||||
{ return re_detail::is_combining(c); }
|
{ return re_detail::is_combining(c); }
|
||||||
|
|
||||||
static bool BOOST_RE_CALL is_class(wchar_t c, jm_uintfast32_t f)
|
static bool BOOST_RE_CALL is_class(wchar_t c, boost::uint_fast32_t f)
|
||||||
{
|
{
|
||||||
return BOOST_RE_MAKE_BOOL(((uchar_type)c < 256) ? (re_detail::wide_unicode_classes[(size_type)(uchar_type)c] & f) : do_iswclass(c, f));
|
return BOOST_RE_MAKE_BOOL(((uchar_type)c < 256) ? (re_detail::wide_unicode_classes[(size_type)(uchar_type)c] & f) : do_iswclass(c, f));
|
||||||
}
|
}
|
||||||
@ -301,7 +301,7 @@ public:
|
|||||||
static int BOOST_RE_CALL toi(wchar_t c);
|
static int BOOST_RE_CALL toi(wchar_t c);
|
||||||
static int BOOST_RE_CALL toi(const wchar_t*& first, const wchar_t* last, int radix);
|
static int BOOST_RE_CALL toi(const wchar_t*& first, const wchar_t* last, int radix);
|
||||||
|
|
||||||
static jm_uintfast32_t BOOST_RE_CALL lookup_classname(const wchar_t* first, const wchar_t* last);
|
static boost::uint_fast32_t BOOST_RE_CALL lookup_classname(const wchar_t* first, const wchar_t* last);
|
||||||
|
|
||||||
static bool BOOST_RE_CALL lookup_collatename(std::basic_string<wchar_t>& s, const wchar_t* first, const wchar_t* last);
|
static bool BOOST_RE_CALL lookup_collatename(std::basic_string<wchar_t>& s, const wchar_t* first, const wchar_t* last);
|
||||||
|
|
||||||
@ -321,7 +321,7 @@ public:
|
|||||||
static unsigned int BOOST_RE_CALL strnarrow(char *s1, unsigned int len, const wchar_t *s2);
|
static unsigned int BOOST_RE_CALL strnarrow(char *s1, unsigned int len, const wchar_t *s2);
|
||||||
static unsigned int BOOST_RE_CALL strwiden(wchar_t *s1, unsigned int len, const char *s2);
|
static unsigned int BOOST_RE_CALL strwiden(wchar_t *s1, unsigned int len, const char *s2);
|
||||||
private:
|
private:
|
||||||
static bool BOOST_RE_CALL do_iswclass(wchar_t c, jm_uintfast32_t f);
|
static bool BOOST_RE_CALL do_iswclass(wchar_t c, boost::uint_fast32_t f);
|
||||||
static void BOOST_RE_CALL free();
|
static void BOOST_RE_CALL free();
|
||||||
static void BOOST_RE_CALL init();
|
static void BOOST_RE_CALL init();
|
||||||
static bool BOOST_RE_CALL do_lookup_collate(std::basic_string<wchar_t>& out, const wchar_t* first, const wchar_t* last);
|
static bool BOOST_RE_CALL do_lookup_collate(std::basic_string<wchar_t>& out, const wchar_t* first, const wchar_t* last);
|
||||||
@ -369,7 +369,7 @@ protected:
|
|||||||
static unsigned short class_map[map_size];
|
static unsigned short class_map[map_size];
|
||||||
static char lower_case_map[map_size];
|
static char lower_case_map[map_size];
|
||||||
|
|
||||||
static jm_uintfast32_t BOOST_RE_CALL do_lookup_class(const char* p);
|
static boost::uint_fast32_t BOOST_RE_CALL do_lookup_class(const char* p);
|
||||||
static bool BOOST_RE_CALL do_lookup_collate(std::string& buf, const char* p);
|
static bool BOOST_RE_CALL do_lookup_collate(std::string& buf, const char* p);
|
||||||
static void BOOST_RE_CALL do_free();
|
static void BOOST_RE_CALL do_free();
|
||||||
static void BOOST_RE_CALL do_init();
|
static void BOOST_RE_CALL do_init();
|
||||||
@ -420,7 +420,7 @@ public:
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool BOOST_RE_CALL is_class(char c, jm_uintfast32_t f)
|
static bool BOOST_RE_CALL is_class(char c, boost::uint_fast32_t f)
|
||||||
{
|
{
|
||||||
return BOOST_RE_MAKE_BOOL(class_map[(size_type)(uchar_type)c] & f);
|
return BOOST_RE_MAKE_BOOL(class_map[(size_type)(uchar_type)c] & f);
|
||||||
}
|
}
|
||||||
@ -428,7 +428,7 @@ public:
|
|||||||
static int BOOST_RE_CALL toi(char c);
|
static int BOOST_RE_CALL toi(char c);
|
||||||
static int BOOST_RE_CALL toi(const char*& first, const char* last, int radix);
|
static int BOOST_RE_CALL toi(const char*& first, const char* last, int radix);
|
||||||
|
|
||||||
static jm_uintfast32_t BOOST_RE_CALL lookup_classname(const char* first, const char* last)
|
static boost::uint_fast32_t BOOST_RE_CALL lookup_classname(const char* first, const char* last)
|
||||||
{
|
{
|
||||||
std::string s(first, last);
|
std::string s(first, last);
|
||||||
return do_lookup_class(s.c_str());
|
return do_lookup_class(s.c_str());
|
||||||
@ -490,7 +490,7 @@ public:
|
|||||||
static bool BOOST_RE_CALL is_combining(wchar_t c)
|
static bool BOOST_RE_CALL is_combining(wchar_t c)
|
||||||
{ return re_detail::is_combining(c); }
|
{ return re_detail::is_combining(c); }
|
||||||
|
|
||||||
static bool BOOST_RE_CALL is_class(wchar_t c, jm_uintfast32_t f)
|
static bool BOOST_RE_CALL is_class(wchar_t c, boost::uint_fast32_t f)
|
||||||
{
|
{
|
||||||
return BOOST_RE_MAKE_BOOL(((uchar_type)c < 256) ? (wide_unicode_classes[(size_type)(uchar_type)c] & f) : do_iswclass(c, f));
|
return BOOST_RE_MAKE_BOOL(((uchar_type)c < 256) ? (wide_unicode_classes[(size_type)(uchar_type)c] & f) : do_iswclass(c, f));
|
||||||
}
|
}
|
||||||
@ -498,7 +498,7 @@ public:
|
|||||||
static int BOOST_RE_CALL toi(wchar_t c);
|
static int BOOST_RE_CALL toi(wchar_t c);
|
||||||
static int BOOST_RE_CALL toi(const wchar_t*& first, const wchar_t* last, int radix);
|
static int BOOST_RE_CALL toi(const wchar_t*& first, const wchar_t* last, int radix);
|
||||||
|
|
||||||
static jm_uintfast32_t BOOST_RE_CALL lookup_classname(const wchar_t* first, const wchar_t* last);
|
static boost::uint_fast32_t BOOST_RE_CALL lookup_classname(const wchar_t* first, const wchar_t* last);
|
||||||
|
|
||||||
static bool BOOST_RE_CALL lookup_collatename(std::basic_string<wchar_t>& s, const wchar_t* first, const wchar_t* last);
|
static bool BOOST_RE_CALL lookup_collatename(std::basic_string<wchar_t>& s, const wchar_t* first, const wchar_t* last);
|
||||||
|
|
||||||
@ -519,7 +519,7 @@ public:
|
|||||||
static unsigned int BOOST_RE_CALL strwiden(wchar_t *s1, unsigned int len, const char *s2);
|
static unsigned int BOOST_RE_CALL strwiden(wchar_t *s1, unsigned int len, const char *s2);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static bool BOOST_RE_CALL do_iswclass(wchar_t c, jm_uintfast32_t f);
|
static bool BOOST_RE_CALL do_iswclass(wchar_t c, boost::uint_fast32_t f);
|
||||||
static bool BOOST_RE_CALL do_lookup_collate(std::basic_string<wchar_t>& out, const wchar_t* first, const wchar_t* last);
|
static bool BOOST_RE_CALL do_lookup_collate(std::basic_string<wchar_t>& out, const wchar_t* first, const wchar_t* last);
|
||||||
static w32_regex_traits<wchar_t> init_;
|
static w32_regex_traits<wchar_t> init_;
|
||||||
static wchar_t BOOST_RE_CALL wtolower(wchar_t c);
|
static wchar_t BOOST_RE_CALL wtolower(wchar_t c);
|
||||||
@ -640,7 +640,7 @@ public:
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool BOOST_RE_CALL is_class(char c, jm_uintfast32_t f)const
|
bool BOOST_RE_CALL is_class(char c, boost::uint_fast32_t f)const
|
||||||
{
|
{
|
||||||
if(pctype->is((std::ctype<char>::mask)(f & char_class_all_base), c))
|
if(pctype->is((std::ctype<char>::mask)(f & char_class_all_base), c))
|
||||||
return true;
|
return true;
|
||||||
@ -654,7 +654,7 @@ public:
|
|||||||
int BOOST_RE_CALL toi(char c)const;
|
int BOOST_RE_CALL toi(char c)const;
|
||||||
int BOOST_RE_CALL toi(const char*& first, const char* last, int radix)const;
|
int BOOST_RE_CALL toi(const char*& first, const char* last, int radix)const;
|
||||||
|
|
||||||
jm_uintfast32_t BOOST_RE_CALL lookup_classname(const char* first, const char* last)const;
|
boost::uint_fast32_t BOOST_RE_CALL lookup_classname(const char* first, const char* last)const;
|
||||||
bool BOOST_RE_CALL lookup_collatename(std::string& s, const char* first, const char* last)const;
|
bool BOOST_RE_CALL lookup_collatename(std::string& s, const char* first, const char* last)const;
|
||||||
|
|
||||||
std::string BOOST_RE_CALL error_string(unsigned id)const;
|
std::string BOOST_RE_CALL error_string(unsigned id)const;
|
||||||
@ -724,7 +724,7 @@ public:
|
|||||||
static bool BOOST_RE_CALL is_combining(wchar_t c)
|
static bool BOOST_RE_CALL is_combining(wchar_t c)
|
||||||
{ return re_detail::is_combining(c); }
|
{ return re_detail::is_combining(c); }
|
||||||
|
|
||||||
bool BOOST_RE_CALL is_class(wchar_t c, jm_uintfast32_t f)const
|
bool BOOST_RE_CALL is_class(wchar_t c, boost::uint_fast32_t f)const
|
||||||
{
|
{
|
||||||
if(pctype->is((std::ctype<wchar_t>::mask)(f & char_class_all_base), c))
|
if(pctype->is((std::ctype<wchar_t>::mask)(f & char_class_all_base), c))
|
||||||
return true;
|
return true;
|
||||||
@ -740,7 +740,7 @@ public:
|
|||||||
int BOOST_RE_CALL toi(wchar_t c)const;
|
int BOOST_RE_CALL toi(wchar_t c)const;
|
||||||
int BOOST_RE_CALL toi(const wchar_t*& first, const wchar_t* last, int radix)const;
|
int BOOST_RE_CALL toi(const wchar_t*& first, const wchar_t* last, int radix)const;
|
||||||
|
|
||||||
jm_uintfast32_t BOOST_RE_CALL lookup_classname(const wchar_t* first, const wchar_t* last)const;
|
boost::uint_fast32_t BOOST_RE_CALL lookup_classname(const wchar_t* first, const wchar_t* last)const;
|
||||||
bool BOOST_RE_CALL lookup_collatename(std::basic_string<wchar_t>& s, const wchar_t* first, const wchar_t* last)const;
|
bool BOOST_RE_CALL lookup_collatename(std::basic_string<wchar_t>& s, const wchar_t* first, const wchar_t* last)const;
|
||||||
|
|
||||||
std::string BOOST_RE_CALL error_string(unsigned id)const;
|
std::string BOOST_RE_CALL error_string(unsigned id)const;
|
||||||
|
@ -23,7 +23,7 @@ content="C:\PROGRAM FILES\MICROSOFT OFFICE\OFFICE\html.dot">
|
|||||||
</td>
|
</td>
|
||||||
<td valign="top" width="50%"><h3 align="center">Regex++,
|
<td valign="top" width="50%"><h3 align="center">Regex++,
|
||||||
Index.</h3>
|
Index.</h3>
|
||||||
<p><i>(version 3.10, 18 April 2000)</i> </p>
|
<p><i>(version 3.11, 18 April 2000)</i> </p>
|
||||||
<pre><i>Copyright (c) 1998-2000
|
<pre><i>Copyright (c) 1998-2000
|
||||||
Dr John Maddock
|
Dr John Maddock
|
||||||
|
|
||||||
|
@ -23,7 +23,7 @@ content="C:\PROGRAM FILES\MICROSOFT OFFICE\OFFICE\html.dot">
|
|||||||
</td>
|
</td>
|
||||||
<td valign="top" width="50%"><h3 align="center">Regex++,
|
<td valign="top" width="50%"><h3 align="center">Regex++,
|
||||||
Introduction.</h3>
|
Introduction.</h3>
|
||||||
<p><i>(version 3.10, 18 April 2000)</i> </p>
|
<p><i>(version 3.11, 18 April 2000)</i> </p>
|
||||||
<pre><i>Copyright (c) 1998-2000
|
<pre><i>Copyright (c) 1998-2000
|
||||||
Dr John Maddock
|
Dr John Maddock
|
||||||
|
|
||||||
@ -410,7 +410,7 @@ run one of the makefiles described above.</p>
|
|||||||
|
|
||||||
<p><b>Sun Workshop 6.1</b></p>
|
<p><b>Sun Workshop 6.1</b></p>
|
||||||
|
|
||||||
<p>There is a makefile for the sun (6.1) compiler (C++ version 3.10).
|
<p>There is a makefile for the sun (6.1) compiler (C++ version 3.11).
|
||||||
From the command prompt change to the <boost>/libs/regex/build
|
From the command prompt change to the <boost>/libs/regex/build
|
||||||
directory and type: </p>
|
directory and type: </p>
|
||||||
|
|
||||||
|
327
jm_opt.in
327
jm_opt.in
@ -10,21 +10,6 @@
|
|||||||
/* BOOST_NO_STDC_NAMESPACE C library not in namespace std */
|
/* BOOST_NO_STDC_NAMESPACE C library not in namespace std */
|
||||||
#undef BOOST_NO_STDC_NAMESPACE
|
#undef BOOST_NO_STDC_NAMESPACE
|
||||||
|
|
||||||
/* BOOST_RE_NO_MUTABLE Disables use of mutable keyword. */
|
|
||||||
#undef BOOST_RE_NO_MUTABLE
|
|
||||||
|
|
||||||
/* BOOST_RE_INT32_LONG If 32-bit integers are long */
|
|
||||||
#undef BOOST_RE_INT32_LONG
|
|
||||||
|
|
||||||
/* BOOST_RE_NO_TEMPLATE_FRIEND If template friend declarations are not supported */
|
|
||||||
#undef BOOST_RE_NO_TEMPLATE_FRIEND
|
|
||||||
|
|
||||||
/* BOOST_RE_PLATFORM_WINDOWS Platform is MS Windows. */
|
|
||||||
#undef BOOST_RE_PLATFORM_WINDOWS
|
|
||||||
|
|
||||||
/* BOOST_RE_PLATFORM_DOS Platform if MSDOS. */
|
|
||||||
#undef BOOST_RE_PLATFORM_DOS
|
|
||||||
|
|
||||||
/* BOOST_RE_PLATFORM_W32 Platform is MS Win32 */
|
/* BOOST_RE_PLATFORM_W32 Platform is MS Win32 */
|
||||||
#undef BOOST_RE_PLATFORM_W32
|
#undef BOOST_RE_PLATFORM_W32
|
||||||
|
|
||||||
@ -49,8 +34,8 @@
|
|||||||
/* BOOST_RE_NO_WSPRINTF If there is no wsprintf available. */
|
/* BOOST_RE_NO_WSPRINTF If there is no wsprintf available. */
|
||||||
#undef BOOST_RE_NO_WSPRINTF
|
#undef BOOST_RE_NO_WSPRINTF
|
||||||
|
|
||||||
/* BOOST_RE_NO_MEMBER_TEMPLATES If member function templates or nested template classes are not allowed. */
|
/* BOOST_NO_MEMBER_TEMPLATES If member function templates or nested template classes are not allowed. */
|
||||||
#undef BOOST_RE_NO_MEMBER_TEMPLATES
|
#undef BOOST_NO_MEMBER_TEMPLATES
|
||||||
|
|
||||||
/* BOOST_RE_NO_TEMPLATE_RETURNS If template functions based on return type are not supported. */
|
/* BOOST_RE_NO_TEMPLATE_RETURNS If template functions based on return type are not supported. */
|
||||||
#undef BOOST_RE_NO_TEMPLATE_RETURNS
|
#undef BOOST_RE_NO_TEMPLATE_RETURNS
|
||||||
@ -58,25 +43,6 @@
|
|||||||
/* BOOST_RE_NO_PARTIAL_FUNC_SPEC If partial template function specialisation is not supported */
|
/* BOOST_RE_NO_PARTIAL_FUNC_SPEC If partial template function specialisation is not supported */
|
||||||
#undef BOOST_RE_NO_PARTIAL_FUNC_SPEC
|
#undef BOOST_RE_NO_PARTIAL_FUNC_SPEC
|
||||||
|
|
||||||
/* BOOST_RE_NO_INT64 If 64bit integers are not supported. */
|
|
||||||
/* BOOST_RE_INT64t The type of a 64-bit signed integer if available. */
|
|
||||||
/* BOOST_RE_IMM64(val) Declares a 64-bit immediate value by appending any
|
|
||||||
necessary suffix to val. */
|
|
||||||
/* BOOST_RE_INT64_T 0 = NA
|
|
||||||
1 = short
|
|
||||||
2 = int
|
|
||||||
3 = long
|
|
||||||
4 = int64_t
|
|
||||||
5 = long long
|
|
||||||
6 = __int64 */
|
|
||||||
#undef BOOST_RE_INT64_T_0
|
|
||||||
#undef BOOST_RE_INT64_T_1
|
|
||||||
#undef BOOST_RE_INT64_T_2
|
|
||||||
#undef BOOST_RE_INT64_T_3
|
|
||||||
#undef BOOST_RE_INT64_T_4
|
|
||||||
#undef BOOST_RE_INT64_T_5
|
|
||||||
#undef BOOST_RE_INT64_T_6
|
|
||||||
|
|
||||||
/* BOOST_RE_NO_CAT Define if the compiler does not support POSIX style
|
/* BOOST_RE_NO_CAT Define if the compiler does not support POSIX style
|
||||||
message categories (catopen catgets catclose). */
|
message categories (catopen catgets catclose). */
|
||||||
#undef BOOST_RE_NO_CAT
|
#undef BOOST_RE_NO_CAT
|
||||||
@ -85,15 +51,6 @@
|
|||||||
the current translation mode. */
|
the current translation mode. */
|
||||||
#undef BOOST_RE_THREADS
|
#undef BOOST_RE_THREADS
|
||||||
|
|
||||||
/* BOOST_RE_NESTED_TEMPLATE_DECL Defaults to template, the standard prefix when accessing
|
|
||||||
nested template classes, can be redefined to nothing if
|
|
||||||
the compiler does not support this. */
|
|
||||||
#undef BOOST_RE_NESTED_TEMPLATE_DECL
|
|
||||||
|
|
||||||
/* BOOST_RE_NO_TEMPLATE_INST If explicit template instantiation with the "template class X<T>"
|
|
||||||
syntax is not supported */
|
|
||||||
#undef BOOST_RE_NO_TEMPLATE_INST
|
|
||||||
|
|
||||||
/* BOOST_RE_NO_TEMPLATE_MERGE If template in separate translation units don't merge at link time */
|
/* BOOST_RE_NO_TEMPLATE_MERGE If template in separate translation units don't merge at link time */
|
||||||
#undef BOOST_RE_NO_TEMPLATE_MERGE
|
#undef BOOST_RE_NO_TEMPLATE_MERGE
|
||||||
|
|
||||||
@ -127,11 +84,11 @@
|
|||||||
/* BOOST_RE_NO_ITERATOR_H Define if you do not have a version of <iterator>. */
|
/* BOOST_RE_NO_ITERATOR_H Define if you do not have a version of <iterator>. */
|
||||||
#undef BOOST_RE_NO_ITERATOR_H
|
#undef BOOST_RE_NO_ITERATOR_H
|
||||||
|
|
||||||
/* BOOST_RE_NO_MEMORY_H Define if <memory> does not fully comply with the
|
/* BOOST_NO_STD_ALLOCATOR Define if <memory> does not fully comply with the
|
||||||
latest standard, and is not auto-recognised,
|
latest standard, and is not auto-recognised,
|
||||||
that means nested template classes
|
that means nested template classes
|
||||||
which hardly any compilers support at present. */
|
which hardly any compilers support at present. */
|
||||||
#undef BOOST_RE_NO_MEMORY_H
|
#undef BOOST_NO_STD_ALLOCATOR
|
||||||
|
|
||||||
/* BOOST_RE_NO_LOCALE_H Define if there is no verion of the standard
|
/* BOOST_RE_NO_LOCALE_H Define if there is no verion of the standard
|
||||||
<locale> header available. */
|
<locale> header available. */
|
||||||
@ -154,267 +111,13 @@
|
|||||||
/* BOOST_RE_OLD_IOSTREAM If the new iostreamm classes are not available */
|
/* BOOST_RE_OLD_IOSTREAM If the new iostreamm classes are not available */
|
||||||
#undef BOOST_RE_OLD_IOSTREAM
|
#undef BOOST_RE_OLD_IOSTREAM
|
||||||
|
|
||||||
/* BOOST_RE_DISTANCE_T For std::distance:
|
/* BOOST_NO_STD_DISTANCE If there is no std::distance. */
|
||||||
0 = NA
|
#undef BOOST_NO_STD_DISTANCE
|
||||||
1 = std::distance(i, j, n)
|
|
||||||
2 = n = std::distance(i, j) */
|
|
||||||
#undef BOOST_RE_DISTANCE_T_0
|
|
||||||
#undef BOOST_RE_DISTANCE_T_1
|
|
||||||
#undef BOOST_RE_DISTANCE_T_2
|
|
||||||
|
|
||||||
/* BOOST_RE_ITERATOR_T Defines generic standard iterator type if available, use this as
|
|
||||||
a shortcut to define all the other iterator types.
|
|
||||||
1 = std::iterator<std::tag_type, T, D, T*, T&>
|
|
||||||
2 = std::iterator<std::tag_type, T, D> */
|
|
||||||
#undef BOOST_RE_ITERATOR_T_0
|
|
||||||
#undef BOOST_RE_ITERATOR_T_1
|
|
||||||
#undef BOOST_RE_ITERATOR_T_2
|
|
||||||
|
|
||||||
/* BOOST_RE_OI_T For output iterators:
|
|
||||||
0 = NA
|
|
||||||
1 = std::iterator<std::output_iterator_tag, T, D, T*, T&>
|
|
||||||
2 = std::iterator<std::output_iterator_tag, T, D>
|
|
||||||
3 = std::output_iterator */
|
|
||||||
#undef BOOST_RE_OI_T_0
|
|
||||||
#undef BOOST_RE_OI_T_1
|
|
||||||
#undef BOOST_RE_OI_T_2
|
|
||||||
#undef BOOST_RE_OI_T_3
|
|
||||||
|
|
||||||
/* BOOST_RE_II_T For input iterators:
|
|
||||||
0 = NA
|
|
||||||
1 = std::iterator<std::input_iterator_tag, T, D, T*, T&>
|
|
||||||
2 = std::iterator<std::input_iterator_tag, T, D>
|
|
||||||
3 = std::input_iterator<T, D>
|
|
||||||
4 = std::input_iterator<T> */
|
|
||||||
#undef BOOST_RE_II_T_0
|
|
||||||
#undef BOOST_RE_II_T_1
|
|
||||||
#undef BOOST_RE_II_T_2
|
|
||||||
#undef BOOST_RE_II_T_3
|
|
||||||
#undef BOOST_RE_II_T_4
|
|
||||||
|
|
||||||
|
|
||||||
/* BOOST_RE_FI_T For forward iterators:
|
|
||||||
0 = NA
|
|
||||||
1 = std::iterator<std::forward_iterator_tag, T, D, T*, T&>
|
|
||||||
2 = std::iterator<std::forward_iterator_tag, T, D>
|
|
||||||
3 = std::forward_iterator<T, D> */
|
|
||||||
#undef BOOST_RE_FI_T_0
|
|
||||||
#undef BOOST_RE_FI_T_1
|
|
||||||
#undef BOOST_RE_FI_T_2
|
|
||||||
#undef BOOST_RE_FI_T_3
|
|
||||||
|
|
||||||
/* BOOST_RE_BI_T For bidirectional iterators:
|
|
||||||
0 = NA
|
|
||||||
1 = std::iterator<std::bidirectional_iterator_tag, T, D, T*, T&>
|
|
||||||
2 = std::iterator<std::bidirectional_iterator_tag, T, D>
|
|
||||||
3 = std::bidirectional_iterator<T, D> */
|
|
||||||
#undef BOOST_RE_BI_T_0
|
|
||||||
#undef BOOST_RE_BI_T_1
|
|
||||||
#undef BOOST_RE_BI_T_2
|
|
||||||
#undef BOOST_RE_BI_T_3
|
|
||||||
|
|
||||||
/* BOOST_RE_RI_T For random access iterators:
|
|
||||||
0 = NA
|
|
||||||
1 = std::iterator<std::random_access_iterator_tag, T, D, T*, T&>
|
|
||||||
2 = std::iterator<std::random_access_iterator_tag, T, D>
|
|
||||||
3 = std::random_access_iterator<T, D> */
|
|
||||||
#undef BOOST_RE_RI_T_0
|
|
||||||
#undef BOOST_RE_RI_T_1
|
|
||||||
#undef BOOST_RE_RI_T_2
|
|
||||||
#undef BOOST_RE_RI_T_3
|
|
||||||
|
|
||||||
/* BOOST_RE_NO_OI_ASSIGN If output iterators ostream_iterator<>, back_insert_iterator<> and
|
/* BOOST_RE_NO_OI_ASSIGN If output iterators ostream_iterator<>, back_insert_iterator<> and
|
||||||
front_insert_iterator<> do not have assignment operators */
|
front_insert_iterator<> do not have assignment operators */
|
||||||
#undef BOOST_RE_NO_OI_ASSIGN
|
#undef BOOST_RE_NO_OI_ASSIGN
|
||||||
|
|
||||||
|
|
||||||
#ifdef BOOST_RE_INT64_T_0
|
|
||||||
#define BOOST_RE_NO_INT64
|
|
||||||
#elif defined(BOOST_RE_INT64_T_1)
|
|
||||||
#define BOOST_RE_INT64t short
|
|
||||||
#define BOOST_RE_IMM64(val) val
|
|
||||||
#elif defined(BOOST_RE_INT64_T_2)
|
|
||||||
#define BOOST_RE_INT64t int
|
|
||||||
#define BOOST_RE_IMM64(val) val
|
|
||||||
#elif defined(BOOST_RE_INT64_T_3)
|
|
||||||
#define BOOST_RE_INT64t long
|
|
||||||
#define BOOST_RE_IMM64(val) val##L
|
|
||||||
#elif defined(BOOST_RE_INT64_T_4)
|
|
||||||
#define BOOST_RE_INT64t int64_t
|
|
||||||
#define BOOST_RE_IMM64(val) INT64_C(val)
|
|
||||||
#elif defined(BOOST_RE_INT64_T_5)
|
|
||||||
#define BOOST_RE_INT64t long long
|
|
||||||
#define BOOST_RE_IMM64(val) val##LL
|
|
||||||
#elif defined(BOOST_RE_INT64_T_6)
|
|
||||||
#define BOOST_RE_INT64t __int64
|
|
||||||
#define BOOST_RE_IMM64(val) val##i64
|
|
||||||
#else
|
|
||||||
syntax error: unknown value for BOOST_RE_INT64_T
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef BOOST_RE_DISTANCE_T_0
|
|
||||||
# define BOOST_RE_DISTANCE(i, j, n) n = j - i
|
|
||||||
#elif defined(BOOST_RE_DISTANCE_T_1)
|
|
||||||
# define BOOST_RE_DISTANCE(i, j, n) n = std::distance(i, j)
|
|
||||||
#elif defined(BOOST_RE_DISTANCE_T_2)
|
|
||||||
# define BOOST_RE_DISTANCE(i, j, n) (n = 0, std::distance(i, j, n))
|
|
||||||
#else
|
|
||||||
syntax erorr
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef BOOST_RE_ITERATOR_T_0
|
|
||||||
#ifndef BOOST_RE_OI_T_0
|
|
||||||
#define BOOST_RE_OI_T_0 BOOST_RE_ITERATOR_T_0
|
|
||||||
#endif
|
|
||||||
#ifndef BOOST_RE_II_T_0
|
|
||||||
#define BOOST_RE_II_T_0 BOOST_RE_ITERATOR_T_0
|
|
||||||
#endif
|
|
||||||
#ifndef BOOST_RE_FI_T_0
|
|
||||||
#define BOOST_RE_FI_T_0 BOOST_RE_ITERATOR_T_0
|
|
||||||
#endif
|
|
||||||
#ifndef BOOST_RE_BI_T_0
|
|
||||||
#define BOOST_RE_BI_T_0 BOOST_RE_ITERATOR_T_0
|
|
||||||
#endif
|
|
||||||
#ifndef BOOST_RE_RI_T_0
|
|
||||||
#define BOOST_RE_RI_T_0 BOOST_RE_ITERATOR_T_0
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef BOOST_RE_ITERATOR_T_1
|
|
||||||
#ifndef BOOST_RE_OI_T_1
|
|
||||||
#define BOOST_RE_OI_T_1 BOOST_RE_ITERATOR_T_1
|
|
||||||
#endif
|
|
||||||
#ifndef BOOST_RE_II_T_1
|
|
||||||
#define BOOST_RE_II_T_1 BOOST_RE_ITERATOR_T_1
|
|
||||||
#endif
|
|
||||||
#ifndef BOOST_RE_FI_T_1
|
|
||||||
#define BOOST_RE_FI_T_1 BOOST_RE_ITERATOR_T_1
|
|
||||||
#endif
|
|
||||||
#ifndef BOOST_RE_BI_T_1
|
|
||||||
#define BOOST_RE_BI_T_1 BOOST_RE_ITERATOR_T_1
|
|
||||||
#endif
|
|
||||||
#ifndef BOOST_RE_RI_T_1
|
|
||||||
#define BOOST_RE_RI_T_1 BOOST_RE_ITERATOR_T_1
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef BOOST_RE_ITERATOR_T_2
|
|
||||||
#ifndef BOOST_RE_OI_T_2
|
|
||||||
#define BOOST_RE_OI_T_2 BOOST_RE_ITERATOR_T_2
|
|
||||||
#endif
|
|
||||||
#ifndef BOOST_RE_II_T_2
|
|
||||||
#define BOOST_RE_II_T_2 BOOST_RE_ITERATOR_T_2
|
|
||||||
#endif
|
|
||||||
#ifndef BOOST_RE_FI_T_2
|
|
||||||
#define BOOST_RE_FI_T_2 BOOST_RE_ITERATOR_T_2
|
|
||||||
#endif
|
|
||||||
#ifndef BOOST_RE_BI_T_2
|
|
||||||
#define BOOST_RE_BI_T_2 BOOST_RE_ITERATOR_T_2
|
|
||||||
#endif
|
|
||||||
#ifndef BOOST_RE_RI_T_2
|
|
||||||
#define BOOST_RE_RI_T_2 BOOST_RE_ITERATOR_T_2
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef BOOST_RE_ITERATOR_T_3
|
|
||||||
#ifndef BOOST_RE_OI_T_3
|
|
||||||
#define BOOST_RE_OI_T_3 BOOST_RE_ITERATOR_T_3
|
|
||||||
#endif
|
|
||||||
#ifndef BOOST_RE_II_T_3
|
|
||||||
#define BOOST_RE_II_T_3 BOOST_RE_ITERATOR_T_3
|
|
||||||
#endif
|
|
||||||
#ifndef BOOST_RE_FI_T_3
|
|
||||||
#define BOOST_RE_FI_T_3 BOOST_RE_ITERATOR_T_3
|
|
||||||
#endif
|
|
||||||
#ifndef BOOST_RE_BI_T_3
|
|
||||||
#define BOOST_RE_BI_T_3 BOOST_RE_ITERATOR_T_3
|
|
||||||
#endif
|
|
||||||
#ifndef BOOST_RE_RI_T_3
|
|
||||||
#define BOOST_RE_RI_T_3 BOOST_RE_ITERATOR_T_3
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef BOOST_RE_ITERATOR_T_4
|
|
||||||
#ifndef BOOST_RE_OI_T_4
|
|
||||||
#define BOOST_RE_OI_T_4 BOOST_RE_ITERATOR_T_4
|
|
||||||
#endif
|
|
||||||
#ifndef BOOST_RE_II_T_4
|
|
||||||
#define BOOST_RE_II_T_4 BOOST_RE_ITERATOR_T_4
|
|
||||||
#endif
|
|
||||||
#ifndef BOOST_RE_FI_T_4
|
|
||||||
#define BOOST_RE_FI_T_4 BOOST_RE_ITERATOR_T_4
|
|
||||||
#endif
|
|
||||||
#ifndef BOOST_RE_BI_T_4
|
|
||||||
#define BOOST_RE_BI_T_4 BOOST_RE_ITERATOR_T_4
|
|
||||||
#endif
|
|
||||||
#ifndef BOOST_RE_RI_T_4
|
|
||||||
#define BOOST_RE_RI_T_4 BOOST_RE_ITERATOR_T_4
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef BOOST_RE_OI_T_0
|
|
||||||
# define BOOST_RE_OUTPUT_ITERATOR(T, D) boost::re_detail::dummy_iterator_base<T>
|
|
||||||
#elif defined(BOOST_RE_OI_T_1)
|
|
||||||
# define BOOST_RE_OUTPUT_ITERATOR(T, D) std::iterator<std::output_iterator_tag, T, D, T*, T&>
|
|
||||||
#elif defined(BOOST_RE_OI_T_2)
|
|
||||||
# define BOOST_RE_OUTPUT_ITERATOR(T, D) std::iterator<std::output_iterator_tag, T, D>
|
|
||||||
#elif defined(BOOST_RE_OI_T_3)
|
|
||||||
# define BOOST_RE_OUTPUT_ITERATOR(T, D) std::output_iterator
|
|
||||||
#else
|
|
||||||
syntax error
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef BOOST_RE_II_T_0
|
|
||||||
# define BOOST_RE_INPUT_ITERATOR(T, D) boost::re_detail::dummy_iterator_base<T>
|
|
||||||
#elif defined(BOOST_RE_II_T_1)
|
|
||||||
#define BOOST_RE_INPUT_ITERATOR(T, D) std::iterator<std::input_iterator_tag, T, D, T*, T&>
|
|
||||||
#elif defined(BOOST_RE_II_T_2)
|
|
||||||
#define BOOST_RE_INPUT_ITERATOR(T, D) std::iterator<std::input_iterator_tag, T, D>
|
|
||||||
#elif defined(BOOST_RE_II_T_3)
|
|
||||||
# define BOOST_RE_INPUT_ITERATOR(T, D) std::input_iterator<T, D>
|
|
||||||
#elif defined(BOOST_RE_II_T_4)
|
|
||||||
# define BOOST_RE_INPUT_ITERATOR(T, D) std::input_iterator<T>
|
|
||||||
#else
|
|
||||||
syntax error
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef BOOST_RE_FI_T_0
|
|
||||||
# define BOOST_RE_FWD_ITERATOR(T, D) boost::re_detail::dummy_iterator_base<T>
|
|
||||||
#elif defined(BOOST_RE_FI_T_1)
|
|
||||||
# define BOOST_RE_FWD_ITERATOR(T, D) std::iterator<std::forward_iterator_tag, T, D, T*, T&>
|
|
||||||
#elif defined(BOOST_RE_FI_T_2)
|
|
||||||
# define BOOST_RE_FWD_ITERATOR(T, D) std::iterator<std::forward_iterator_tag, T, D>
|
|
||||||
#elif defined(BOOST_RE_FI_T_3)
|
|
||||||
# define BOOST_RE_FWD_ITERATOR(T, D) std::forward_iterator<T, D>
|
|
||||||
#else
|
|
||||||
syntax error
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef BOOST_RE_BI_T_0
|
|
||||||
# define BOOST_RE_BIDI_ITERATOR(T, D) boost::re_detail::dummy_iterator_base<T>
|
|
||||||
#elif defined(BOOST_RE_BI_T_1)
|
|
||||||
# define BOOST_RE_BIDI_ITERATOR(T, D) std::iterator<std::bidirectional_iterator_tag, T, D, T*, T&>
|
|
||||||
#elif defined(BOOST_RE_BI_T_2)
|
|
||||||
# define BOOST_RE_BIDI_ITERATOR(T, D) std::iterator<std::bidirectional_iterator_tag, T, D>
|
|
||||||
#elif defined(BOOST_RE_BI_T_3)
|
|
||||||
# define BOOST_RE_BIDI_ITERATOR(T, D) std::bidirectional_iterator<T, D>
|
|
||||||
#else
|
|
||||||
syntax error
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef BOOST_RE_RI_T_0
|
|
||||||
# define BOOST_RE_RA_ITERATOR(T, D) boost::re_detail::dummy_iterator_base<T>
|
|
||||||
#elif defined(BOOST_RE_RI_T_1)
|
|
||||||
# define BOOST_RE_RA_ITERATOR(T, D) std::iterator<std::random_access_iterator_tag, T, D, T*, T&>
|
|
||||||
#elif defined(BOOST_RE_RI_T_2)
|
|
||||||
# define BOOST_RE_RA_ITERATOR(T, D) std::iterator<std::random_access_iterator_tag, T, D>
|
|
||||||
#elif defined(BOOST_RE_RI_T_3)
|
|
||||||
# define BOOST_RE_RA_ITERATOR(T, D) std::random_access_iterator<T, D>
|
|
||||||
#else
|
|
||||||
syntax error
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#include <stdexcept>
|
#include <stdexcept>
|
||||||
|
|
||||||
#ifndef BOOST_RE_NO_ITERATOR_H
|
#ifndef BOOST_RE_NO_ITERATOR_H
|
||||||
@ -426,24 +129,6 @@ syntax error
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(BOOST_RE_NO_MEMORY_H) || defined(__GNUC__)
|
|
||||||
#define BOOST_RE_OLD_ALLOCATORS
|
|
||||||
#define REBIND_INSTANCE(x, y, inst) re_alloc_binder<x, y>(inst)
|
|
||||||
#define REBIND_TYPE(x, y) re_alloc_binder<x, y>
|
|
||||||
#define BOOST_RE_DEF_ALLOC_PARAM(x) BOOST_RE_DEFAULT_PARAM( boost::re_detail::jm_def_alloc )
|
|
||||||
#define BOOST_RE_DEF_ALLOC(x) boost::re_detail::jm_def_alloc
|
|
||||||
|
|
||||||
#define BOOST_RE_NEED_BINDER
|
|
||||||
#define BOOST_RE_NEED_ALLOC
|
|
||||||
#else
|
|
||||||
#include <memory>
|
|
||||||
#define REBIND_INSTANCE(x, y, inst) y::BOOST_RE_NESTED_TEMPLATE_DECL rebind<x>::other(inst)
|
|
||||||
#define REBIND_TYPE(x, y) y::BOOST_RE_NESTED_TEMPLATE_DECL rebind<x>::other
|
|
||||||
#define BOOST_RE_DEF_ALLOC_PARAM(x) BOOST_RE_TRICKY_DEFAULT_PARAM( std::allocator<x> )
|
|
||||||
#define BOOST_RE_DEF_ALLOC(x) std::allocator<x>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#endif // BOOST_RE_AUTO_CONFIGURE
|
#endif // BOOST_RE_AUTO_CONFIGURE
|
||||||
|
|
||||||
|
|
||||||
|
@ -30,14 +30,9 @@
|
|||||||
#define JM_CSTD std
|
#define JM_CSTD std
|
||||||
#define JM jm
|
#define JM jm
|
||||||
|
|
||||||
#define JM_RA_ITERATOR(a,b) BOOST_RE_RA_ITERATOR(a,b)
|
|
||||||
|
|
||||||
#ifdef BOOST_RE_OLD_IOSTREAM
|
#ifdef BOOST_RE_OLD_IOSTREAM
|
||||||
#define JM_OLD_IOSTREAM
|
#define JM_OLD_IOSTREAM
|
||||||
#endif
|
#endif
|
||||||
#ifdef BOOST_RE_NO_MEMBER_TEMPLATES
|
|
||||||
#define JM_NO_MEMBER_TEMPLATES
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
<H3> Regex++, POSIX API Reference.</H3>
|
<H3> Regex++, POSIX API Reference.</H3>
|
||||||
</CENTER>
|
</CENTER>
|
||||||
<CENTER>
|
<CENTER>
|
||||||
<I>(version 3.10, 18 April 2000)</I>
|
<I>(version 3.11, 18 April 2000)</I>
|
||||||
</CENTER>
|
</CENTER>
|
||||||
<PRE><I>Copyright (c) 1998-2000
|
<PRE><I>Copyright (c) 1998-2000
|
||||||
Dr John Maddock
|
Dr John Maddock
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
/*
|
/*
|
||||||
* LOCATION: see http://www.boost.org for most recent version.
|
* LOCATION: see http://www.boost.org for most recent version.
|
||||||
* FILE c_regex_traits.cpp
|
* FILE c_regex_traits.cpp
|
||||||
* VERSION 3.10
|
* VERSION 3.11
|
||||||
* DESCRIPTION: Implements the c_regex_traits<charT> traits class
|
* DESCRIPTION: Implements the c_regex_traits<charT> traits class
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -42,7 +42,7 @@ namespace{
|
|||||||
//
|
//
|
||||||
// character classes:
|
// character classes:
|
||||||
//
|
//
|
||||||
jm_uintfast32_t re_char_class_id[] = {
|
boost::uint_fast32_t re_char_class_id[] = {
|
||||||
boost::re_detail::c_traits_base::char_class_alnum,
|
boost::re_detail::c_traits_base::char_class_alnum,
|
||||||
boost::re_detail::c_traits_base::char_class_alpha,
|
boost::re_detail::c_traits_base::char_class_alpha,
|
||||||
boost::re_detail::c_traits_base::char_class_cntrl,
|
boost::re_detail::c_traits_base::char_class_cntrl,
|
||||||
@ -481,7 +481,7 @@ void BOOST_RE_CALL c_traits_base::do_update_ctype()
|
|||||||
re_update_classes();
|
re_update_classes();
|
||||||
}
|
}
|
||||||
|
|
||||||
jm_uintfast32_t BOOST_RE_CALL c_traits_base::do_lookup_class(const char* p)
|
boost::uint_fast32_t BOOST_RE_CALL c_traits_base::do_lookup_class(const char* p)
|
||||||
{
|
{
|
||||||
BOOST_RE_GUARD_STACK
|
BOOST_RE_GUARD_STACK
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
@ -858,7 +858,7 @@ void BOOST_RE_CALL c_regex_traits<wchar_t>::free()
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
bool BOOST_RE_CALL c_regex_traits<wchar_t>::do_iswclass(wchar_t c, jm_uintfast32_t f)
|
bool BOOST_RE_CALL c_regex_traits<wchar_t>::do_iswclass(wchar_t c, boost::uint_fast32_t f)
|
||||||
{
|
{
|
||||||
BOOST_RE_GUARD_STACK
|
BOOST_RE_GUARD_STACK
|
||||||
if((c & ~0xFF) == 0)
|
if((c & ~0xFF) == 0)
|
||||||
@ -976,7 +976,7 @@ int BOOST_RE_CALL c_regex_traits<wchar_t>::toi(const wchar_t*& first, const wcha
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
jm_uintfast32_t BOOST_RE_CALL c_regex_traits<wchar_t>::lookup_classname(const wchar_t* first, const wchar_t* last)
|
boost::uint_fast32_t BOOST_RE_CALL c_regex_traits<wchar_t>::lookup_classname(const wchar_t* first, const wchar_t* last)
|
||||||
{
|
{
|
||||||
std::basic_string<wchar_t> s(first, last);
|
std::basic_string<wchar_t> s(first, last);
|
||||||
unsigned int len = strnarrow((char*)0, 0, s.c_str());
|
unsigned int len = strnarrow((char*)0, 0, s.c_str());
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
/*
|
/*
|
||||||
* LOCATION: see http://www.boost.org for most recent version.
|
* LOCATION: see http://www.boost.org for most recent version.
|
||||||
* FILE: c_regex_traits_common.cpp
|
* FILE: c_regex_traits_common.cpp
|
||||||
* VERSION: 3.10
|
* VERSION: 3.11
|
||||||
* DESCRIPTION: Implements common code and data for the
|
* DESCRIPTION: Implements common code and data for the
|
||||||
* c_regex_traits<charT> traits classes.
|
* c_regex_traits<charT> traits classes.
|
||||||
*/
|
*/
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
/*
|
/*
|
||||||
* LOCATION: see http://www.boost.org for most recent version.
|
* LOCATION: see http://www.boost.org for most recent version.
|
||||||
* FILE: c_regex_traits.cpp
|
* FILE: c_regex_traits.cpp
|
||||||
* VERSION: 3.10
|
* VERSION: 3.11
|
||||||
* DESCRIPTION: Implements the cpp_regex_traits<charT> traits class
|
* DESCRIPTION: Implements the cpp_regex_traits<charT> traits class
|
||||||
*/
|
*/
|
||||||
#include <clocale>
|
#include <clocale>
|
||||||
@ -39,7 +39,7 @@ namespace{
|
|||||||
const unsigned int re_classes_max = 14;
|
const unsigned int re_classes_max = 14;
|
||||||
const unsigned int char_set_size = CHAR_MAX - CHAR_MIN + 1;
|
const unsigned int char_set_size = CHAR_MAX - CHAR_MIN + 1;
|
||||||
|
|
||||||
jm_uintfast32_t re_char_class_id[] = {
|
boost::uint_fast32_t re_char_class_id[] = {
|
||||||
boost::re_detail::cpp_regex_traits_base::char_class_alnum,
|
boost::re_detail::cpp_regex_traits_base::char_class_alnum,
|
||||||
boost::re_detail::cpp_regex_traits_base::char_class_alpha,
|
boost::re_detail::cpp_regex_traits_base::char_class_alpha,
|
||||||
boost::re_detail::cpp_regex_traits_base::char_class_cntrl,
|
boost::re_detail::cpp_regex_traits_base::char_class_cntrl,
|
||||||
@ -342,7 +342,7 @@ int BOOST_RE_CALL cpp_regex_traits<char>::toi(const char*& first, const char* la
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
jm_uintfast32_t BOOST_RE_CALL cpp_regex_traits<char>::lookup_classname(const char* first, const char* last)const
|
boost::uint_fast32_t BOOST_RE_CALL cpp_regex_traits<char>::lookup_classname(const char* first, const char* last)const
|
||||||
{
|
{
|
||||||
BOOST_RE_GUARD_STACK
|
BOOST_RE_GUARD_STACK
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
@ -708,7 +708,7 @@ int BOOST_RE_CALL cpp_regex_traits<wchar_t>::toi(const wchar_t*& first, const wc
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
jm_uintfast32_t BOOST_RE_CALL cpp_regex_traits<wchar_t>::lookup_classname(const wchar_t* first, const wchar_t* last)const
|
boost::uint_fast32_t BOOST_RE_CALL cpp_regex_traits<wchar_t>::lookup_classname(const wchar_t* first, const wchar_t* last)const
|
||||||
{
|
{
|
||||||
BOOST_RE_GUARD_STACK
|
BOOST_RE_GUARD_STACK
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
/*
|
/*
|
||||||
* LOCATION: see http://www.boost.org for most recent version.
|
* LOCATION: see http://www.boost.org for most recent version.
|
||||||
* FILE: cregex.cpp
|
* FILE: cregex.cpp
|
||||||
* VERSION: 3.10
|
* VERSION: 3.11
|
||||||
* DESCRIPTION: Implements high level class boost::RexEx
|
* DESCRIPTION: Implements high level class boost::RexEx
|
||||||
*/
|
*/
|
||||||
#include <boost/cregex.hpp>
|
#include <boost/cregex.hpp>
|
||||||
@ -170,7 +170,7 @@ RegEx& RegEx::operator=(const char* p)
|
|||||||
unsigned int RegEx::SetExpression(const char* p, bool icase)
|
unsigned int RegEx::SetExpression(const char* p, bool icase)
|
||||||
{
|
{
|
||||||
BOOST_RE_GUARD_STACK
|
BOOST_RE_GUARD_STACK
|
||||||
jm_uintfast32_t f = icase ? regbase::normal | regbase::use_except | regbase::icase : regbase::normal | regbase::use_except;
|
boost::uint_fast32_t f = icase ? regbase::normal | regbase::use_except | regbase::icase : regbase::normal | regbase::use_except;
|
||||||
return pdata->e.set_expression(p, f);
|
return pdata->e.set_expression(p, f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
/*
|
/*
|
||||||
* LOCATION: see http://www.boost.org for most recent version.
|
* LOCATION: see http://www.boost.org for most recent version.
|
||||||
* FILE: fileiter.cpp
|
* FILE: fileiter.cpp
|
||||||
* VERSION: 3.10
|
* VERSION: 3.11
|
||||||
* DESCRIPTION: Implements file io primitives + directory searching for class boost::RegEx.
|
* DESCRIPTION: Implements file io primitives + directory searching for class boost::RegEx.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
/*
|
/*
|
||||||
* LOCATION: see http://www.boost.org for most recent version.
|
* LOCATION: see http://www.boost.org for most recent version.
|
||||||
* FILE: posix_api.cpp
|
* FILE: posix_api.cpp
|
||||||
* VERSION: 3.10
|
* VERSION: 3.11
|
||||||
* DESCRIPTION: Implements the Posix API wrappers.
|
* DESCRIPTION: Implements the Posix API wrappers.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -49,7 +49,7 @@ BOOST_RE_IX_DECL int BOOST_RE_CCALL regcompA(regex_tA* expression, const char* p
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// set default flags:
|
// set default flags:
|
||||||
jm_uintfast32_t flags = (f & REG_EXTENDED) ? regbase::extended : regbase::basic;
|
boost::uint_fast32_t flags = (f & REG_EXTENDED) ? regbase::extended : regbase::basic;
|
||||||
expression->eflags = (f & REG_NEWLINE) ? match_not_dot_newline : 0;
|
expression->eflags = (f & REG_NEWLINE) ? match_not_dot_newline : 0;
|
||||||
// and translate those that are actually set:
|
// and translate those that are actually set:
|
||||||
|
|
||||||
@ -152,7 +152,7 @@ BOOST_RE_IX_DECL int BOOST_RE_CCALL regexecA(const regex_tA* expression, const c
|
|||||||
{
|
{
|
||||||
BOOST_RE_GUARD_STACK
|
BOOST_RE_GUARD_STACK
|
||||||
bool result = false;
|
bool result = false;
|
||||||
jm_uintfast32_t flags = match_default | expression->eflags;
|
boost::uint_fast32_t flags = match_default | expression->eflags;
|
||||||
const char* end;
|
const char* end;
|
||||||
const char* start;
|
const char* start;
|
||||||
cmatch m;
|
cmatch m;
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
/*
|
/*
|
||||||
* LOCATION: see http://www.boost.org for most recent version.
|
* LOCATION: see http://www.boost.org for most recent version.
|
||||||
* FILE: primary_transform.hpp
|
* FILE: primary_transform.hpp
|
||||||
* VERSION: 3.10
|
* VERSION: 3.11
|
||||||
* DESCRIPTION: Heuristically determines the sort string format in use
|
* DESCRIPTION: Heuristically determines the sort string format in use
|
||||||
* by the current locale.
|
* by the current locale.
|
||||||
*/
|
*/
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
/*
|
/*
|
||||||
* LOCATION: see http://www.boost.org for most recent version.
|
* LOCATION: see http://www.boost.org for most recent version.
|
||||||
* FILE: regex.cpp
|
* FILE: regex.cpp
|
||||||
* VERSION: 3.10
|
* VERSION: 3.11
|
||||||
* DESCRIPTION: Misc boost::regbase member funnctions.
|
* DESCRIPTION: Misc boost::regbase member funnctions.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
/*
|
/*
|
||||||
* LOCATION: see http://www.boost.org for most recent version.
|
* LOCATION: see http://www.boost.org for most recent version.
|
||||||
* FILE: regex_debug.cpp
|
* FILE: regex_debug.cpp
|
||||||
* VERSION: 3.10
|
* VERSION: 3.11
|
||||||
* DESCRIPTION: Misc. debugging helpers.
|
* DESCRIPTION: Misc. debugging helpers.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
/*
|
/*
|
||||||
* LOCATION: see http://www.boost.org for most recent version.
|
* LOCATION: see http://www.boost.org for most recent version.
|
||||||
* FILE: regex_synch.cpp
|
* FILE: regex_synch.cpp
|
||||||
* VERSION: 3.10
|
* VERSION: 3.11
|
||||||
* DESCRIPTION: Thread synch helper functions, for regular
|
* DESCRIPTION: Thread synch helper functions, for regular
|
||||||
* expression library.
|
* expression library.
|
||||||
*/
|
*/
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
/*
|
/*
|
||||||
* LOCATION: see http://www.boost.org for most recent version.
|
* LOCATION: see http://www.boost.org for most recent version.
|
||||||
* FILE: w32_regex_traits.cpp
|
* FILE: w32_regex_traits.cpp
|
||||||
* VERSION: 3.10
|
* VERSION: 3.11
|
||||||
* DESCRIPTION: Implements the w32_regex_traits<charT> traits class
|
* DESCRIPTION: Implements the w32_regex_traits<charT> traits class
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -37,7 +37,7 @@ namespace{
|
|||||||
//
|
//
|
||||||
// character classes:
|
// character classes:
|
||||||
|
|
||||||
jm_uintfast32_t re_char_class_id[] = {
|
boost::uint_fast32_t re_char_class_id[] = {
|
||||||
boost::re_detail::w32_traits_base::char_class_alnum,
|
boost::re_detail::w32_traits_base::char_class_alnum,
|
||||||
boost::re_detail::w32_traits_base::char_class_alpha,
|
boost::re_detail::w32_traits_base::char_class_alpha,
|
||||||
boost::re_detail::w32_traits_base::char_class_cntrl,
|
boost::re_detail::w32_traits_base::char_class_cntrl,
|
||||||
@ -378,7 +378,7 @@ std::string w32_traits_base::error_string(unsigned id)
|
|||||||
return re_get_error_str(id);
|
return re_get_error_str(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
jm_uintfast32_t BOOST_RE_CALL w32_traits_base::do_lookup_class(const char* p)
|
boost::uint_fast32_t BOOST_RE_CALL w32_traits_base::do_lookup_class(const char* p)
|
||||||
{
|
{
|
||||||
BOOST_RE_GUARD_STACK
|
BOOST_RE_GUARD_STACK
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
@ -645,7 +645,7 @@ w32_regex_traits<wchar_t>::~w32_regex_traits()
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
bool BOOST_RE_CALL w32_regex_traits<wchar_t>::do_iswclass(wchar_t c, jm_uintfast32_t f)
|
bool BOOST_RE_CALL w32_regex_traits<wchar_t>::do_iswclass(wchar_t c, boost::uint_fast32_t f)
|
||||||
{
|
{
|
||||||
BOOST_RE_GUARD_STACK
|
BOOST_RE_GUARD_STACK
|
||||||
if((c & ~0xFF) == 0)
|
if((c & ~0xFF) == 0)
|
||||||
@ -756,7 +756,7 @@ int BOOST_RE_CALL w32_regex_traits<wchar_t>::toi(const wchar_t*& first, const wc
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
jm_uintfast32_t BOOST_RE_CALL w32_regex_traits<wchar_t>::lookup_classname(const wchar_t* first, const wchar_t* last)
|
boost::uint_fast32_t BOOST_RE_CALL w32_regex_traits<wchar_t>::lookup_classname(const wchar_t* first, const wchar_t* last)
|
||||||
{
|
{
|
||||||
std::basic_string<wchar_t> s(first, last);
|
std::basic_string<wchar_t> s(first, last);
|
||||||
unsigned int len = strnarrow((char*)0, 0, s.c_str());
|
unsigned int len = strnarrow((char*)0, 0, s.c_str());
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
/*
|
/*
|
||||||
* LOCATION: see http://www.boost.org for most recent version.
|
* LOCATION: see http://www.boost.org for most recent version.
|
||||||
* FILE: wide_posix_api.cpp
|
* FILE: wide_posix_api.cpp
|
||||||
* VERSION: 3.10
|
* VERSION: 3.11
|
||||||
* DESCRIPTION: Implements the wide character POSIX API wrappers.
|
* DESCRIPTION: Implements the wide character POSIX API wrappers.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -59,7 +59,7 @@ BOOST_RE_IX_DECL int BOOST_RE_CCALL regcompW(regex_tW* expression, const wchar_t
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// set default flags:
|
// set default flags:
|
||||||
jm_uintfast32_t flags = (f & REG_EXTENDED) ? regbase::extended : regbase::basic;
|
boost::uint_fast32_t flags = (f & REG_EXTENDED) ? regbase::extended : regbase::basic;
|
||||||
expression->eflags = (f & REG_NEWLINE) ? match_not_dot_newline : 0;
|
expression->eflags = (f & REG_NEWLINE) ? match_not_dot_newline : 0;
|
||||||
|
|
||||||
// and translate those that are actually set:
|
// and translate those that are actually set:
|
||||||
@ -162,7 +162,7 @@ BOOST_RE_IX_DECL int BOOST_RE_CCALL regexecW(const regex_tW* expression, const w
|
|||||||
{
|
{
|
||||||
BOOST_RE_GUARD_STACK
|
BOOST_RE_GUARD_STACK
|
||||||
bool result = false;
|
bool result = false;
|
||||||
jm_uintfast32_t flags = match_default | expression->eflags;
|
boost::uint_fast32_t flags = match_default | expression->eflags;
|
||||||
const wchar_t* end;
|
const wchar_t* end;
|
||||||
const wchar_t* start;
|
const wchar_t* start;
|
||||||
wcmatch m;
|
wcmatch m;
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
<H3> Regex++, Regular Expression Syntax.</H3>
|
<H3> Regex++, Regular Expression Syntax.</H3>
|
||||||
</CENTER>
|
</CENTER>
|
||||||
<CENTER>
|
<CENTER>
|
||||||
<I>(version 3.10, 18 April 2000)</I>
|
<I>(version 3.11, 18 April 2000)</I>
|
||||||
</CENTER>
|
</CENTER>
|
||||||
<PRE><I>Copyright (c) 1998-2000
|
<PRE><I>Copyright (c) 1998-2000
|
||||||
Dr John Maddock
|
Dr John Maddock
|
||||||
|
@ -21,7 +21,7 @@ content="C:\PROGRAM FILES\MICROSOFT OFFICE\OFFICE\html.dot">
|
|||||||
</td>
|
</td>
|
||||||
<td valign="top" width="50%"><h2 align="center">Regex++,
|
<td valign="top" width="50%"><h2 align="center">Regex++,
|
||||||
Template Class and Algorithm Reference.</h2>
|
Template Class and Algorithm Reference.</h2>
|
||||||
<p><i>(version 3.10, 18 April 2000)</i> </p>
|
<p><i>(version 3.11, 18 April 2000)</i> </p>
|
||||||
<pre><i>Copyright (c) 1998-9
|
<pre><i>Copyright (c) 1998-9
|
||||||
Dr John Maddock
|
Dr John Maddock
|
||||||
|
|
||||||
@ -427,7 +427,7 @@ for a container of <i>charT</i>. </p>
|
|||||||
</i></font> <b> typedef</b> Allocator allocator_type;
|
</i></font> <b> typedef</b> Allocator allocator_type;
|
||||||
<b>typedef</b> Allocator alloc_type;
|
<b>typedef</b> Allocator alloc_type;
|
||||||
<font color="#000080"> <i>// flag_type
|
<font color="#000080"> <i>// flag_type
|
||||||
</i></font> <b>typedef</b> jm_uintfast32_t flag_type;
|
</i></font> <b>typedef</b> boost::int_fast32_t flag_type;
|
||||||
<b>public</b>:
|
<b>public</b>:
|
||||||
<font color="#000080"><em>// constructors</em></font>
|
<font color="#000080"><em>// constructors</em></font>
|
||||||
<strong>explicit</strong> reg_expression(<b>const</b> Allocator& a = Allocator());
|
<strong>explicit</strong> reg_expression(<b>const</b> Allocator& a = Allocator());
|
||||||
@ -550,7 +550,7 @@ member functions: <br>
|
|||||||
<td valign="top" width="45%"><font size="2"><b>template</b>
|
<td valign="top" width="45%"><font size="2"><b>template</b>
|
||||||
<class ST, class SA> <br>
|
<class ST, class SA> <br>
|
||||||
reg_expression(<b>const</b> std::basic_string<charT,
|
reg_expression(<b>const</b> std::basic_string<charT,
|
||||||
ST, SA>& p, jm_uintfast32_t f = regbase::normal, <b>const</b>
|
ST, SA>& p, boost::int_fast32_t f = regbase::normal, <b>const</b>
|
||||||
Allocator& a = Allocator());</font></td>
|
Allocator& a = Allocator());</font></td>
|
||||||
<td valign="top" width="45%"><font size="2"> Constructs
|
<td valign="top" width="45%"><font size="2"> Constructs
|
||||||
an instance of reg_expression from the expression denoted
|
an instance of reg_expression from the expression denoted
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* FILE parse.cpp
|
* FILE parse.cpp
|
||||||
* VERSION 3.10
|
* VERSION 3.11
|
||||||
*
|
*
|
||||||
* Input parsing functions for regress.
|
* Input parsing functions for regress.
|
||||||
*
|
*
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
/*
|
/*
|
||||||
* LOCATION: see http://www.boost.org for most recent version.
|
* LOCATION: see http://www.boost.org for most recent version.
|
||||||
* FILE regex_test.cpp
|
* FILE regex_test.cpp
|
||||||
* VERSION 3.10
|
* VERSION 3.11
|
||||||
* DESCRIPTION: Builds regression test program with default
|
* DESCRIPTION: Builds regression test program with default
|
||||||
* locale and narrow character tests. Also
|
* locale and narrow character tests. Also
|
||||||
* instantiates all the templates in the library
|
* instantiates all the templates in the library
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* FILE regress.cpp
|
* FILE regress.cpp
|
||||||
* VERSION 3.10
|
* VERSION 3.11
|
||||||
*
|
*
|
||||||
* main() and associated code for regress.
|
* main() and associated code for regress.
|
||||||
*
|
*
|
||||||
@ -39,6 +39,8 @@ using std::endl;
|
|||||||
#pragma hrdstop
|
#pragma hrdstop
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include <boost/test/cpp_main.cpp>
|
||||||
|
|
||||||
#include "regress.h"
|
#include "regress.h"
|
||||||
|
|
||||||
#if defined(BOOST_MSVC) && defined(_DEBUG)
|
#if defined(BOOST_MSVC) && defined(_DEBUG)
|
||||||
@ -72,7 +74,7 @@ void usage()
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(int argc, char * argv[])
|
int cpp_main(int argc, char * argv[])
|
||||||
{
|
{
|
||||||
#if defined(BOOST_MSVC) && defined(_DEBUG)
|
#if defined(BOOST_MSVC) && defined(_DEBUG)
|
||||||
// turn on heap reporting at program exit:
|
// turn on heap reporting at program exit:
|
||||||
@ -111,10 +113,6 @@ int main(int argc, char * argv[])
|
|||||||
}
|
}
|
||||||
cout << line << " lines, " << tests << " tests completed in file " << argv[i] << endl;
|
cout << line << " lines, " << tests << " tests completed in file " << argv[i] << endl;
|
||||||
}
|
}
|
||||||
if(error_count)
|
|
||||||
cout << "There were " << error_count << " failures in total..." << endl;
|
|
||||||
else
|
|
||||||
cout << "No failures detected..." << endl;
|
|
||||||
|
|
||||||
return error_count;
|
return error_count;
|
||||||
}
|
}
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* FILE regress.h
|
* FILE regress.h
|
||||||
* VERSION 3.10
|
* VERSION 3.11
|
||||||
*
|
*
|
||||||
* Function and data declarations for regress.
|
* Function and data declarations for regress.
|
||||||
*
|
*
|
||||||
@ -129,7 +129,7 @@ public:
|
|||||||
typedef char value_type;
|
typedef char value_type;
|
||||||
|
|
||||||
|
|
||||||
#ifndef BOOST_RE_NO_MEMBER_TEMPLATES
|
#ifndef BOOST_NO_MEMBER_TEMPLATES
|
||||||
template <class U>
|
template <class U>
|
||||||
struct rebind
|
struct rebind
|
||||||
{
|
{
|
||||||
@ -187,7 +187,7 @@ public:
|
|||||||
// class debug_iterator
|
// class debug_iterator
|
||||||
//
|
//
|
||||||
template <class T>
|
template <class T>
|
||||||
struct debug_iterator : public BOOST_RE_RA_ITERATOR(T, std::ptrdiff_t)
|
struct debug_iterator
|
||||||
{
|
{
|
||||||
typedef std::ptrdiff_t difference_type;
|
typedef std::ptrdiff_t difference_type;
|
||||||
typedef char_t value_type;
|
typedef char_t value_type;
|
||||||
@ -306,16 +306,43 @@ struct debug_iterator : public BOOST_RE_RA_ITERATOR(T, std::ptrdiff_t)
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
#if defined(__SGI_STL_PORT) && (__SGI_STL_PORT >= 0x400)
|
#if defined(__SGI_STL_PORT)
|
||||||
namespace std{
|
namespace std{
|
||||||
template <class T>
|
template <class T>
|
||||||
inline random_access_iterator_tag __STL_CALL
|
inline random_access_iterator_tag __STL_CALL
|
||||||
|
__ITERATOR_CATEGORY(const debug_iterator<T>&) {
|
||||||
|
return random_access_iterator_tag();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#elif defined(__STL_CONFIG_H)
|
||||||
|
namespace std{
|
||||||
|
template <class T>
|
||||||
|
inline random_access_iterator_tag
|
||||||
|
iterator_category(const debug_iterator<T>&) {
|
||||||
|
return random_access_iterator_tag();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#ifdef BOOST_MSVC
|
||||||
|
namespace std{
|
||||||
|
template <class T>
|
||||||
|
inline random_access_iterator_tag __cdecl
|
||||||
|
_Iter_cat(const debug_iterator<T>&) {
|
||||||
|
return random_access_iterator_tag();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#ifdef BOOST_RWSTD_VER
|
||||||
|
namespace std{
|
||||||
|
template <class T>
|
||||||
|
inline random_access_iterator_tag
|
||||||
__iterator_category(const debug_iterator<T>&) {
|
__iterator_category(const debug_iterator<T>&) {
|
||||||
return random_access_iterator_tag();
|
return random_access_iterator_tag();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#ifdef BOOST_RE_TEST_LOCALE_W32
|
#ifdef BOOST_RE_TEST_LOCALE_W32
|
||||||
typedef boost::reg_expression<char_t, boost::w32_regex_traits<char_t>, jm_debug_alloc> re_type;
|
typedef boost::reg_expression<char_t, boost::w32_regex_traits<char_t>, jm_debug_alloc> re_type;
|
||||||
#elif defined(BOOST_RE_TEST_LOCALE_CPP)
|
#elif defined(BOOST_RE_TEST_LOCALE_CPP)
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* FILE tests.cpp
|
* FILE tests.cpp
|
||||||
* VERSION 3.10
|
* VERSION 3.11
|
||||||
*
|
*
|
||||||
* the actual tests conducted by regress.
|
* the actual tests conducted by regress.
|
||||||
*
|
*
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
/*
|
/*
|
||||||
* LOCATION: see http://www.boost.org for most recent version.
|
* LOCATION: see http://www.boost.org for most recent version.
|
||||||
* FILE regex_test.cpp
|
* FILE regex_test.cpp
|
||||||
* VERSION 3.10
|
* VERSION 3.11
|
||||||
* DESCRIPTION: Builds regression test program with default
|
* DESCRIPTION: Builds regression test program with default
|
||||||
* locale and wide character tests. Also
|
* locale and wide character tests. Also
|
||||||
* instantiates all the templates in the library
|
* instantiates all the templates in the library
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
HEIGHT="86" ALT="C++ Boost"> </H3>
|
HEIGHT="86" ALT="C++ Boost"> </H3>
|
||||||
</TD>
|
</TD>
|
||||||
<TD VALIGN="top" WIDTH="50%"><H3 ALIGN="center">Regex++, Traits Class
|
<TD VALIGN="top" WIDTH="50%"><H3 ALIGN="center">Regex++, Traits Class
|
||||||
Reference. <I>(version 3.10, 18 April 2000)</I> </H3>
|
Reference. <I>(version 3.11, 18 April 2000)</I> </H3>
|
||||||
<PRE>
|
<PRE>
|
||||||
<I>Copyright (c) 1998-2000
|
<I>Copyright (c) 1998-2000
|
||||||
Dr John Maddock
|
Dr John Maddock
|
||||||
|
Reference in New Issue
Block a user