/usr/include/boost/xpressive/detail/static/transforms
NameSizeModeActions
as_action.hpp116900644editdlrm
as_alternate.hpp48560644editdlrm
as_independent.hpp70240644editdlrm
as_inverse.hpp27330644editdlrm
as_marker.hpp20250644editdlrm
as_matcher.hpp14980644editdlrm
as_modifier.hpp26780644editdlrm
as_quantifier.hpp133860644editdlrm
as_sequence.hpp17190644editdlrm
as_set.hpp75780644editdlrm
Edit: /usr/include/boost/xpressive/detail/static/transforms/as_inverse.hpp (2733B)
/////////////////////////////////////////////////////////////////////////////// // as_inverse.hpp // // Copyright 2008 Eric Niebler. Distributed under the Boost // Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) #ifndef BOOST_XPRESSIVE_DETAIL_STATIC_TRANSFORMS_AS_INVERSE_HPP_EAN_04_05_2007 #define BOOST_XPRESSIVE_DETAIL_STATIC_TRANSFORMS_AS_INVERSE_HPP_EAN_04_05_2007 // MS compatible compilers support #pragma once #if defined(_MSC_VER) # pragma once #endif #include #include #include #include #include #define UNCV(x) typename remove_const::type #define UNREF(x) typename remove_reference::type #define UNCVREF(x) UNCV(UNREF(x)) namespace boost { namespace xpressive { namespace grammar_detail { template struct inverter { typedef T type; static T call(T t) { t.inverse(); return t; } }; template struct inverter > { typedef detail::literal_matcher::type> type; static type call(detail::literal_matcher t) { return type(t.ch_); } }; template struct inverter > { // ~_ln matches any one character that is not in the "newline" character class typedef detail::posix_charset_matcher type; static type call(detail::logical_newline_matcher t) { return type(t.newline(), true); } }; template struct inverter, Traits> > { typedef detail::assert_word_matcher, Traits> type; static type call(detail::assert_word_matcher, Traits> t) { return type(t.word()); } }; struct as_inverse : proto::callable { template struct result; template struct result : inverter {}; template typename inverter::type operator ()(Matcher const &matcher) const { return inverter::call(matcher); } }; }}} #undef UNCV #undef UNREF #undef UNCVREF #endif