Line data Source code
1 3 : PPG_Token tokens[tree_depth];
2 :
3 : #define GLUE_AUX(S1, S2) S1##S2
4 : #define GLUE(S1, S2) GLUE_AUX(S1, S2)
5 :
6 : #define PRED(r, state) \
7 : BOOST_PP_NOT_EQUAL( \
8 : BOOST_PP_TUPLE_ELEM(2, 0, state), \
9 : BOOST_PP_INC(BOOST_PP_TUPLE_ELEM(2, 1, state)) \
10 : ) \
11 : /**/
12 :
13 : #define OP(r, state) \
14 : ( \
15 : BOOST_PP_INC(BOOST_PP_TUPLE_ELEM(2, 0, state)), \
16 : BOOST_PP_TUPLE_ELEM(2, 1, state) \
17 : ) \
18 : /**/
19 :
20 : #define COUNTER_VAR(state) GLUE(l_,BOOST_PP_TUPLE_ELEM(2, 0, state))
21 :
22 : #define LOOP_START(r, state) \
23 : __NL__ for(int COUNTER_VAR(state) = 0; \
24 : __NL__ COUNTER_VAR(state) < n_chars; ++COUNTER_VAR(state)) { \
25 : __NL__ \
26 : __NL__ tokens[BOOST_PP_TUPLE_ELEM(2, 0, state) - 1] \
27 : __NL__ = PPG_CS_N(('a' + COUNTER_VAR(state)));
28 :
29 : #define LOOP_END(r, state) }
30 :
31 771 : BOOST_PP_FOR((1, PAPAGENO_TEST__TREE_DEPTH), PRED, OP, LOOP_START)
32 :
33 768 : ppg_token_set_action(
34 : ppg_pattern(
35 : ppg_cs_layer_0, /* Layer id */
36 : tree_depth,
37 768 : tokens
38 : ),
39 768 : PPG_CS_ACTION(Pattern)
40 : );
41 :
42 : BOOST_PP_FOR((1, PAPAGENO_TEST__TREE_DEPTH), PRED, OP, LOOP_END)
|