gcc/libstdc++-v3/include/bits/regex_cursor.h

92 lines
2.5 KiB
C
Raw Normal View History

Initial regex implementation. 2010-06-25 Stephen M. Webb <stephen.webb@bregmasoft.ca> Initial regex implementation. * include/std/regex: Modified to use bits/regex_* headers. * include/bits/regex_compiler.h: New file. * include/bits/regex_constants.h: New file. * include/bits/regex_cursor.h: New file. * include/bits/regex_error.h: New file. * include/bits/regex_grep_matcher.h: New file. * include/bits/regex_grep_matcher.tcc: New file. * include/bits/regex.h: New file. * include/bits/regex_nfa.h: New file. * include/bits/regex_nfa.tcc: New file. * include/Makefile.am: Added above new files. * include/Makefile.in: Regenerated. * testsuite/28_regex/02_definitions: New file. * testsuite/28_regex/03_requirements: New file. * testsuite/28_regex/03_requirements/typedefs.cc: New file. * testsuite/28_regex/04_header: New file. * testsuite/28_regex/04_header/regex: New file. * testsuite/28_regex/04_header/regex/std_c++0x_neg.cc: New file. * testsuite/28_regex/05_constants: New file. * testsuite/28_regex/05_constants/error_type.cc: New file. * testsuite/28_regex/05_constants/match_flag_type.cc: New file. * testsuite/28_regex/05_constants/syntax_option_type.cc: New file. * testsuite/28_regex/06_exception_type: New file. * testsuite/28_regex/06_exception_type/regex_error.cc: New file. * testsuite/28_regex/07_traits: New file. * testsuite/28_regex/07_traits/char: New file. * testsuite/28_regex/07_traits/char/ctor.cc: New file. * testsuite/28_regex/07_traits/char/isctype.cc: New file. * testsuite/28_regex/07_traits/char/length.cc: New file. * testsuite/28_regex/07_traits/char/lookup_classname.cc: New file. * testsuite/28_regex/07_traits/char/lookup_collatename.cc: New file. * testsuite/28_regex/07_traits/char/transform.cc: New file. * testsuite/28_regex/07_traits/char/transform_primary.cc: New file. * testsuite/28_regex/07_traits/char/translate.cc: New file. * testsuite/28_regex/07_traits/char/translate_nocase.cc: New file. * testsuite/28_regex/07_traits/char/value.cc: New file. * testsuite/28_regex/07_traits/wchar_t: New file. * testsuite/28_regex/07_traits/wchar_t/ctor.cc: New file. * testsuite/28_regex/07_traits/wchar_t/length.cc: New file. * testsuite/28_regex/07_traits/wchar_t/transform.cc: New file. * testsuite/28_regex/07_traits/wchar_t/translate.cc: New file. * testsuite/28_regex/07_traits/wchar_t/translate_nocase.cc: New file. * testsuite/28_regex/07_traits/wchar_t/value.cc: New file. * testsuite/28_regex/08_basic_regex: New file. * testsuite/28_regex/08_basic_regex/assign: New file. * testsuite/28_regex/08_basic_regex/assign/char: New file. * testsuite/28_regex/08_basic_regex/assign/char/cstring.cc: New file. * testsuite/28_regex/08_basic_regex/assign/char/cstring_op.cc: New file. * testsuite/28_regex/08_basic_regex/assign/char/moveable.cc: New file. * testsuite/28_regex/08_basic_regex/assign/char/pstring.cc: New file. * testsuite/28_regex/08_basic_regex/assign/char/range.cc: New file. * testsuite/28_regex/08_basic_regex/assign/char/string.cc: New file. * testsuite/28_regex/08_basic_regex/assign/char/string_op.cc: New file. * testsuite/28_regex/08_basic_regex/assign/wchar_t: New file. * testsuite/28_regex/08_basic_regex/assign/wchar_t/cstring.cc: New file. * testsuite/28_regex/08_basic_regex/assign/wchar_t/cstring_op.cc: New file. * testsuite/28_regex/08_basic_regex/assign/wchar_t/pstring.cc: New file. * testsuite/28_regex/08_basic_regex/assign/wchar_t/range.cc: New file. * testsuite/28_regex/08_basic_regex/assign/wchar_t/string.cc: New file. * testsuite/28_regex/08_basic_regex/assign/wchar_t/string_op.cc: New file. * testsuite/28_regex/08_basic_regex/ctors: New file. * testsuite/28_regex/08_basic_regex/ctors/basic: New file. * testsuite/28_regex/08_basic_regex/ctors/basic/cstring.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/basic/pstring_char.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/basic/pstring_wchar_t.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/basic/string_range_01_02_03.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/char: New file. * testsuite/28_regex/08_basic_regex/ctors/char/cstring_awk.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/char/cstring.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/char/cstring_ecma.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/char/cstring_egrep.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/char/cstring_grep.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/char/default.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/char/range.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/copy_char.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/extended: New file. * testsuite/28_regex/08_basic_regex/ctors/extended/cstring.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/extended/string_range_01_02_03.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/move_char.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/string_char.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/string_wchar_t.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/wchar_t: New file. * testsuite/28_regex/08_basic_regex/ctors/wchar_t/cstring.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/wchar_t/default.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/wchar_t/range.cc: New file. * testsuite/28_regex/08_basic_regex/regex.cc: New file. * testsuite/28_regex/09_sub_match: New file. * testsuite/28_regex/09_sub_match/cast_char.cc: New file. * testsuite/28_regex/09_sub_match/cast_wchar_t.cc: New file. * testsuite/28_regex/09_sub_match/length.cc: New file. * testsuite/28_regex/09_sub_match/typedefs.cc: New file. * testsuite/28_regex/10_match_results: New file. * testsuite/28_regex/10_match_results/ctors: New file. * testsuite/28_regex/10_match_results/ctors/char: New file. * testsuite/28_regex/10_match_results/ctors/char/default.cc: New file. * testsuite/28_regex/10_match_results/ctors/wchar_t: New file. * testsuite/28_regex/10_match_results/ctors/wchar_t/default.cc: New file. * testsuite/28_regex/10_match_results/typedefs.cc: New file. * testsuite/28_regex/11_algorithms: New file. * testsuite/28_regex/11_algorithms/02_match: New file. * testsuite/28_regex/11_algorithms/02_match/basic: New file. * testsuite/28_regex/11_algorithms/02_match/basic/string_01.cc: New file. * testsuite/28_regex/11_algorithms/02_match/basic/string_range_00_03.cc: New file. * testsuite/28_regex/11_algorithms/02_match/basic/string_range_01_03.cc: New file. * testsuite/28_regex/11_algorithms/02_match/basic/string_range_02_03.cc: New file. * testsuite/28_regex/11_algorithms/02_match/extended: New file. * testsuite/28_regex/11_algorithms/02_match/extended/cstring_plus.cc: New file. * testsuite/28_regex/11_algorithms/02_match/extended/cstring_questionmark.cc: New file. * testsuite/28_regex/11_algorithms/02_match/extended/string_any.cc: New file. * testsuite/28_regex/11_algorithms/02_match/extended/string_range_00_03.cc: New file. * testsuite/28_regex/11_algorithms/02_match/extended/string_range_01_03.cc: New file. * testsuite/28_regex/11_algorithms/02_match/extended/string_range_02_03.cc: New file. * testsuite/28_regex/12_iterators: New file. * testsuite/28_regex/12_iterators/regex_iterator: New file. * testsuite/28_regex/12_iterators/regex_iterator/ctors: New file. * testsuite/28_regex/12_iterators/regex_iterator/ctors/char: New file. * testsuite/28_regex/12_iterators/regex_iterator/ctors/char/default.cc: New file. * testsuite/28_regex/12_iterators/regex_iterator/ctors/wchar_t: New file. * testsuite/28_regex/12_iterators/regex_iterator/ctors/wchar_t/default.cc: New file. * testsuite/28_regex/12_iterators/regex_iterator/typedefs.cc: New file. * testsuite/28_regex/12_iterators/regex_token_iterator: New file. * testsuite/28_regex/12_iterators/regex_token_iterator/ctors: New file. * testsuite/28_regex/12_iterators/regex_token_iterator/ctors/char: New file. * testsuite/28_regex/12_iterators/regex_token_iterator/ctors/char/default.cc: New file. * testsuite/28_regex/12_iterators/regex_token_iterator/ctors/wchar_t: New file. * testsuite/28_regex/12_iterators/regex_token_iterator/ctors/wchar_t/default.cc: New file. * testsuite/28_regex/12_iterators/regex_token_iterator/typedefs.cc: New file. * testsuite/28_regex/13_ecmascript: New file. From-SVN: r161410
2010-06-25 21:27:16 +02:00
// class template regex -*- C++ -*-
// Copyright (C) 2010 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// terms of the GNU General Public License as published by the
// Free Software Foundation; either version 3, or (at your option)
// any later version.
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// Under Section 7 of GPL version 3, you are granted additional
// permissions described in the GCC Runtime Library Exception, version
// 3.1, as published by the Free Software Foundation.
// You should have received a copy of the GNU General Public License and
// a copy of the GCC Runtime Library Exception along with this program;
// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
// <http://www.gnu.org/licenses/>.
/**
* @file bits/regex_cursor.h
* This is an internal header file, included by other library headers.
* Do not attempt to use it directly. @headername{regex}
Initial regex implementation. 2010-06-25 Stephen M. Webb <stephen.webb@bregmasoft.ca> Initial regex implementation. * include/std/regex: Modified to use bits/regex_* headers. * include/bits/regex_compiler.h: New file. * include/bits/regex_constants.h: New file. * include/bits/regex_cursor.h: New file. * include/bits/regex_error.h: New file. * include/bits/regex_grep_matcher.h: New file. * include/bits/regex_grep_matcher.tcc: New file. * include/bits/regex.h: New file. * include/bits/regex_nfa.h: New file. * include/bits/regex_nfa.tcc: New file. * include/Makefile.am: Added above new files. * include/Makefile.in: Regenerated. * testsuite/28_regex/02_definitions: New file. * testsuite/28_regex/03_requirements: New file. * testsuite/28_regex/03_requirements/typedefs.cc: New file. * testsuite/28_regex/04_header: New file. * testsuite/28_regex/04_header/regex: New file. * testsuite/28_regex/04_header/regex/std_c++0x_neg.cc: New file. * testsuite/28_regex/05_constants: New file. * testsuite/28_regex/05_constants/error_type.cc: New file. * testsuite/28_regex/05_constants/match_flag_type.cc: New file. * testsuite/28_regex/05_constants/syntax_option_type.cc: New file. * testsuite/28_regex/06_exception_type: New file. * testsuite/28_regex/06_exception_type/regex_error.cc: New file. * testsuite/28_regex/07_traits: New file. * testsuite/28_regex/07_traits/char: New file. * testsuite/28_regex/07_traits/char/ctor.cc: New file. * testsuite/28_regex/07_traits/char/isctype.cc: New file. * testsuite/28_regex/07_traits/char/length.cc: New file. * testsuite/28_regex/07_traits/char/lookup_classname.cc: New file. * testsuite/28_regex/07_traits/char/lookup_collatename.cc: New file. * testsuite/28_regex/07_traits/char/transform.cc: New file. * testsuite/28_regex/07_traits/char/transform_primary.cc: New file. * testsuite/28_regex/07_traits/char/translate.cc: New file. * testsuite/28_regex/07_traits/char/translate_nocase.cc: New file. * testsuite/28_regex/07_traits/char/value.cc: New file. * testsuite/28_regex/07_traits/wchar_t: New file. * testsuite/28_regex/07_traits/wchar_t/ctor.cc: New file. * testsuite/28_regex/07_traits/wchar_t/length.cc: New file. * testsuite/28_regex/07_traits/wchar_t/transform.cc: New file. * testsuite/28_regex/07_traits/wchar_t/translate.cc: New file. * testsuite/28_regex/07_traits/wchar_t/translate_nocase.cc: New file. * testsuite/28_regex/07_traits/wchar_t/value.cc: New file. * testsuite/28_regex/08_basic_regex: New file. * testsuite/28_regex/08_basic_regex/assign: New file. * testsuite/28_regex/08_basic_regex/assign/char: New file. * testsuite/28_regex/08_basic_regex/assign/char/cstring.cc: New file. * testsuite/28_regex/08_basic_regex/assign/char/cstring_op.cc: New file. * testsuite/28_regex/08_basic_regex/assign/char/moveable.cc: New file. * testsuite/28_regex/08_basic_regex/assign/char/pstring.cc: New file. * testsuite/28_regex/08_basic_regex/assign/char/range.cc: New file. * testsuite/28_regex/08_basic_regex/assign/char/string.cc: New file. * testsuite/28_regex/08_basic_regex/assign/char/string_op.cc: New file. * testsuite/28_regex/08_basic_regex/assign/wchar_t: New file. * testsuite/28_regex/08_basic_regex/assign/wchar_t/cstring.cc: New file. * testsuite/28_regex/08_basic_regex/assign/wchar_t/cstring_op.cc: New file. * testsuite/28_regex/08_basic_regex/assign/wchar_t/pstring.cc: New file. * testsuite/28_regex/08_basic_regex/assign/wchar_t/range.cc: New file. * testsuite/28_regex/08_basic_regex/assign/wchar_t/string.cc: New file. * testsuite/28_regex/08_basic_regex/assign/wchar_t/string_op.cc: New file. * testsuite/28_regex/08_basic_regex/ctors: New file. * testsuite/28_regex/08_basic_regex/ctors/basic: New file. * testsuite/28_regex/08_basic_regex/ctors/basic/cstring.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/basic/pstring_char.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/basic/pstring_wchar_t.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/basic/string_range_01_02_03.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/char: New file. * testsuite/28_regex/08_basic_regex/ctors/char/cstring_awk.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/char/cstring.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/char/cstring_ecma.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/char/cstring_egrep.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/char/cstring_grep.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/char/default.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/char/range.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/copy_char.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/extended: New file. * testsuite/28_regex/08_basic_regex/ctors/extended/cstring.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/extended/string_range_01_02_03.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/move_char.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/string_char.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/string_wchar_t.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/wchar_t: New file. * testsuite/28_regex/08_basic_regex/ctors/wchar_t/cstring.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/wchar_t/default.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/wchar_t/range.cc: New file. * testsuite/28_regex/08_basic_regex/regex.cc: New file. * testsuite/28_regex/09_sub_match: New file. * testsuite/28_regex/09_sub_match/cast_char.cc: New file. * testsuite/28_regex/09_sub_match/cast_wchar_t.cc: New file. * testsuite/28_regex/09_sub_match/length.cc: New file. * testsuite/28_regex/09_sub_match/typedefs.cc: New file. * testsuite/28_regex/10_match_results: New file. * testsuite/28_regex/10_match_results/ctors: New file. * testsuite/28_regex/10_match_results/ctors/char: New file. * testsuite/28_regex/10_match_results/ctors/char/default.cc: New file. * testsuite/28_regex/10_match_results/ctors/wchar_t: New file. * testsuite/28_regex/10_match_results/ctors/wchar_t/default.cc: New file. * testsuite/28_regex/10_match_results/typedefs.cc: New file. * testsuite/28_regex/11_algorithms: New file. * testsuite/28_regex/11_algorithms/02_match: New file. * testsuite/28_regex/11_algorithms/02_match/basic: New file. * testsuite/28_regex/11_algorithms/02_match/basic/string_01.cc: New file. * testsuite/28_regex/11_algorithms/02_match/basic/string_range_00_03.cc: New file. * testsuite/28_regex/11_algorithms/02_match/basic/string_range_01_03.cc: New file. * testsuite/28_regex/11_algorithms/02_match/basic/string_range_02_03.cc: New file. * testsuite/28_regex/11_algorithms/02_match/extended: New file. * testsuite/28_regex/11_algorithms/02_match/extended/cstring_plus.cc: New file. * testsuite/28_regex/11_algorithms/02_match/extended/cstring_questionmark.cc: New file. * testsuite/28_regex/11_algorithms/02_match/extended/string_any.cc: New file. * testsuite/28_regex/11_algorithms/02_match/extended/string_range_00_03.cc: New file. * testsuite/28_regex/11_algorithms/02_match/extended/string_range_01_03.cc: New file. * testsuite/28_regex/11_algorithms/02_match/extended/string_range_02_03.cc: New file. * testsuite/28_regex/12_iterators: New file. * testsuite/28_regex/12_iterators/regex_iterator: New file. * testsuite/28_regex/12_iterators/regex_iterator/ctors: New file. * testsuite/28_regex/12_iterators/regex_iterator/ctors/char: New file. * testsuite/28_regex/12_iterators/regex_iterator/ctors/char/default.cc: New file. * testsuite/28_regex/12_iterators/regex_iterator/ctors/wchar_t: New file. * testsuite/28_regex/12_iterators/regex_iterator/ctors/wchar_t/default.cc: New file. * testsuite/28_regex/12_iterators/regex_iterator/typedefs.cc: New file. * testsuite/28_regex/12_iterators/regex_token_iterator: New file. * testsuite/28_regex/12_iterators/regex_token_iterator/ctors: New file. * testsuite/28_regex/12_iterators/regex_token_iterator/ctors/char: New file. * testsuite/28_regex/12_iterators/regex_token_iterator/ctors/char/default.cc: New file. * testsuite/28_regex/12_iterators/regex_token_iterator/ctors/wchar_t: New file. * testsuite/28_regex/12_iterators/regex_token_iterator/ctors/wchar_t/default.cc: New file. * testsuite/28_regex/12_iterators/regex_token_iterator/typedefs.cc: New file. * testsuite/28_regex/13_ecmascript: New file. From-SVN: r161410
2010-06-25 21:27:16 +02:00
*/
cinttypes: Remove, move contents to C++0x and TR1 headers. 2010-11-02 Paolo Carlini <paolo.carlini@oracle.com> * include/tr1_impl/cinttypes: Remove, move contents to C++0x and TR1 headers. * include/tr1_impl/cstdlib: Likewise. * include/tr1_impl/cstdio: Likewise. * include/tr1_impl/cctype: Likewise. * include/tr1_impl/boost_sp_counted_base.h: Likewise. * include/tr1_impl/cmath: Likewise. * include/tr1_impl/cfenv: Likewise. * include/tr1_impl/utility: Likewise. * include/tr1_impl/complex: Likewise. * include/tr1_impl/cwchar: Likewise. * include/tr1_impl/type_traits: Likewise. * include/tr1_impl/cstdint: Likewise. * include/tr1_impl/regex: Likewise. * include/tr1_impl/array: Likewise. * include/tr1_impl/cwctype: Likewise. * include/Makefile.am: Adjust. * include/Makefile.in: Regenerate. * src/condition_variable.cc: Adjust; consistently use _GLIBCXX_BEGIN_NAMESPACE and _GLIBCXX_END_NAMESPACE. * src/mutex.cc: Likewise. * src/future.cc: Likewise. * src/atomic.cc: Likewise. * src/chrono.cc: Likewise. * src/thread.cc: Likewise. * include/std/tuple: Likewise. * include/std/utility: Likewise. * include/std/thread: Likewise.: Likewise. * include/std/type_traits: Likewise. * include/std/memory: Likewise. * include/std/future: Likewise. * include/std/ratio: Likewise. * include/std/chrono: Likewise. * include/std/condition_variable: Likewise. * include/std/mutex: Likewise. * include/std/functional: Likewise. * include/std/complex: Likewise. * include/std/typeindex: Likewise. * include/std/array: Likewise. * include/bits/regex_compiler.h: Likewise. * include/bits/regex_grep_matcher.tcc: Likewise. * include/bits/regex_grep_matcher.h: Likewise. * include/bits/regex_constants.h: Likewise. * include/bits/regex_cursor.h: Likewise. * include/bits/regex_nfa.tcc: Likewise. * include/bits/shared_ptr_base.h: Likewise. * include/bits/regex_nfa.h: Likewise. * include/bits/random.tcc: Likewise. * include/bits/regex.h: Likewise. * include/bits/random.h: Likewise. * include/bits/regex_error.h: Likewise. * include/c_global/cinttypes: Likewise. * include/c_global/cstdlib: Likewise. * include/c_global/cstdio: Likewise. * include/c_global/cctype: Likewise. * include/c_global/cmath: Likewise. * include/c_global/cfenv: Likewise. * include/c_global/cwchar: Likewise. * include/c_global/cstdint: Likewise. * include/c_global/cwctype: Likewise. * include/tr1/shared_ptr.h: Likewise. * include/tr1/cinttypes: Likewise. * include/tr1/cstdio: Likewise. * include/tr1/cfenv: Likewise. * include/tr1/utility: Likewise. * include/tr1/cwchar: Likewise. * include/tr1/type_traits: Likewise. * include/tr1/memory: Likewise. * include/tr1/cstdint: Likewise. * include/tr1/regex: Likewise. * include/tr1/cwctype: Likewise. * include/tr1/cstdlib: Likewise. * include/tr1/cctype: Likewise. * include/tr1/cmath: Likewise. * include/tr1/complex: Likewise. * include/tr1/array: Likewise. * include/c_compatibility/fenv.h: Likewise. * include/c_compatibility/stdint.h: Likewise. * include/c_compatibility/inttypes.h: Likewise. * testsuite/tr1/2_general_utilities/shared_ptr/cons/43820.cc: Adjust dg-error line numbers. * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise. * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise. * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise. * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Likewise. * testsuite/20_util/make_unsigned/requirements/ typedefs_neg.cc: Likewise. * testsuite/20_util/declval/requirements/1_neg.cc: Likewise. * testsuite/20_util/shared_ptr/cons/43820.cc: Likewise. * testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Likewise. From-SVN: r166211
2010-11-02 19:51:23 +01:00
_GLIBCXX_BEGIN_NAMESPACE(std)
Initial regex implementation. 2010-06-25 Stephen M. Webb <stephen.webb@bregmasoft.ca> Initial regex implementation. * include/std/regex: Modified to use bits/regex_* headers. * include/bits/regex_compiler.h: New file. * include/bits/regex_constants.h: New file. * include/bits/regex_cursor.h: New file. * include/bits/regex_error.h: New file. * include/bits/regex_grep_matcher.h: New file. * include/bits/regex_grep_matcher.tcc: New file. * include/bits/regex.h: New file. * include/bits/regex_nfa.h: New file. * include/bits/regex_nfa.tcc: New file. * include/Makefile.am: Added above new files. * include/Makefile.in: Regenerated. * testsuite/28_regex/02_definitions: New file. * testsuite/28_regex/03_requirements: New file. * testsuite/28_regex/03_requirements/typedefs.cc: New file. * testsuite/28_regex/04_header: New file. * testsuite/28_regex/04_header/regex: New file. * testsuite/28_regex/04_header/regex/std_c++0x_neg.cc: New file. * testsuite/28_regex/05_constants: New file. * testsuite/28_regex/05_constants/error_type.cc: New file. * testsuite/28_regex/05_constants/match_flag_type.cc: New file. * testsuite/28_regex/05_constants/syntax_option_type.cc: New file. * testsuite/28_regex/06_exception_type: New file. * testsuite/28_regex/06_exception_type/regex_error.cc: New file. * testsuite/28_regex/07_traits: New file. * testsuite/28_regex/07_traits/char: New file. * testsuite/28_regex/07_traits/char/ctor.cc: New file. * testsuite/28_regex/07_traits/char/isctype.cc: New file. * testsuite/28_regex/07_traits/char/length.cc: New file. * testsuite/28_regex/07_traits/char/lookup_classname.cc: New file. * testsuite/28_regex/07_traits/char/lookup_collatename.cc: New file. * testsuite/28_regex/07_traits/char/transform.cc: New file. * testsuite/28_regex/07_traits/char/transform_primary.cc: New file. * testsuite/28_regex/07_traits/char/translate.cc: New file. * testsuite/28_regex/07_traits/char/translate_nocase.cc: New file. * testsuite/28_regex/07_traits/char/value.cc: New file. * testsuite/28_regex/07_traits/wchar_t: New file. * testsuite/28_regex/07_traits/wchar_t/ctor.cc: New file. * testsuite/28_regex/07_traits/wchar_t/length.cc: New file. * testsuite/28_regex/07_traits/wchar_t/transform.cc: New file. * testsuite/28_regex/07_traits/wchar_t/translate.cc: New file. * testsuite/28_regex/07_traits/wchar_t/translate_nocase.cc: New file. * testsuite/28_regex/07_traits/wchar_t/value.cc: New file. * testsuite/28_regex/08_basic_regex: New file. * testsuite/28_regex/08_basic_regex/assign: New file. * testsuite/28_regex/08_basic_regex/assign/char: New file. * testsuite/28_regex/08_basic_regex/assign/char/cstring.cc: New file. * testsuite/28_regex/08_basic_regex/assign/char/cstring_op.cc: New file. * testsuite/28_regex/08_basic_regex/assign/char/moveable.cc: New file. * testsuite/28_regex/08_basic_regex/assign/char/pstring.cc: New file. * testsuite/28_regex/08_basic_regex/assign/char/range.cc: New file. * testsuite/28_regex/08_basic_regex/assign/char/string.cc: New file. * testsuite/28_regex/08_basic_regex/assign/char/string_op.cc: New file. * testsuite/28_regex/08_basic_regex/assign/wchar_t: New file. * testsuite/28_regex/08_basic_regex/assign/wchar_t/cstring.cc: New file. * testsuite/28_regex/08_basic_regex/assign/wchar_t/cstring_op.cc: New file. * testsuite/28_regex/08_basic_regex/assign/wchar_t/pstring.cc: New file. * testsuite/28_regex/08_basic_regex/assign/wchar_t/range.cc: New file. * testsuite/28_regex/08_basic_regex/assign/wchar_t/string.cc: New file. * testsuite/28_regex/08_basic_regex/assign/wchar_t/string_op.cc: New file. * testsuite/28_regex/08_basic_regex/ctors: New file. * testsuite/28_regex/08_basic_regex/ctors/basic: New file. * testsuite/28_regex/08_basic_regex/ctors/basic/cstring.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/basic/pstring_char.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/basic/pstring_wchar_t.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/basic/string_range_01_02_03.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/char: New file. * testsuite/28_regex/08_basic_regex/ctors/char/cstring_awk.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/char/cstring.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/char/cstring_ecma.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/char/cstring_egrep.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/char/cstring_grep.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/char/default.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/char/range.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/copy_char.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/extended: New file. * testsuite/28_regex/08_basic_regex/ctors/extended/cstring.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/extended/string_range_01_02_03.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/move_char.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/string_char.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/string_wchar_t.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/wchar_t: New file. * testsuite/28_regex/08_basic_regex/ctors/wchar_t/cstring.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/wchar_t/default.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/wchar_t/range.cc: New file. * testsuite/28_regex/08_basic_regex/regex.cc: New file. * testsuite/28_regex/09_sub_match: New file. * testsuite/28_regex/09_sub_match/cast_char.cc: New file. * testsuite/28_regex/09_sub_match/cast_wchar_t.cc: New file. * testsuite/28_regex/09_sub_match/length.cc: New file. * testsuite/28_regex/09_sub_match/typedefs.cc: New file. * testsuite/28_regex/10_match_results: New file. * testsuite/28_regex/10_match_results/ctors: New file. * testsuite/28_regex/10_match_results/ctors/char: New file. * testsuite/28_regex/10_match_results/ctors/char/default.cc: New file. * testsuite/28_regex/10_match_results/ctors/wchar_t: New file. * testsuite/28_regex/10_match_results/ctors/wchar_t/default.cc: New file. * testsuite/28_regex/10_match_results/typedefs.cc: New file. * testsuite/28_regex/11_algorithms: New file. * testsuite/28_regex/11_algorithms/02_match: New file. * testsuite/28_regex/11_algorithms/02_match/basic: New file. * testsuite/28_regex/11_algorithms/02_match/basic/string_01.cc: New file. * testsuite/28_regex/11_algorithms/02_match/basic/string_range_00_03.cc: New file. * testsuite/28_regex/11_algorithms/02_match/basic/string_range_01_03.cc: New file. * testsuite/28_regex/11_algorithms/02_match/basic/string_range_02_03.cc: New file. * testsuite/28_regex/11_algorithms/02_match/extended: New file. * testsuite/28_regex/11_algorithms/02_match/extended/cstring_plus.cc: New file. * testsuite/28_regex/11_algorithms/02_match/extended/cstring_questionmark.cc: New file. * testsuite/28_regex/11_algorithms/02_match/extended/string_any.cc: New file. * testsuite/28_regex/11_algorithms/02_match/extended/string_range_00_03.cc: New file. * testsuite/28_regex/11_algorithms/02_match/extended/string_range_01_03.cc: New file. * testsuite/28_regex/11_algorithms/02_match/extended/string_range_02_03.cc: New file. * testsuite/28_regex/12_iterators: New file. * testsuite/28_regex/12_iterators/regex_iterator: New file. * testsuite/28_regex/12_iterators/regex_iterator/ctors: New file. * testsuite/28_regex/12_iterators/regex_iterator/ctors/char: New file. * testsuite/28_regex/12_iterators/regex_iterator/ctors/char/default.cc: New file. * testsuite/28_regex/12_iterators/regex_iterator/ctors/wchar_t: New file. * testsuite/28_regex/12_iterators/regex_iterator/ctors/wchar_t/default.cc: New file. * testsuite/28_regex/12_iterators/regex_iterator/typedefs.cc: New file. * testsuite/28_regex/12_iterators/regex_token_iterator: New file. * testsuite/28_regex/12_iterators/regex_token_iterator/ctors: New file. * testsuite/28_regex/12_iterators/regex_token_iterator/ctors/char: New file. * testsuite/28_regex/12_iterators/regex_token_iterator/ctors/char/default.cc: New file. * testsuite/28_regex/12_iterators/regex_token_iterator/ctors/wchar_t: New file. * testsuite/28_regex/12_iterators/regex_token_iterator/ctors/wchar_t/default.cc: New file. * testsuite/28_regex/12_iterators/regex_token_iterator/typedefs.cc: New file. * testsuite/28_regex/13_ecmascript: New file. From-SVN: r161410
2010-06-25 21:27:16 +02:00
namespace __regex
{
// ABC for pattern matching
struct _PatternCursor
{
virtual ~_PatternCursor() { };
virtual void _M_next() = 0;
virtual bool _M_at_end() const = 0;
};
// Provides a cursor into the specific target string.
template<typename _FwdIterT>
class _SpecializedCursor
: public _PatternCursor
{
public:
_SpecializedCursor(const _FwdIterT& __b, const _FwdIterT __e)
: _M_b(__b), _M_c(__b), _M_e(__e)
{ }
typename std::iterator_traits<_FwdIterT>::value_type
_M_current() const
{ return *_M_c; }
void
_M_next()
{ ++_M_c; }
_FwdIterT
_M_pos() const
{ return _M_c; }
const _FwdIterT&
_M_begin() const
{ return _M_b; }
Initial regex implementation. 2010-06-25 Stephen M. Webb <stephen.webb@bregmasoft.ca> Initial regex implementation. * include/std/regex: Modified to use bits/regex_* headers. * include/bits/regex_compiler.h: New file. * include/bits/regex_constants.h: New file. * include/bits/regex_cursor.h: New file. * include/bits/regex_error.h: New file. * include/bits/regex_grep_matcher.h: New file. * include/bits/regex_grep_matcher.tcc: New file. * include/bits/regex.h: New file. * include/bits/regex_nfa.h: New file. * include/bits/regex_nfa.tcc: New file. * include/Makefile.am: Added above new files. * include/Makefile.in: Regenerated. * testsuite/28_regex/02_definitions: New file. * testsuite/28_regex/03_requirements: New file. * testsuite/28_regex/03_requirements/typedefs.cc: New file. * testsuite/28_regex/04_header: New file. * testsuite/28_regex/04_header/regex: New file. * testsuite/28_regex/04_header/regex/std_c++0x_neg.cc: New file. * testsuite/28_regex/05_constants: New file. * testsuite/28_regex/05_constants/error_type.cc: New file. * testsuite/28_regex/05_constants/match_flag_type.cc: New file. * testsuite/28_regex/05_constants/syntax_option_type.cc: New file. * testsuite/28_regex/06_exception_type: New file. * testsuite/28_regex/06_exception_type/regex_error.cc: New file. * testsuite/28_regex/07_traits: New file. * testsuite/28_regex/07_traits/char: New file. * testsuite/28_regex/07_traits/char/ctor.cc: New file. * testsuite/28_regex/07_traits/char/isctype.cc: New file. * testsuite/28_regex/07_traits/char/length.cc: New file. * testsuite/28_regex/07_traits/char/lookup_classname.cc: New file. * testsuite/28_regex/07_traits/char/lookup_collatename.cc: New file. * testsuite/28_regex/07_traits/char/transform.cc: New file. * testsuite/28_regex/07_traits/char/transform_primary.cc: New file. * testsuite/28_regex/07_traits/char/translate.cc: New file. * testsuite/28_regex/07_traits/char/translate_nocase.cc: New file. * testsuite/28_regex/07_traits/char/value.cc: New file. * testsuite/28_regex/07_traits/wchar_t: New file. * testsuite/28_regex/07_traits/wchar_t/ctor.cc: New file. * testsuite/28_regex/07_traits/wchar_t/length.cc: New file. * testsuite/28_regex/07_traits/wchar_t/transform.cc: New file. * testsuite/28_regex/07_traits/wchar_t/translate.cc: New file. * testsuite/28_regex/07_traits/wchar_t/translate_nocase.cc: New file. * testsuite/28_regex/07_traits/wchar_t/value.cc: New file. * testsuite/28_regex/08_basic_regex: New file. * testsuite/28_regex/08_basic_regex/assign: New file. * testsuite/28_regex/08_basic_regex/assign/char: New file. * testsuite/28_regex/08_basic_regex/assign/char/cstring.cc: New file. * testsuite/28_regex/08_basic_regex/assign/char/cstring_op.cc: New file. * testsuite/28_regex/08_basic_regex/assign/char/moveable.cc: New file. * testsuite/28_regex/08_basic_regex/assign/char/pstring.cc: New file. * testsuite/28_regex/08_basic_regex/assign/char/range.cc: New file. * testsuite/28_regex/08_basic_regex/assign/char/string.cc: New file. * testsuite/28_regex/08_basic_regex/assign/char/string_op.cc: New file. * testsuite/28_regex/08_basic_regex/assign/wchar_t: New file. * testsuite/28_regex/08_basic_regex/assign/wchar_t/cstring.cc: New file. * testsuite/28_regex/08_basic_regex/assign/wchar_t/cstring_op.cc: New file. * testsuite/28_regex/08_basic_regex/assign/wchar_t/pstring.cc: New file. * testsuite/28_regex/08_basic_regex/assign/wchar_t/range.cc: New file. * testsuite/28_regex/08_basic_regex/assign/wchar_t/string.cc: New file. * testsuite/28_regex/08_basic_regex/assign/wchar_t/string_op.cc: New file. * testsuite/28_regex/08_basic_regex/ctors: New file. * testsuite/28_regex/08_basic_regex/ctors/basic: New file. * testsuite/28_regex/08_basic_regex/ctors/basic/cstring.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/basic/pstring_char.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/basic/pstring_wchar_t.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/basic/string_range_01_02_03.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/char: New file. * testsuite/28_regex/08_basic_regex/ctors/char/cstring_awk.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/char/cstring.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/char/cstring_ecma.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/char/cstring_egrep.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/char/cstring_grep.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/char/default.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/char/range.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/copy_char.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/extended: New file. * testsuite/28_regex/08_basic_regex/ctors/extended/cstring.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/extended/string_range_01_02_03.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/move_char.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/string_char.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/string_wchar_t.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/wchar_t: New file. * testsuite/28_regex/08_basic_regex/ctors/wchar_t/cstring.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/wchar_t/default.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/wchar_t/range.cc: New file. * testsuite/28_regex/08_basic_regex/regex.cc: New file. * testsuite/28_regex/09_sub_match: New file. * testsuite/28_regex/09_sub_match/cast_char.cc: New file. * testsuite/28_regex/09_sub_match/cast_wchar_t.cc: New file. * testsuite/28_regex/09_sub_match/length.cc: New file. * testsuite/28_regex/09_sub_match/typedefs.cc: New file. * testsuite/28_regex/10_match_results: New file. * testsuite/28_regex/10_match_results/ctors: New file. * testsuite/28_regex/10_match_results/ctors/char: New file. * testsuite/28_regex/10_match_results/ctors/char/default.cc: New file. * testsuite/28_regex/10_match_results/ctors/wchar_t: New file. * testsuite/28_regex/10_match_results/ctors/wchar_t/default.cc: New file. * testsuite/28_regex/10_match_results/typedefs.cc: New file. * testsuite/28_regex/11_algorithms: New file. * testsuite/28_regex/11_algorithms/02_match: New file. * testsuite/28_regex/11_algorithms/02_match/basic: New file. * testsuite/28_regex/11_algorithms/02_match/basic/string_01.cc: New file. * testsuite/28_regex/11_algorithms/02_match/basic/string_range_00_03.cc: New file. * testsuite/28_regex/11_algorithms/02_match/basic/string_range_01_03.cc: New file. * testsuite/28_regex/11_algorithms/02_match/basic/string_range_02_03.cc: New file. * testsuite/28_regex/11_algorithms/02_match/extended: New file. * testsuite/28_regex/11_algorithms/02_match/extended/cstring_plus.cc: New file. * testsuite/28_regex/11_algorithms/02_match/extended/cstring_questionmark.cc: New file. * testsuite/28_regex/11_algorithms/02_match/extended/string_any.cc: New file. * testsuite/28_regex/11_algorithms/02_match/extended/string_range_00_03.cc: New file. * testsuite/28_regex/11_algorithms/02_match/extended/string_range_01_03.cc: New file. * testsuite/28_regex/11_algorithms/02_match/extended/string_range_02_03.cc: New file. * testsuite/28_regex/12_iterators: New file. * testsuite/28_regex/12_iterators/regex_iterator: New file. * testsuite/28_regex/12_iterators/regex_iterator/ctors: New file. * testsuite/28_regex/12_iterators/regex_iterator/ctors/char: New file. * testsuite/28_regex/12_iterators/regex_iterator/ctors/char/default.cc: New file. * testsuite/28_regex/12_iterators/regex_iterator/ctors/wchar_t: New file. * testsuite/28_regex/12_iterators/regex_iterator/ctors/wchar_t/default.cc: New file. * testsuite/28_regex/12_iterators/regex_iterator/typedefs.cc: New file. * testsuite/28_regex/12_iterators/regex_token_iterator: New file. * testsuite/28_regex/12_iterators/regex_token_iterator/ctors: New file. * testsuite/28_regex/12_iterators/regex_token_iterator/ctors/char: New file. * testsuite/28_regex/12_iterators/regex_token_iterator/ctors/char/default.cc: New file. * testsuite/28_regex/12_iterators/regex_token_iterator/ctors/wchar_t: New file. * testsuite/28_regex/12_iterators/regex_token_iterator/ctors/wchar_t/default.cc: New file. * testsuite/28_regex/12_iterators/regex_token_iterator/typedefs.cc: New file. * testsuite/28_regex/13_ecmascript: New file. From-SVN: r161410
2010-06-25 21:27:16 +02:00
const _FwdIterT&
_M_end() const
{ return _M_e; }
Initial regex implementation. 2010-06-25 Stephen M. Webb <stephen.webb@bregmasoft.ca> Initial regex implementation. * include/std/regex: Modified to use bits/regex_* headers. * include/bits/regex_compiler.h: New file. * include/bits/regex_constants.h: New file. * include/bits/regex_cursor.h: New file. * include/bits/regex_error.h: New file. * include/bits/regex_grep_matcher.h: New file. * include/bits/regex_grep_matcher.tcc: New file. * include/bits/regex.h: New file. * include/bits/regex_nfa.h: New file. * include/bits/regex_nfa.tcc: New file. * include/Makefile.am: Added above new files. * include/Makefile.in: Regenerated. * testsuite/28_regex/02_definitions: New file. * testsuite/28_regex/03_requirements: New file. * testsuite/28_regex/03_requirements/typedefs.cc: New file. * testsuite/28_regex/04_header: New file. * testsuite/28_regex/04_header/regex: New file. * testsuite/28_regex/04_header/regex/std_c++0x_neg.cc: New file. * testsuite/28_regex/05_constants: New file. * testsuite/28_regex/05_constants/error_type.cc: New file. * testsuite/28_regex/05_constants/match_flag_type.cc: New file. * testsuite/28_regex/05_constants/syntax_option_type.cc: New file. * testsuite/28_regex/06_exception_type: New file. * testsuite/28_regex/06_exception_type/regex_error.cc: New file. * testsuite/28_regex/07_traits: New file. * testsuite/28_regex/07_traits/char: New file. * testsuite/28_regex/07_traits/char/ctor.cc: New file. * testsuite/28_regex/07_traits/char/isctype.cc: New file. * testsuite/28_regex/07_traits/char/length.cc: New file. * testsuite/28_regex/07_traits/char/lookup_classname.cc: New file. * testsuite/28_regex/07_traits/char/lookup_collatename.cc: New file. * testsuite/28_regex/07_traits/char/transform.cc: New file. * testsuite/28_regex/07_traits/char/transform_primary.cc: New file. * testsuite/28_regex/07_traits/char/translate.cc: New file. * testsuite/28_regex/07_traits/char/translate_nocase.cc: New file. * testsuite/28_regex/07_traits/char/value.cc: New file. * testsuite/28_regex/07_traits/wchar_t: New file. * testsuite/28_regex/07_traits/wchar_t/ctor.cc: New file. * testsuite/28_regex/07_traits/wchar_t/length.cc: New file. * testsuite/28_regex/07_traits/wchar_t/transform.cc: New file. * testsuite/28_regex/07_traits/wchar_t/translate.cc: New file. * testsuite/28_regex/07_traits/wchar_t/translate_nocase.cc: New file. * testsuite/28_regex/07_traits/wchar_t/value.cc: New file. * testsuite/28_regex/08_basic_regex: New file. * testsuite/28_regex/08_basic_regex/assign: New file. * testsuite/28_regex/08_basic_regex/assign/char: New file. * testsuite/28_regex/08_basic_regex/assign/char/cstring.cc: New file. * testsuite/28_regex/08_basic_regex/assign/char/cstring_op.cc: New file. * testsuite/28_regex/08_basic_regex/assign/char/moveable.cc: New file. * testsuite/28_regex/08_basic_regex/assign/char/pstring.cc: New file. * testsuite/28_regex/08_basic_regex/assign/char/range.cc: New file. * testsuite/28_regex/08_basic_regex/assign/char/string.cc: New file. * testsuite/28_regex/08_basic_regex/assign/char/string_op.cc: New file. * testsuite/28_regex/08_basic_regex/assign/wchar_t: New file. * testsuite/28_regex/08_basic_regex/assign/wchar_t/cstring.cc: New file. * testsuite/28_regex/08_basic_regex/assign/wchar_t/cstring_op.cc: New file. * testsuite/28_regex/08_basic_regex/assign/wchar_t/pstring.cc: New file. * testsuite/28_regex/08_basic_regex/assign/wchar_t/range.cc: New file. * testsuite/28_regex/08_basic_regex/assign/wchar_t/string.cc: New file. * testsuite/28_regex/08_basic_regex/assign/wchar_t/string_op.cc: New file. * testsuite/28_regex/08_basic_regex/ctors: New file. * testsuite/28_regex/08_basic_regex/ctors/basic: New file. * testsuite/28_regex/08_basic_regex/ctors/basic/cstring.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/basic/pstring_char.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/basic/pstring_wchar_t.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/basic/string_range_01_02_03.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/char: New file. * testsuite/28_regex/08_basic_regex/ctors/char/cstring_awk.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/char/cstring.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/char/cstring_ecma.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/char/cstring_egrep.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/char/cstring_grep.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/char/default.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/char/range.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/copy_char.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/extended: New file. * testsuite/28_regex/08_basic_regex/ctors/extended/cstring.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/extended/string_range_01_02_03.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/move_char.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/string_char.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/string_wchar_t.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/wchar_t: New file. * testsuite/28_regex/08_basic_regex/ctors/wchar_t/cstring.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/wchar_t/default.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/wchar_t/range.cc: New file. * testsuite/28_regex/08_basic_regex/regex.cc: New file. * testsuite/28_regex/09_sub_match: New file. * testsuite/28_regex/09_sub_match/cast_char.cc: New file. * testsuite/28_regex/09_sub_match/cast_wchar_t.cc: New file. * testsuite/28_regex/09_sub_match/length.cc: New file. * testsuite/28_regex/09_sub_match/typedefs.cc: New file. * testsuite/28_regex/10_match_results: New file. * testsuite/28_regex/10_match_results/ctors: New file. * testsuite/28_regex/10_match_results/ctors/char: New file. * testsuite/28_regex/10_match_results/ctors/char/default.cc: New file. * testsuite/28_regex/10_match_results/ctors/wchar_t: New file. * testsuite/28_regex/10_match_results/ctors/wchar_t/default.cc: New file. * testsuite/28_regex/10_match_results/typedefs.cc: New file. * testsuite/28_regex/11_algorithms: New file. * testsuite/28_regex/11_algorithms/02_match: New file. * testsuite/28_regex/11_algorithms/02_match/basic: New file. * testsuite/28_regex/11_algorithms/02_match/basic/string_01.cc: New file. * testsuite/28_regex/11_algorithms/02_match/basic/string_range_00_03.cc: New file. * testsuite/28_regex/11_algorithms/02_match/basic/string_range_01_03.cc: New file. * testsuite/28_regex/11_algorithms/02_match/basic/string_range_02_03.cc: New file. * testsuite/28_regex/11_algorithms/02_match/extended: New file. * testsuite/28_regex/11_algorithms/02_match/extended/cstring_plus.cc: New file. * testsuite/28_regex/11_algorithms/02_match/extended/cstring_questionmark.cc: New file. * testsuite/28_regex/11_algorithms/02_match/extended/string_any.cc: New file. * testsuite/28_regex/11_algorithms/02_match/extended/string_range_00_03.cc: New file. * testsuite/28_regex/11_algorithms/02_match/extended/string_range_01_03.cc: New file. * testsuite/28_regex/11_algorithms/02_match/extended/string_range_02_03.cc: New file. * testsuite/28_regex/12_iterators: New file. * testsuite/28_regex/12_iterators/regex_iterator: New file. * testsuite/28_regex/12_iterators/regex_iterator/ctors: New file. * testsuite/28_regex/12_iterators/regex_iterator/ctors/char: New file. * testsuite/28_regex/12_iterators/regex_iterator/ctors/char/default.cc: New file. * testsuite/28_regex/12_iterators/regex_iterator/ctors/wchar_t: New file. * testsuite/28_regex/12_iterators/regex_iterator/ctors/wchar_t/default.cc: New file. * testsuite/28_regex/12_iterators/regex_iterator/typedefs.cc: New file. * testsuite/28_regex/12_iterators/regex_token_iterator: New file. * testsuite/28_regex/12_iterators/regex_token_iterator/ctors: New file. * testsuite/28_regex/12_iterators/regex_token_iterator/ctors/char: New file. * testsuite/28_regex/12_iterators/regex_token_iterator/ctors/char/default.cc: New file. * testsuite/28_regex/12_iterators/regex_token_iterator/ctors/wchar_t: New file. * testsuite/28_regex/12_iterators/regex_token_iterator/ctors/wchar_t/default.cc: New file. * testsuite/28_regex/12_iterators/regex_token_iterator/typedefs.cc: New file. * testsuite/28_regex/13_ecmascript: New file. From-SVN: r161410
2010-06-25 21:27:16 +02:00
bool
_M_at_end() const
{ return _M_c == _M_e; }
private:
_FwdIterT _M_b;
_FwdIterT _M_c;
_FwdIterT _M_e;
};
// Helper funxtion to create a cursor specialized for an iterator class.
template<typename _FwdIterT>
inline _SpecializedCursor<_FwdIterT>
__cursor(const _FwdIterT& __b, const _FwdIterT __e)
{ return _SpecializedCursor<_FwdIterT>(__b, __e); }
Initial regex implementation. 2010-06-25 Stephen M. Webb <stephen.webb@bregmasoft.ca> Initial regex implementation. * include/std/regex: Modified to use bits/regex_* headers. * include/bits/regex_compiler.h: New file. * include/bits/regex_constants.h: New file. * include/bits/regex_cursor.h: New file. * include/bits/regex_error.h: New file. * include/bits/regex_grep_matcher.h: New file. * include/bits/regex_grep_matcher.tcc: New file. * include/bits/regex.h: New file. * include/bits/regex_nfa.h: New file. * include/bits/regex_nfa.tcc: New file. * include/Makefile.am: Added above new files. * include/Makefile.in: Regenerated. * testsuite/28_regex/02_definitions: New file. * testsuite/28_regex/03_requirements: New file. * testsuite/28_regex/03_requirements/typedefs.cc: New file. * testsuite/28_regex/04_header: New file. * testsuite/28_regex/04_header/regex: New file. * testsuite/28_regex/04_header/regex/std_c++0x_neg.cc: New file. * testsuite/28_regex/05_constants: New file. * testsuite/28_regex/05_constants/error_type.cc: New file. * testsuite/28_regex/05_constants/match_flag_type.cc: New file. * testsuite/28_regex/05_constants/syntax_option_type.cc: New file. * testsuite/28_regex/06_exception_type: New file. * testsuite/28_regex/06_exception_type/regex_error.cc: New file. * testsuite/28_regex/07_traits: New file. * testsuite/28_regex/07_traits/char: New file. * testsuite/28_regex/07_traits/char/ctor.cc: New file. * testsuite/28_regex/07_traits/char/isctype.cc: New file. * testsuite/28_regex/07_traits/char/length.cc: New file. * testsuite/28_regex/07_traits/char/lookup_classname.cc: New file. * testsuite/28_regex/07_traits/char/lookup_collatename.cc: New file. * testsuite/28_regex/07_traits/char/transform.cc: New file. * testsuite/28_regex/07_traits/char/transform_primary.cc: New file. * testsuite/28_regex/07_traits/char/translate.cc: New file. * testsuite/28_regex/07_traits/char/translate_nocase.cc: New file. * testsuite/28_regex/07_traits/char/value.cc: New file. * testsuite/28_regex/07_traits/wchar_t: New file. * testsuite/28_regex/07_traits/wchar_t/ctor.cc: New file. * testsuite/28_regex/07_traits/wchar_t/length.cc: New file. * testsuite/28_regex/07_traits/wchar_t/transform.cc: New file. * testsuite/28_regex/07_traits/wchar_t/translate.cc: New file. * testsuite/28_regex/07_traits/wchar_t/translate_nocase.cc: New file. * testsuite/28_regex/07_traits/wchar_t/value.cc: New file. * testsuite/28_regex/08_basic_regex: New file. * testsuite/28_regex/08_basic_regex/assign: New file. * testsuite/28_regex/08_basic_regex/assign/char: New file. * testsuite/28_regex/08_basic_regex/assign/char/cstring.cc: New file. * testsuite/28_regex/08_basic_regex/assign/char/cstring_op.cc: New file. * testsuite/28_regex/08_basic_regex/assign/char/moveable.cc: New file. * testsuite/28_regex/08_basic_regex/assign/char/pstring.cc: New file. * testsuite/28_regex/08_basic_regex/assign/char/range.cc: New file. * testsuite/28_regex/08_basic_regex/assign/char/string.cc: New file. * testsuite/28_regex/08_basic_regex/assign/char/string_op.cc: New file. * testsuite/28_regex/08_basic_regex/assign/wchar_t: New file. * testsuite/28_regex/08_basic_regex/assign/wchar_t/cstring.cc: New file. * testsuite/28_regex/08_basic_regex/assign/wchar_t/cstring_op.cc: New file. * testsuite/28_regex/08_basic_regex/assign/wchar_t/pstring.cc: New file. * testsuite/28_regex/08_basic_regex/assign/wchar_t/range.cc: New file. * testsuite/28_regex/08_basic_regex/assign/wchar_t/string.cc: New file. * testsuite/28_regex/08_basic_regex/assign/wchar_t/string_op.cc: New file. * testsuite/28_regex/08_basic_regex/ctors: New file. * testsuite/28_regex/08_basic_regex/ctors/basic: New file. * testsuite/28_regex/08_basic_regex/ctors/basic/cstring.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/basic/pstring_char.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/basic/pstring_wchar_t.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/basic/string_range_01_02_03.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/char: New file. * testsuite/28_regex/08_basic_regex/ctors/char/cstring_awk.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/char/cstring.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/char/cstring_ecma.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/char/cstring_egrep.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/char/cstring_grep.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/char/default.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/char/range.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/copy_char.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/extended: New file. * testsuite/28_regex/08_basic_regex/ctors/extended/cstring.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/extended/string_range_01_02_03.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/move_char.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/string_char.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/string_wchar_t.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/wchar_t: New file. * testsuite/28_regex/08_basic_regex/ctors/wchar_t/cstring.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/wchar_t/default.cc: New file. * testsuite/28_regex/08_basic_regex/ctors/wchar_t/range.cc: New file. * testsuite/28_regex/08_basic_regex/regex.cc: New file. * testsuite/28_regex/09_sub_match: New file. * testsuite/28_regex/09_sub_match/cast_char.cc: New file. * testsuite/28_regex/09_sub_match/cast_wchar_t.cc: New file. * testsuite/28_regex/09_sub_match/length.cc: New file. * testsuite/28_regex/09_sub_match/typedefs.cc: New file. * testsuite/28_regex/10_match_results: New file. * testsuite/28_regex/10_match_results/ctors: New file. * testsuite/28_regex/10_match_results/ctors/char: New file. * testsuite/28_regex/10_match_results/ctors/char/default.cc: New file. * testsuite/28_regex/10_match_results/ctors/wchar_t: New file. * testsuite/28_regex/10_match_results/ctors/wchar_t/default.cc: New file. * testsuite/28_regex/10_match_results/typedefs.cc: New file. * testsuite/28_regex/11_algorithms: New file. * testsuite/28_regex/11_algorithms/02_match: New file. * testsuite/28_regex/11_algorithms/02_match/basic: New file. * testsuite/28_regex/11_algorithms/02_match/basic/string_01.cc: New file. * testsuite/28_regex/11_algorithms/02_match/basic/string_range_00_03.cc: New file. * testsuite/28_regex/11_algorithms/02_match/basic/string_range_01_03.cc: New file. * testsuite/28_regex/11_algorithms/02_match/basic/string_range_02_03.cc: New file. * testsuite/28_regex/11_algorithms/02_match/extended: New file. * testsuite/28_regex/11_algorithms/02_match/extended/cstring_plus.cc: New file. * testsuite/28_regex/11_algorithms/02_match/extended/cstring_questionmark.cc: New file. * testsuite/28_regex/11_algorithms/02_match/extended/string_any.cc: New file. * testsuite/28_regex/11_algorithms/02_match/extended/string_range_00_03.cc: New file. * testsuite/28_regex/11_algorithms/02_match/extended/string_range_01_03.cc: New file. * testsuite/28_regex/11_algorithms/02_match/extended/string_range_02_03.cc: New file. * testsuite/28_regex/12_iterators: New file. * testsuite/28_regex/12_iterators/regex_iterator: New file. * testsuite/28_regex/12_iterators/regex_iterator/ctors: New file. * testsuite/28_regex/12_iterators/regex_iterator/ctors/char: New file. * testsuite/28_regex/12_iterators/regex_iterator/ctors/char/default.cc: New file. * testsuite/28_regex/12_iterators/regex_iterator/ctors/wchar_t: New file. * testsuite/28_regex/12_iterators/regex_iterator/ctors/wchar_t/default.cc: New file. * testsuite/28_regex/12_iterators/regex_iterator/typedefs.cc: New file. * testsuite/28_regex/12_iterators/regex_token_iterator: New file. * testsuite/28_regex/12_iterators/regex_token_iterator/ctors: New file. * testsuite/28_regex/12_iterators/regex_token_iterator/ctors/char: New file. * testsuite/28_regex/12_iterators/regex_token_iterator/ctors/char/default.cc: New file. * testsuite/28_regex/12_iterators/regex_token_iterator/ctors/wchar_t: New file. * testsuite/28_regex/12_iterators/regex_token_iterator/ctors/wchar_t/default.cc: New file. * testsuite/28_regex/12_iterators/regex_token_iterator/typedefs.cc: New file. * testsuite/28_regex/13_ecmascript: New file. From-SVN: r161410
2010-06-25 21:27:16 +02:00
} // namespace __regex
cinttypes: Remove, move contents to C++0x and TR1 headers. 2010-11-02 Paolo Carlini <paolo.carlini@oracle.com> * include/tr1_impl/cinttypes: Remove, move contents to C++0x and TR1 headers. * include/tr1_impl/cstdlib: Likewise. * include/tr1_impl/cstdio: Likewise. * include/tr1_impl/cctype: Likewise. * include/tr1_impl/boost_sp_counted_base.h: Likewise. * include/tr1_impl/cmath: Likewise. * include/tr1_impl/cfenv: Likewise. * include/tr1_impl/utility: Likewise. * include/tr1_impl/complex: Likewise. * include/tr1_impl/cwchar: Likewise. * include/tr1_impl/type_traits: Likewise. * include/tr1_impl/cstdint: Likewise. * include/tr1_impl/regex: Likewise. * include/tr1_impl/array: Likewise. * include/tr1_impl/cwctype: Likewise. * include/Makefile.am: Adjust. * include/Makefile.in: Regenerate. * src/condition_variable.cc: Adjust; consistently use _GLIBCXX_BEGIN_NAMESPACE and _GLIBCXX_END_NAMESPACE. * src/mutex.cc: Likewise. * src/future.cc: Likewise. * src/atomic.cc: Likewise. * src/chrono.cc: Likewise. * src/thread.cc: Likewise. * include/std/tuple: Likewise. * include/std/utility: Likewise. * include/std/thread: Likewise.: Likewise. * include/std/type_traits: Likewise. * include/std/memory: Likewise. * include/std/future: Likewise. * include/std/ratio: Likewise. * include/std/chrono: Likewise. * include/std/condition_variable: Likewise. * include/std/mutex: Likewise. * include/std/functional: Likewise. * include/std/complex: Likewise. * include/std/typeindex: Likewise. * include/std/array: Likewise. * include/bits/regex_compiler.h: Likewise. * include/bits/regex_grep_matcher.tcc: Likewise. * include/bits/regex_grep_matcher.h: Likewise. * include/bits/regex_constants.h: Likewise. * include/bits/regex_cursor.h: Likewise. * include/bits/regex_nfa.tcc: Likewise. * include/bits/shared_ptr_base.h: Likewise. * include/bits/regex_nfa.h: Likewise. * include/bits/random.tcc: Likewise. * include/bits/regex.h: Likewise. * include/bits/random.h: Likewise. * include/bits/regex_error.h: Likewise. * include/c_global/cinttypes: Likewise. * include/c_global/cstdlib: Likewise. * include/c_global/cstdio: Likewise. * include/c_global/cctype: Likewise. * include/c_global/cmath: Likewise. * include/c_global/cfenv: Likewise. * include/c_global/cwchar: Likewise. * include/c_global/cstdint: Likewise. * include/c_global/cwctype: Likewise. * include/tr1/shared_ptr.h: Likewise. * include/tr1/cinttypes: Likewise. * include/tr1/cstdio: Likewise. * include/tr1/cfenv: Likewise. * include/tr1/utility: Likewise. * include/tr1/cwchar: Likewise. * include/tr1/type_traits: Likewise. * include/tr1/memory: Likewise. * include/tr1/cstdint: Likewise. * include/tr1/regex: Likewise. * include/tr1/cwctype: Likewise. * include/tr1/cstdlib: Likewise. * include/tr1/cctype: Likewise. * include/tr1/cmath: Likewise. * include/tr1/complex: Likewise. * include/tr1/array: Likewise. * include/c_compatibility/fenv.h: Likewise. * include/c_compatibility/stdint.h: Likewise. * include/c_compatibility/inttypes.h: Likewise. * testsuite/tr1/2_general_utilities/shared_ptr/cons/43820.cc: Adjust dg-error line numbers. * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise. * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise. * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise. * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Likewise. * testsuite/20_util/make_unsigned/requirements/ typedefs_neg.cc: Likewise. * testsuite/20_util/declval/requirements/1_neg.cc: Likewise. * testsuite/20_util/shared_ptr/cons/43820.cc: Likewise. * testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Likewise. From-SVN: r166211
2010-11-02 19:51:23 +01:00
_GLIBCXX_END_NAMESPACE