6bea365c51
[SVN r58589]
64 lines
1.8 KiB
C++
64 lines
1.8 KiB
C++
// 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)
|
|
|
|
// The purpose of this example is to demonstrate different use cases for the
|
|
// confix generator.
|
|
|
|
#include <iostream>
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
//[karma_confix_includes
|
|
#include <boost/spirit/include/karma.hpp>
|
|
#include <boost/spirit/repository/include/karma_confix.hpp>
|
|
//]
|
|
|
|
//[karma_confix_namespace
|
|
using namespace boost::spirit;
|
|
using namespace boost::spirit::ascii;
|
|
using boost::spirit::repository::confix;
|
|
//]
|
|
|
|
int main()
|
|
{
|
|
//[karma_confix_cpp_comment
|
|
// C++ comment
|
|
std::cout <<
|
|
karma::format_delimited(
|
|
confix("//", eol)[string], // format description
|
|
space, // delimiter
|
|
"This is a comment" // data
|
|
) << std::endl;
|
|
//]
|
|
|
|
//[karma_confix_c_comment
|
|
// C comment
|
|
std::cout <<
|
|
karma::format_delimited(
|
|
confix("/*", "*/")[string], // format description
|
|
space, // delimiter
|
|
"This is a comment" // data
|
|
) << std::endl;
|
|
//]
|
|
|
|
//[karma_confix_function
|
|
// Generate a function call with an arbitrary parameter list
|
|
std::vector<std::string> parameters;
|
|
parameters.push_back("par1");
|
|
parameters.push_back("par2");
|
|
parameters.push_back("par3");
|
|
|
|
std::cout <<
|
|
karma::format(
|
|
string << confix('(', ')')[string % ','], // format description
|
|
"func", // function name
|
|
parameters // parameter names
|
|
) << std::endl;
|
|
//]
|
|
|
|
return 0;
|
|
}
|
|
|