regex_compiler.h: Remove unnecessary bind() calls.
2011-02-14 Jonathan Wakely <jwakely.gcc@gmail.com> * include/bits/regex_compiler.h: Remove unnecessary bind() calls. * include/bits/regex_nfa.h: Remove unnecessary base classes. From-SVN: r170124
This commit is contained in:
parent
1e26379233
commit
75eec5b611
3 changed files with 20 additions and 33 deletions
|
@ -1,3 +1,8 @@
|
|||
2011-02-14 Jonathan Wakely <jwakely.gcc@gmail.com>
|
||||
|
||||
* include/bits/regex_compiler.h: Remove unnecessary bind() calls.
|
||||
* include/bits/regex_nfa.h: Remove unnecessary base classes.
|
||||
|
||||
2011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
|
||||
|
||||
* configure: Regenerate.
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// class template regex -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2010 Free Software Foundation, Inc.
|
||||
// Copyright (C) 2010, 2011 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
|
||||
|
@ -714,23 +714,18 @@ namespace __regex
|
|||
: _M_traits(__traits), _M_scanner(__b, __e, __flags, _M_traits.getloc()),
|
||||
_M_state_store(__flags)
|
||||
{
|
||||
using std::bind;
|
||||
using std::placeholders::_1;
|
||||
using std::placeholders::_2;
|
||||
typedef _StartTagger<_InIter, _TraitsT> _Start;
|
||||
typedef _EndTagger<_InIter, _TraitsT> _End;
|
||||
|
||||
_StateSeq __r(_M_state_store,
|
||||
_M_state_store._M_insert_subexpr_begin(
|
||||
bind(_Start(0), _1, _2)));
|
||||
_M_state_store._M_insert_subexpr_begin(_Start(0)));
|
||||
_M_disjunction();
|
||||
if (!_M_stack.empty())
|
||||
{
|
||||
__r._M_append(_M_stack.top());
|
||||
_M_stack.pop();
|
||||
}
|
||||
__r._M_append(_M_state_store.
|
||||
_M_insert_subexpr_end(0, bind(_End(0), _1, _2)));
|
||||
__r._M_append(_M_state_store._M_insert_subexpr_end(0, _End(0)));
|
||||
__r._M_append(_M_state_store._M_insert_accept());
|
||||
}
|
||||
|
||||
|
@ -905,9 +900,6 @@ namespace __regex
|
|||
_Compiler<_InIter, _TraitsT>::
|
||||
_M_atom()
|
||||
{
|
||||
using std::bind;
|
||||
using std::placeholders::_1;
|
||||
using std::placeholders::_2;
|
||||
typedef _CharMatcher<_InIter, _TraitsT> _CMatcher;
|
||||
typedef _StartTagger<_InIter, _TraitsT> _Start;
|
||||
typedef _EndTagger<_InIter, _TraitsT> _End;
|
||||
|
@ -915,26 +907,23 @@ namespace __regex
|
|||
if (_M_match_token(_ScannerT::_S_token_anychar))
|
||||
{
|
||||
_M_stack.push(_StateSeq(_M_state_store,
|
||||
_M_state_store.
|
||||
_M_insert_matcher(bind(_AnyMatcher, _1))));
|
||||
_M_state_store._M_insert_matcher
|
||||
(_AnyMatcher)));
|
||||
return true;
|
||||
}
|
||||
if (_M_match_token(_ScannerT::_S_token_ord_char))
|
||||
{
|
||||
_M_stack.push(_StateSeq
|
||||
(_M_state_store, _M_state_store.
|
||||
_M_insert_matcher
|
||||
(bind(_CMatcher(_M_cur_value[0], _M_traits), _1))));
|
||||
_M_stack.push(_StateSeq(_M_state_store,
|
||||
_M_state_store._M_insert_matcher
|
||||
(_CMatcher(_M_cur_value[0], _M_traits))));
|
||||
return true;
|
||||
}
|
||||
if (_M_match_token(_ScannerT::_S_token_quoted_char))
|
||||
{
|
||||
// note that in the ECMA grammar, this case covers backrefs.
|
||||
_M_stack.push(_StateSeq(_M_state_store,
|
||||
_M_state_store.
|
||||
_M_insert_matcher
|
||||
(bind(_CMatcher(_M_cur_value[0], _M_traits),
|
||||
_1))));
|
||||
_M_state_store._M_insert_matcher
|
||||
(_CMatcher(_M_cur_value[0], _M_traits))));
|
||||
return true;
|
||||
}
|
||||
if (_M_match_token(_ScannerT::_S_token_backref))
|
||||
|
@ -947,7 +936,7 @@ namespace __regex
|
|||
int __mark = _M_state_store._M_sub_count();
|
||||
_StateSeq __r(_M_state_store,
|
||||
_M_state_store.
|
||||
_M_insert_subexpr_begin(bind(_Start(__mark), _1, _2)));
|
||||
_M_insert_subexpr_begin(_Start(__mark)));
|
||||
this->_M_disjunction();
|
||||
if (!_M_match_token(_ScannerT::_S_token_subexpr_end))
|
||||
__throw_regex_error(regex_constants::error_paren);
|
||||
|
@ -957,7 +946,7 @@ namespace __regex
|
|||
_M_stack.pop();
|
||||
}
|
||||
__r._M_append(_M_state_store._M_insert_subexpr_end
|
||||
(__mark, bind(_End(__mark), _1, _2)));
|
||||
(__mark, _End(__mark)));
|
||||
_M_stack.push(__r);
|
||||
return true;
|
||||
}
|
||||
|
@ -969,8 +958,6 @@ namespace __regex
|
|||
_Compiler<_InIter, _TraitsT>::
|
||||
_M_bracket_expression()
|
||||
{
|
||||
using std::bind;
|
||||
using std::placeholders::_1;
|
||||
if (_M_match_token(_ScannerT::_S_token_bracket_begin))
|
||||
{
|
||||
_RMatcherT __matcher(_M_match_token(_ScannerT::_S_token_line_begin),
|
||||
|
@ -979,8 +966,7 @@ namespace __regex
|
|||
|| !_M_match_token(_ScannerT::_S_token_bracket_end))
|
||||
__throw_regex_error(regex_constants::error_brack);
|
||||
_M_stack.push(_StateSeq(_M_state_store,
|
||||
_M_state_store._M_insert_matcher
|
||||
(bind(__matcher, _1))));
|
||||
_M_state_store._M_insert_matcher(__matcher)));
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// class template regex -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2010 Free Software Foundation, Inc.
|
||||
// Copyright (C) 2010, 2011 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
|
||||
|
@ -82,7 +82,6 @@ namespace __regex
|
|||
|
||||
template<typename _FwdIterT, typename _TraitsT>
|
||||
struct _StartTagger
|
||||
: public _Tagger
|
||||
{
|
||||
explicit
|
||||
_StartTagger(int __i)
|
||||
|
@ -98,7 +97,6 @@ namespace __regex
|
|||
|
||||
template<typename _FwdIterT, typename _TraitsT>
|
||||
struct _EndTagger
|
||||
: public _Tagger
|
||||
{
|
||||
explicit
|
||||
_EndTagger(int __i)
|
||||
|
@ -123,7 +121,6 @@ namespace __regex
|
|||
// Matches a single character
|
||||
template<typename _InIterT, typename _TraitsT>
|
||||
struct _CharMatcher
|
||||
: public _Matcher
|
||||
{
|
||||
typedef typename _TraitsT::char_type char_type;
|
||||
|
||||
|
@ -147,7 +144,6 @@ namespace __regex
|
|||
// Matches a character range (bracket expression)
|
||||
template<typename _InIterT, typename _TraitsT>
|
||||
struct _RangeMatcher
|
||||
: public _Matcher
|
||||
{
|
||||
typedef typename _TraitsT::char_type _CharT;
|
||||
typedef std::basic_string<_CharT> _StringT;
|
||||
|
@ -208,7 +204,7 @@ namespace __regex
|
|||
typedef int _OpcodeT;
|
||||
|
||||
_OpcodeT _M_opcode; // type of outgoing transition
|
||||
_StateIdT _M_next; // outgoing tranition
|
||||
_StateIdT _M_next; // outgoing transition
|
||||
_StateIdT _M_alt; // for _S_opcode_alternative
|
||||
unsigned int _M_subexpr; // for _S_opcode_subexpr_*
|
||||
_Tagger _M_tagger; // for _S_opcode_subexpr_*
|
||||
|
|
Loading…
Add table
Reference in a new issue