blob: 30e2751dc7314a82832e1b53ff73eeaa6d247560 [file] [log] [blame]
/*=============================================================================
Copyright (c) 2001-2007 Joel de Guzman
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)
=============================================================================*/
#if !defined(SPIRIT_WHAT_FUNCTION_APR_22_2007_0236PM)
#define SPIRIT_WHAT_FUNCTION_APR_22_2007_0236PM
#include <string>
namespace boost { namespace spirit { namespace detail
{
template <typename Context>
struct what_function
{
what_function(std::string& str, Context const& ctx)
: str(str), ctx(ctx), first(true)
{
}
template <typename Component>
void operator()(Component const& component) const
{
if (first)
first = false;
else
str += ", ";
typedef typename Component::director director;
str += director::what(component, ctx);
}
std::string& str;
Context const& ctx;
mutable bool first;
};
}}}
#endif