63 lines
1.6 KiB
Plaintext
63 lines
1.6 KiB
Plaintext
[#before_5_2]
|
|
['Definitions before section 5.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 */
|
|
>
|
|
>;
|
|
|