Chris@16: // Copyright (c) 2001-2011 Hartmut Kaiser Chris@16: // Chris@16: // Distributed under the Boost Software License, Version 1.0. (See accompanying Chris@16: // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) Chris@16: Chris@16: #if !defined(BOOST_SPIRIT_LEX_SEQUENCE_FUNCTION_FEB_28_2007_0249PM) Chris@16: #define BOOST_SPIRIT_LEX_SEQUENCE_FUNCTION_FEB_28_2007_0249PM Chris@16: Chris@16: #if defined(_MSC_VER) Chris@16: #pragma once Chris@16: #endif Chris@16: Chris@16: #include Chris@16: #include Chris@16: Chris@16: namespace boost { namespace spirit { namespace lex { namespace detail Chris@16: { Chris@16: template Chris@16: struct sequence_collect_function Chris@16: { Chris@16: sequence_collect_function(LexerDef& def_, String const& state_ Chris@16: , String const& targetstate_) Chris@16: : def(def_), state(state_), targetstate(targetstate_) {} Chris@16: Chris@16: template Chris@16: bool operator()(Component const& component) const Chris@16: { Chris@16: component.collect(def, state, targetstate); Chris@16: return false; // execute for all sequence elements Chris@16: } Chris@16: Chris@16: LexerDef& def; Chris@16: String const& state; Chris@16: String const& targetstate; Chris@16: Chris@16: private: Chris@16: // silence MSVC warning C4512: assignment operator could not be generated Chris@16: sequence_collect_function& operator= (sequence_collect_function const&); Chris@16: }; Chris@16: Chris@16: template Chris@16: struct sequence_add_actions_function Chris@16: { Chris@16: sequence_add_actions_function(LexerDef& def_) Chris@16: : def(def_) {} Chris@16: Chris@16: template Chris@16: bool operator()(Component const& component) const Chris@16: { Chris@16: component.add_actions(def); Chris@16: return false; // execute for all sequence elements Chris@16: } Chris@16: Chris@16: LexerDef& def; Chris@16: Chris@16: private: Chris@16: // silence MSVC warning C4512: assignment operator could not be generated Chris@16: sequence_add_actions_function& operator= (sequence_add_actions_function const&); Chris@16: }; Chris@16: Chris@16: }}}} Chris@16: Chris@16: #endif