// Copyright (c) 2001-2010 Hartmut Kaiser // // 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(BOOST_SPIRIT_GENERATE_QIEXPR_IMPL) #define BOOST_SPIRIT_GENERATE_QIEXPR_IMPL #include <iostream> #include <boost/spirit/include/karma_generate.hpp> #include <qi/qiexpr_generator.hpp> #include <qi/generate_qiexpr.hpp> namespace scheme { namespace output { /////////////////////////////////////////////////////////////////////////// template <typename String> bool generate_qi_expr(utree& u, String& str) { using boost::spirit::karma::space; typedef std::back_insert_iterator<String> output_iterator_type; scheme::qi::qiexpr_generator<output_iterator_type> g; return generate_delimited(output_iterator_type(str), g, space, u); } /////////////////////////////////////////////////////////////////////////// template <typename String> bool generate_qi_expr_list(utree& u, String& str) { using boost::spirit::karma::space; typedef std::back_insert_iterator<String> output_iterator_type; scheme::qi::qiexpr_generator<output_iterator_type> g; return generate_delimited(output_iterator_type(str), g.grammar_, space, u); } }} #endif