Chris@16
|
1 ///////////////////////////////////////////////////////////////////////////////
|
Chris@16
|
2 /// \file lambda_matches.hpp
|
Chris@16
|
3 /// Specializations of the lambda_matches template
|
Chris@16
|
4 //
|
Chris@16
|
5 // Copyright 2008 Eric Niebler. Distributed under the Boost
|
Chris@16
|
6 // Software License, Version 1.0. (See accompanying file
|
Chris@16
|
7 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
Chris@16
|
8 template<
|
Chris@16
|
9 template<typename , typename> class T
|
Chris@16
|
10 , typename Expr0 , typename Expr1
|
Chris@16
|
11 , typename Grammar0 , typename Grammar1
|
Chris@16
|
12 >
|
Chris@16
|
13 struct lambda_matches<
|
Chris@16
|
14 T<Expr0 , Expr1>
|
Chris@16
|
15 , T<Grammar0 , Grammar1>
|
Chris@16
|
16 BOOST_PROTO_TEMPLATE_ARITY_PARAM(2)
|
Chris@16
|
17 >
|
Chris@16
|
18 : and_2<
|
Chris@16
|
19 lambda_matches< Expr0 , Grammar0 >::value,
|
Chris@16
|
20 lambda_matches< Expr1 , Grammar1 >
|
Chris@16
|
21 >
|
Chris@16
|
22 {};
|
Chris@16
|
23 template<
|
Chris@16
|
24 template<typename , typename , typename> class T
|
Chris@16
|
25 , typename Expr0 , typename Expr1 , typename Expr2
|
Chris@16
|
26 , typename Grammar0 , typename Grammar1 , typename Grammar2
|
Chris@16
|
27 >
|
Chris@16
|
28 struct lambda_matches<
|
Chris@16
|
29 T<Expr0 , Expr1 , Expr2>
|
Chris@16
|
30 , T<Grammar0 , Grammar1 , Grammar2>
|
Chris@16
|
31 BOOST_PROTO_TEMPLATE_ARITY_PARAM(3)
|
Chris@16
|
32 >
|
Chris@16
|
33 : and_3<
|
Chris@16
|
34 lambda_matches< Expr0 , Grammar0 >::value,
|
Chris@16
|
35 lambda_matches< Expr1 , Grammar1 > , lambda_matches< Expr2 , Grammar2 >
|
Chris@16
|
36 >
|
Chris@16
|
37 {};
|
Chris@16
|
38 template<
|
Chris@16
|
39 template<typename , typename , typename , typename> class T
|
Chris@16
|
40 , typename Expr0 , typename Expr1 , typename Expr2 , typename Expr3
|
Chris@16
|
41 , typename Grammar0 , typename Grammar1 , typename Grammar2 , typename Grammar3
|
Chris@16
|
42 >
|
Chris@16
|
43 struct lambda_matches<
|
Chris@16
|
44 T<Expr0 , Expr1 , Expr2 , Expr3>
|
Chris@16
|
45 , T<Grammar0 , Grammar1 , Grammar2 , Grammar3>
|
Chris@16
|
46 BOOST_PROTO_TEMPLATE_ARITY_PARAM(4)
|
Chris@16
|
47 >
|
Chris@16
|
48 : and_4<
|
Chris@16
|
49 lambda_matches< Expr0 , Grammar0 >::value,
|
Chris@16
|
50 lambda_matches< Expr1 , Grammar1 > , lambda_matches< Expr2 , Grammar2 > , lambda_matches< Expr3 , Grammar3 >
|
Chris@16
|
51 >
|
Chris@16
|
52 {};
|
Chris@16
|
53 template<
|
Chris@16
|
54 template<typename , typename , typename , typename , typename> class T
|
Chris@16
|
55 , typename Expr0 , typename Expr1 , typename Expr2 , typename Expr3 , typename Expr4
|
Chris@16
|
56 , typename Grammar0 , typename Grammar1 , typename Grammar2 , typename Grammar3 , typename Grammar4
|
Chris@16
|
57 >
|
Chris@16
|
58 struct lambda_matches<
|
Chris@16
|
59 T<Expr0 , Expr1 , Expr2 , Expr3 , Expr4>
|
Chris@16
|
60 , T<Grammar0 , Grammar1 , Grammar2 , Grammar3 , Grammar4>
|
Chris@16
|
61 BOOST_PROTO_TEMPLATE_ARITY_PARAM(5)
|
Chris@16
|
62 >
|
Chris@16
|
63 : and_5<
|
Chris@16
|
64 lambda_matches< Expr0 , Grammar0 >::value,
|
Chris@16
|
65 lambda_matches< Expr1 , Grammar1 > , lambda_matches< Expr2 , Grammar2 > , lambda_matches< Expr3 , Grammar3 > , lambda_matches< Expr4 , Grammar4 >
|
Chris@16
|
66 >
|
Chris@16
|
67 {};
|
Chris@16
|
68 template<
|
Chris@16
|
69 template<typename , typename , typename , typename , typename , typename> class T
|
Chris@16
|
70 , typename Expr0 , typename Expr1 , typename Expr2 , typename Expr3 , typename Expr4 , typename Expr5
|
Chris@16
|
71 , typename Grammar0 , typename Grammar1 , typename Grammar2 , typename Grammar3 , typename Grammar4 , typename Grammar5
|
Chris@16
|
72 >
|
Chris@16
|
73 struct lambda_matches<
|
Chris@16
|
74 T<Expr0 , Expr1 , Expr2 , Expr3 , Expr4 , Expr5>
|
Chris@16
|
75 , T<Grammar0 , Grammar1 , Grammar2 , Grammar3 , Grammar4 , Grammar5>
|
Chris@16
|
76 BOOST_PROTO_TEMPLATE_ARITY_PARAM(6)
|
Chris@16
|
77 >
|
Chris@16
|
78 : and_6<
|
Chris@16
|
79 lambda_matches< Expr0 , Grammar0 >::value,
|
Chris@16
|
80 lambda_matches< Expr1 , Grammar1 > , lambda_matches< Expr2 , Grammar2 > , lambda_matches< Expr3 , Grammar3 > , lambda_matches< Expr4 , Grammar4 > , lambda_matches< Expr5 , Grammar5 >
|
Chris@16
|
81 >
|
Chris@16
|
82 {};
|
Chris@16
|
83 template<
|
Chris@16
|
84 template<typename , typename , typename , typename , typename , typename , typename> class T
|
Chris@16
|
85 , typename Expr0 , typename Expr1 , typename Expr2 , typename Expr3 , typename Expr4 , typename Expr5 , typename Expr6
|
Chris@16
|
86 , typename Grammar0 , typename Grammar1 , typename Grammar2 , typename Grammar3 , typename Grammar4 , typename Grammar5 , typename Grammar6
|
Chris@16
|
87 >
|
Chris@16
|
88 struct lambda_matches<
|
Chris@16
|
89 T<Expr0 , Expr1 , Expr2 , Expr3 , Expr4 , Expr5 , Expr6>
|
Chris@16
|
90 , T<Grammar0 , Grammar1 , Grammar2 , Grammar3 , Grammar4 , Grammar5 , Grammar6>
|
Chris@16
|
91 BOOST_PROTO_TEMPLATE_ARITY_PARAM(7)
|
Chris@16
|
92 >
|
Chris@16
|
93 : and_7<
|
Chris@16
|
94 lambda_matches< Expr0 , Grammar0 >::value,
|
Chris@16
|
95 lambda_matches< Expr1 , Grammar1 > , lambda_matches< Expr2 , Grammar2 > , lambda_matches< Expr3 , Grammar3 > , lambda_matches< Expr4 , Grammar4 > , lambda_matches< Expr5 , Grammar5 > , lambda_matches< Expr6 , Grammar6 >
|
Chris@16
|
96 >
|
Chris@16
|
97 {};
|
Chris@16
|
98 template<
|
Chris@16
|
99 template<typename , typename , typename , typename , typename , typename , typename , typename> class T
|
Chris@16
|
100 , typename Expr0 , typename Expr1 , typename Expr2 , typename Expr3 , typename Expr4 , typename Expr5 , typename Expr6 , typename Expr7
|
Chris@16
|
101 , typename Grammar0 , typename Grammar1 , typename Grammar2 , typename Grammar3 , typename Grammar4 , typename Grammar5 , typename Grammar6 , typename Grammar7
|
Chris@16
|
102 >
|
Chris@16
|
103 struct lambda_matches<
|
Chris@16
|
104 T<Expr0 , Expr1 , Expr2 , Expr3 , Expr4 , Expr5 , Expr6 , Expr7>
|
Chris@16
|
105 , T<Grammar0 , Grammar1 , Grammar2 , Grammar3 , Grammar4 , Grammar5 , Grammar6 , Grammar7>
|
Chris@16
|
106 BOOST_PROTO_TEMPLATE_ARITY_PARAM(8)
|
Chris@16
|
107 >
|
Chris@16
|
108 : and_8<
|
Chris@16
|
109 lambda_matches< Expr0 , Grammar0 >::value,
|
Chris@16
|
110 lambda_matches< Expr1 , Grammar1 > , lambda_matches< Expr2 , Grammar2 > , lambda_matches< Expr3 , Grammar3 > , lambda_matches< Expr4 , Grammar4 > , lambda_matches< Expr5 , Grammar5 > , lambda_matches< Expr6 , Grammar6 > , lambda_matches< Expr7 , Grammar7 >
|
Chris@16
|
111 >
|
Chris@16
|
112 {};
|
Chris@16
|
113 template<
|
Chris@16
|
114 template<typename , typename , typename , typename , typename , typename , typename , typename , typename> class T
|
Chris@16
|
115 , typename Expr0 , typename Expr1 , typename Expr2 , typename Expr3 , typename Expr4 , typename Expr5 , typename Expr6 , typename Expr7 , typename Expr8
|
Chris@16
|
116 , typename Grammar0 , typename Grammar1 , typename Grammar2 , typename Grammar3 , typename Grammar4 , typename Grammar5 , typename Grammar6 , typename Grammar7 , typename Grammar8
|
Chris@16
|
117 >
|
Chris@16
|
118 struct lambda_matches<
|
Chris@16
|
119 T<Expr0 , Expr1 , Expr2 , Expr3 , Expr4 , Expr5 , Expr6 , Expr7 , Expr8>
|
Chris@16
|
120 , T<Grammar0 , Grammar1 , Grammar2 , Grammar3 , Grammar4 , Grammar5 , Grammar6 , Grammar7 , Grammar8>
|
Chris@16
|
121 BOOST_PROTO_TEMPLATE_ARITY_PARAM(9)
|
Chris@16
|
122 >
|
Chris@16
|
123 : and_9<
|
Chris@16
|
124 lambda_matches< Expr0 , Grammar0 >::value,
|
Chris@16
|
125 lambda_matches< Expr1 , Grammar1 > , lambda_matches< Expr2 , Grammar2 > , lambda_matches< Expr3 , Grammar3 > , lambda_matches< Expr4 , Grammar4 > , lambda_matches< Expr5 , Grammar5 > , lambda_matches< Expr6 , Grammar6 > , lambda_matches< Expr7 , Grammar7 > , lambda_matches< Expr8 , Grammar8 >
|
Chris@16
|
126 >
|
Chris@16
|
127 {};
|
Chris@16
|
128 template<
|
Chris@16
|
129 template<typename , typename , typename , typename , typename , typename , typename , typename , typename , typename> class T
|
Chris@16
|
130 , typename Expr0 , typename Expr1 , typename Expr2 , typename Expr3 , typename Expr4 , typename Expr5 , typename Expr6 , typename Expr7 , typename Expr8 , typename Expr9
|
Chris@16
|
131 , typename Grammar0 , typename Grammar1 , typename Grammar2 , typename Grammar3 , typename Grammar4 , typename Grammar5 , typename Grammar6 , typename Grammar7 , typename Grammar8 , typename Grammar9
|
Chris@16
|
132 >
|
Chris@16
|
133 struct lambda_matches<
|
Chris@16
|
134 T<Expr0 , Expr1 , Expr2 , Expr3 , Expr4 , Expr5 , Expr6 , Expr7 , Expr8 , Expr9>
|
Chris@16
|
135 , T<Grammar0 , Grammar1 , Grammar2 , Grammar3 , Grammar4 , Grammar5 , Grammar6 , Grammar7 , Grammar8 , Grammar9>
|
Chris@16
|
136 BOOST_PROTO_TEMPLATE_ARITY_PARAM(10)
|
Chris@16
|
137 >
|
Chris@16
|
138 : and_10<
|
Chris@16
|
139 lambda_matches< Expr0 , Grammar0 >::value,
|
Chris@16
|
140 lambda_matches< Expr1 , Grammar1 > , lambda_matches< Expr2 , Grammar2 > , lambda_matches< Expr3 , Grammar3 > , lambda_matches< Expr4 , Grammar4 > , lambda_matches< Expr5 , Grammar5 > , lambda_matches< Expr6 , Grammar6 > , lambda_matches< Expr7 , Grammar7 > , lambda_matches< Expr8 , Grammar8 > , lambda_matches< Expr9 , Grammar9 >
|
Chris@16
|
141 >
|
Chris@16
|
142 {};
|