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/spirit/include/phoenix_core.hpp> 16 #include <boost/spirit/include/phoenix_operator.hpp> 17 #include <string> 18 main()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