Update of /cvsroot/boost/boost/boost/xpressive/detail/core/matcher
In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv16029/detail/core/matcher
Modified Files:
literal_matcher.hpp posix_charset_matcher.hpp
range_matcher.hpp
Log Message:
handle some complemented terminals, misc bug fixes
Index: literal_matcher.hpp
===================================================================
RCS file:
/cvsroot/boost/boost/boost/xpressive/detail/core/matcher/literal_matcher.hpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- literal_matcher.hpp 26 Nov 2005 17:12:25 -0000 1.2
+++ literal_matcher.hpp 6 Apr 2007 02:07:09 -0000 1.3
@@ -33,10 +33,14 @@
typedef mpl::bool_<ICase> icase_type;
char_type ch_;
+ typedef literal_matcher<Traits, ICase, !Not> inverse_type;
+ explicit literal_matcher(inverse_type that)
+ : ch_(that.ch_)
+ {}
+
literal_matcher(char_type ch, Traits const &traits)
: ch_(detail::translate(ch, traits, icase_type()))
- {
- }
+ {}
template<typename BidiIter, typename Next>
bool match(state_type<BidiIter> &state, Next const &next) const
Index: posix_charset_matcher.hpp
===================================================================
RCS file:
/cvsroot/boost/boost/boost/xpressive/detail/core/matcher/posix_charset_matcher.hpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- posix_charset_matcher.hpp 26 Nov 2005 17:12:25 -0000 1.3
+++ posix_charset_matcher.hpp 6 Apr 2007 02:07:09 -0000 1.4
@@ -40,6 +40,11 @@
BOOST_ASSERT(0 != this->mask_);
}
+ void inverse()
+ {
+ this->not_ = !this->not_;
+ }
+
template<typename BidiIter, typename Next>
bool match(state_type<BidiIter> &state, Next const &next) const
{
Index: range_matcher.hpp
===================================================================
RCS file:
/cvsroot/boost/boost/boost/xpressive/detail/core/matcher/range_matcher.hpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- range_matcher.hpp 26 Nov 2005 17:12:25 -0000 1.3
+++ range_matcher.hpp 6 Apr 2007 02:07:09 -0000 1.4
@@ -43,6 +43,11 @@
{
}
+ void inverse()
+ {
+ this->not_ = !this->not_;
+ }
+
bool in_range(Traits const &traits, char_type ch, mpl::false_) const
// case-sensitive
{
return traits.in_range(this->ch_min_, this->ch_max_, ch);
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Boost-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/boost-cvs