aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3
diff options
context:
space:
mode:
authorTim Shen <timshen91@gmail.com>2013-08-22 09:01:38 +0000
committerTim Shen <timshen@gcc.gnu.org>2013-08-22 09:01:38 +0000
commite280b6ffe7f9f98573b29360dc36f4f7e41f35b4 (patch)
tree280ee892c44e536b7389f8d4c439b05a84b05b88 /libstdc++-v3
parent3f97cb0b278d59b8923d0b10edfd60d357dc55a7 (diff)
downloadgcc-e280b6ffe7f9f98573b29360dc36f4f7e41f35b4.zip
gcc-e280b6ffe7f9f98573b29360dc36f4f7e41f35b4.tar.gz
gcc-e280b6ffe7f9f98573b29360dc36f4f7e41f35b4.tar.bz2
regex.h: Replace 8 spaces in indentation with a tab.
2013-08-22 Tim Shen <timshen91@gmail.com> * include/bits/regex.h: Replace 8 spaces in indentation with a tab. * include/bits/regex_automaton.h: Same. * include/bits/regex_automaton.tcc: Same. * include/bits/regex_compiler.h: Same. * include/bits/regex_compiler.tcc: Same. * include/bits/regex_constants.h: Same. * include/bits/regex_executor.h: Same. * include/bits/regex_executor.tcc: Same. From-SVN: r201916
Diffstat (limited to 'libstdc++-v3')
-rw-r--r--libstdc++-v3/ChangeLog11
-rw-r--r--libstdc++-v3/include/bits/regex.h968
-rw-r--r--libstdc++-v3/include/bits/regex_automaton.h58
-rw-r--r--libstdc++-v3/include/bits/regex_automaton.tcc142
-rw-r--r--libstdc++-v3/include/bits/regex_compiler.h60
-rw-r--r--libstdc++-v3/include/bits/regex_compiler.tcc202
-rw-r--r--libstdc++-v3/include/bits/regex_constants.h6
-rw-r--r--libstdc++-v3/include/bits/regex_executor.h54
-rw-r--r--libstdc++-v3/include/bits/regex_executor.tcc408
9 files changed, 960 insertions, 949 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index c614b32..0e34fb9 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,5 +1,16 @@
2013-08-22 Tim Shen <timshen91@gmail.com>
+ * include/bits/regex.h: Replace 8 spaces in indentation with a tab.
+ * include/bits/regex_automaton.h: Same.
+ * include/bits/regex_automaton.tcc: Same.
+ * include/bits/regex_compiler.h: Same.
+ * include/bits/regex_compiler.tcc: Same.
+ * include/bits/regex_constants.h: Same.
+ * include/bits/regex_executor.h: Same.
+ * include/bits/regex_executor.tcc: Same.
+
+2013-08-22 Tim Shen <timshen91@gmail.com>
+
* include/bits/regex.h: Executor caller.
* include/bits/regex_executor.h: Fix empty grouping problem.
* include/bits/regex_executor.tcc: Same.
diff --git a/libstdc++-v3/include/bits/regex.h b/libstdc++-v3/include/bits/regex.h
index f5932ed..555dfc6 100644
--- a/libstdc++-v3/include/bits/regex.h
+++ b/libstdc++-v3/include/bits/regex.h
@@ -56,71 +56,71 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
typedef std::locale locale_type;
private:
struct _RegexMask
- {
- typedef typename std::ctype<char_type>::mask _BaseType;
- _BaseType _M_base;
- unsigned char _M_extended;
- static constexpr unsigned char _S_under = 1 << 0;
- // FIXME: _S_blank should be removed in the future,
- // when locale's complete.
- static constexpr unsigned char _S_blank = 1 << 1;
- static constexpr unsigned char _S_valid_mask = 0x3;
-
- constexpr _RegexMask(_BaseType __base = 0,
- unsigned char __extended = 0)
- : _M_base(__base), _M_extended(__extended)
- { }
-
- constexpr _RegexMask
- operator&(_RegexMask __other) const
- {
- return _RegexMask(_M_base & __other._M_base,
- _M_extended & __other._M_extended);
- }
-
- constexpr _RegexMask
- operator|(_RegexMask __other) const
- {
- return _RegexMask(_M_base | __other._M_base,
- _M_extended | __other._M_extended);
- }
-
- constexpr _RegexMask
- operator^(_RegexMask __other) const
- {
- return _RegexMask(_M_base ^ __other._M_base,
- _M_extended ^ __other._M_extended);
- }
-
- constexpr _RegexMask
- operator~() const
- { return _RegexMask(~_M_base, ~_M_extended); }
-
- _RegexMask&
- operator&=(_RegexMask __other)
- { return *this = (*this) & __other; }
-
- _RegexMask&
- operator|=(_RegexMask __other)
- { return *this = (*this) | __other; }
-
- _RegexMask&
- operator^=(_RegexMask __other)
- { return *this = (*this) ^ __other; }
-
- constexpr bool
- operator==(_RegexMask __other) const
- {
- return (_M_extended & _S_valid_mask)
- == (__other._M_extended & _S_valid_mask)
- && _M_base == __other._M_base;
- }
-
- constexpr bool
- operator!=(_RegexMask __other) const
- { return !((*this) == __other); }
-
- };
+ {
+ typedef typename std::ctype<char_type>::mask _BaseType;
+ _BaseType _M_base;
+ unsigned char _M_extended;
+ static constexpr unsigned char _S_under = 1 << 0;
+ // FIXME: _S_blank should be removed in the future,
+ // when locale's complete.
+ static constexpr unsigned char _S_blank = 1 << 1;
+ static constexpr unsigned char _S_valid_mask = 0x3;
+
+ constexpr _RegexMask(_BaseType __base = 0,
+ unsigned char __extended = 0)
+ : _M_base(__base), _M_extended(__extended)
+ { }
+
+ constexpr _RegexMask
+ operator&(_RegexMask __other) const
+ {
+ return _RegexMask(_M_base & __other._M_base,
+ _M_extended & __other._M_extended);
+ }
+
+ constexpr _RegexMask
+ operator|(_RegexMask __other) const
+ {
+ return _RegexMask(_M_base | __other._M_base,
+ _M_extended | __other._M_extended);
+ }
+
+ constexpr _RegexMask
+ operator^(_RegexMask __other) const
+ {
+ return _RegexMask(_M_base ^ __other._M_base,
+ _M_extended ^ __other._M_extended);
+ }
+
+ constexpr _RegexMask
+ operator~() const
+ { return _RegexMask(~_M_base, ~_M_extended); }
+
+ _RegexMask&
+ operator&=(_RegexMask __other)
+ { return *this = (*this) & __other; }
+
+ _RegexMask&
+ operator|=(_RegexMask __other)
+ { return *this = (*this) | __other; }
+
+ _RegexMask&
+ operator^=(_RegexMask __other)
+ { return *this = (*this) ^ __other; }
+
+ constexpr bool
+ operator==(_RegexMask __other) const
+ {
+ return (_M_extended & _S_valid_mask)
+ == (__other._M_extended & _S_valid_mask)
+ && _M_base == __other._M_base;
+ }
+
+ constexpr bool
+ operator!=(_RegexMask __other) const
+ { return !((*this) == __other); }
+
+ };
public:
typedef _RegexMask char_class_type;
@@ -193,9 +193,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* facet.
*/
template<typename _Fwd_iter>
- string_type
- transform(_Fwd_iter __first, _Fwd_iter __last) const
- {
+ string_type
+ transform(_Fwd_iter __first, _Fwd_iter __last) const
+ {
typedef std::collate<char_type> __collate_type;
const __collate_type& __fclt(use_facet<__collate_type>(_M_locale));
string_type __s(__first, __last);
@@ -217,16 +217,16 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* @todo Implement this function.
*/
template<typename _Fwd_iter>
- string_type
- transform_primary(_Fwd_iter __first, _Fwd_iter __last) const
- {
- typedef std::ctype<char_type> __ctype_type;
- const __ctype_type& __fctyp(use_facet<__ctype_type>(_M_locale));
- std::vector<char_type> __s(__first, __last);
- // FIXME : this is not entirely correct
- __fctyp.tolower(__s.data(), __s.data() + __s.size());
- return this->transform(__s.data(), __s.data() + __s.size());
- }
+ string_type
+ transform_primary(_Fwd_iter __first, _Fwd_iter __last) const
+ {
+ typedef std::ctype<char_type> __ctype_type;
+ const __ctype_type& __fctyp(use_facet<__ctype_type>(_M_locale));
+ std::vector<char_type> __s(__first, __last);
+ // FIXME : this is not entirely correct
+ __fctyp.tolower(__s.data(), __s.data() + __s.size());
+ return this->transform(__s.data(), __s.data() + __s.size());
+ }
/**
* @brief Gets a collation element by name.
@@ -240,8 +240,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* character sequence is not a valid collating element.
*/
template<typename _Fwd_iter>
- string_type
- lookup_collatename(_Fwd_iter __first, _Fwd_iter __last) const;
+ string_type
+ lookup_collatename(_Fwd_iter __first, _Fwd_iter __last) const;
/**
* @brief Maps one or more characters to a named character
@@ -281,9 +281,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* - xdigit
*/
template<typename _Fwd_iter>
- char_class_type
- lookup_classname(_Fwd_iter __first, _Fwd_iter __last,
- bool __icase = false) const;
+ char_class_type
+ lookup_classname(_Fwd_iter __first, _Fwd_iter __last,
+ bool __icase = false) const;
/**
* @brief Determines if @p c is a member of an identified class.
@@ -353,182 +353,182 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
const __ctype_type& __fctyp(use_facet<__ctype_type>(_M_locale));
static const char* __collatenames[] =
- {
- "NUL",
- "SOH",
- "STX",
- "ETX",
- "EOT",
- "ENQ",
- "ACK",
- "alert",
- "backspace",
- "tab",
- "newline",
- "vertical-tab",
- "form-feed",
- "carriage-return",
- "SO",
- "SI",
- "DLE",
- "DC1",
- "DC2",
- "DC3",
- "DC4",
- "NAK",
- "SYN",
- "ETB",
- "CAN",
- "EM",
- "SUB",
- "ESC",
- "IS4",
- "IS3",
- "IS2",
- "IS1",
- "space",
- "exclamation-mark",
- "quotation-mark",
- "number-sign",
- "dollar-sign",
- "percent-sign",
- "ampersand",
- "apostrophe",
- "left-parenthesis",
- "right-parenthesis",
- "asterisk",
- "plus-sign",
- "comma",
- "hyphen",
- "period",
- "slash",
- "zero",
- "one",
- "two",
- "three",
- "four",
- "five",
- "six",
- "seven",
- "eight",
- "nine",
- "colon",
- "semicolon",
- "less-than-sign",
- "equals-sign",
- "greater-than-sign",
- "question-mark",
- "commercial-at",
- "A",
- "B",
- "C",
- "D",
- "E",
- "F",
- "G",
- "H",
- "I",
- "J",
- "K",
- "L",
- "M",
- "N",
- "O",
- "P",
- "Q",
- "R",
- "S",
- "T",
- "U",
- "V",
- "W",
- "X",
- "Y",
- "Z",
- "left-square-bracket",
- "backslash",
- "right-square-bracket",
- "circumflex",
- "underscore",
- "grave-accent",
- "a",
- "b",
- "c",
- "d",
- "e",
- "f",
- "g",
- "h",
- "i",
- "j",
- "k",
- "l",
- "m",
- "n",
- "o",
- "p",
- "q",
- "r",
- "s",
- "t",
- "u",
- "v",
- "w",
- "x",
- "y",
- "z",
- "left-curly-bracket",
- "vertical-line",
- "right-curly-bracket",
- "tilde",
- "DEL",
- ""
- };
+ {
+ "NUL",
+ "SOH",
+ "STX",
+ "ETX",
+ "EOT",
+ "ENQ",
+ "ACK",
+ "alert",
+ "backspace",
+ "tab",
+ "newline",
+ "vertical-tab",
+ "form-feed",
+ "carriage-return",
+ "SO",
+ "SI",
+ "DLE",
+ "DC1",
+ "DC2",
+ "DC3",
+ "DC4",
+ "NAK",
+ "SYN",
+ "ETB",
+ "CAN",
+ "EM",
+ "SUB",
+ "ESC",
+ "IS4",
+ "IS3",
+ "IS2",
+ "IS1",
+ "space",
+ "exclamation-mark",
+ "quotation-mark",
+ "number-sign",
+ "dollar-sign",
+ "percent-sign",
+ "ampersand",
+ "apostrophe",
+ "left-parenthesis",
+ "right-parenthesis",
+ "asterisk",
+ "plus-sign",
+ "comma",
+ "hyphen",
+ "period",
+ "slash",
+ "zero",
+ "one",
+ "two",
+ "three",
+ "four",
+ "five",
+ "six",
+ "seven",
+ "eight",
+ "nine",
+ "colon",
+ "semicolon",
+ "less-than-sign",
+ "equals-sign",
+ "greater-than-sign",
+ "question-mark",
+ "commercial-at",
+ "A",
+ "B",
+ "C",
+ "D",
+ "E",
+ "F",
+ "G",
+ "H",
+ "I",
+ "J",
+ "K",
+ "L",
+ "M",
+ "N",
+ "O",
+ "P",
+ "Q",
+ "R",
+ "S",
+ "T",
+ "U",
+ "V",
+ "W",
+ "X",
+ "Y",
+ "Z",
+ "left-square-bracket",
+ "backslash",
+ "right-square-bracket",
+ "circumflex",
+ "underscore",
+ "grave-accent",
+ "a",
+ "b",
+ "c",
+ "d",
+ "e",
+ "f",
+ "g",
+ "h",
+ "i",
+ "j",
+ "k",
+ "l",
+ "m",
+ "n",
+ "o",
+ "p",
+ "q",
+ "r",
+ "s",
+ "t",
+ "u",
+ "v",
+ "w",
+ "x",
+ "y",
+ "z",
+ "left-curly-bracket",
+ "vertical-line",
+ "right-curly-bracket",
+ "tilde",
+ "DEL",
+ ""
+ };
// same as boost
static const char* __digraphs[] =
- {
- "ae",
- "Ae",
- "AE",
- "ch",
- "Ch",
- "CH",
- "ll",
- "Ll",
- "LL",
- "ss",
- "Ss",
- "SS",
- "nj",
- "Nj",
- "NJ",
- "dz",
- "Dz",
- "DZ",
- "lj",
- "Lj",
- "LJ",
- ""
- };
+ {
+ "ae",
+ "Ae",
+ "AE",
+ "ch",
+ "Ch",
+ "CH",
+ "ll",
+ "Ll",
+ "LL",
+ "ss",
+ "Ss",
+ "SS",
+ "nj",
+ "Nj",
+ "NJ",
+ "dz",
+ "Dz",
+ "DZ",
+ "lj",
+ "Lj",
+ "LJ",
+ ""
+ };
std::string __s(__last - __first, '?');
__fctyp.narrow(__first, __last, '?', &*__s.begin());
for (unsigned int __i = 0; *__collatenames[__i]; __i++)
- if (__s == __collatenames[__i])
- return string_type(1, __fctyp.widen((char)__i));
+ if (__s == __collatenames[__i])
+ return string_type(1, __fctyp.widen((char)__i));
for (unsigned int __i = 0; *__digraphs[__i]; __i++)
- {
- const char* __now = __digraphs[__i];
- if (__s == __now)
- {
- string_type ret(__s.size(), __fctyp.widen('?'));
- __fctyp.widen(__now, __now + 2/* ouch */, &*ret.begin());
- return ret;
- }
- }
+ {
+ const char* __now = __digraphs[__i];
+ if (__s == __now)
+ {
+ string_type ret(__s.size(), __fctyp.widen('?'));
+ __fctyp.widen(__now, __now + 2/* ouch */, &*ret.begin());
+ return ret;
+ }
+ }
return string_type();
}
@@ -546,39 +546,39 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
static _ClassnameEntry __classnames[] =
{
- {"d", ctype_base::digit},
- {"w", {ctype_base::alnum, _RegexMask::_S_under}},
- {"s", ctype_base::space},
- {"alnum", ctype_base::alnum},
- {"alpha", ctype_base::alpha},
- {"blank", {0, _RegexMask::_S_blank}},
- {"cntrl", ctype_base::cntrl},
- {"digit", ctype_base::digit},
- {"graph", ctype_base::graph},
- {"lower", ctype_base::lower},
- {"print", ctype_base::print},
- {"punct", ctype_base::punct},
- {"space", ctype_base::space},
- {"upper", ctype_base::upper},
- {"xdigit", ctype_base::xdigit},
+ {"d", ctype_base::digit},
+ {"w", {ctype_base::alnum, _RegexMask::_S_under}},
+ {"s", ctype_base::space},
+ {"alnum", ctype_base::alnum},
+ {"alpha", ctype_base::alpha},
+ {"blank", {0, _RegexMask::_S_blank}},
+ {"cntrl", ctype_base::cntrl},
+ {"digit", ctype_base::digit},
+ {"graph", ctype_base::graph},
+ {"lower", ctype_base::lower},
+ {"print", ctype_base::print},
+ {"punct", ctype_base::punct},
+ {"space", ctype_base::space},
+ {"upper", ctype_base::upper},
+ {"xdigit", ctype_base::xdigit},
};
std::string __s(__last - __first, '?');
__fctyp.narrow(__first, __last, '?', &__s[0]);
__cctyp.tolower(&*__s.begin(), &*__s.begin() + __s.size());
for (_ClassnameEntry* __it = __classnames;
- __it < *(&__classnames + 1);
- ++__it)
- {
- if (__s == __it->first)
- {
- if (__icase
- && ((__it->second
- & (ctype_base::lower | ctype_base::upper)) != 0))
- return ctype_base::alpha;
- return __it->second;
- }
- }
+ __it < *(&__classnames + 1);
+ ++__it)
+ {
+ if (__s == __it->first)
+ {
+ if (__icase
+ && ((__it->second
+ & (ctype_base::lower | ctype_base::upper)) != 0))
+ return ctype_base::alpha;
+ return __it->second;
+ }
+ }
return 0;
}
@@ -591,13 +591,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
const __ctype_type& __fctyp(use_facet<__ctype_type>(_M_locale));
return __fctyp.is(__f._M_base, __c)
- // [[:w:]]
- || ((__f._M_extended & _RegexMask::_S_under)
- && __c == __fctyp.widen('_'))
- // [[:blank:]]
- || ((__f._M_extended & _RegexMask::_S_blank)
- && (__c == __fctyp.widen(' ')
- || __c == __fctyp.widen('\t')));
+ // [[:w:]]
+ || ((__f._M_extended & _RegexMask::_S_under)
+ && __c == __fctyp.widen('_'))
+ // [[:blank:]]
+ || ((__f._M_extended & _RegexMask::_S_blank)
+ && (__c == __fctyp.widen(' ')
+ || __c == __fctyp.widen('\t')));
}
template<typename _Ch_type>
@@ -689,7 +689,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* @throws regex_error if @p __p is not a valid regular expression.
*/
basic_regex(const _Ch_type* __p,
- std::size_t __len, flag_type __f = ECMAScript)
+ std::size_t __len, flag_type __f = ECMAScript)
: basic_regex(__p, __p + __len, __f)
{ }
@@ -707,7 +707,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
*/
basic_regex(const basic_regex&& __rhs) noexcept
: _M_flags(__rhs._M_flags), _M_traits(__rhs._M_traits),
- _M_automaton(std::move(__rhs._M_automaton))
+ _M_automaton(std::move(__rhs._M_automaton))
{ }
/**
@@ -720,12 +720,12 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* @throws regex_error if @p __s is not a valid regular expression.
*/
template<typename _Ch_traits, typename _Ch_alloc>
- explicit
- basic_regex(const std::basic_string<_Ch_type, _Ch_traits,
+ explicit
+ basic_regex(const std::basic_string<_Ch_type, _Ch_traits,
_Ch_alloc>& __s,
flag_type __f = ECMAScript)
: basic_regex(__s.begin(), __s.end(), __f)
- { }
+ { }
/**
* @brief Constructs a basic regular expression from the range
@@ -741,12 +741,12 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* expression.
*/
template<typename _InputIterator>
- basic_regex(_InputIterator __first, _InputIterator __last,
+ basic_regex(_InputIterator __first, _InputIterator __last,
flag_type __f = ECMAScript)
: _M_flags(__f),
- _M_automaton(__detail::_Compiler<_InputIterator, _Ch_type, _Rx_traits>
- (__first, __last, _M_traits, _M_flags)._M_get_nfa())
- { }
+ _M_automaton(__detail::_Compiler<_InputIterator, _Ch_type, _Rx_traits>
+ (__first, __last, _M_traits, _M_flags)._M_get_nfa())
+ { }
/**
* @brief Constructs a basic regular expression from an initializer list.
@@ -799,9 +799,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* @param __s A pointer to a string containing a regular expression.
*/
template<typename _Ch_typeraits, typename _Alloc>
- basic_regex&
- operator=(const basic_string<_Ch_type, _Ch_typeraits, _Alloc>& __s)
- { return this->assign(__s, flags()); }
+ basic_regex&
+ operator=(const basic_string<_Ch_type, _Ch_typeraits, _Alloc>& __s)
+ { return this->assign(__s, flags()); }
// [7.8.3] assign
/**
@@ -876,10 +876,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* regex_error is thrown, *this remains unchanged.
*/
template<typename _Ch_typeraits, typename _Alloc>
- basic_regex&
- assign(const basic_string<_Ch_type, _Ch_typeraits, _Alloc>& __s,
+ basic_regex&
+ assign(const basic_string<_Ch_type, _Ch_typeraits, _Alloc>& __s,
flag_type __flags = ECMAScript)
- {
+ {
basic_regex __tmp(__s, __flags);
this->swap(__tmp);
return *this;
@@ -899,10 +899,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* regex_error is thrown, the object remains unchanged.
*/
template<typename _InputIterator>
- basic_regex&
- assign(_InputIterator __first, _InputIterator __last,
+ basic_regex&
+ assign(_InputIterator __first, _InputIterator __last,
flag_type __flags = ECMAScript)
- { return this->assign(string_type(__first, __last), __flags); }
+ { return this->assign(string_type(__first, __last), __flags); }
/**
* @brief Assigns a new regular expression to a regex object.
@@ -976,31 +976,31 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
protected:
typedef std::shared_ptr<__detail::_Automaton<_Ch_type, _Rx_traits>>
- _AutomatonPtr;
+ _AutomatonPtr;
template<typename _BiIter, typename _Alloc,
- typename _CharT, typename _TraitsT>
- friend std::unique_ptr<
- __detail::_Executor<_BiIter, _Alloc, _CharT, _TraitsT>>
- __detail::__get_executor(_BiIter,
- _BiIter,
- match_results<_BiIter, _Alloc>&,
- const basic_regex<_CharT, _TraitsT>&,
- regex_constants::match_flag_type);
+ typename _CharT, typename _TraitsT>
+ friend std::unique_ptr<
+ __detail::_Executor<_BiIter, _Alloc, _CharT, _TraitsT>>
+ __detail::__get_executor(_BiIter,
+ _BiIter,
+ match_results<_BiIter, _Alloc>&,
+ const basic_regex<_CharT, _TraitsT>&,
+ regex_constants::match_flag_type);
template<typename _Bp, typename _Ap, typename _Cp, typename _Rp>
- friend bool
- regex_match(_Bp, _Bp,
- match_results<_Bp, _Ap>&,
- const basic_regex<_Cp, _Rp>&,
- regex_constants::match_flag_type);
+ friend bool
+ regex_match(_Bp, _Bp,
+ match_results<_Bp, _Ap>&,
+ const basic_regex<_Cp, _Rp>&,
+ regex_constants::match_flag_type);
template<typename _Bp, typename _Ap, typename _Cp, typename _Rp>
- friend bool
- regex_search(_Bp, _Bp,
- match_results<_Bp, _Ap>&,
- const basic_regex<_Cp, _Rp>&,
- regex_constants::match_flag_type);
+ friend bool
+ regex_search(_Bp, _Bp,
+ match_results<_Bp, _Ap>&,
+ const basic_regex<_Cp, _Rp>&,
+ regex_constants::match_flag_type);
flag_type _M_flags;
_Rx_traits _M_traits;
@@ -1220,8 +1220,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
// Alias for sub_match'd string.
template<typename _Bi_iter, typename _Ch_traits, typename _Ch_alloc>
using __sub_match_string = basic_string<
- typename iterator_traits<_Bi_iter>::value_type,
- _Ch_traits, _Ch_alloc>;
+ typename iterator_traits<_Bi_iter>::value_type,
+ _Ch_traits, _Ch_alloc>;
/**
* @brief Tests the equivalence of a string and a regular expression
@@ -2019,50 +2019,50 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* @todo Implement this function.
*/
template<typename _Out_iter>
- _Out_iter
- format(_Out_iter __out, const char_type* __fmt_first,
+ _Out_iter
+ format(_Out_iter __out, const char_type* __fmt_first,
const char_type* __fmt_last,
match_flag_type __flags = regex_constants::format_default) const
- { return __out; }
+ { return __out; }
/**
* @pre ready() == true
*/
template<typename _Out_iter, typename _St, typename _Sa>
- _Out_iter
- format(_Out_iter __out, const basic_string<char_type, _St, _Sa>& __fmt,
+ _Out_iter
+ format(_Out_iter __out, const basic_string<char_type, _St, _Sa>& __fmt,
match_flag_type __flags = regex_constants::format_default) const
- {
- return format(__out, __fmt.data(), __fmt.data() + __fmt.size(),
- __flags);
- }
+ {
+ return format(__out, __fmt.data(), __fmt.data() + __fmt.size(),
+ __flags);
+ }
/**
* @pre ready() == true
*/
template<typename _Out_iter, typename _St, typename _Sa>
- basic_string<char_type, _St, _Sa>
- format(const basic_string<char_type, _St, _Sa>& __fmt,
+ basic_string<char_type, _St, _Sa>
+ format(const basic_string<char_type, _St, _Sa>& __fmt,
match_flag_type __flags = regex_constants::format_default) const
- {
- basic_string<char_type, _St, _Sa> __result;
- format(std::back_inserter(__result), __fmt, __flags);
- return __result;
- }
+ {
+ basic_string<char_type, _St, _Sa> __result;
+ format(std::back_inserter(__result), __fmt, __flags);
+ return __result;
+ }
/**
* @pre ready() == true
*/
string_type
format(const char_type* __fmt,
- match_flag_type __flags = regex_constants::format_default) const
+ match_flag_type __flags = regex_constants::format_default) const
{
- string_type __result;
- format(std::back_inserter(__result),
- __fmt,
- __fmt + char_traits<char_type>::length(__fmt),
- __flags);
- return __result;
+ string_type __result;
+ format(std::back_inserter(__result),
+ __fmt,
+ __fmt + char_traits<char_type>::length(__fmt),
+ __flags);
+ return __result;
}
//@}
@@ -2096,27 +2096,27 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
private:
template<typename, typename, typename, typename>
- friend class __detail::_Executor;
+ friend class __detail::_Executor;
template<typename, typename, typename, typename>
- friend class __detail::_DFSExecutor;
+ friend class __detail::_DFSExecutor;
template<typename, typename, typename, typename>
- friend class __detail::_BFSExecutor;
+ friend class __detail::_BFSExecutor;
template<typename _Bp, typename _Ap, typename _Ch_type, typename _Rx_traits>
- friend bool
- regex_match(_Bp, _Bp, match_results<_Bp, _Ap>&,
- const basic_regex<_Ch_type,
- _Rx_traits>&,
- regex_constants::match_flag_type);
+ friend bool
+ regex_match(_Bp, _Bp, match_results<_Bp, _Ap>&,
+ const basic_regex<_Ch_type,
+ _Rx_traits>&,
+ regex_constants::match_flag_type);
template<typename _Bp, typename _Ap, typename _Ch_type, typename _Rx_traits>
- friend bool
- regex_search(_Bp, _Bp, match_results<_Bp, _Ap>&,
- const basic_regex<_Ch_type,
- _Rx_traits>&,
- regex_constants::match_flag_type);
+ friend bool
+ regex_search(_Bp, _Bp, match_results<_Bp, _Ap>&,
+ const basic_regex<_Ch_type,
+ _Rx_traits>&,
+ regex_constants::match_flag_type);
};
typedef match_results<const char*> cmatch;
@@ -2138,17 +2138,17 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
const match_results<_Bi_iter, _Alloc>& __m2)
{
if (__m1.ready() != __m2.ready())
- return false;
+ return false;
if (!__m1.ready()) // both are not ready
- return true;
+ return true;
if (__m1.empty() != __m2.empty())
- return false;
+ return false;
if (__m1.empty()) // both are empty
- return true;
+ return true;
return __m1.prefix() == __m2.prefix()
- && __m1.size() == __m2.size()
- && std::equal(__m1.begin(), __m1.end(), __m2.begin())
- && __m1.suffix() == __m2.suffix();
+ && __m1.size() == __m2.size()
+ && std::equal(__m1.begin(), __m1.end(), __m2.begin())
+ && __m1.suffix() == __m2.suffix();
}
/**
@@ -2203,28 +2203,28 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
typename _Ch_type, typename _Rx_traits>
bool
regex_match(_Bi_iter __s,
- _Bi_iter __e,
- match_results<_Bi_iter, _Alloc>& __m,
- const basic_regex<_Ch_type, _Rx_traits>& __re,
- regex_constants::match_flag_type __flags
- = regex_constants::match_default)
+ _Bi_iter __e,
+ match_results<_Bi_iter, _Alloc>& __m,
+ const basic_regex<_Ch_type, _Rx_traits>& __re,
+ regex_constants::match_flag_type __flags
+ = regex_constants::match_default)
{
if (__re._M_automaton == nullptr)
- return false;
+ return false;
__detail::__get_executor(__s, __e, __m, __re, __flags)->_M_match();
if (__m.size() > 0 && __m[0].matched)
- {
- for (auto __it : __m)
- if (!__it.matched)
- __it.first = __it.second = __e;
- __m.at(__m.size()).matched = false;
- __m.at(__m.size()).first = __s;
- __m.at(__m.size()).second = __s;
- __m.at(__m.size()+1).matched = false;
- __m.at(__m.size()+1).first = __e;
- __m.at(__m.size()+1).second = __e;
- return true;
- }
+ {
+ for (auto __it : __m)
+ if (!__it.matched)
+ __it.first = __it.second = __e;
+ __m.at(__m.size()).matched = false;
+ __m.at(__m.size()).first = __s;
+ __m.at(__m.size()).second = __s;
+ __m.at(__m.size()+1).matched = false;
+ __m.at(__m.size()+1).first = __e;
+ __m.at(__m.size()+1).second = __e;
+ return true;
+ }
return false;
}
@@ -2364,18 +2364,18 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
typename _Ch_type, typename _Rx_traits>
inline bool
regex_search(_Bi_iter __first, _Bi_iter __last,
- match_results<_Bi_iter, _Alloc>& __m,
- const basic_regex<_Ch_type, _Rx_traits>& __re,
- regex_constants::match_flag_type __flags
- = regex_constants::match_default)
+ match_results<_Bi_iter, _Alloc>& __m,
+ const basic_regex<_Ch_type, _Rx_traits>& __re,
+ regex_constants::match_flag_type __flags
+ = regex_constants::match_default)
{
if (__re._M_automaton == nullptr)
- return false;
+ return false;
for (auto __cur = __first; __cur != __last; ++__cur) // Any KMP-like algo?
- {
- __detail::__get_executor(__cur, __last, __m, __re, __flags)
- ->_M_search_from_first();
- if (__m.size() > 0 && __m[0].matched)
+ {
+ __detail::__get_executor(__cur, __last, __m, __re, __flags)
+ ->_M_search_from_first();
+ if (__m.size() > 0 && __m[0].matched)
{
for (auto __it : __m)
if (!__it.matched)
@@ -2390,7 +2390,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
(__m.suffix().first != __m.suffix().second);
return true;
}
- }
+ }
return false;
}
@@ -2641,9 +2641,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
regex_iterator
operator++(int)
{
- auto __tmp = *this;
- ++(*this);
- return __tmp;
+ auto __tmp = *this;
+ ++(*this);
+ return __tmp;
}
private:
@@ -2662,11 +2662,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
operator==(const regex_iterator& __rhs) const
{
return (_M_match.empty() && __rhs._M_match.empty())
- || (_M_begin == __rhs._M_begin
- && _M_end == __rhs._M_end
- && _M_pregex == __rhs._M_pregex
- && _M_flags == __rhs._M_flags
- && _M_match[0] == __rhs._M_match[0]);
+ || (_M_begin == __rhs._M_begin
+ && _M_end == __rhs._M_end
+ && _M_pregex == __rhs._M_pregex
+ && _M_flags == __rhs._M_flags
+ && _M_match[0] == __rhs._M_match[0]);
}
template<typename _Bi_iter,
@@ -2683,27 +2683,27 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
// match[i].position() shall return distance(begin, match[i].first).
// [28.12.1.4.5]
if (_M_match[0].matched)
- {
- auto __start = _M_match[0].second;
- if (_M_match[0].first == _M_match[0].second)
- if (__start == _M_end)
- {
- _M_match = value_type();
- return *this;
- }
- else
- {
- if (regex_search(__start, _M_end, _M_match, *_M_pregex, _M_flags
- | regex_constants::match_not_null
- | regex_constants::match_continuous))
- return *this;
- else
- ++__start;
- }
- _M_flags |= regex_constants::match_prev_avail;
- if (!regex_search(__start, _M_end, _M_match, *_M_pregex, _M_flags))
- _M_match = value_type();
- }
+ {
+ auto __start = _M_match[0].second;
+ if (_M_match[0].first == _M_match[0].second)
+ if (__start == _M_end)
+ {
+ _M_match = value_type();
+ return *this;
+ }
+ else
+ {
+ if (regex_search(__start, _M_end, _M_match, *_M_pregex, _M_flags
+ | regex_constants::match_not_null
+ | regex_constants::match_continuous))
+ return *this;
+ else
+ ++__start;
+ }
+ _M_flags |= regex_constants::match_prev_avail;
+ if (!regex_search(__start, _M_end, _M_match, *_M_pregex, _M_flags))
+ _M_match = value_type();
+ }
return *this;
}
@@ -2723,8 +2723,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* value of an iterator of this class is a std::sub_match object.
*/
template<typename _Bi_iter,
- typename _Ch_type = typename iterator_traits<_Bi_iter>::value_type,
- typename _Rx_traits = regex_traits<_Ch_type> >
+ typename _Ch_type = typename iterator_traits<_Bi_iter>::value_type,
+ typename _Rx_traits = regex_traits<_Ch_type> >
class regex_token_iterator
{
public:
@@ -2799,7 +2799,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
*/
regex_token_iterator(_Bi_iter __a, _Bi_iter __b,
const regex_type& __re,
- initializer_list<int> __submatches,
+ initializer_list<int> __submatches,
regex_constants::match_flag_type __m
= regex_constants::match_default)
: _M_position(__a, __b, __re, __m), _M_subs(__submatches), _M_n(0)
@@ -2815,7 +2815,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* @param __m [IN] Policy flags for match rules.
*/
template<std::size_t _Nm>
- regex_token_iterator(_Bi_iter __a, _Bi_iter __b,
+ regex_token_iterator(_Bi_iter __a, _Bi_iter __b,
const regex_type& __re,
const int (&__submatches)[_Nm],
regex_constants::match_flag_type __m
@@ -2833,8 +2833,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_M_result(__rhs.result), _M_suffix(__rhs.suffix),
_M_has_m1(__rhs._M_has_m1)
{
- if (__rhs._M_result == &__rhs._M_suffix)
- _M_result = &_M_suffix;
+ if (__rhs._M_result == &__rhs._M_suffix)
+ _M_result = &_M_suffix;
}
/**
@@ -2883,9 +2883,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
regex_token_iterator
operator++(int)
{
- auto __tmp = *this;
- ++(*this);
- return __tmp;
+ auto __tmp = *this;
+ ++(*this);
+ return __tmp;
}
private:
@@ -2897,10 +2897,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
const value_type&
_M_current_match() const
{
- if (_M_subs[_M_n] == -1)
- return (*_M_position).prefix();
- else
- return (*_M_position)[_M_subs[_M_n]];
+ if (_M_subs[_M_n] == -1)
+ return (*_M_position).prefix();
+ else
+ return (*_M_position)[_M_subs[_M_n]];
}
bool
@@ -2918,8 +2918,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
};
template<typename _Bi_iter,
- typename _Ch_type,
- typename _Rx_traits>
+ typename _Ch_type,
+ typename _Rx_traits>
regex_token_iterator<_Bi_iter, _Ch_type, _Rx_traits>&
regex_token_iterator<_Bi_iter, _Ch_type, _Rx_traits>::
operator=(const regex_token_iterator& __rhs)
@@ -2931,88 +2931,88 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_M_suffix = __rhs._M_suffix;
_M_has_m1 = __rhs._M_has_m1;
if (__rhs._M_result == &__rhs._M_suffix)
- _M_result = &_M_suffix;
+ _M_result = &_M_suffix;
}
template<typename _Bi_iter,
- typename _Ch_type,
- typename _Rx_traits>
+ typename _Ch_type,
+ typename _Rx_traits>
bool
regex_token_iterator<_Bi_iter, _Ch_type, _Rx_traits>::
operator==(const regex_token_iterator& __rhs) const
{
if (_M_end_of_seq() && __rhs._M_end_of_seq())
- return true;
+ return true;
if (_M_suffix.matched && __rhs._M_suffix.matched
- && _M_suffix == __rhs._M_suffix)
- return true;
+ && _M_suffix == __rhs._M_suffix)
+ return true;
if (_M_end_of_seq() || _M_suffix.matched
- || __rhs._M_end_of_seq() || __rhs._M_suffix.matched)
- return false;
+ || __rhs._M_end_of_seq() || __rhs._M_suffix.matched)
+ return false;
return _M_position == __rhs._M_position
- && _M_n == __rhs._M_n
- && _M_subs == __rhs._M_subs;
+ && _M_n == __rhs._M_n
+ && _M_subs == __rhs._M_subs;
}
template<typename _Bi_iter,
- typename _Ch_type,
- typename _Rx_traits>
+ typename _Ch_type,
+ typename _Rx_traits>
regex_token_iterator<_Bi_iter, _Ch_type, _Rx_traits>&
regex_token_iterator<_Bi_iter, _Ch_type, _Rx_traits>::
operator++()
{
_Position __prev = _M_position;
if (_M_suffix.matched)
- *this = regex_token_iterator();
+ *this = regex_token_iterator();
else if (_M_n + 1 < _M_subs.size())
- {
- _M_n++;
- _M_result = &_M_current_match();
- }
+ {
+ _M_n++;
+ _M_result = &_M_current_match();
+ }
else
- {
- _M_n = 0;
- ++_M_position;
- if (_M_position != _Position())
- _M_result = &_M_current_match();
- else if (_M_has_m1 && __prev->suffix().length() != 0)
- {
- _M_suffix.matched = true;
- _M_suffix.first = __prev->suffix().first;
- _M_suffix.second = __prev->suffix().second;
- _M_result = &_M_suffix;
- }
- else
- *this = regex_token_iterator();
- }
+ {
+ _M_n = 0;
+ ++_M_position;
+ if (_M_position != _Position())
+ _M_result = &_M_current_match();
+ else if (_M_has_m1 && __prev->suffix().length() != 0)
+ {
+ _M_suffix.matched = true;
+ _M_suffix.first = __prev->suffix().first;
+ _M_suffix.second = __prev->suffix().second;
+ _M_result = &_M_suffix;
+ }
+ else
+ *this = regex_token_iterator();
+ }
return *this;
}
template<typename _Bi_iter,
- typename _Ch_type,
- typename _Rx_traits>
+ typename _Ch_type,
+ typename _Rx_traits>
void
regex_token_iterator<_Bi_iter, _Ch_type, _Rx_traits>::
_M_init(_Bi_iter __a, _Bi_iter __b)
{
_M_has_m1 = false;
for (auto __it : _M_subs)
- if (__it == -1)
- {
- _M_has_m1 = true;
- break;
- }
+ if (__it == -1)
+ {
+ _M_has_m1 = true;
+ break;
+ }
if (_M_position != _Position())
- _M_result = &_M_current_match();
+ _M_result = &_M_current_match();
else if (_M_has_m1)
- {
- _M_suffix.matched = true;
- _M_suffix.first = __a;
- _M_suffix.second = __b;
- _M_result = &_M_suffix;
- }
+ {
+ _M_suffix.matched = true;
+ _M_suffix.first = __a;
+ _M_suffix.second = __b;
+ _M_result = &_M_suffix;
+ }
else
- _M_result = nullptr;
+ _M_result = nullptr;
}
/** @brief Token iterator for C-style NULL-terminated strings. */
diff --git a/libstdc++-v3/include/bits/regex_automaton.h b/libstdc++-v3/include/bits/regex_automaton.h
index b58071e..f9e9630 100644
--- a/libstdc++-v3/include/bits/regex_automaton.h
+++ b/libstdc++-v3/include/bits/regex_automaton.h
@@ -71,9 +71,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_StateIdT _M_next; // outgoing transition
union // Since they are mutual exclusive.
{
- _StateIdT _M_alt; // for _S_opcode_alternative
- unsigned int _M_subexpr; // for _S_opcode_subexpr_*
- unsigned int _M_backref_index; // for _S_opcode_backref
+ _StateIdT _M_alt; // for _S_opcode_alternative
+ unsigned int _M_subexpr; // for _S_opcode_subexpr_*
+ unsigned int _M_backref_index; // for _S_opcode_backref
};
_MatcherT _M_matches; // for _S_opcode_match
@@ -83,17 +83,17 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_State(const _MatcherT& __m)
: _M_opcode(_S_opcode_match), _M_next(_S_invalid_state_id),
- _M_matches(__m)
+ _M_matches(__m)
{ }
_State(_OpcodeT __opcode, unsigned __index)
: _M_opcode(__opcode), _M_next(_S_invalid_state_id)
{
- if (__opcode == _S_opcode_subexpr_begin
- || __opcode == _S_opcode_subexpr_end)
- _M_subexpr = __index;
- else if (__opcode == _S_opcode_backref)
- _M_backref_index = __index;
+ if (__opcode == _S_opcode_subexpr_begin
+ || __opcode == _S_opcode_subexpr_end)
+ _M_subexpr = __index;
+ else if (__opcode == _S_opcode_backref)
+ _M_backref_index = __index;
}
_State(_StateIdT __next, _StateIdT __alt)
@@ -162,40 +162,40 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_StateIdT
_M_insert_accept()
{
- this->push_back(_StateT(_S_opcode_accept));
- _M_accepting_states.insert(this->size()-1);
- return this->size()-1;
+ this->push_back(_StateT(_S_opcode_accept));
+ _M_accepting_states.insert(this->size()-1);
+ return this->size()-1;
}
_StateIdT
_M_insert_alt(_StateIdT __next, _StateIdT __alt)
{
- this->push_back(_StateT(__next, __alt));
- return this->size()-1;
+ this->push_back(_StateT(__next, __alt));
+ return this->size()-1;
}
_StateIdT
_M_insert_matcher(_MatcherT __m)
{
- this->push_back(_StateT(__m));
- return this->size()-1;
+ this->push_back(_StateT(__m));
+ return this->size()-1;
}
_StateIdT
_M_insert_subexpr_begin()
{
- auto __id = _M_subexpr_count++;
- _M_paren_stack.push_back(__id);
- this->push_back(_StateT(_S_opcode_subexpr_begin, __id));
- return this->size()-1;
+ auto __id = _M_subexpr_count++;
+ _M_paren_stack.push_back(__id);
+ this->push_back(_StateT(_S_opcode_subexpr_begin, __id));
+ return this->size()-1;
}
_StateIdT
_M_insert_subexpr_end()
{
- this->push_back(_StateT(_S_opcode_subexpr_end, _M_paren_stack.back()));
- _M_paren_stack.pop_back();
- return this->size()-1;
+ this->push_back(_StateT(_S_opcode_subexpr_end, _M_paren_stack.back()));
+ _M_paren_stack.pop_back();
+ return this->size()-1;
}
_StateIdT
@@ -225,27 +225,27 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
public:
// Constructs a single-node sequence
_StateSeq(_RegexT& __ss, _StateIdT __s,
- _StateIdT __e = _S_invalid_state_id)
+ _StateIdT __e = _S_invalid_state_id)
: _M_nfa(__ss), _M_start(__s), _M_end1(__s), _M_end2(__e)
{ }
// Constructs a split sequence from two other sequencces
_StateSeq(const _StateSeq& __e1, const _StateSeq& __e2)
: _M_nfa(__e1._M_nfa),
- _M_start(_M_nfa._M_insert_alt(__e1._M_start, __e2._M_start)),
- _M_end1(__e1._M_end1), _M_end2(__e2._M_end1)
+ _M_start(_M_nfa._M_insert_alt(__e1._M_start, __e2._M_start)),
+ _M_end1(__e1._M_end1), _M_end2(__e2._M_end1)
{ }
// Constructs a split sequence from a single sequence
_StateSeq(const _StateSeq& __e, _StateIdT __id)
: _M_nfa(__e._M_nfa),
- _M_start(_M_nfa._M_insert_alt(__id, __e._M_start)),
- _M_end1(__id), _M_end2(__e._M_end1)
+ _M_start(_M_nfa._M_insert_alt(__id, __e._M_start)),
+ _M_end1(__id), _M_end2(__e._M_end1)
{ }
// Constructs a copy of a %_StateSeq
_StateSeq(const _StateSeq& __rhs)
: _M_nfa(__rhs._M_nfa), _M_start(__rhs._M_start),
- _M_end1(__rhs._M_end1), _M_end2(__rhs._M_end2)
+ _M_end1(__rhs._M_end1), _M_end2(__rhs._M_end2)
{ }
_StateSeq& operator=(const _StateSeq& __rhs);
diff --git a/libstdc++-v3/include/bits/regex_automaton.tcc b/libstdc++-v3/include/bits/regex_automaton.tcc
index 40a1547..2c25d97 100644
--- a/libstdc++-v3/include/bits/regex_automaton.tcc
+++ b/libstdc++-v3/include/bits/regex_automaton.tcc
@@ -41,27 +41,27 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
{
switch (_M_opcode)
{
- case _S_opcode_alternative:
- ostr << "alt next=" << _M_next << " alt=" << _M_alt;
- break;
- case _S_opcode_subexpr_begin:
- ostr << "subexpr begin next=" << _M_next << " index=" << _M_subexpr;
- break;
- case _S_opcode_subexpr_end:
- ostr << "subexpr end next=" << _M_next << " index=" << _M_subexpr;
- break;
- case _S_opcode_backref:
- ostr << "backref next=" << _M_next << " index=" << _M_backref_index;
- break;
- case _S_opcode_match:
- ostr << "match next=" << _M_next;
- break;
- case _S_opcode_accept:
- ostr << "accept next=" << _M_next;
- break;
- default:
- ostr << "unknown next=" << _M_next;
- break;
+ case _S_opcode_alternative:
+ ostr << "alt next=" << _M_next << " alt=" << _M_alt;
+ break;
+ case _S_opcode_subexpr_begin:
+ ostr << "subexpr begin next=" << _M_next << " index=" << _M_subexpr;
+ break;
+ case _S_opcode_subexpr_end:
+ ostr << "subexpr end next=" << _M_next << " index=" << _M_subexpr;
+ break;
+ case _S_opcode_backref:
+ ostr << "backref next=" << _M_next << " index=" << _M_backref_index;
+ break;
+ case _S_opcode_match:
+ ostr << "match next=" << _M_next;
+ break;
+ case _S_opcode_accept:
+ ostr << "accept next=" << _M_next;
+ break;
+ default:
+ ostr << "unknown next=" << _M_next;
+ break;
}
return ostr;
}
@@ -73,39 +73,39 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
{
switch (_M_opcode)
{
- case _S_opcode_alternative:
- __ostr << __id << " [label=\"" << __id << "\\nALT\"];\n"
- << __id << " -> " << _M_next
- << " [label=\"epsilon\", tailport=\"s\"];\n"
- << __id << " -> " << _M_alt
- << " [label=\"epsilon\", tailport=\"n\"];\n";
- break;
- case _S_opcode_subexpr_begin:
- __ostr << __id << " [label=\"" << __id << "\\nSBEGIN "
- << _M_subexpr << "\"];\n"
- << __id << " -> " << _M_next << " [label=\"epsilon\"];\n";
- break;
- case _S_opcode_subexpr_end:
- __ostr << __id << " [label=\"" << __id << "\\nSEND "
- << _M_subexpr << "\"];\n"
- << __id << " -> " << _M_next << " [label=\"epsilon\"];\n";
- break;
- case _S_opcode_backref:
- __ostr << __id << " [label=\"" << __id << "\\nBACKREF "
- << _M_subexpr << "\"];\n"
- << __id << " -> " << _M_next << " [label=\"<match>\"];\n";
- break;
- case _S_opcode_match:
- __ostr << __id << " [label=\"" << __id << "\\nMATCH\"];\n"
- << __id << " -> " << _M_next << " [label=\"<match>\"];\n";
- break;
- case _S_opcode_accept:
- __ostr << __id << " [label=\"" << __id << "\\nACC\"];\n" ;
- break;
- default:
- __ostr << __id << " [label=\"" << __id << "\\nUNK\"];\n"
- << __id << " -> " << _M_next << " [label=\"?\"];\n";
- break;
+ case _S_opcode_alternative:
+ __ostr << __id << " [label=\"" << __id << "\\nALT\"];\n"
+ << __id << " -> " << _M_next
+ << " [label=\"epsilon\", tailport=\"s\"];\n"
+ << __id << " -> " << _M_alt
+ << " [label=\"epsilon\", tailport=\"n\"];\n";
+ break;
+ case _S_opcode_subexpr_begin:
+ __ostr << __id << " [label=\"" << __id << "\\nSBEGIN "
+ << _M_subexpr << "\"];\n"
+ << __id << " -> " << _M_next << " [label=\"epsilon\"];\n";
+ break;
+ case _S_opcode_subexpr_end:
+ __ostr << __id << " [label=\"" << __id << "\\nSEND "
+ << _M_subexpr << "\"];\n"
+ << __id << " -> " << _M_next << " [label=\"epsilon\"];\n";
+ break;
+ case _S_opcode_backref:
+ __ostr << __id << " [label=\"" << __id << "\\nBACKREF "
+ << _M_subexpr << "\"];\n"
+ << __id << " -> " << _M_next << " [label=\"<match>\"];\n";
+ break;
+ case _S_opcode_match:
+ __ostr << __id << " [label=\"" << __id << "\\nMATCH\"];\n"
+ << __id << " -> " << _M_next << " [label=\"<match>\"];\n";
+ break;
+ case _S_opcode_accept:
+ __ostr << __id << " [label=\"" << __id << "\\nACC\"];\n" ;
+ break;
+ default:
+ __ostr << __id << " [label=\"" << __id << "\\nUNK\"];\n"
+ << __id << " -> " << _M_next << " [label=\"?\"];\n";
+ break;
}
return __ostr;
}
@@ -135,10 +135,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
// _M_paren_stack is {1, 3}, for incomplete "(a.." and "(c..". At this
// time, "\\2" is valid, but "\\1" and "\\3" are not.
if (__index >= _M_subexpr_count)
- __throw_regex_error(regex_constants::error_backref);
+ __throw_regex_error(regex_constants::error_backref);
for (auto __it : _M_paren_stack)
- if (__index == __it)
- __throw_regex_error(regex_constants::error_backref);
+ if (__index == __it)
+ __throw_regex_error(regex_constants::error_backref);
_M_has_backref = true;
this->push_back(_StateT(_S_opcode_backref, __index));
return this->size()-1;
@@ -159,7 +159,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_M_push_back(_StateIdT __id)
{
if (_M_end1 != _S_invalid_state_id)
- _M_nfa[_M_end1]._M_next = __id;
+ _M_nfa[_M_end1]._M_next = __id;
_M_end1 = __id;
}
@@ -169,14 +169,14 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
{
if (_M_end2 != _S_invalid_state_id)
{
- if (_M_end2 == _M_end1)
- _M_nfa[_M_end2]._M_alt = __id;
- else
- _M_nfa[_M_end2]._M_next = __id;
- _M_end2 = _S_invalid_state_id;
+ if (_M_end2 == _M_end1)
+ _M_nfa[_M_end2]._M_alt = __id;
+ else
+ _M_nfa[_M_end2]._M_next = __id;
+ _M_end2 = _S_invalid_state_id;
}
if (_M_end1 != _S_invalid_state_id)
- _M_nfa[_M_end1]._M_next = __id;
+ _M_nfa[_M_end1]._M_next = __id;
_M_end1 = __id;
}
@@ -186,16 +186,16 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
{
if (_M_end2 != _S_invalid_state_id)
{
- if (_M_end2 == _M_end1)
- _M_nfa[_M_end2]._M_alt = __rhs._M_start;
- else
- _M_nfa[_M_end2]._M_next = __rhs._M_start;
- _M_end2 = _S_invalid_state_id;
+ if (_M_end2 == _M_end1)
+ _M_nfa[_M_end2]._M_alt = __rhs._M_start;
+ else
+ _M_nfa[_M_end2]._M_next = __rhs._M_start;
+ _M_end2 = _S_invalid_state_id;
}
if (__rhs._M_end2 != _S_invalid_state_id)
- _M_end2 = __rhs._M_end2;
+ _M_end2 = __rhs._M_end2;
if (_M_end1 != _S_invalid_state_id)
- _M_nfa[_M_end1]._M_next = __rhs._M_start;
+ _M_nfa[_M_end1]._M_next = __rhs._M_start;
_M_end1 = __rhs._M_end1;
}
diff --git a/libstdc++-v3/include/bits/regex_compiler.h b/libstdc++-v3/include/bits/regex_compiler.h
index 9314799..4ab36d2 100644
--- a/libstdc++-v3/include/bits/regex_compiler.h
+++ b/libstdc++-v3/include/bits/regex_compiler.h
@@ -49,10 +49,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
explicit
_BracketMatcher(bool __is_non_matching,
- const _TraitsT& __t,
- _FlagT __flags)
+ const _TraitsT& __t,
+ _FlagT __flags)
: _M_is_non_matching(__is_non_matching), _M_traits(__t),
- _M_flags(__flags), _M_class_set(0)
+ _M_flags(__flags), _M_class_set(0)
{ }
bool
@@ -61,40 +61,40 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
void
_M_add_char(_CharT __c)
{
- if (_M_flags & regex_constants::collate)
- if (_M_is_icase())
- _M_char_set.push_back(_M_traits.translate_nocase(__c));
- else
- _M_char_set.push_back(_M_traits.translate(__c));
- else
- _M_char_set.push_back(__c);
+ if (_M_flags & regex_constants::collate)
+ if (_M_is_icase())
+ _M_char_set.push_back(_M_traits.translate_nocase(__c));
+ else
+ _M_char_set.push_back(_M_traits.translate(__c));
+ else
+ _M_char_set.push_back(__c);
}
void
_M_add_collating_element(const _StringT& __s)
{
- auto __st = _M_traits.lookup_collatename(&*__s.begin(), &*__s.end());
- if (__st.empty())
- __throw_regex_error(regex_constants::error_collate);
- // TODO: digraph
- _M_char_set.push_back(__st[0]);
+ auto __st = _M_traits.lookup_collatename(&*__s.begin(), &*__s.end());
+ if (__st.empty())
+ __throw_regex_error(regex_constants::error_collate);
+ // TODO: digraph
+ _M_char_set.push_back(__st[0]);
}
void
_M_add_equivalence_class(const _StringT& __s)
{
- _M_add_character_class(
- _M_traits.transform_primary(&*__s.begin(), &*__s.end()));
+ _M_add_character_class(
+ _M_traits.transform_primary(&*__s.begin(), &*__s.end()));
}
void
_M_add_character_class(const _StringT& __s)
{
- auto __st = _M_traits.
- lookup_classname(&*__s.begin(), &*__s.end(), _M_is_icase());
- if (__st == 0)
- __throw_regex_error(regex_constants::error_ctype);
- _M_class_set |= __st;
+ auto __st = _M_traits.
+ lookup_classname(&*__s.begin(), &*__s.end(), _M_is_icase());
+ if (__st == 0)
+ __throw_regex_error(regex_constants::error_ctype);
+ _M_class_set |= __st;
}
void
@@ -108,11 +108,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_StringT
_M_get_str(_CharT __c) const
{
- auto __s = _StringT(1,
- _M_is_icase()
- ? _M_traits.translate_nocase(__c)
- : _M_traits.translate(__c));
- return _M_traits.transform(__s.begin(), __s.end());
+ auto __s = _StringT(1,
+ _M_is_icase()
+ ? _M_traits.translate_nocase(__c)
+ : _M_traits.translate(__c));
+ return _M_traits.transform(__s.begin(), __s.end());
}
_TraitsT _M_traits;
@@ -177,9 +177,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
};
_Scanner(_InputIter __begin, _InputIter __end,
- _FlagT __flags, std::locale __loc)
+ _FlagT __flags, std::locale __loc)
: _M_current(__begin) , _M_end(__end) , _M_flags(__flags),
- _M_ctype(std::use_facet<_CtypeT>(__loc)), _M_state(0)
+ _M_ctype(std::use_facet<_CtypeT>(__loc)), _M_state(0)
{ _M_advance(); }
void
@@ -238,7 +238,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
typedef regex_constants::syntax_option_type _FlagT;
_Compiler(_InputIter __b, _InputIter __e,
- const _TraitsT& __traits, _FlagT __flags);
+ const _TraitsT& __traits, _FlagT __flags);
std::shared_ptr<_RegexT>
_M_get_nfa() const
diff --git a/libstdc++-v3/include/bits/regex_compiler.tcc b/libstdc++-v3/include/bits/regex_compiler.tcc
index 2a5e2c6..5755c2a 100644
--- a/libstdc++-v3/include/bits/regex_compiler.tcc
+++ b/libstdc++-v3/include/bits/regex_compiler.tcc
@@ -98,13 +98,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
}
else if (__c == _M_ctype.widen('['))
{
- if (*++_M_current == _M_ctype.widen('^'))
- {
- _M_curToken = _S_token_bracket_inverse_begin;
- ++_M_current;
- }
- else
- _M_curToken = _S_token_bracket_begin;
+ if (*++_M_current == _M_ctype.widen('^'))
+ {
+ _M_curToken = _S_token_bracket_inverse_begin;
+ ++_M_current;
+ }
+ else
+ _M_curToken = _S_token_bracket_begin;
_M_state |= _S_state_in_bracket;
return;
}
@@ -223,16 +223,16 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
}
else if (*_M_current == _M_ctype.widen(']'))
{
- _M_curToken = _S_token_bracket_end;
- _M_state &= ~_S_state_in_bracket;
- ++_M_current;
- return;
+ _M_curToken = _S_token_bracket_end;
+ _M_state &= ~_S_state_in_bracket;
+ ++_M_current;
+ return;
}
else if (*_M_current == _M_ctype.widen('\\'))
- {
+ {
_M_eat_escape();
return;
- }
+ }
_M_curToken = _S_token_collelem_single;
_M_curValue.assign(1, *_M_current);
++_M_current;
@@ -341,23 +341,23 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_M_curValue.assign(1, __c);
}
else if (_M_state & _S_state_in_bracket)
- {
- if (__c == _M_ctype.widen('-')
- || __c == _M_ctype.widen('[')
- || __c == _M_ctype.widen(']'))
- {
- _M_curToken = _S_token_ord_char;
- _M_curValue.assign(1, __c);
- }
- else if ((_M_flags & regex_constants::ECMAScript)
- && __c == _M_ctype.widen('b'))
- {
- _M_curToken = _S_token_ord_char;
- _M_curValue.assign(1, _M_ctype.widen(' '));
- }
- else
- __throw_regex_error(regex_constants::error_escape);
- }
+ {
+ if (__c == _M_ctype.widen('-')
+ || __c == _M_ctype.widen('[')
+ || __c == _M_ctype.widen(']'))
+ {
+ _M_curToken = _S_token_ord_char;
+ _M_curValue.assign(1, __c);
+ }
+ else if ((_M_flags & regex_constants::ECMAScript)
+ && __c == _M_ctype.widen('b'))
+ {
+ _M_curToken = _S_token_ord_char;
+ _M_curValue.assign(1, _M_ctype.widen(' '));
+ }
+ else
+ __throw_regex_error(regex_constants::error_escape);
+ }
else
__throw_regex_error(regex_constants::error_escape);
}
@@ -444,8 +444,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
ostr << "bracket-begin\n";
break;
case _S_token_bracket_inverse_begin:
- ostr << "bracket-inverse-begin\n";
- break;
+ ostr << "bracket-inverse-begin\n";
+ break;
case _S_token_bracket_end:
ostr << "bracket-end\n";
break;
@@ -518,8 +518,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
case _S_token_unknown:
ostr << "-- unknown token --\n";
break;
- default:
- _GLIBCXX_DEBUG_ASSERT(false);
+ default:
+ _GLIBCXX_DEBUG_ASSERT(false);
}
return ostr;
}
@@ -528,7 +528,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
template<typename _InputIter, typename _CharT, typename _TraitsT>
_Compiler<_InputIter, _CharT, _TraitsT>::
_Compiler(_InputIter __b, _InputIter __e,
- const _TraitsT& __traits, _FlagT __flags)
+ const _TraitsT& __traits, _FlagT __flags)
: _M_traits(__traits), _M_scanner(__b, __e, __flags, _M_traits.getloc()),
_M_state_store(__flags), _M_flags(__flags)
{
@@ -551,8 +551,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
{
if (token == _M_scanner._M_token())
{
- _M_cur_value = _M_scanner._M_value();
- _M_scanner._M_advance();
+ _M_cur_value = _M_scanner._M_value();
+ _M_scanner._M_advance();
return true;
}
return false;
@@ -714,39 +714,39 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
{
if (_M_match_token(_ScannerT::_S_token_anychar))
{
- const static auto&
- __any_matcher = [](_CharT) -> bool
- { return true; };
+ const static auto&
+ __any_matcher = [](_CharT) -> bool
+ { return true; };
_M_stack.push(_StateSeqT(_M_state_store,
- _M_state_store._M_insert_matcher
- (__any_matcher)));
+ _M_state_store._M_insert_matcher
+ (__any_matcher)));
return true;
}
if (_M_match_token(_ScannerT::_S_token_ord_char))
{
- auto __c = _M_cur_value[0];
- __detail::_Matcher<_CharT> f;
- if (_M_flags & regex_constants::icase)
- {
- auto __traits = this->_M_traits;
- __c = __traits.translate_nocase(__c);
- f = [__traits, __c](_CharT __ch) -> bool
- { return __traits.translate_nocase(__ch) == __c; };
- }
- else
- f = [__c](_CharT __ch) -> bool
- { return __ch == __c; };
+ auto __c = _M_cur_value[0];
+ __detail::_Matcher<_CharT> f;
+ if (_M_flags & regex_constants::icase)
+ {
+ auto __traits = this->_M_traits;
+ __c = __traits.translate_nocase(__c);
+ f = [__traits, __c](_CharT __ch) -> bool
+ { return __traits.translate_nocase(__ch) == __c; };
+ }
+ else
+ f = [__c](_CharT __ch) -> bool
+ { return __ch == __c; };
_M_stack.push(_StateSeqT(_M_state_store,
- _M_state_store._M_insert_matcher(f)));
+ _M_state_store._M_insert_matcher(f)));
return true;
}
if (_M_match_token(_ScannerT::_S_token_backref))
{
// __m.push(_Matcher::_S_opcode_ordchar, _M_cur_value);
_M_stack.push(_StateSeqT(_M_state_store, _M_state_store.
- _M_insert_backref(_M_cur_int_value(10))));
+ _M_insert_backref(_M_cur_int_value(10))));
return true;
}
if (_M_match_token(_ScannerT::_S_token_subexpr_begin))
@@ -776,17 +776,17 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_M_bracket_expression()
{
bool __inverse =
- _M_match_token(_ScannerT::_S_token_bracket_inverse_begin);
+ _M_match_token(_ScannerT::_S_token_bracket_inverse_begin);
if (!(__inverse || _M_match_token(_ScannerT::_S_token_bracket_begin)))
- return false;
+ return false;
_BMatcherT __matcher( __inverse, _M_traits, _M_flags);
// special case: only if _not_ chr first after
// '[' or '[^' or if ECMAscript
if (!_M_bracket_list(__matcher) // list is empty
- && !(_M_flags & regex_constants::ECMAScript))
- __throw_regex_error(regex_constants::error_brack);
+ && !(_M_flags & regex_constants::ECMAScript))
+ __throw_regex_error(regex_constants::error_brack);
_M_stack.push(_StateSeqT(_M_state_store,
- _M_state_store._M_insert_matcher(__matcher)));
+ _M_state_store._M_insert_matcher(__matcher)));
return true;
}
@@ -796,7 +796,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_M_bracket_list(_BMatcherT& __matcher)
{
if (_M_match_token(_ScannerT::_S_token_bracket_end))
- return false;
+ return false;
_M_expression_term(__matcher);
_M_bracket_list(__matcher);
return true;
@@ -823,25 +823,25 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
return;
}
if (_M_match_token(_ScannerT::_S_token_collelem_single)) // [a
- {
- auto __ch = _M_cur_value[0];
- if (_M_match_token(_ScannerT::_S_token_dash)) // [a-
- {
- // If the dash is the last character in the bracket expression,
- // it is not special.
- if (_M_scanner._M_token() == _ScannerT::_S_token_bracket_end)
- __matcher._M_add_char(_M_cur_value[0]); // [a-] <=> [a\-]
- else // [a-z]
- {
- if (!_M_match_token(_ScannerT::_S_token_collelem_single))
- __throw_regex_error(regex_constants::error_range);
- __matcher._M_make_range(__ch, _M_cur_value[0]);
- }
- }
- else // [a]
- __matcher._M_add_char(__ch);
- return;
- }
+ {
+ auto __ch = _M_cur_value[0];
+ if (_M_match_token(_ScannerT::_S_token_dash)) // [a-
+ {
+ // If the dash is the last character in the bracket expression,
+ // it is not special.
+ if (_M_scanner._M_token() == _ScannerT::_S_token_bracket_end)
+ __matcher._M_add_char(_M_cur_value[0]); // [a-] <=> [a\-]
+ else // [a-z]
+ {
+ if (!_M_match_token(_ScannerT::_S_token_collelem_single))
+ __throw_regex_error(regex_constants::error_range);
+ __matcher._M_make_range(__ch, _M_cur_value[0]);
+ }
+ }
+ else // [a]
+ __matcher._M_add_char(__ch);
+ return;
+ }
__throw_regex_error(regex_constants::error_brack);
}
@@ -863,32 +863,32 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
{
auto __oldch = __ch;
if (_M_flags & regex_constants::collate)
- if (_M_is_icase())
- __ch = _M_traits.translate_nocase(__ch);
- else
- __ch = _M_traits.translate(__ch);
+ if (_M_is_icase())
+ __ch = _M_traits.translate_nocase(__ch);
+ else
+ __ch = _M_traits.translate(__ch);
bool __ret = false;
for (auto __c : _M_char_set)
- if (__c == __ch)
- {
- __ret = true;
- break;
- }
+ if (__c == __ch)
+ {
+ __ret = true;
+ break;
+ }
if (!__ret && _M_traits.isctype(__oldch, _M_class_set))
- __ret = true;
+ __ret = true;
else
- {
- _StringT __s = _M_get_str(__ch);
- for (auto& __it : _M_range_set)
- if (__it.first <= __s && __s <= __it.second)
- {
- __ret = true;
- break;
- }
- }
+ {
+ _StringT __s = _M_get_str(__ch);
+ for (auto& __it : _M_range_set)
+ if (__it.first <= __s && __s <= __it.second)
+ {
+ __ret = true;
+ break;
+ }
+ }
if (_M_is_non_matching)
- __ret = !__ret;
+ __ret = !__ret;
return __ret;
}
diff --git a/libstdc++-v3/include/bits/regex_constants.h b/libstdc++-v3/include/bits/regex_constants.h
index 03e25e2..23174be 100644
--- a/libstdc++-v3/include/bits/regex_constants.h
+++ b/libstdc++-v3/include/bits/regex_constants.h
@@ -164,21 +164,21 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
operator&(syntax_option_type __a, syntax_option_type __b)
{
return (syntax_option_type)(static_cast<unsigned int>(__a)
- & static_cast<unsigned int>(__b));
+ & static_cast<unsigned int>(__b));
}
constexpr inline syntax_option_type
operator|(syntax_option_type __a, syntax_option_type __b)
{
return (syntax_option_type)(static_cast<unsigned int>(__a)
- | static_cast<unsigned int>(__b));
+ | static_cast<unsigned int>(__b));
}
constexpr inline syntax_option_type
operator^(syntax_option_type __a, syntax_option_type __b)
{
return (syntax_option_type)(static_cast<unsigned int>(__a)
- ^ static_cast<unsigned int>(__b));
+ ^ static_cast<unsigned int>(__b));
}
constexpr inline syntax_option_type
diff --git a/libstdc++-v3/include/bits/regex_executor.h b/libstdc++-v3/include/bits/regex_executor.h
index e2d6e6e..23998ed 100644
--- a/libstdc++-v3/include/bits/regex_executor.h
+++ b/libstdc++-v3/include/bits/regex_executor.h
@@ -76,17 +76,17 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
protected:
typedef typename _NFA<_CharT, _TraitsT>::_SizeT _SizeT;
_Executor(_BiIter __begin,
- _BiIter __end,
- _ResultsT& __results,
- _FlagT __flags,
- _SizeT __size)
+ _BiIter __end,
+ _ResultsT& __results,
+ _FlagT __flags,
+ _SizeT __size)
: _M_current(__begin), _M_end(__end), _M_results(__results),
- _M_flags(__flags)
+ _M_flags(__flags)
{
- __size += 2;
- _M_results.resize(__size);
- for (auto __i = 0; __i < __size; __i++)
- _M_results[__i].matched = false;
+ __size += 2;
+ _M_results.resize(__size);
+ for (auto __i = 0; __i < __size; __i++)
+ _M_results[__i].matched = false;
}
_BiIter _M_current;
@@ -121,12 +121,12 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
typedef regex_constants::match_flag_type _FlagT;
_DFSExecutor(_BiIter __begin,
- _BiIter __end,
- _ResultsT& __results,
- const _RegexT& __nfa,
- _FlagT __flags)
+ _BiIter __end,
+ _ResultsT& __results,
+ const _RegexT& __nfa,
+ _FlagT __flags)
: _BaseT(__begin, __end, __results, __flags, __nfa._M_sub_count()),
- _M_traits(_TraitsT()), _M_nfa(__nfa), _M_results_ret(this->_M_results)
+ _M_traits(_TraitsT()), _M_nfa(__nfa), _M_results_ret(this->_M_results)
{ }
void
@@ -139,8 +139,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
private:
template<bool __match_mode>
- bool
- _M_dfs(_StateIdT __i);
+ bool
+ _M_dfs(_StateIdT __i);
_ResultsVec _M_results_ret;
_TraitsT _M_traits;
@@ -174,17 +174,17 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
typedef regex_constants::match_flag_type _FlagT;
_BFSExecutor(_BiIter __begin,
- _BiIter __end,
- _ResultsT& __results,
- const _RegexT& __nfa,
- _FlagT __flags)
+ _BiIter __end,
+ _ResultsT& __results,
+ const _RegexT& __nfa,
+ _FlagT __flags)
: _BaseT(__begin, __end, __results, __flags, __nfa._M_sub_count()),
- _M_nfa(__nfa)
+ _M_nfa(__nfa)
{
- if (_M_nfa._M_start() != _S_invalid_state_id)
- _M_covered[_M_nfa._M_start()] =
- _ResultsPtr(new _ResultsVec(this->_M_results));
- _M_e_closure();
+ if (_M_nfa._M_start() != _S_invalid_state_id)
+ _M_covered[_M_nfa._M_start()] =
+ _ResultsPtr(new _ResultsVec(this->_M_results));
+ _M_e_closure();
}
void
@@ -197,8 +197,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
private:
template<bool __match_mode>
- void
- _M_main_loop();
+ void
+ _M_main_loop();
void
_M_e_closure();
diff --git a/libstdc++-v3/include/bits/regex_executor.tcc b/libstdc++-v3/include/bits/regex_executor.tcc
index 9115ea0..bc99331 100644
--- a/libstdc++-v3/include/bits/regex_executor.tcc
+++ b/libstdc++-v3/include/bits/regex_executor.tcc
@@ -41,97 +41,97 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_M_dfs(_StateIdT __i)
{
if (__i == _S_invalid_state_id)
- // This is not that certain. Need deeper investigate.
- return false;
+ // This is not that certain. Need deeper investigate.
+ return false;
auto& __current = this->_M_current;
auto& __end = this->_M_end;
auto& __results = _M_results_ret;
const auto& __state = _M_nfa[__i];
bool __ret = false;
switch (__state._M_opcode)
- {
- case _S_opcode_alternative:
- // Greedy mode by default. For non-greedy mode,
- // swap _M_alt and _M_next.
- // TODO: Add greedy mode option.
- __ret = _M_dfs<__match_mode>(__state._M_alt)
- || _M_dfs<__match_mode>(__state._M_next);
- break;
- case _S_opcode_subexpr_begin:
- // Here's the critical part: if there's nothing changed since last
- // visit, do NOT continue. This prevents the executor from get into
- // infinite loop when use "()*" to match "".
- //
- // Every change on __results will be roll back after the recursion
- // step finished.
- if (!__results[__state._M_subexpr].matched
- || __results[__state._M_subexpr].first != __current)
- {
- auto __back = __current;
- __results[__state._M_subexpr].first = __current;
- __ret = _M_dfs<__match_mode>(__state._M_next);
- __results[__state._M_subexpr].first = __back;
- }
- break;
- case _S_opcode_subexpr_end:
- if (__results[__state._M_subexpr].second != __current
- || __results[__state._M_subexpr].matched != true)
- {
- auto __back = __results[__state._M_subexpr];
- __results[__state._M_subexpr].second = __current;
- __results[__state._M_subexpr].matched = true;
- __ret = _M_dfs<__match_mode>(__state._M_next);
- __results[__state._M_subexpr] = __back;
- }
- else
- __ret = _M_dfs<__match_mode>(__state._M_next);
- break;
- case _S_opcode_match:
- if (__current != __end && __state._M_matches(*__current))
- {
- ++__current;
- __ret = _M_dfs<__match_mode>(__state._M_next);
- --__current;
- }
- break;
- // First fetch the matched result from __results as __submatch;
- // then compare it with
- // (__current, __current + (__submatch.second - __submatch.first))
- // If matched, keep going; else just return to try another state.
- case _S_opcode_backref:
- {
- auto& __submatch = __results[__state._M_backref_index];
- if (!__submatch.matched)
- break;
- auto __last = __current;
- for (auto __tmp = __submatch.first;
- __last != __end && __tmp != __submatch.second;
- ++__tmp)
- ++__last;
- if (_M_traits.transform(__submatch.first, __submatch.second)
- == _M_traits.transform(__current, __last))
- if (__last != __current)
- {
- auto __backup = __current;
- __current = __last;
- __ret = _M_dfs<__match_mode>(__state._M_next);
- __current = __backup;
- }
- else
- __ret = _M_dfs<__match_mode>(__state._M_next);
- }
- break;
- case _S_opcode_accept:
- if (__match_mode)
- __ret = __current == __end;
- else
- __ret = true;
- if (__ret)
- this->_M_results = __results;
- break;
- default:
- _GLIBCXX_DEBUG_ASSERT(false);
- }
+ {
+ case _S_opcode_alternative:
+ // Greedy mode by default. For non-greedy mode,
+ // swap _M_alt and _M_next.
+ // TODO: Add greedy mode option.
+ __ret = _M_dfs<__match_mode>(__state._M_alt)
+ || _M_dfs<__match_mode>(__state._M_next);
+ break;
+ case _S_opcode_subexpr_begin:
+ // Here's the critical part: if there's nothing changed since last
+ // visit, do NOT continue. This prevents the executor from get into
+ // infinite loop when use "()*" to match "".
+ //
+ // Every change on __results will be roll back after the recursion
+ // step finished.
+ if (!__results[__state._M_subexpr].matched
+ || __results[__state._M_subexpr].first != __current)
+ {
+ auto __back = __current;
+ __results[__state._M_subexpr].first = __current;
+ __ret = _M_dfs<__match_mode>(__state._M_next);
+ __results[__state._M_subexpr].first = __back;
+ }
+ break;
+ case _S_opcode_subexpr_end:
+ if (__results[__state._M_subexpr].second != __current
+ || __results[__state._M_subexpr].matched != true)
+ {
+ auto __back = __results[__state._M_subexpr];
+ __results[__state._M_subexpr].second = __current;
+ __results[__state._M_subexpr].matched = true;
+ __ret = _M_dfs<__match_mode>(__state._M_next);
+ __results[__state._M_subexpr] = __back;
+ }
+ else
+ __ret = _M_dfs<__match_mode>(__state._M_next);
+ break;
+ case _S_opcode_match:
+ if (__current != __end && __state._M_matches(*__current))
+ {
+ ++__current;
+ __ret = _M_dfs<__match_mode>(__state._M_next);
+ --__current;
+ }
+ break;
+ // First fetch the matched result from __results as __submatch;
+ // then compare it with
+ // (__current, __current + (__submatch.second - __submatch.first))
+ // If matched, keep going; else just return to try another state.
+ case _S_opcode_backref:
+ {
+ auto& __submatch = __results[__state._M_backref_index];
+ if (!__submatch.matched)
+ break;
+ auto __last = __current;
+ for (auto __tmp = __submatch.first;
+ __last != __end && __tmp != __submatch.second;
+ ++__tmp)
+ ++__last;
+ if (_M_traits.transform(__submatch.first, __submatch.second)
+ == _M_traits.transform(__current, __last))
+ if (__last != __current)
+ {
+ auto __backup = __current;
+ __current = __last;
+ __ret = _M_dfs<__match_mode>(__state._M_next);
+ __current = __backup;
+ }
+ else
+ __ret = _M_dfs<__match_mode>(__state._M_next);
+ }
+ break;
+ case _S_opcode_accept:
+ if (__match_mode)
+ __ret = __current == __end;
+ else
+ __ret = true;
+ if (__ret)
+ this->_M_results = __results;
+ break;
+ default:
+ _GLIBCXX_DEBUG_ASSERT(false);
+ }
return __ret;
}
@@ -142,14 +142,14 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_M_main_loop()
{
while (this->_M_current != this->_M_end)
- {
- if (!__match_mode)
- if (_M_includes_some())
- return;
- _M_move();
- ++this->_M_current;
- _M_e_closure();
- }
+ {
+ if (!__match_mode)
+ if (_M_includes_some())
+ return;
+ _M_move();
+ ++this->_M_current;
+ _M_e_closure();
+ }
_M_includes_some();
}
@@ -162,73 +162,73 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
std::queue<_StateIdT> __q;
std::vector<bool> __in_q(_M_nfa.size(), false);
for (auto& __it : _M_covered)
- {
- __in_q[__it.first] = true;
- __q.push(__it.first);
- }
+ {
+ __in_q[__it.first] = true;
+ __q.push(__it.first);
+ }
while (!__q.empty())
- {
- auto __u = __q.front();
- __q.pop();
- __in_q[__u] = false;
- const auto& __state = _M_nfa[__u];
+ {
+ auto __u = __q.front();
+ __q.pop();
+ __in_q[__u] = false;
+ const auto& __state = _M_nfa[__u];
- // Can be implemented using method, but there're too much arguments.
- // I would use macro function before C++11, but lambda is a better
- // choice, since hopefully compiler can inline it.
- auto __add_visited_state = [&](_StateIdT __v)
- {
- if (__v == _S_invalid_state_id)
- return;
- if (_M_covered.count(__u) != 0
- && (_M_covered.count(__v) == 0
- || _M_match_less_than(*_M_covered[__u], *_M_covered[__v])))
- {
- _M_covered[__v] = _ResultsPtr(new _ResultsVec(*_M_covered[__u]));
- // if a state is updated, it's outgoing neighbors should be
- // reconsidered too. Push them to the queue.
- if (!__in_q[__v])
- {
- __in_q[__v] = true;
- __q.push(__v);
- }
- }
- };
+ // Can be implemented using method, but there're too much arguments.
+ // I would use macro function before C++11, but lambda is a better
+ // choice, since hopefully compiler can inline it.
+ auto __add_visited_state = [&](_StateIdT __v)
+ {
+ if (__v == _S_invalid_state_id)
+ return;
+ if (_M_covered.count(__u) != 0
+ && (_M_covered.count(__v) == 0
+ || _M_match_less_than(*_M_covered[__u], *_M_covered[__v])))
+ {
+ _M_covered[__v] = _ResultsPtr(new _ResultsVec(*_M_covered[__u]));
+ // if a state is updated, it's outgoing neighbors should be
+ // reconsidered too. Push them to the queue.
+ if (!__in_q[__v])
+ {
+ __in_q[__v] = true;
+ __q.push(__v);
+ }
+ }
+ };
- switch (__state._M_opcode)
- {
- case _S_opcode_alternative:
- __add_visited_state(__state._M_next);
- __add_visited_state(__state._M_alt);
- break;
- case _S_opcode_subexpr_begin:
- {
- auto& __cu = *_M_covered[__u];
- auto __back = __cu[__state._M_subexpr].first;
- __cu[__state._M_subexpr].first = __current;
- __add_visited_state(__state._M_next);
- __cu[__state._M_subexpr].first = __back;
- }
- break;
- case _S_opcode_subexpr_end:
- {
- auto& __cu = *_M_covered[__u];
- auto __back = __cu[__state._M_subexpr];
- __cu[__state._M_subexpr].second = __current;
- __cu[__state._M_subexpr].matched = true;
- __add_visited_state(__state._M_next);
- __cu[__state._M_subexpr] = __back;
- }
- break;
- case _S_opcode_match:
- break;
- case _S_opcode_accept:
- __add_visited_state(__state._M_next);
- break;
- default:
- _GLIBCXX_DEBUG_ASSERT(false);
- }
- }
+ switch (__state._M_opcode)
+ {
+ case _S_opcode_alternative:
+ __add_visited_state(__state._M_next);
+ __add_visited_state(__state._M_alt);
+ break;
+ case _S_opcode_subexpr_begin:
+ {
+ auto& __cu = *_M_covered[__u];
+ auto __back = __cu[__state._M_subexpr].first;
+ __cu[__state._M_subexpr].first = __current;
+ __add_visited_state(__state._M_next);
+ __cu[__state._M_subexpr].first = __back;
+ }
+ break;
+ case _S_opcode_subexpr_end:
+ {
+ auto& __cu = *_M_covered[__u];
+ auto __back = __cu[__state._M_subexpr];
+ __cu[__state._M_subexpr].second = __current;
+ __cu[__state._M_subexpr].matched = true;
+ __add_visited_state(__state._M_next);
+ __cu[__state._M_subexpr] = __back;
+ }
+ break;
+ case _S_opcode_match:
+ break;
+ case _S_opcode_accept:
+ __add_visited_state(__state._M_next);
+ break;
+ default:
+ _GLIBCXX_DEBUG_ASSERT(false);
+ }
+ }
}
template<typename _BiIter, typename _Alloc,
@@ -238,15 +238,15 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
{
decltype(_M_covered) __next;
for (auto& __it : _M_covered)
- {
- const auto& __state = _M_nfa[__it.first];
- if (__state._M_opcode == _S_opcode_match
- && __state._M_matches(*this->_M_current))
- if (__state._M_next != _S_invalid_state_id)
- if (__next.count(__state._M_next) == 0
- || _M_match_less_than(*__it.second, *__next[__state._M_next]))
- __next[__state._M_next] = move(__it.second);
- }
+ {
+ const auto& __state = _M_nfa[__it.first];
+ if (__state._M_opcode == _S_opcode_match
+ && __state._M_matches(*this->_M_current))
+ if (__state._M_next != _S_invalid_state_id)
+ if (__next.count(__state._M_next) == 0
+ || _M_match_less_than(*__it.second, *__next[__state._M_next]))
+ __next[__state._M_next] = move(__it.second);
+ }
_M_covered = move(__next);
}
@@ -259,21 +259,21 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_GLIBCXX_DEBUG_ASSERT(__u.size() == __v.size());
auto __size = __u.size();
for (auto __i = 0; __i < __size; __i++)
- {
- auto& __uit = __u[__i], __vit = __v[__i];
- if (__uit.matched && !__vit.matched)
- return true;
- if (!__uit.matched && __vit.matched)
- return false;
- if (__uit.matched && __vit.matched)
- {
- // GREEDY
- if (__uit.first != __vit.first)
- return __uit.first < __vit.first;
- if (__uit.second != __vit.second)
- return __uit.second > __vit.second;
- }
- }
+ {
+ auto& __uit = __u[__i], __vit = __v[__i];
+ if (__uit.matched && !__vit.matched)
+ return true;
+ if (!__uit.matched && __vit.matched)
+ return false;
+ if (__uit.matched && __vit.matched)
+ {
+ // GREEDY
+ if (__uit.first != __vit.first)
+ return __uit.first < __vit.first;
+ if (__uit.second != __vit.second)
+ return __uit.second > __vit.second;
+ }
+ }
return false;
}
@@ -285,22 +285,22 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
auto& __s = _M_nfa._M_final_states();
auto& __t = _M_covered;
if (__s.size() > 0 && __t.size() > 0)
- {
- auto __first = __s.begin();
- auto __second = __t.begin();
- while (__first != __s.end() && __second != __t.end())
- {
- if (*__first < __second->first)
- ++__first;
- else if (__second->first < *__first)
- ++__second;
- else
- {
- this->_M_results = *__second->second;
- return true;
- }
- }
- }
+ {
+ auto __first = __s.begin();
+ auto __second = __t.begin();
+ while (__first != __s.end() && __second != __t.end())
+ {
+ if (*__first < __second->first)
+ ++__first;
+ else if (__second->first < *__first)
+ ++__second;
+ else
+ {
+ this->_M_results = *__second->second;
+ return true;
+ }
+ }
+ }
return false;
}
@@ -308,19 +308,19 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
typename _CharT, typename _TraitsT>
std::unique_ptr<_Executor<_BiIter, _Alloc, _CharT, _TraitsT>>
__get_executor(_BiIter __b,
- _BiIter __e,
- match_results<_BiIter, _Alloc>& __m,
- const basic_regex<_CharT, _TraitsT>& __re,
- regex_constants::match_flag_type __flags)
+ _BiIter __e,
+ match_results<_BiIter, _Alloc>& __m,
+ const basic_regex<_CharT, _TraitsT>& __re,
+ regex_constants::match_flag_type __flags)
{
typedef std::unique_ptr<_Executor<_BiIter, _Alloc, _CharT, _TraitsT>>
- _ExecutorPtr;
+ _ExecutorPtr;
typedef _DFSExecutor<_BiIter, _Alloc, _CharT, _TraitsT> _DFSExecutorT;
typedef _BFSExecutor<_BiIter, _Alloc, _CharT, _TraitsT> _BFSExecutorT;
auto __p = std::static_pointer_cast<_NFA<_CharT, _TraitsT>>
- (__re._M_automaton);
+ (__re._M_automaton);
if (__p->_M_has_backref)
- return _ExecutorPtr(new _DFSExecutorT(__b, __e, __m, *__p, __flags));
+ return _ExecutorPtr(new _DFSExecutorT(__b, __e, __m, *__p, __flags));
return _ExecutorPtr(new _BFSExecutorT(__b, __e, __m, *__p, __flags));
}