PATH:
usr
/
include
/
c++
/
4.8.2
/
bits
// 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>
[-] streambuf.tcc
[edit]
[-] unique_ptr.h
[edit]
[-] random.tcc
[edit]
[-] istream.tcc
[edit]
[-] functexcept.h
[edit]
[-] valarray_after.h
[edit]
[-] atomic_base.h
[edit]
[-] locale_classes.h
[edit]
[-] locale_facets_nonio.h
[edit]
[-] alloc_traits.h
[edit]
[-] memoryfwd.h
[edit]
[-] stl_algobase.h
[edit]
[-] locale_facets.h
[edit]
[-] hashtable.h
[edit]
[-] stl_multiset.h
[edit]
[-] stl_stack.h
[edit]
[+]
..
[-] stl_pair.h
[edit]
[-] boost_concept_check.h
[edit]
[-] unordered_map.h
[edit]
[-] stl_uninitialized.h
[edit]
[-] regex_grep_matcher.h
[edit]
[-] stl_set.h
[edit]
[-] concept_check.h
[edit]
[-] regex_nfa.h
[edit]
[-] stl_multimap.h
[edit]
[-] deque.tcc
[edit]
[-] valarray_array.tcc
[edit]
[-] basic_string.h
[edit]
[-] regex_nfa.tcc
[edit]
[-] vector.tcc
[edit]
[-] valarray_before.h
[edit]
[-] regex.h
[edit]
[-] stream_iterator.h
[edit]
[-] ptr_traits.h
[edit]
[-] stl_function.h
[edit]
[-] stl_vector.h
[edit]
[-] shared_ptr.h
[edit]
[-] list.tcc
[edit]
[-] stl_iterator_base_types.h
[edit]
[-] stl_tempbuf.h
[edit]
[-] algorithmfwd.h
[edit]
[-] move.h
[edit]
[-] shared_ptr_base.h
[edit]
[-] mask_array.h
[edit]
[-] hash_bytes.h
[edit]
[-] allocator.h
[edit]
[-] ostream.tcc
[edit]
[-] regex_compiler.h
[edit]
[-] cxxabi_forced.h
[edit]
[-] ostream_insert.h
[edit]
[-] uses_allocator.h
[edit]
[-] forward_list.h
[edit]
[-] exception_defines.h
[edit]
[-] streambuf_iterator.h
[edit]
[-] stl_iterator.h
[edit]
[-] gslice.h
[edit]
[-] locale_facets.tcc
[edit]
[-] c++0x_warning.h
[edit]
[-] cpp_type_traits.h
[edit]
[-] stl_numeric.h
[edit]
[-] stl_bvector.h
[edit]
[-] stl_tree.h
[edit]
[-] exception_ptr.h
[edit]
[-] stl_raw_storage_iter.h
[edit]
[-] ios_base.h
[edit]
[-] regex_cursor.h
[edit]
[-] regex_constants.h
[edit]
[-] indirect_array.h
[edit]
[-] valarray_array.h
[edit]
[-] stl_algo.h
[edit]
[-] basic_ios.tcc
[edit]
[-] stl_relops.h
[edit]
[-] char_traits.h
[edit]
[-] postypes.h
[edit]
[-] locale_facets_nonio.tcc
[edit]
[-] stl_list.h
[edit]
[-] nested_exception.h
[edit]
[-] hashtable_policy.h
[edit]
[-] stl_heap.h
[edit]
[-] slice_array.h
[edit]
[-] stringfwd.h
[edit]
[-] basic_ios.h
[edit]
[-] forward_list.tcc
[edit]
[-] basic_string.tcc
[edit]
[-] codecvt.h
[edit]
[-] locale_classes.tcc
[edit]
[-] atomic_lockfree_defines.h
[edit]
[-] fstream.tcc
[edit]
[-] range_access.h
[edit]
[-] stl_map.h
[edit]
[-] functional_hash.h
[edit]
[-] regex_error.h
[edit]
[-] stl_deque.h
[edit]
[-] stl_construct.h
[edit]
[-] stl_iterator_base_funcs.h
[edit]
[-] random.h
[edit]
[-] sstream.tcc
[edit]
[-] unordered_set.h
[edit]
[-] regex_grep_matcher.tcc
[edit]
[-] stl_queue.h
[edit]
[-] gslice_array.h
[edit]
[-] localefwd.h
[edit]