// Copyright (c) 2001-2011 Hartmut Kaiser // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) // compilation test only #include #include #include #include #include #include #include #include "test.hpp" using namespace spirit_test; ////////////////////////////////////////////////////////////////////////////// struct ast; // Forward declaration typedef boost::variant< double, char, int, std::string, boost::recursive_wrapper > ast_element; struct ast { int op; std::vector children; ast() {} }; BOOST_FUSION_ADAPT_STRUCT( ast, (int, op) (std::vector, children) ) /////////////////////////////////////////////////////////////////////////////// int main() { namespace qi = boost::spirit::qi; { qi::rule num_expr; num_expr = (*(qi::char_ >> num_expr))[ qi::_1 ]; } // doesn't currently work // { // qi::rule str = "abc"; // qi::rule r = // '"' >> *('\\' >> qi::char_ | str) >> "'"; // // std::string s; // BOOST_TEST(test_attr("\"abc\\a\"", r, s) && s == "abca"); // } return boost::report_errors(); }