]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/wave/test/testwave/testfiles/t_1_008.cpp
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / boost / libs / wave / test / testwave / testfiles / t_1_008.cpp
1 /*=============================================================================
2 Boost.Wave: A Standard compliant C++ preprocessor library
3 http://www.boost.org/
4
5 Copyright (c) 2001-2012 Hartmut Kaiser. Distributed under the Boost
6 Software License, Version 1.0. (See accompanying file
7 LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
8 =============================================================================*/
9
10 // The follwoing is a parametized partially expanding concatenation macro.
11 // It is a extremly good test of expansion order and the order of operations
12 // during macro expansion in general.
13
14 #define CAT(a, b) a ## b
15
16 #define PARTIAL_CAT(i) CAT(PARTIAL_CAT_, i)
17
18 #define PARTIAL_CAT_0(a, b) CAT(a, b)
19 #define PARTIAL_CAT_1(a, b) CAT(PARTIAL ## a, b)
20 #define PARTIAL_CAT_2(a, b) CAT(a, b ## PARTIAL)
21 #define PARTIAL_CAT_3(a, b) CAT(PARTIAL ## a, b ## PARTIAL)
22
23 #define PARTIAL
24 #define PARTIALPARTIAL
25
26 #define X Token1
27 #define Y Token2
28
29 //R #line 31 "t_1_008.cpp"
30 //R Token1Token2
31 PARTIAL_CAT(0)( PARTIAL X, Y PARTIAL )
32 //R #line 34 "t_1_008.cpp"
33 //R XToken2
34 PARTIAL_CAT(1)( PARTIAL X, Y PARTIAL )
35 //R #line 37 "t_1_008.cpp"
36 //R Token1Y
37 PARTIAL_CAT(2)( PARTIAL X, Y PARTIAL )
38 //R #line 40 "t_1_008.cpp"
39 //R XY
40 PARTIAL_CAT(3)( PARTIAL X, Y PARTIAL )
41
42 //H 10: t_1_008.cpp(14): #define
43 //H 08: t_1_008.cpp(14): CAT(a, b)=a ## b
44 //H 10: t_1_008.cpp(16): #define
45 //H 08: t_1_008.cpp(16): PARTIAL_CAT(i)=CAT(PARTIAL_CAT_, i)
46 //H 10: t_1_008.cpp(18): #define
47 //H 08: t_1_008.cpp(18): PARTIAL_CAT_0(a, b)=CAT(a, b)
48 //H 10: t_1_008.cpp(19): #define
49 //H 08: t_1_008.cpp(19): PARTIAL_CAT_1(a, b)=CAT(PARTIAL ## a, b)
50 //H 10: t_1_008.cpp(20): #define
51 //H 08: t_1_008.cpp(20): PARTIAL_CAT_2(a, b)=CAT(a, b ## PARTIAL)
52 //H 10: t_1_008.cpp(21): #define
53 //H 08: t_1_008.cpp(21): PARTIAL_CAT_3(a, b)=CAT(PARTIAL ## a, b ## PARTIAL)
54 //H 10: t_1_008.cpp(23): #define
55 //H 08: t_1_008.cpp(23): PARTIAL=
56 //H 10: t_1_008.cpp(24): #define
57 //H 08: t_1_008.cpp(24): PARTIALPARTIAL=
58 //H 10: t_1_008.cpp(26): #define
59 //H 08: t_1_008.cpp(26): X=Token1
60 //H 10: t_1_008.cpp(27): #define
61 //H 08: t_1_008.cpp(27): Y=Token2
62 //H 00: t_1_008.cpp(31): PARTIAL_CAT(0), [t_1_008.cpp(16): PARTIAL_CAT(i)=CAT(PARTIAL_CAT_, i)]
63 //H 02: CAT(PARTIAL_CAT_, 0)
64 //H 00: t_1_008.cpp(16): CAT(PARTIAL_CAT_, 0), [t_1_008.cpp(14): CAT(a, b)=a ## b]
65 //H 02: PARTIAL_CAT_0
66 //H 03: PARTIAL_CAT_0
67 //H 03: PARTIAL_CAT_0
68 //H 00: t_1_008.cpp(16): PARTIAL_CAT_0( PARTIAL X, Y PARTIAL ), [t_1_008.cpp(18): PARTIAL_CAT_0(a, b)=CAT(a, b)]
69 //H 01: t_1_008.cpp(23): PARTIAL
70 //H 02:
71 //H 03: _
72 //H 01: t_1_008.cpp(26): X
73 //H 02: Token1
74 //H 03: Token1
75 //H 01: t_1_008.cpp(27): Y
76 //H 02: Token2
77 //H 03: Token2
78 //H 01: t_1_008.cpp(23): PARTIAL
79 //H 02:
80 //H 03: _
81 //H 02: CAT( Token1, Token2 )
82 //H 00: t_1_008.cpp(18): CAT( Token1, Token2 ), [t_1_008.cpp(14): CAT(a, b)=a ## b]
83 //H 02: Token1Token2
84 //H 03: Token1Token2
85 //H 03: Token1Token2
86 //H 00: t_1_008.cpp(34): PARTIAL_CAT(1), [t_1_008.cpp(16): PARTIAL_CAT(i)=CAT(PARTIAL_CAT_, i)]
87 //H 02: CAT(PARTIAL_CAT_, 1)
88 //H 00: t_1_008.cpp(16): CAT(PARTIAL_CAT_, 1), [t_1_008.cpp(14): CAT(a, b)=a ## b]
89 //H 02: PARTIAL_CAT_1
90 //H 03: PARTIAL_CAT_1
91 //H 03: PARTIAL_CAT_1
92 //H 00: t_1_008.cpp(16): PARTIAL_CAT_1( PARTIAL X, Y PARTIAL ), [t_1_008.cpp(19): PARTIAL_CAT_1(a, b)=CAT(PARTIAL ## a, b)]
93 //H 01: t_1_008.cpp(27): Y
94 //H 02: Token2
95 //H 03: Token2
96 //H 01: t_1_008.cpp(23): PARTIAL
97 //H 02:
98 //H 03: _
99 //H 02: CAT(PARTIALPARTIAL X, Token2 )
100 //H 00: t_1_008.cpp(19): CAT(PARTIALPARTIAL X, Token2 ), [t_1_008.cpp(14): CAT(a, b)=a ## b]
101 //H 02: PARTIALPARTIAL XToken2
102 //H 01: t_1_008.cpp(24): PARTIALPARTIAL
103 //H 02:
104 //H 03: _
105 //H 03: XToken2
106 //H 03: XToken2
107 //H 00: t_1_008.cpp(37): PARTIAL_CAT(2), [t_1_008.cpp(16): PARTIAL_CAT(i)=CAT(PARTIAL_CAT_, i)]
108 //H 02: CAT(PARTIAL_CAT_, 2)
109 //H 00: t_1_008.cpp(16): CAT(PARTIAL_CAT_, 2), [t_1_008.cpp(14): CAT(a, b)=a ## b]
110 //H 02: PARTIAL_CAT_2
111 //H 03: PARTIAL_CAT_2
112 //H 03: PARTIAL_CAT_2
113 //H 00: t_1_008.cpp(16): PARTIAL_CAT_2( PARTIAL X, Y PARTIAL ), [t_1_008.cpp(20): PARTIAL_CAT_2(a, b)=CAT(a, b ## PARTIAL)]
114 //H 01: t_1_008.cpp(23): PARTIAL
115 //H 02:
116 //H 03: _
117 //H 01: t_1_008.cpp(26): X
118 //H 02: Token1
119 //H 03: Token1
120 //H 02: CAT( Token1, Y PARTIALPARTIAL)
121 //H 00: t_1_008.cpp(20): CAT( Token1, Y PARTIALPARTIAL), [t_1_008.cpp(14): CAT(a, b)=a ## b]
122 //H 02: Token1Y PARTIALPARTIAL
123 //H 01: t_1_008.cpp(24): PARTIALPARTIAL
124 //H 02:
125 //H 03: _
126 //H 03: Token1Y_
127 //H 03: Token1Y_
128 //H 00: t_1_008.cpp(40): PARTIAL_CAT(3), [t_1_008.cpp(16): PARTIAL_CAT(i)=CAT(PARTIAL_CAT_, i)]
129 //H 02: CAT(PARTIAL_CAT_, 3)
130 //H 00: t_1_008.cpp(16): CAT(PARTIAL_CAT_, 3), [t_1_008.cpp(14): CAT(a, b)=a ## b]
131 //H 02: PARTIAL_CAT_3
132 //H 03: PARTIAL_CAT_3
133 //H 03: PARTIAL_CAT_3
134 //H 00: t_1_008.cpp(16): PARTIAL_CAT_3( PARTIAL X, Y PARTIAL ), [t_1_008.cpp(21): PARTIAL_CAT_3(a, b)=CAT(PARTIAL ## a, b ## PARTIAL)]
135 //H 02: CAT(PARTIALPARTIAL X, Y PARTIALPARTIAL)
136 //H 00: t_1_008.cpp(21): CAT(PARTIALPARTIAL X, Y PARTIALPARTIAL), [t_1_008.cpp(14): CAT(a, b)=a ## b]
137 //H 02: PARTIALPARTIAL XY PARTIALPARTIAL
138 //H 01: t_1_008.cpp(24): PARTIALPARTIAL
139 //H 02:
140 //H 03: _
141 //H 01: t_1_008.cpp(24): PARTIALPARTIAL
142 //H 02:
143 //H 03: _
144 //H 03: XY_
145 //H 03: XY_