diff options
author | Tim Shen <timshen91@gmail.com> | 2014-03-15 18:16:22 +0000 |
---|---|---|
committer | Tim Shen <timshen@gcc.gnu.org> | 2014-03-15 18:16:22 +0000 |
commit | ee54a3b318bdb09f0faaec20125d01933e224053 (patch) | |
tree | acf1348b8279a9ceedc9bf6aca7c793dbdf59cf8 | |
parent | f1182dd22b9540464d7ede01abb4a8d321fb4e91 (diff) | |
download | gcc-ee54a3b318bdb09f0faaec20125d01933e224053.zip gcc-ee54a3b318bdb09f0faaec20125d01933e224053.tar.gz gcc-ee54a3b318bdb09f0faaec20125d01933e224053.tar.bz2 |
regex.h: Add/modify comments.
2014-03-15 Tim Shen <timshen91@gmail.com>
* include/bits/regex.h: Add/modify comments.
* include/bits/regex_compiler.h: Likewise.
* include/bits/regex_executor.h: Likewise.
* include/bits/regex_executor.tcc: Likewise.
* include/bits/regex_scanner.h: Likewise.
From-SVN: r208593
-rw-r--r-- | libstdc++-v3/ChangeLog | 8 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/regex.h | 6 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/regex_compiler.h | 6 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/regex_executor.h | 7 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/regex_executor.tcc | 11 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/regex_scanner.h | 2 |
6 files changed, 30 insertions, 10 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 276e7cf..c0b40d79 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,11 @@ +2014-03-15 Tim Shen <timshen91@gmail.com> + + * include/bits/regex.h: Add/modify comments. + * include/bits/regex_compiler.h: Likewise. + * include/bits/regex_executor.h: Likewise. + * include/bits/regex_executor.tcc: Likewise. + * include/bits/regex_scanner.h: Likewise. + 2014-03-14 Jonathan Wakely <jwakely@redhat.com> PR ipa/58721 diff --git a/libstdc++-v3/include/bits/regex.h b/libstdc++-v3/include/bits/regex.h index 816f5cf..e556350 100644 --- a/libstdc++-v3/include/bits/regex.h +++ b/libstdc++-v3/include/bits/regex.h @@ -78,7 +78,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION */ /** - * @brief Class regex_traits. Describes aspects of a regular expression. + * @brief Describes aspects of a regular expression. * * A regular expression traits class that satisfies the requirements of * section [28.7]. @@ -2098,8 +2098,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION // [7.11.3] Function template regex_search /** * Searches for a regular expression within a range. - * @param __first [IN] The start of the string to search. - * @param __last [IN] One-past-the-end of the string to search. + * @param __s [IN] The start of the string to search. + * @param __e [IN] One-past-the-end of the string to search. * @param __m [OUT] The match results. * @param __re [IN] The regular expression to search for. * @param __flags [IN] Search policy flags. diff --git a/libstdc++-v3/include/bits/regex_compiler.h b/libstdc++-v3/include/bits/regex_compiler.h index fe2e5f1..f5a198f 100644 --- a/libstdc++-v3/include/bits/regex_compiler.h +++ b/libstdc++-v3/include/bits/regex_compiler.h @@ -42,7 +42,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION template<typename, bool, bool> struct _BracketMatcher; - /// Builds an NFA from an input iterator interval. + /** + * @brief Builds an NFA from an input iterator interval. + * + * The %_TraitsT type should fulfill requirements [28.3]. + */ template<typename _TraitsT> class _Compiler { diff --git a/libstdc++-v3/include/bits/regex_executor.h b/libstdc++-v3/include/bits/regex_executor.h index 0885716..708c78e 100644 --- a/libstdc++-v3/include/bits/regex_executor.h +++ b/libstdc++-v3/include/bits/regex_executor.h @@ -41,6 +41,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION * @{ */ + /** + * @brief Takes a regex and an input string in and + * do the matching. + * + * The %_Executor class has two modes: DFS mode and BFS mode, controlled + * by the template parameter %__dfs_mode. + */ template<typename _BiIter, typename _Alloc, typename _TraitsT, bool __dfs_mode> class _Executor diff --git a/libstdc++-v3/include/bits/regex_executor.tcc b/libstdc++-v3/include/bits/regex_executor.tcc index e1cfcb0..68a5e04 100644 --- a/libstdc++-v3/include/bits/regex_executor.tcc +++ b/libstdc++-v3/include/bits/regex_executor.tcc @@ -72,7 +72,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION // TODO: This approach is exponentially slow for certain input. // Try to compile the NFA to a DFA. // - // Time complexity: o(match_length), O(2^(_M_nfa.size())) + // Time complexity: \Omega(match_length), O(2^(_M_nfa.size())) // Space complexity: \theta(match_results.size() + match_length) // // ------------------------------------------------------------ @@ -82,8 +82,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION // Russ Cox's article (http://swtch.com/~rsc/regexp/regexp1.html) // explained this algorithm clearly. // - // It first computes epsilon closure for every state that's still matching, - // using the same DFS algorithm, but doesn't reenter states (set true in + // It first computes epsilon closure (states that can be achieved without + // consuming characters) for every state that's still matching, + // using the same DFS algorithm, but doesn't re-enter states (find a true in // _M_visited), nor follows _S_opcode_match. // // Then apply DFS using every _S_opcode_match (in _M_match_queue) as the start @@ -92,9 +93,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION // It significantly reduces potential duplicate states, so has a better // upper bound; but it requires more overhead. // - // Time complexity: o(match_length * match_results.size()) + // Time complexity: \Omega(match_length * match_results.size()) // O(match_length * _M_nfa.size() * match_results.size()) - // Space complexity: o(_M_nfa.size() + match_results.size()) + // Space complexity: \Omega(_M_nfa.size() + match_results.size()) // O(_M_nfa.size() * match_results.size()) template<typename _BiIter, typename _Alloc, typename _TraitsT, bool __dfs_mode> diff --git a/libstdc++-v3/include/bits/regex_scanner.h b/libstdc++-v3/include/bits/regex_scanner.h index 6dc2b4e..6627db9 100644 --- a/libstdc++-v3/include/bits/regex_scanner.h +++ b/libstdc++-v3/include/bits/regex_scanner.h @@ -188,7 +188,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION }; /** - * @brief struct _Scanner. Scans an input range for regex tokens. + * @brief Scans an input range for regex tokens. * * The %_Scanner class interprets the regular expression pattern in * the input range passed to its constructor as a sequence of parse |