aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Shen <timshen91@gmail.com>2014-03-15 18:16:22 +0000
committerTim Shen <timshen@gcc.gnu.org>2014-03-15 18:16:22 +0000
commitee54a3b318bdb09f0faaec20125d01933e224053 (patch)
treeacf1348b8279a9ceedc9bf6aca7c793dbdf59cf8
parentf1182dd22b9540464d7ede01abb4a8d321fb4e91 (diff)
downloadgcc-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/ChangeLog8
-rw-r--r--libstdc++-v3/include/bits/regex.h6
-rw-r--r--libstdc++-v3/include/bits/regex_compiler.h6
-rw-r--r--libstdc++-v3/include/bits/regex_executor.h7
-rw-r--r--libstdc++-v3/include/bits/regex_executor.tcc11
-rw-r--r--libstdc++-v3/include/bits/regex_scanner.h2
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