// class template regex -*- C++ -*- // Copyright (C) 2010-2013 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_grep_matcher.h * This is an internal header file, included by other library headers. * Do not attempt to use it directly. @headername{regex} */ namespace std _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION template<typename _BiIter> class sub_match; template<typename _Bi_iter, typename _Allocator> class match_results; _GLIBCXX_END_NAMESPACE_VERSION namespace __detail { _GLIBCXX_BEGIN_NAMESPACE_VERSION /** * @defgroup regex-detail Base and Implementation Classes * @ingroup regex * @{ */ /// A _Results facade specialized for wrapping a templated match_results. template<typename _FwdIterT, typename _Alloc> class _SpecializedResults : public _Results { public: _SpecializedResults(const _Automaton::_SizeT __size, const _SpecializedCursor<_FwdIterT>& __cursor, match_results<_FwdIterT, _Alloc>& __m); void _M_set_pos(int __i, int __j, const _PatternCursor& __pc); void _M_set_matched(int __i, bool __is_matched) { _M_results.at(__i).matched = __is_matched; } private: match_results<_FwdIterT, _Alloc>& _M_results; }; template<typename _FwdIterT, typename _Alloc> _SpecializedResults<_FwdIterT, _Alloc>:: _SpecializedResults(const _Automaton::_SizeT __size, const _SpecializedCursor<_FwdIterT>& __cursor, match_results<_FwdIterT, _Alloc>& __m) : _M_results(__m) { _M_results.clear(); _M_results.reserve(__size + 2); _M_results.resize(__size); typename match_results<_FwdIterT, _Alloc>::value_type __sm; __sm.first = __sm.second = __cursor._M_begin(); _M_results.push_back(__sm); __sm.first = __sm.second = __cursor._M_end(); _M_results.push_back(__sm); } template<typename _FwdIterT, typename _Alloc> void _SpecializedResults<_FwdIterT, _Alloc>:: _M_set_pos(int __i, int __j, const _PatternCursor& __pc) { typedef const _SpecializedCursor<_FwdIterT>& _CursorT; _CursorT __c = static_cast<_CursorT>(__pc); if (__j == 0) _M_results.at(__i).first = __c._M_pos(); else _M_results.at(__i).second = __c._M_pos()+1; } /// A stack of states used in evaluating the NFA. typedef std::stack<_StateIdT, std::vector<_StateIdT> > _StateStack; /// Executes a regular expression NFA/DFA over a range using a /// variant of the parallel execution algorithm featured in the grep /// utility, modified to use Laurikari tags. class _Grep_matcher { public: _Grep_matcher(_PatternCursor& __p, _Results& __r, const _AutomatonPtr& __automaton, regex_constants::match_flag_type __flags); private: _StateSet _M_e_closure(_StateIdT __i); _StateSet _M_e_closure(const _StateSet& __s); _StateSet _M_e_closure(_StateStack& __stack, const _StateSet& __s); const std::shared_ptr<_Nfa> _M_nfa; _PatternCursor& _M_pattern; _Results& _M_results; }; //@} regex-detail _GLIBCXX_END_NAMESPACE_VERSION } // namespace __detail } // namespace std #include <bits/regex_grep_matcher.tcc>
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
algorithmfwd.h | File | 20.66 KB | 0644 |
|
alloc_traits.h | File | 17.66 KB | 0644 |
|
allocator.h | File | 6.1 KB | 0644 |
|
atomic_base.h | File | 24.99 KB | 0644 |
|
atomic_lockfree_defines.h | File | 2.2 KB | 0644 |
|
basic_ios.h | File | 14.76 KB | 0644 |
|
basic_ios.tcc | File | 5.89 KB | 0644 |
|
basic_string.h | File | 109.49 KB | 0644 |
|
basic_string.tcc | File | 38.43 KB | 0644 |
|
boost_concept_check.h | File | 26.41 KB | 0644 |
|
c++0x_warning.h | File | 1.47 KB | 0644 |
|
char_traits.h | File | 16.95 KB | 0644 |
|
codecvt.h | File | 16.23 KB | 0644 |
|
concept_check.h | File | 3.26 KB | 0644 |
|
cpp_type_traits.h | File | 9.56 KB | 0644 |
|
cxxabi_forced.h | File | 1.77 KB | 0644 |
|
deque.tcc | File | 31.91 KB | 0644 |
|
exception_defines.h | File | 1.6 KB | 0644 |
|
exception_ptr.h | File | 5.29 KB | 0644 |
|
forward_list.h | File | 46.72 KB | 0644 |
|
forward_list.tcc | File | 15.17 KB | 0644 |
|
fstream.tcc | File | 28.3 KB | 0644 |
|
functexcept.h | File | 3.04 KB | 0644 |
|
functional_hash.h | File | 6.05 KB | 0644 |
|
gslice.h | File | 5.39 KB | 0644 |
|
gslice_array.h | File | 7.59 KB | 0644 |
|
hash_bytes.h | File | 2.1 KB | 0644 |
|
hashtable.h | File | 61.05 KB | 0644 |
|
hashtable_policy.h | File | 52.72 KB | 0644 |
|
indirect_array.h | File | 7.68 KB | 0644 |
|
ios_base.h | File | 27.85 KB | 0644 |
|
istream.tcc | File | 30.36 KB | 0644 |
|
list.tcc | File | 12.2 KB | 0644 |
|
locale_classes.h | File | 22.45 KB | 0644 |
|
locale_classes.tcc | File | 8.18 KB | 0644 |
|
locale_facets.h | File | 88.84 KB | 0644 |
|
locale_facets.tcc | File | 38.02 KB | 0644 |
|
locale_facets_nonio.h | File | 63.51 KB | 0644 |
|
locale_facets_nonio.tcc | File | 40.85 KB | 0644 |
|
localefwd.h | File | 5.1 KB | 0644 |
|
mask_array.h | File | 7.41 KB | 0644 |
|
memoryfwd.h | File | 2.36 KB | 0644 |
|
move.h | File | 5.67 KB | 0644 |
|
nested_exception.h | File | 4.58 KB | 0644 |
|
ostream.tcc | File | 12.03 KB | 0644 |
|
ostream_insert.h | File | 3.91 KB | 0644 |
|
postypes.h | File | 8.02 KB | 0644 |
|
ptr_traits.h | File | 5.17 KB | 0644 |
|
random.h | File | 173.19 KB | 0644 |
|
random.tcc | File | 106.59 KB | 0644 |
|
range_access.h | File | 3.06 KB | 0644 |
|
regex.h | File | 83.49 KB | 0644 |
|
regex_compiler.h | File | 27.68 KB | 0644 |
|
regex_constants.h | File | 10.81 KB | 0644 |
|
regex_cursor.h | File | 2.7 KB | 0644 |
|
regex_error.h | File | 4.5 KB | 0644 |
|
regex_grep_matcher.h | File | 4.23 KB | 0644 |
|
regex_grep_matcher.tcc | File | 5.41 KB | 0644 |
|
regex_nfa.h | File | 10.65 KB | 0644 |
|
regex_nfa.tcc | File | 4.85 KB | 0644 |
|
shared_ptr.h | File | 18.97 KB | 0644 |
|
shared_ptr_base.h | File | 40.65 KB | 0644 |
|
slice_array.h | File | 9.12 KB | 0644 |
|
sstream.tcc | File | 9.27 KB | 0644 |
|
stl_algo.h | File | 212.55 KB | 0644 |
|
stl_algobase.h | File | 41.41 KB | 0644 |
|
stl_bvector.h | File | 28.98 KB | 0644 |
|
stl_construct.h | File | 5.05 KB | 0644 |
|
stl_deque.h | File | 66.41 KB | 0644 |
|
stl_function.h | File | 22.06 KB | 0644 |
|
stl_heap.h | File | 19.99 KB | 0644 |
|
stl_iterator.h | File | 35.77 KB | 0644 |
|
stl_iterator_base_funcs.h | File | 6.8 KB | 0644 |
|
stl_iterator_base_types.h | File | 8.19 KB | 0644 |
|
stl_list.h | File | 52.83 KB | 0644 |
|
stl_map.h | File | 36.78 KB | 0644 |
|
stl_multimap.h | File | 33.94 KB | 0644 |
|
stl_multiset.h | File | 28.37 KB | 0644 |
|
stl_numeric.h | File | 13.5 KB | 0644 |
|
stl_pair.h | File | 9.63 KB | 0644 |
|
stl_queue.h | File | 18.21 KB | 0644 |
|
stl_raw_storage_iter.h | File | 3.37 KB | 0644 |
|
stl_relops.h | File | 4.49 KB | 0644 |
|
stl_set.h | File | 28.61 KB | 0644 |
|
stl_stack.h | File | 9.65 KB | 0644 |
|
stl_tempbuf.h | File | 8.15 KB | 0644 |
|
stl_tree.h | File | 53.56 KB | 0644 |
|
stl_uninitialized.h | File | 19.95 KB | 0644 |
|
stl_vector.h | File | 48.64 KB | 0644 |
|
stream_iterator.h | File | 6.44 KB | 0644 |
|
streambuf.tcc | File | 4.81 KB | 0644 |
|
streambuf_iterator.h | File | 12.33 KB | 0644 |
|
stringfwd.h | File | 2.37 KB | 0644 |
|
unique_ptr.h | File | 17.19 KB | 0644 |
|
unordered_map.h | File | 47.76 KB | 0644 |
|
unordered_set.h | File | 43.25 KB | 0644 |
|
uses_allocator.h | File | 3.49 KB | 0644 |
|
valarray_after.h | File | 22.12 KB | 0644 |
|
valarray_array.h | File | 21.23 KB | 0644 |
|
valarray_array.tcc | File | 7.08 KB | 0644 |
|
valarray_before.h | File | 18.08 KB | 0644 |
|
vector.tcc | File | 25.55 KB | 0644 |
|