]> git.ipfire.org Git - thirdparty/gcc.git/commit
regex.h (regex_match<>, [...]): Change regex_executor caller.
authorTim Shen <timshen91@gmail.com>
Sat, 14 Sep 2013 14:23:44 +0000 (14:23 +0000)
committerTim Shen <timshen@gcc.gnu.org>
Sat, 14 Sep 2013 14:23:44 +0000 (14:23 +0000)
commit7b86458e38ee3c88ca4e222c85ef6fa883267315
treee9e7682ad565de0099407469cf75a3455639b6f2
parent492d1e0ac5c5bae22a29c0e436b50603052f2c29
regex.h (regex_match<>, [...]): Change regex_executor caller.

2013-09-14  Tim Shen  <timshen91@gmail.com>

* include/bits/regex.h (regex_match<>, regex_search<>):
Change regex_executor caller. Now use their return value instead
of checking __m[0].matched to find out if it's successful.
(regex_search<>): Move the search logic to regex_executor.
* include/bits/regex_automaton.h: Add some new _Opcode. Refactor
_NFA::_M_insert_*.
* include/bits/regex_automaton.tcc: Add DEBUG dump for new
_Opcode. Refactor _NFA::_M_insert_*.
* include/bits/regex_compiler.h (_Compiler<>::_M_get_nfa):
Use make_shared instead of construct by hand.
* include/bits/regex_compiler.tcc: Implement _Compiler<>::_M_assertion.
* include/bits/regex_constants.h: Fix indentation and line breaking.
* include/bits/regex_executor.h: Add _ResultsEntry to support
greedy/ungreedy mode. Move regex_search logic here.
* include/bits/regex_executor.tcc: Implement assertions and
greedy/ungreedy matching.
* include/bits/regex_scanner.h: Add a new token _S_token_ungreedy.
* include/bits/regex_scanner.tcc: Parse a new token _S_token_ungreedy.
* testsuite/28_regex/algorithms/regex_search/ecma/assertion.cc: New.
* testsuite/28_regex/algorithms/regex_search/ecma/greedy.cc: New.
* testsuite/28_regex/algorithms/regex_search/ecma/string_01.cc:
Fix comment.

From-SVN: r202591
14 files changed:
libstdc++-v3/ChangeLog
libstdc++-v3/include/bits/regex.h
libstdc++-v3/include/bits/regex_automaton.h
libstdc++-v3/include/bits/regex_automaton.tcc
libstdc++-v3/include/bits/regex_compiler.h
libstdc++-v3/include/bits/regex_compiler.tcc
libstdc++-v3/include/bits/regex_constants.h
libstdc++-v3/include/bits/regex_executor.h
libstdc++-v3/include/bits/regex_executor.tcc
libstdc++-v3/include/bits/regex_scanner.h
libstdc++-v3/include/bits/regex_scanner.tcc
libstdc++-v3/testsuite/28_regex/algorithms/regex_search/ecma/assertion.cc [new file with mode: 0644]
libstdc++-v3/testsuite/28_regex/algorithms/regex_search/ecma/greedy.cc [new file with mode: 0644]
libstdc++-v3/testsuite/28_regex/algorithms/regex_search/ecma/string_01.cc