#include <boost/mpl/and.hpp>
#include <boost/type_traits/is_integral.hpp>
#include <boost/type_traits/is_enum.hpp>
-#include <boost/lexical_cast.hpp>
#include <iterator> // for std::iterator_traits
+#include <sstream>
namespace boost { namespace spirit
{
template <typename Context>
info what(Context& /*context*/) const
{
- return info("token",
- "token(" + boost::lexical_cast<utf8_string>(id) + ")");
+ std::stringstream ss;
+ ss << "token(" << id << ")";
+ return info("token", ss.str());
}
TokenId id;
template <typename Context>
info what(Context& /*context*/) const
{
- return info("token_range"
- , "token(" +
- boost::lexical_cast<utf8_string>(idmin) + ", " +
- boost::lexical_cast<utf8_string>(idmax) + ")"
- );
- return info("token_range");
+ std::stringstream ss;
+ ss << "token(" << idmin << ", " << idmax << ")";
+ return info("token_range", ss.str());
}
TokenId idmin, idmax;