Boost Spirit is a… highly impressive parser generator for C++. I might even call it a little too impressive but that’s because I’m not really a C++ programmer.
Anyway,
I was using pyparsing, which is a parser for Python that let’s you combine parsers with overloaded operators in nice ways, like this:
1
2 nl = Reg(r'[ \t]*\n')
3 small_nl = nl + NotAny(nl)
4 big_nl = nl + nl
5
6 word = Reg(r'[\w]+')
7 space = Reg(r'[ \t]+')
8 junk = Reg(r'[^\s\w\.\!\?]+')
9 gap = OneOrMore(space ^ junk ^ small_nl).leaveWhitespace()
10
11 stop = Reg(r'[\.\!\?]')
12
(I was parsing English sentences)
It’s a pretty nice API; the only real downside is it’s amazingly slow (yes, some of that is my fault for using regexes as nothing more than character classes). And since I already had the algorithm worked out, I thought I might as well give Spirit a shot.
Spirit works template metaprogramming to the max, which can result in errors like the following:
In file included from /usr/local/include/boost/spirit/home/qi/detail/parse_auto.hpp:14,
from /usr/local/include/boost/spirit/home/qi/auto.hpp:16,
from /usr/local/include/boost/spirit/home/qi.hpp:15,
from /usr/local/include/boost/spirit/include/qi.hpp:16,
from spirit-test.cpp:2:
/usr/local/include/boost/spirit/home/qi/parse.hpp: In function ‘bool boost::spirit::qi::parse(Iterator&, Iterator, const Expr&, Attr&) [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits, std::allocator > >, Expr = boost::proto::exprns_::expr<boost::proto::tag::modulus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::modulus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<const boost::spirit::terminal<boost::spirit::tag::char_code >&, const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::unary_plus, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&>, 1l>&, const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>, Attr = std::vector<std::vector<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > >, std::allocator<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > > > >, std::allocator<std::vector<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > >, std::allocator<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > > > > > >]’:
/usr/local/include/boost/spirit/home/qi/parse.hpp:80: instantiated from ‘bool boost::spirit::qi::parse(const Iterator&, Iterator, const Expr&, Attr&) [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits, std::allocator > >, Expr = boost::proto::exprns_::expr<boost::proto::tag::modulus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::modulus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<const boost::spirit::terminal<boost::spirit::tag::char_code >&, const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::unary_plus, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&>, 1l>&, const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>, Attr = std::vector<std::vector<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > >, std::allocator<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > > > >, std::allocator<std::vector<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > >, std::allocator<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > > > > > >]’
spirit-test.cpp:55: instantiated from here
/usr/local/include/boost/spirit/home/qi/parse.hpp:66: error: no matching function for call to ‘assertion_failed(mpl_::failed************ (boost::spirit::qi::parse(Iterator&, Iterator, const Expr&, Attr&) [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits, std::allocator > >, Expr = boost::proto::exprns_::expr<boost::proto::tag::modulus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::modulus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<const boost::spirit::terminal<boost::spirit::tag::char_code >&, const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::unary_plus, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&>, 1l>&, const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>, Attr = std::vector<std::vector<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > >, std::allocator<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > > > >, std::allocator<std::vector<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > >, std::allocator<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > > > > > >]::error_invalid_expression::************)(boost::proto::exprns_::expr<boost::proto::tag::modulus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::modulus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<const boost::spirit::terminal<boost::spirit::tag::char_code >&, const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::unary_plus, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&>, 1l>&, const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>))’
In file included from /usr/local/include/boost/spirit/home/qi/operator.hpp:20,
from /usr/local/include/boost/spirit/home/qi.hpp:22,
from /usr/local/include/boost/spirit/include/qi.hpp:16,
from spirit-test.cpp:2:
/usr/local/include/boost/spirit/home/qi/operator/list.hpp: In member function ‘bool boost::spirit::qi::list::parse(Iterator&, const Iterator&, Context&, const Skipper&, Attribute&) const [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits, std::allocator > >, Context = const boost::fusion::unused_type, Skipper = boost::fusion::unused_type, Attribute = std::vector<std::vector<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > >, std::allocator<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > > > >, std::allocator<std::vector<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > >, std::allocator<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > > > > > >, Left = boost::spirit::qi::list<boost::spirit::qi::kleene<boost::proto::exprns_::expr<boost::proto::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<const boost::spirit::terminal<boost::spirit::tag::char_code >&, const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::unary_plus, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l> >, boost::fusion::void_>, Right = boost::fusion::void_]’:
/usr/local/include/boost/spirit/home/qi/parse.hpp:68: instantiated from ‘bool boost::spirit::qi::parse(Iterator&, Iterator, const Expr&, Attr&) [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits, std::allocator > >, Expr = boost::proto::exprns_::expr<boost::proto::tag::modulus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::modulus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<const boost::spirit::terminal<boost::spirit::tag::char_code >&, const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::unary_plus, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&>, 1l>&, const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>, Attr = std::vector<std::vector<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > >, std::allocator<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > > > >, std::allocator<std::vector<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > >, std::allocator<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > > > > > >]’
/usr/local/include/boost/spirit/home/qi/parse.hpp:80: instantiated from ‘bool boost::spirit::qi::parse(const Iterator&, Iterator, const Expr&, Attr&) [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits, std::allocator > >, Expr = boost::proto::exprns_::expr<boost::proto::tag::modulus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::modulus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<const boost::spirit::terminal<boost::spirit::tag::char_code >&, const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::unary_plus, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&>, 1l>&, const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>, Attr = std::vector<std::vector<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > >, std::allocator<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > > > >, std::allocator<std::vector<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > >, std::allocator<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > > > > > >]’
spirit-test.cpp:55: instantiated from here
/usr/local/include/boost/spirit/home/qi/operator/list.hpp:75: error: ‘const struct boost::fusion::void_’ has no member named ‘parse’
/usr/local/include/boost/spirit/home/qi/operator/list.hpp: In member function ‘bool boost::spirit::qi::list::parse(Iterator&, const Iterator&, Context&, const Skipper&, Attribute&) const [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits, std::allocator > >, Context = const boost::fusion::unused_type, Skipper = boost::fusion::unused_type, Attribute = boost::spirit::qi::list::parse(Iterator&, const Iterator&, Context&, const Skipper&, Attribute&) const [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits, std::allocator > >, Context = const boost::fusion::unused_type, Skipper = boost::fusion::unused_type, Attribute = std::vector<std::vector<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > >, std::allocator<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > > > >, std::allocator<std::vector<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > >, std::allocator<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > > > > > >, Left = boost::spirit::qi::list<boost::spirit::qi::kleene<boost::proto::exprns_::expr<boost::proto::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<const boost::spirit::terminal<boost::spirit::tag::char_code >&, const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::unary_plus, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l> >, boost::fusion::void_>, Right = boost::fusion::void_]::value_type, Left = boost::spirit::qi::kleene<boost::proto::exprns_::expr<boost::proto::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<const boost::spirit::terminal<boost::spirit::tag::char_code >&, const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::unary_plus, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l> >, Right = boost::fusion::void_]’:
/usr/local/include/boost/spirit/home/qi/operator/list.hpp:68: instantiated from ‘bool boost::spirit::qi::list::parse(Iterator&, const Iterator&, Context&, const Skipper&, Attribute&) const [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits, std::allocator > >, Context = const boost::fusion::unused_type, Skipper = boost::fusion::unused_type, Attribute = std::vector<std::vector<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > >, std::allocator<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > > > >, std::allocator<std::vector<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > >, std::allocator<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > > > > > >, Left = boost::spirit::qi::list<boost::spirit::qi::kleene<boost::proto::exprns_::expr<boost::proto::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<const boost::spirit::terminal<boost::spirit::tag::char_code >&, const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::unary_plus, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l> >, boost::fusion::void_>, Right = boost::fusion::void_]’
/usr/local/include/boost/spirit/home/qi/parse.hpp:68: instantiated from ‘bool boost::spirit::qi::parse(Iterator&, Iterator, const Expr&, Attr&) [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits, std::allocator > >, Expr = boost::proto::exprns_::expr<boost::proto::tag::modulus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::modulus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<const boost::spirit::terminal<boost::spirit::tag::char_code >&, const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::unary_plus, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&>, 1l>&, const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>, Attr = std::vector<std::vector<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > >, std::allocator<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > > > >, std::allocator<std::vector<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > >, std::allocator<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > > > > > >]’
/usr/local/include/boost/spirit/home/qi/parse.hpp:80: instantiated from ‘bool boost::spirit::qi::parse(const Iterator&, Iterator, const Expr&, Attr&) [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits, std::allocator > >, Expr = boost::proto::exprns_::expr<boost::proto::tag::modulus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::modulus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<const boost::spirit::terminal<boost::spirit::tag::char_code >&, const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::unary_plus, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&>, 1l>&, const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>, Attr = std::vector<std::vector<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > >, std::allocator<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > > > >, std::allocator<std::vector<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > >, std::allocator<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > > > > > >]’
spirit-test.cpp:55: instantiated from here
/usr/local/include/boost/spirit/home/qi/operator/list.hpp:75: error: ‘const struct boost::fusion::void_’ has no member named ‘parse’
In file included from /usr/local/include/boost/spirit/home/qi/directive/repeat.hpp:17,
from /usr/local/include/boost/spirit/home/qi/directive.hpp:22,
from /usr/local/include/boost/spirit/home/qi.hpp:19,
from /usr/local/include/boost/spirit/include/qi.hpp:16,
from spirit-test.cpp:2:
/usr/local/include/boost/spirit/home/qi/operator/kleene.hpp: In member function ‘bool boost::spirit::qi::kleene::parse(Iterator&, const Iterator&, Context&, const Skipper&, Attribute&) const [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits, std::allocator > >, Context = const boost::fusion::unused_type, Skipper = boost::fusion::unused_type, Attribute = boost::spirit::qi::list::parse(Iterator&, const Iterator&, Context&, const Skipper&, Attribute&) const [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits, std::allocator > >, Context = const boost::fusion::unused_type, Skipper = boost::fusion::unused_type, Attribute = boost::spirit::qi::list::parse(Iterator&, const Iterator&, Context&, const Skipper&, Attribute&) const [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits, std::allocator > >, Context = const boost::fusion::unused_type, Skipper = boost::fusion::unused_type, Attribute = std::vector<std::vector<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > >, std::allocator<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > > > >, std::allocator<std::vector<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > >, std::allocator<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > > > > > >, Left = boost::spirit::qi::list<boost::spirit::qi::kleene<boost::proto::exprns_::expr<boost::proto::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<const boost::spirit::terminal<boost::spirit::tag::char_code >&, const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::unary_plus, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l> >, boost::fusion::void_>, Right = boost::fusion::void_]::value_type, Left = boost::spirit::qi::kleene<boost::proto::exprns_::expr<boost::proto::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<const boost::spirit::terminal<boost::spirit::tag::char_code >&, const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::unary_plus, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l> >, Right = boost::fusion::void_]::value_type, Subject = boost::proto::exprns_::expr<boost::proto::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<const boost::spirit::terminal<boost::spirit::tag::char_code >&, const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::unary_plus, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>]’:
/usr/local/include/boost/spirit/home/qi/operator/list.hpp:68: instantiated from ‘bool boost::spirit::qi::list::parse(Iterator&, const Iterator&, Context&, const Skipper&, Attribute&) const [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits, std::allocator > >, Context = const boost::fusion::unused_type, Skipper = boost::fusion::unused_type, Attribute = boost::spirit::qi::list::parse(Iterator&, const Iterator&, Context&, const Skipper&, Attribute&) const [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits, std::allocator > >, Context = const boost::fusion::unused_type, Skipper = boost::fusion::unused_type, Attribute = std::vector<std::vector<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > >, std::allocator<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > > > >, std::allocator<std::vector<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > >, std::allocator<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > > > > > >, Left = boost::spirit::qi::list<boost::spirit::qi::kleene<boost::proto::exprns_::expr<boost::proto::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<const boost::spirit::terminal<boost::spirit::tag::char_code >&, const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::unary_plus, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l> >, boost::fusion::void_>, Right = boost::fusion::void_]::value_type, Left = boost::spirit::qi::kleene<boost::proto::exprns_::expr<boost::proto::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<const boost::spirit::terminal<boost::spirit::tag::char_code >&, const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::unary_plus, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l> >, Right = boost::fusion::void_]’
/usr/local/include/boost/spirit/home/qi/operator/list.hpp:68: instantiated from ‘bool boost::spirit::qi::list::parse(Iterator&, const Iterator&, Context&, const Skipper&, Attribute&) const [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits, std::allocator > >, Context = const boost::fusion::unused_type, Skipper = boost::fusion::unused_type, Attribute = std::vector<std::vector<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > >, std::allocator<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > > > >, std::allocator<std::vector<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > >, std::allocator<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > > > > > >, Left = boost::spirit::qi::list<boost::spirit::qi::kleene<boost::proto::exprns_::expr<boost::proto::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<const boost::spirit::terminal<boost::spirit::tag::char_code >&, const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::unary_plus, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l> >, boost::fusion::void_>, Right = boost::fusion::void_]’
/usr/local/include/boost/spirit/home/qi/parse.hpp:68: instantiated from ‘bool boost::spirit::qi::parse(Iterator&, Iterator, const Expr&, Attr&) [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits, std::allocator > >, Expr = boost::proto::exprns_::expr<boost::proto::tag::modulus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::modulus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<const boost::spirit::terminal<boost::spirit::tag::char_code >&, const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::unary_plus, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&>, 1l>&, const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>, Attr = std::vector<std::vector<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > >, std::allocator<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > > > >, std::allocator<std::vector<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > >, std::allocator<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > > > > > >]’
/usr/local/include/boost/spirit/home/qi/parse.hpp:80: instantiated from ‘bool boost::spirit::qi::parse(const Iterator&, Iterator, const Expr&, Attr&) [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits, std::allocator > >, Expr = boost::proto::exprns_::expr<boost::proto::tag::modulus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::modulus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<const boost::spirit::terminal<boost::spirit::tag::char_code >&, const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::unary_plus, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&>, 1l>&, const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>, Attr = std::vector<std::vector<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > >, std::allocator<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > > > >, std::allocator<std::vector<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > >, std::allocator<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > > > > > >]’
spirit-test.cpp:55: instantiated from here
/usr/local/include/boost/spirit/home/qi/operator/kleene.hpp:71: error: ‘const struct boost::proto::exprns_::expr<boost::proto::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<const boost::spirit::terminal<boost::spirit::tag::char_code >&, const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::unary_plus, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>’ has no member named ‘parse’
In file included from /usr/local/include/boost/fusion/container/list/cons.hpp:19,
from /usr/local/include/boost/fusion/view/ext_/segmented_iterator.hpp:23,
from /usr/local/include/boost/proto/fusion.hpp:28,
from /usr/local/include/boost/proto/core.hpp:21,
from /usr/local/include/boost/proto/proto.hpp:12,
from /usr/local/include/boost/spirit/home/support/meta_compiler.hpp:17,
from /usr/local/include/boost/spirit/home/qi/meta_compiler.hpp:14,
from /usr/local/include/boost/spirit/home/qi/action/action.hpp:14,
from /usr/local/include/boost/spirit/home/qi/action.hpp:14,
from /usr/local/include/boost/spirit/home/qi.hpp:14,
from /usr/local/include/boost/spirit/include/qi.hpp:16,
from spirit-test.cpp:2:
/usr/local/include/boost/fusion/container/list/detail/at_impl.hpp: In static member function ‘static typename boost::mpl::eval_if<boost::is_const, boost::fusion::detail::cref_result<boost::fusion::detail::cons_deref<typename boost::fusion::detail::cons_advance::type> >, boost::fusion::detail::ref_result<boost::fusion::detail::cons_deref<typename boost::fusion::detail::cons_advance::type> > >::type boost::fusion::extension::at_impl::apply::call(Cons&, mpl_::int_) [with Cons = const boost::fusion::nil, Sequence = const boost::fusion::cons<boost::spirit::qi::list<boost::spirit::qi::kleene<boost::proto::exprns_::expr<boost::proto::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<const boost::spirit::terminal<boost::spirit::tag::char_code >&, const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::unary_plus, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l> >, boost::fusion::void_>, boost::fusion::nil>, N = mpl_::int_]’:
/usr/local/include/boost/fusion/container/list/detail/at_impl.hpp:112: instantiated from ‘static typename boost::mpl::eval_if<boost::is_const, boost::fusion::detail::cref_result<boost::fusion::detail::cons_deref<typename boost::fusion::detail::cons_advance::type> >, boost::fusion::detail::ref_result<boost::fusion::detail::cons_deref<typename boost::fusion::detail::cons_advance::type> > >::type boost::fusion::extension::at_impl::apply::call(Cons&, mpl_::int_) [with Cons = const boost::fusion::cons<boost::spirit::qi::list<boost::spirit::qi::kleene<boost::proto::exprns_::expr<boost::proto::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<const boost::spirit::terminal<boost::spirit::tag::char_code >&, const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::unary_plus, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l> >, boost::fusion::void_>, boost::fusion::nil>, int N2 = 1, Sequence = const boost::fusion::cons<boost::spirit::qi::list<boost::spirit::qi::kleene<boost::proto::exprns_::expr<boost::proto::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<const boost::spirit::terminal<boost::spirit::tag::char_code >&, const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::unary_plus, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l> >, boost::fusion::void_>, boost::fusion::nil>, N = mpl_::int_]’
/usr/local/include/boost/fusion/container/list/detail/at_impl.hpp:125: instantiated from ‘static typename boost::mpl::eval_if<boost::is_const, boost::fusion::detail::cref_result<boost::fusion::detail::cons_deref<typename boost::fusion::detail::cons_advance::type> >, boost::fusion::detail::ref_result<boost::fusion::detail::cons_deref<typename boost::fusion::detail::cons_advance::type> > >::type boost::fusion::extension::at_impl::apply::call(Sequence&) [with Sequence = const boost::fusion::cons<boost::spirit::qi::list<boost::spirit::qi::kleene<boost::proto::exprns_::expr<boost::proto::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<const boost::spirit::terminal<boost::spirit::tag::char_code >&, const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::unary_plus, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l> >, boost::fusion::void_>, boost::fusion::nil>, N = mpl_::int_]’
/usr/local/include/boost/fusion/sequence/intrinsic/at.hpp:83: instantiated from ‘typename boost::fusion::result_of::at::type boost::fusion::at(const Sequence&) [with N = mpl_::int_, Sequence = boost::fusion::cons<boost::spirit::qi::list<boost::spirit::qi::kleene<boost::proto::exprns_::expr<boost::proto::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<const boost::spirit::terminal<boost::spirit::tag::char_code >&, const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::unary_plus, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l> >, boost::fusion::void_>, boost::fusion::nil>]’
/usr/local/include/boost/fusion/sequence/intrinsic/at.hpp:101: instantiated from ‘typename boost::fusion::result_of::at_c::type boost::fusion::at_c(const Sequence&) [with int N = 1, Sequence = boost::fusion::cons<boost::spirit::qi::list<boost::spirit::qi::kleene<boost::proto::exprns_::expr<boost::proto::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<const boost::spirit::terminal<boost::spirit::tag::char_code >&, const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::unary_plus, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l> >, boost::fusion::void_>, boost::fusion::nil>]’
/usr/local/include/boost/spirit/home/support/meta_compiler.hpp:302: instantiated from ‘generator<typename boost::fusion::result_of::value_at_c::type, typename boost::fusion::result_of::value_at_c::type> boost::spirit::make_binary_composite::operator()(const Elements&, boost::fusion::unused_type) const [with Elements = boost::fusion::cons<boost::spirit::qi::list<boost::spirit::qi::kleene<boost::proto::exprns_::expr<boost::proto::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<const boost::spirit::terminal<boost::spirit::tag::char_code >&, const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::unary_plus, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l> >, boost::fusion::void_>, boost::fusion::nil>, generator = boost::spirit::qi::list]’
/usr/local/include/boost/spirit/home/qi/meta_compiler.hpp:111: instantiated from ‘typename boost::spirit::make_component::result<boost::spirit::make_component(Elements, Modifiers)>::type boost::spirit::make_component::operator()(const Elements&, const Modifiers&) const [with Elements = boost::fusion::cons<boost::spirit::qi::list<boost::spirit::qi::kleene<boost::proto::exprns_::expr<boost::proto::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<const boost::spirit::terminal<boost::spirit::tag::char_code >&, const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::unary_plus, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l> >, boost::fusion::void_>, boost::fusion::nil>, Modifiers = boost::fusion::unused_type, Tag = boost::proto::tag::modulus]’
/usr/local/include/boost/spirit/home/support/make_component.hpp:126: instantiated from ‘typename boost::spirit::make_component::result<boost::spirit::make_component(typename boost::spirit::detail::result_of::make_cons<typename Grammar::result<Grammar(typename boost::proto::result_of::child_c::type, State, Data)>::type, boost::fusion::nil>::type, Data)>::type boost::spirit::detail::make_unary::impl::operator()(typename boost::spirit::detail::make_unary::impl::expr_param, typename boost::spirit::detail::make_unary::impl::state_param, typename boost::spirit::detail::make_unary::impl::data_param) const [with Expr = const boost::proto::exprns_::expr<boost::proto::tag::modulus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::modulus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<const boost::spirit::terminal<boost::spirit::tag::char_code >&, const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::unary_plus, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&>, 1l>&, const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>&, State = const mpl_::void_&, Data = boost::fusion::unused_type&, Domain = boost::spirit::qi::domain, Tag = boost::proto::tag::modulus, Grammar = boost::spirit::meta_compiler::meta_grammar]’
/usr/local/include/boost/proto/transform/impl.hpp:96: instantiated from ‘typename boost::proto::detail::apply_transform::result_type boost::proto::transform::operator()(Expr&, const State&, Data&) const [with Expr = const boost::proto::exprns_::expr<boost::proto::tag::modulus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::modulus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<const boost::spirit::terminal<boost::spirit::tag::char_code >&, const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::unary_plus, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&>, 1l>&, const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>, State = mpl_::void_, Data = boost::fusion::unused_type, PrimitiveTransform = boost::proto::switch_<boost::spirit::meta_compiler::cases>, X = void]’
/usr/local/include/boost/spirit/home/support/meta_compiler.hpp:240: instantiated from ‘static typename boost::spirit::result_of::compile::type boost::spirit::detail::compiler::compile(const Expr&, Modifiers, mpl_::true_) [with Expr = boost::proto::exprns_::expr<boost::proto::tag::modulus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::modulus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<const boost::spirit::terminal<boost::spirit::tag::char_code >&, const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::unary_plus, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&>, 1l>&, const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>, Modifiers = boost::fusion::unused_type, Domain = boost::spirit::qi::domain]’
/usr/local/include/boost/spirit/home/support/meta_compiler.hpp:261: instantiated from ‘typename boost::spirit::result_of::compile::type boost::spirit::compile(const Expr&) [with Domain = boost::spirit::qi::domain, Expr = boost::proto::exprns_::expr<boost::proto::tag::modulus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::modulus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<const boost::spirit::terminal<boost::spirit::tag::char_code >&, const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::unary_plus, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&>, 1l>&, const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>]’
/usr/local/include/boost/spirit/home/qi/parse.hpp:68: instantiated from ‘bool boost::spirit::qi::parse(Iterator&, Iterator, const Expr&, Attr&) [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits, std::allocator > >, Expr = boost::proto::exprns_::expr<boost::proto::tag::modulus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::modulus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<const boost::spirit::terminal<boost::spirit::tag::char_code >&, const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::unary_plus, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&>, 1l>&, const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>, Attr = std::vector<std::vector<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > >, std::allocator<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > > > >, std::allocator<std::vector<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > >, std::allocator<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > > > > > >]’
/usr/local/include/boost/spirit/home/qi/parse.hpp:80: instantiated from ‘bool boost::spirit::qi::parse(const Iterator&, Iterator, const Expr&, Attr&) [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits, std::allocator > >, Expr = boost::proto::exprns_::expr<boost::proto::tag::modulus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::modulus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<const boost::spirit::terminal<boost::spirit::tag::char_code >&, const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::unary_plus, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&>, 1l>&, const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>, Attr = std::vector<std::vector<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > >, std::allocator<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > > > >, std::allocator<std::vector<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > >, std::allocator<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > > > > > >]’
spirit-test.cpp:55: instantiated from here
/usr/local/include/boost/fusion/container/list/detail/at_impl.hpp:119: error: ‘const struct boost::fusion::nil’ has no member named ‘car’
/usr/local/include/boost/fusion/container/list/detail/at_impl.hpp: In static member function ‘static typename boost::mpl::eval_if<boost::is_const, boost::fusion::detail::cref_result<boost::fusion::detail::cons_deref<typename boost::fusion::detail::cons_advance::type> >, boost::fusion::detail::ref_result<boost::fusion::detail::cons_deref<typename boost::fusion::detail::cons_advance::type> > >::type boost::fusion::extension::at_impl::apply::call(Cons&, mpl_::int_) [with Cons = const boost::fusion::nil, Sequence = const boost::fusion::cons<boost::spirit::qi::kleene<boost::proto::exprns_::expr<boost::proto::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<const boost::spirit::terminal<boost::spirit::tag::char_code >&, const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::unary_plus, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l> >, boost::fusion::nil>, N = mpl_::int_]’:
/usr/local/include/boost/fusion/container/list/detail/at_impl.hpp:112: instantiated from ‘static typename boost::mpl::eval_if<boost::is_const, boost::fusion::detail::cref_result<boost::fusion::detail::cons_deref<typename boost::fusion::detail::cons_advance::type> >, boost::fusion::detail::ref_result<boost::fusion::detail::cons_deref<typename boost::fusion::detail::cons_advance::type> > >::type boost::fusion::extension::at_impl::apply::call(Cons&, mpl_::int_) [with Cons = const boost::fusion::cons<boost::spirit::qi::kleene<boost::proto::exprns_::expr<boost::proto::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<const boost::spirit::terminal<boost::spirit::tag::char_code >&, const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::unary_plus, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l> >, boost::fusion::nil>, int N2 = 1, Sequence = const boost::fusion::cons<boost::spirit::qi::kleene<boost::proto::exprns_::expr<boost::proto::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<const boost::spirit::terminal<boost::spirit::tag::char_code >&, const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::unary_plus, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l> >, boost::fusion::nil>, N = mpl_::int_]’
/usr/local/include/boost/fusion/container/list/detail/at_impl.hpp:125: instantiated from ‘static typename boost::mpl::eval_if<boost::is_const, boost::fusion::detail::cref_result<boost::fusion::detail::cons_deref<typename boost::fusion::detail::cons_advance::type> >, boost::fusion::detail::ref_result<boost::fusion::detail::cons_deref<typename boost::fusion::detail::cons_advance::type> > >::type boost::fusion::extension::at_impl::apply::call(Sequence&) [with Sequence = const boost::fusion::cons<boost::spirit::qi::kleene<boost::proto::exprns_::expr<boost::proto::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<const boost::spirit::terminal<boost::spirit::tag::char_code >&, const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::unary_plus, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l> >, boost::fusion::nil>, N = mpl_::int_]’
/usr/local/include/boost/fusion/sequence/intrinsic/at.hpp:83: instantiated from ‘typename boost::fusion::result_of::at::type boost::fusion::at(const Sequence&) [with N = mpl_::int_, Sequence = boost::fusion::cons<boost::spirit::qi::kleene<boost::proto::exprns_::expr<boost::proto::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<const boost::spirit::terminal<boost::spirit::tag::char_code >&, const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::unary_plus, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l> >, boost::fusion::nil>]’
/usr/local/include/boost/fusion/sequence/intrinsic/at.hpp:101: instantiated from ‘typename boost::fusion::result_of::at_c::type boost::fusion::at_c(const Sequence&) [with int N = 1, Sequence = boost::fusion::cons<boost::spirit::qi::kleene<boost::proto::exprns_::expr<boost::proto::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<const boost::spirit::terminal<boost::spirit::tag::char_code >&, const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::unary_plus, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l> >, boost::fusion::nil>]’
/usr/local/include/boost/spirit/home/support/meta_compiler.hpp:302: instantiated from ‘generator<typename boost::fusion::result_of::value_at_c::type, typename boost::fusion::result_of::value_at_c::type> boost::spirit::make_binary_composite::operator()(const Elements&, boost::fusion::unused_type) const [with Elements = boost::fusion::cons<boost::spirit::qi::kleene<boost::proto::exprns_::expr<boost::proto::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<const boost::spirit::terminal<boost::spirit::tag::char_code >&, const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::unary_plus, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l> >, boost::fusion::nil>, generator = boost::spirit::qi::list]’
/usr/local/include/boost/spirit/home/qi/meta_compiler.hpp:111: instantiated from ‘typename boost::spirit::make_component::result<boost::spirit::make_component(Elements, Modifiers)>::type boost::spirit::make_component::operator()(const Elements&, const Modifiers&) const [with Elements = boost::fusion::cons<boost::spirit::qi::kleene<boost::proto::exprns_::expr<boost::proto::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<const boost::spirit::terminal<boost::spirit::tag::char_code >&, const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::unary_plus, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l> >, boost::fusion::nil>, Modifiers = boost::fusion::unused_type, Tag = boost::proto::tag::modulus]’
/usr/local/include/boost/spirit/home/support/make_component.hpp:126: instantiated from ‘typename boost::spirit::make_component::result<boost::spirit::make_component(typename boost::spirit::detail::result_of::make_cons<typename Grammar::result<Grammar(typename boost::proto::result_of::child_c::type, State, Data)>::type, boost::fusion::nil>::type, Data)>::type boost::spirit::detail::make_unary::impl::operator()(typename boost::spirit::detail::make_unary::impl::expr_param, typename boost::spirit::detail::make_unary::impl::state_param, typename boost::spirit::detail::make_unary::impl::data_param) const [with Expr = boost::proto::exprns_::expr<boost::proto::tag::modulus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<const boost::spirit::terminal<boost::spirit::tag::char_code >&, const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::unary_plus, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&>, 1l>&, const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&, State = const mpl_::void_&, Data = boost::fusion::unused_type&, Domain = boost::spirit::qi::domain, Tag = boost::proto::tag::modulus, Grammar = boost::spirit::meta_compiler::meta_grammar]’
/usr/local/include/boost/proto/transform/impl.hpp:96: instantiated from ‘typename boost::proto::detail::apply_transform::result_type boost::proto::transform::operator()(Expr&, const State&, Data&) const [with Expr = boost::proto::exprns_::expr<boost::proto::tag::modulus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<const boost::spirit::terminal<boost::spirit::tag::char_code >&, const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::unary_plus, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&>, 1l>&, const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>, State = mpl_::void_, Data = boost::fusion::unused_type, PrimitiveTransform = boost::proto::switch_<boost::spirit::meta_compiler::cases>, X = void]’
/usr/local/include/boost/spirit/home/support/make_component.hpp:126: instantiated from ‘typename boost::spirit::make_component::result<boost::spirit::make_component(typename boost::spirit::detail::result_of::make_cons<typename Grammar::result<Grammar(typename boost::proto::result_of::child_c::type, State, Data)>::type, boost::fusion::nil>::type, Data)>::type boost::spirit::detail::make_unary::impl::operator()(typename boost::spirit::detail::make_unary::impl::expr_param, typename boost::spirit::detail::make_unary::impl::state_param, typename boost::spirit::detail::make_unary::impl::data_param) const [with Expr = const boost::proto::exprns_::expr<boost::proto::tag::modulus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::modulus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<const boost::spirit::terminal<boost::spirit::tag::char_code >&, const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::unary_plus, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&>, 1l>&, const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>&, State = const mpl_::void_&, Data = boost::fusion::unused_type&, Domain = boost::spirit::qi::domain, Tag = boost::proto::tag::modulus, Grammar = boost::spirit::meta_compiler::meta_grammar]’
/usr/local/include/boost/proto/transform/impl.hpp:96: instantiated from ‘typename boost::proto::detail::apply_transform::result_type boost::proto::transform::operator()(Expr&, const State&, Data&) const [with Expr = const boost::proto::exprns_::expr<boost::proto::tag::modulus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::modulus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<const boost::spirit::terminal<boost::spirit::tag::char_code >&, const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::unary_plus, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&>, 1l>&, const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>, State = mpl_::void_, Data = boost::fusion::unused_type, PrimitiveTransform = boost::proto::switch_<boost::spirit::meta_compiler::cases>, X = void]’
/usr/local/include/boost/spirit/home/support/meta_compiler.hpp:240: instantiated from ‘static typename boost::spirit::result_of::compile::type boost::spirit::detail::compiler::compile(const Expr&, Modifiers, mpl_::true_) [with Expr = boost::proto::exprns_::expr<boost::proto::tag::modulus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::modulus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<const boost::spirit::terminal<boost::spirit::tag::char_code >&, const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::unary_plus, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&>, 1l>&, const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>, Modifiers = boost::fusion::unused_type, Domain = boost::spirit::qi::domain]’
/usr/local/include/boost/spirit/home/support/meta_compiler.hpp:261: instantiated from ‘typename boost::spirit::result_of::compile::type boost::spirit::compile(const Expr&) [with Domain = boost::spirit::qi::domain, Expr = boost::proto::exprns_::expr<boost::proto::tag::modulus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::modulus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<const boost::spirit::terminal<boost::spirit::tag::char_code >&, const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::unary_plus, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&>, 1l>&, const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>]’
/usr/local/include/boost/spirit/home/qi/parse.hpp:68: instantiated from ‘bool boost::spirit::qi::parse(Iterator&, Iterator, const Expr&, Attr&) [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits, std::allocator > >, Expr = boost::proto::exprns_::expr<boost::proto::tag::modulus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::modulus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<const boost::spirit::terminal<boost::spirit::tag::char_code >&, const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::unary_plus, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&>, 1l>&, const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>, Attr = std::vector<std::vector<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > >, std::allocator<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > > > >, std::allocator<std::vector<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > >, std::allocator<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > > > > > >]’
/usr/local/include/boost/spirit/home/qi/parse.hpp:80: instantiated from ‘bool boost::spirit::qi::parse(const Iterator&, Iterator, const Expr&, Attr&) [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits, std::allocator > >, Expr = boost::proto::exprns_::expr<boost::proto::tag::modulus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::modulus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::minus, boost::proto::argsns_::list2<const boost::spirit::terminal<boost::spirit::tag::char_code >&, const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::unary_plus, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&>, 1l>&, const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 2l>&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term, 0l>&, boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&, const boost::proto::exprns_::expr<boost::proto::tag::dereference, boost::proto::argsns_::list1<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::char_code, boost::fusion::vector1 > >, 0l>&>, 1l>&>, 2l>&, boost::proto::exprns_::expr<boost::proto::tag::bitwise_or, boost::proto::argsns_::list2<const boost::proto::utility::literal&, const boost::proto::utility::literal&>, 2l>&>, 2l>&>, 2l>&>, 2l>, Attr = std::vector<std::vector<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > >, std::allocator<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > > > >, std::allocator<std::vector<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > >, std::allocator<std::vector<std::vector<char, std::allocator >, std::allocator<std::vector<char, std::allocator > > > > > > >]’
spirit-test.cpp:55: instantiated from here
/usr/local/include/boost/fusion/container/list/detail/at_impl.hpp:119: error: ‘const struct boost::fusion::nil’ has no member named ‘car’
(It’s a tricky one, alright: 80 lines and 250957 characters, substantially longer than the program itself. The code that produced it will follow shortly).
What confused me at first about spirit is the emphasis the documentation places on semantic actions, which, as far as I can tell, are the closest thing to Yacc in that they are bits of code that are run when an element is parsed. This may indeed be a good way to write parsers (I don’t know, I don’t write many parsers), but when you’ve been doing everything in Python and are used to cheap, easy, heavily nested structures…
What follows is normally intolerable in C++, and it takes a moment to re-realize that this kind of thing is common in other languages:
1
2 #include <boost/spirit/include/qi.hpp>
3
4 #include <boost/foreach.hpp>
5
6 #include <iostream>
7 #include <string>
8 #include <vector>
9
10 #define foreach BOOST_FOREACH
11
12 namespace qi = boost::spirit::qi;
13
14 int main()
15 {
16 using qi::parse;
17 using qi::char_;
18 using qi::omit;
19 using qi::lit;
20
21 using std::cout;
22 using std::endl;
23
24 #define v std::vector
25
26 std::string text =
27 "....a b. c? d\n"
28 "e f! g h.\n\n"
29 "i j. k.\n\n";
30
31 bool success = false;
32
33 auto word = +(char_("a-zA-Z"));
34 auto space = char_(" \t");
35 auto nl = lit("\r\n") | lit("\n");
36 auto two_nl = nl >> (*space) >> nl;
37 auto one_nl = nl - two_nl;
38 auto gap = space | one_nl;
39 auto junk = char_ - char_("a-zA-Z \t\r\n.?!");
40 auto stop = char_("?.!");
41
42 auto sentence = *(omit[*(gap|junk)] >> word);
43 auto paragraph = sentence % omit[stop];
44 auto page = paragraph % omit[two_nl];
45
46 auto &grammar = page;
47
48 v<v<v<v<char>>>> result;
49
50 success = parse(
51 text.begin(),
52 text.end(),
53 grammar,
54 result
55 );
56
57 cout << success << endl;
58 cout << endl;
59
60 foreach (v<v<v<char>>> &p3, result) {
61 foreach (v<v<char>> &p2, p3) {
62 foreach (v<char> &p1, p2) {
63 cout << std::string(p1.begin(), p1.end());
64 cout << " ";
65 }
66 cout << endl;
67 }
68 cout << "- - - " << endl;
69 }
70 }
71
Yes… a vector of vectors of vectors of vectors of characters. Hey, I’m not trying to do anything fancy; I just had way too much input text to keep using Python.
(Now, without comparing to the correct code, see if you can spot the error:
1
2 #include <boost/spirit/include/qi.hpp>
3
4 #include <boost/foreach.hpp>
5
6 #include <iostream>
7 #include <string>
8 #include <vector>
9
10 #define foreach BOOST_FOREACH
11
12 namespace qi = boost::spirit::qi;
13
14 int main()
15 {
16 using qi::parse;
17 using qi::char_;
18 using qi::omit;
19 using qi::lit;
20
21 using std::cout;
22 using std::endl;
23
24 #define v std::vector
25
26 std::string text =
27 "....a b. c? d\n"
28 "e f! g h.\n\n"
29 "i j. k.\n\n";
30
31 bool success = false;
32
33 auto word = +(char_("a-zA-Z"));
34 auto space = char_(" \t");
35 auto nl = lit("\r\n") | lit("\n");
36 auto two_nl = nl >> (*space) >> nl;
37 auto one_nl = nl - two_nl;
38 auto gap = space | one_nl;
39 auto junk = char_ - char_("a-zA-Z \t\r\n.?!");
40 auto stop = char_("?.!");
41
42 auto sentence = *(omit[*(gap|junk)] << word);
43 auto paragraph = sentence % omit[stop];
44 auto page = paragraph % omit[two_nl];
45
46 auto &grammar = page;
47
48 v<v<v<v<char>>>> result;
49
50 success = parse(
51 text.begin(),
52 text.end(),
53 grammar,
54 result
55 );
56
57 cout << success << endl;
58 cout << endl;
59
60 foreach (v<v<v<char>>> &p3, result) {
61 foreach (v<v<char>> &p2, p3) {
62 foreach (v<char> &p1, p2) {
63 cout << std::string(p1.begin(), p1.end());
64 cout << " ";
65 }
66 cout << endl;
67 }
68 cout << "- - - " << endl;
69 }
70 }
71
)