// Copyright Abel Sinkovics (abel@sinkovics.hu) 2010. // 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) #include #include #include #include #include #include #include "common.hpp" #include #include #include #include #include #include "test_case.hpp" namespace { using boost::metaparse::repeated; using boost::metaparse::one_char; using boost::mpl::always; typedef always f; typedef repeated repeated_one_char; struct get_front { typedef get_front type; template struct apply : boost::mpl::front {}; }; } BOOST_METAPARSE_TEST_CASE(transform) { using boost::metaparse::get_result; using boost::metaparse::transform; using boost::metaparse::start; using boost::metaparse::is_error; using boost::mpl::equal_to; using boost::mpl::apply_wrap2; // test_normal_case BOOST_MPL_ASSERT(( equal_to< get_result, str_hello, start> >::type, char_x > )); // test_parser_fails BOOST_MPL_ASSERT(( is_error, str_hello, start> > )); // test_empty_input BOOST_MPL_ASSERT((is_error, str_, start> >)); // test_tranformation_functions_arg BOOST_MPL_ASSERT(( equal_to< get_result< apply_wrap2, str_hello, start> >::type, char_h > )); }