1[#before_5] 2['Definitions before section 5.] 3 4 #include <boost/metaparse/string.hpp> 5 #include <boost/metaparse/int_.hpp> 6 7 #include <boost/metaparse/build_parser.hpp> 8 9 using namespace boost::metaparse; 10 11 using exp_parser1 = build_parser<int_>; 12 #include <boost/metaparse/entire_input.hpp> 13 14 using exp_parser2 = build_parser<entire_input<int_>>; 15 #include <boost/metaparse/token.hpp> 16 17 using exp_parser3 = build_parser<entire_input<token<int_>>>; 18 #include <boost/metaparse/lit_c.hpp> 19 20 #include <boost/metaparse/sequence.hpp> 21 22 using exp_parser4 = build_parser<sequence<token<int_>, token<lit_c<'+'>>, token<int_>>>; 23 24 #include <metashell/formatter.hpp> 25 26 using int_token = token<int_>; 27 28 using plus_token = token<lit_c<'+'>>; 29 30 using exp_parser5 = build_parser<sequence<int_token, plus_token, int_token>>; 31 #include <boost/metaparse/transform.hpp> 32 33 #include <boost/mpl/plus.hpp> 34 35 #include <boost/mpl/at.hpp> 36 37 template <class Vector> 38 struct eval_plus : 39 boost::mpl::plus< 40 typename boost::mpl::at_c<Vector, 0>::type, 41 typename boost::mpl::at_c<Vector, 2>::type 42 > {}; 43 44 #include <boost/mpl/quote.hpp> 45 46 using exp_parser6 = 47 build_parser< 48 transform< 49 sequence<int_token, plus_token, int_token>, 50 boost::mpl::quote1<eval_plus> 51 > 52 >; 53 54