1// Copyright (c) 2001-2011 Hartmut Kaiser
2// Copyright (c) 2010 Daniel James
3//
4// Distributed under the Boost Software License, Version 1.0. (See accompanying
5// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6
7// This compilation test fails if proto expressions are not properly
8// distinguished from 'normal' Fusion sequences.
9
10#include <boost/spirit/include/qi_operator.hpp>
11#include <boost/spirit/include/qi_char.hpp>
12#include <boost/spirit/include/qi_symbols.hpp>
13#include <boost/spirit/include/qi_nonterminal.hpp>
14#include <boost/spirit/include/qi_action.hpp>
15#include <boost/phoenix/core.hpp>
16#include <boost/phoenix/operator.hpp>
17#include <string>
18
19int main()
20{
21 namespace qi = boost::spirit::qi;
22 typedef std::string::const_iterator iterator;
23
24 qi::symbols<char, qi::rule<iterator> > phrase_keyword_rules;
25 qi::rule<iterator, qi::locals<qi::rule<iterator> > > phrase_markup_impl;
26
27 phrase_markup_impl
28 = (phrase_keyword_rules >> !qi::alnum) [qi::_a = qi::_1]
29 ;
30
31 return 0;
32}
33

source code of boost/libs/spirit/test/qi/regression_one_element_fusion_sequence.cpp