summaryrefslogtreecommitdiff
path: root/libs/wave/test/testwave/testfiles/t_9_010.cpp
blob: d4740440c21240708b87acf3a610d1bc660af374 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
/*=============================================================================
    Boost.Wave: A Standard compliant C++ preprocessor library
    http://www.boost.org/

    Copyright (c) 2001-2012 Hartmut Kaiser. Distributed under the Boost
    Software License, Version 1.0. (See accompanying file
    LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
=============================================================================*/

// Tests, whether adjacent tokens are separated by whitespace if the adjacency
// is created by macro expansion

#define A(x) x

//R #line 16 "t_9_010.cpp"
A(1)1         //R 1 1 
A(1)X         //R 1 X 
A(X)1         //R X 1 
A(X)X         //R X X 

#define CAT(a, b) PRIMITIVE_CAT(a, b)
#define PRIMITIVE_CAT(a, b) a ## b

#define X() B
#define ABC 1

//R #line 28 "t_9_010.cpp"
CAT(A, X() C) //R AB C 
CAT(A, X()C)  //R AB C 

//H 10: t_9_010.cpp(13): #define
//H 08: t_9_010.cpp(13): A(x)=x
//H 00: t_9_010.cpp(16): A(1), [t_9_010.cpp(13): A(x)=x]
//H 02: 1
//H 03: 1
//H 00: t_9_010.cpp(17): A(1), [t_9_010.cpp(13): A(x)=x]
//H 02: 1
//H 03: 1
//H 00: t_9_010.cpp(18): A(X), [t_9_010.cpp(13): A(x)=x]
//H 02: X
//H 03: X
//H 00: t_9_010.cpp(19): A(X), [t_9_010.cpp(13): A(x)=x]
//H 02: X
//H 03: X
//H 10: t_9_010.cpp(21): #define
//H 08: t_9_010.cpp(21): CAT(a, b)=PRIMITIVE_CAT(a, b)
//H 10: t_9_010.cpp(22): #define
//H 08: t_9_010.cpp(22): PRIMITIVE_CAT(a, b)=a ## b
//H 10: t_9_010.cpp(24): #define
//H 08: t_9_010.cpp(24): X()=B
//H 10: t_9_010.cpp(25): #define
//H 08: t_9_010.cpp(25): ABC=1
//H 00: t_9_010.cpp(28): CAT(A, X() C), [t_9_010.cpp(21): CAT(a, b)=PRIMITIVE_CAT(a, b)]
//H 00: t_9_010.cpp(28): X(), [t_9_010.cpp(24): X()=B]
//H 02: B
//H 03: B
//H 02: PRIMITIVE_CAT(A,  B C)
//H 00: t_9_010.cpp(21): PRIMITIVE_CAT(A, B C), [t_9_010.cpp(22): PRIMITIVE_CAT(a, b)=a ## b]
//H 02: AB C
//H 03: AB C
//H 03: AB C
//H 00: t_9_010.cpp(29): CAT(A, X()C), [t_9_010.cpp(21): CAT(a, b)=PRIMITIVE_CAT(a, b)]
//H 00: t_9_010.cpp(29): X(), [t_9_010.cpp(24): X()=B]
//H 02: B
//H 03: B
//H 02: PRIMITIVE_CAT(A,  BC)
//H 00: t_9_010.cpp(21): PRIMITIVE_CAT(A, BC), [t_9_010.cpp(22): PRIMITIVE_CAT(a, b)=a ## b]
//H 02: ABC
//H 03: ABC
//H 03: ABC