123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- [#before_5_2_1]
- ['Definitions before section 5.2.1.]
- #include <boost/metaparse/string.hpp>
- #include <boost/metaparse/int_.hpp>
- #include <boost/metaparse/build_parser.hpp>
- using namespace boost::metaparse;
- using exp_parser1 = build_parser<int_>;
- #include <boost/metaparse/entire_input.hpp>
- using exp_parser2 = build_parser<entire_input<int_>>;
- #include <boost/metaparse/token.hpp>
- using exp_parser3 = build_parser<entire_input<token<int_>>>;
- #include <boost/metaparse/lit_c.hpp>
- #include <boost/metaparse/sequence.hpp>
- using exp_parser4 = build_parser<sequence<token<int_>, token<lit_c<'+'>>, token<int_>>>;
- #include <metashell/formatter.hpp>
-
- using int_token = token<int_>;
- using plus_token = token<lit_c<'+'>>;
- using exp_parser5 = build_parser<sequence<int_token, plus_token, int_token>>;
- #include <boost/metaparse/transform.hpp>
- #include <boost/mpl/plus.hpp>
- #include <boost/mpl/at.hpp>
- template <class Vector>
- struct eval_plus :
- boost::mpl::plus<
- typename boost::mpl::at_c<Vector, 0>::type,
- typename boost::mpl::at_c<Vector, 2>::type
- > {};
- #include <boost/mpl/quote.hpp>
- using exp_parser6 =
- build_parser<
- transform<
- sequence<int_token, plus_token, int_token>,
- boost::mpl::quote1<eval_plus>
- >
- >;
- #include <boost/metaparse/any.hpp>
- using exp_parser7 =
- build_parser<
- sequence<
- int_token, /* The first <number> */
- repeated<sequence<plus_token, int_token>> /* The "+ <number>" elements */
- >
- >;
- using temp_result = exp_parser7::apply<BOOST_METAPARSE_STRING("1 + 2 + 3 + 4")>::type;
|