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 // Test macro expansion order
11 #define A(x, y) x,y
12 #define B(x, y) [x][y]
13 #define C(x) B(x)
14 
15 //R #line 16 "t_1_001.cpp"
16 C(A(2,3))          //R [2][3]
17 C( A(2 , 3) )      //R [ 2 ][ 3 ]
18 
19 //H 10: t_1_001.cpp(11): #define
20 //H 08: t_1_001.cpp(11): A(x, y)=x,y
21 //H 10: t_1_001.cpp(12): #define
22 //H 08: t_1_001.cpp(12): B(x, y)=[x][y]
23 //H 10: t_1_001.cpp(13): #define
24 //H 08: t_1_001.cpp(13): C(x)=B(x)
25 //H 00: t_1_001.cpp(16): C(A(2,3)), [t_1_001.cpp(13): C(x)=B(x)]
26 //H 00: t_1_001.cpp(16): A(2,3), [t_1_001.cpp(11): A(x, y)=x,y]
27 //H 02: 2,3
28 //H 03: 2,3
29 //H 02: B(2,3)
30 //H 00: t_1_001.cpp(13): B(2,3), [t_1_001.cpp(12): B(x, y)=[x][y]]
31 //H 02: [2][3]
32 //H 03: [2][3]
33 //H 03: [2][3]
34 //H 00: t_1_001.cpp(17): C( A(2 , 3) ), [t_1_001.cpp(13): C(x)=B(x)]
35 //H 00: t_1_001.cpp(17): A(2 , 3), [t_1_001.cpp(11): A(x, y)=x,y]
36 //H 02: 2 , 3
37 //H 03: 2 , 3
38 //H 02: B( 2 , 3 )
39 //H 00: t_1_001.cpp(13): B( 2 , 3 ), [t_1_001.cpp(12): B(x, y)=[x][y]]
40 //H 02: [ 2 ][ 3 ]
41 //H 03: [ 2 ][ 3 ]
42 //H 03: [ 2 ][ 3 ]
43