/////////////////////////////////////////////////////////////////////////////// // action.hpp // // Copyright 2004 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_CORE_ACTION_HPP_EAN_10_04_2005 #define BOOST_XPRESSIVE_DETAIL_CORE_ACTION_HPP_EAN_10_04_2005 // MS compatible compilers support #pragma once #if defined(_MSC_VER) && (_MSC_VER >= 1020) # pragma once #endif #include #include #include #include #include #include namespace boost { namespace xpressive { /////////////////////////////////////////////////////////////////////////////// // action // template struct action : detail::action_matcher { typedef Action action_type; typedef Saved saved_type; Saved &save() { return *static_cast(this); } template bool operator ()(match_results const &match, BidiIter cur) { return true; } void restore(Saved const &saved) { this->action_() = saved; } }; template struct action : action { int save() { return 0; } void restore(int) { } }; }} // namespace boost::xpressive #endif