[#before_5_2_2]
['Definitions before section 5.2.2.]

  #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;
  #include <boost/mpl/fold.hpp>

  using vector_of_numbers = 
   boost::mpl::vector< 
     boost::mpl::int_<2>, 
     boost::mpl::int_<5>, 
     boost::mpl::int_<6> 
   >;

  template <class Vector> 
   struct sum_vector : 
      boost::mpl::fold< 
        Vector, 
        boost::mpl::int_<0>, 
        boost::mpl::lambda< 
          boost::mpl::plus<boost::mpl::_1, boost::mpl::_2> 
        >::type 
      > 
    {};

  template <class Sum, class Item> 
     struct sum_items : 
       boost::mpl::plus< 
         Sum, 
         typename boost::mpl::at_c<Item, 1>::type 
       > 
   {};

