t_9_010.cpp 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. /*=============================================================================
  2. Boost.Wave: A Standard compliant C++ preprocessor library
  3. http://www.boost.org/
  4. Copyright (c) 2001-2012 Hartmut Kaiser. Distributed under the Boost
  5. Software License, Version 1.0. (See accompanying file
  6. LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  7. =============================================================================*/
  8. // Tests, whether adjacent tokens are separated by whitespace if the adjacency
  9. // is created by macro expansion
  10. #define A(x) x
  11. //R #line 16 "t_9_010.cpp"
  12. A(1)1 //R 1 1
  13. A(1)X //R 1 X
  14. A(X)1 //R X 1
  15. A(X)X //R X X
  16. #define CAT(a, b) PRIMITIVE_CAT(a, b)
  17. #define PRIMITIVE_CAT(a, b) a ## b
  18. #define X() B
  19. #define ABC 1
  20. //R #line 28 "t_9_010.cpp"
  21. CAT(A, X() C) //R AB C
  22. CAT(A, X()C) //R AB C
  23. //H 10: t_9_010.cpp(13): #define
  24. //H 08: t_9_010.cpp(13): A(x)=x
  25. //H 00: t_9_010.cpp(16): A(1), [t_9_010.cpp(13): A(x)=x]
  26. //H 02: 1
  27. //H 03: 1
  28. //H 00: t_9_010.cpp(17): A(1), [t_9_010.cpp(13): A(x)=x]
  29. //H 02: 1
  30. //H 03: 1
  31. //H 00: t_9_010.cpp(18): A(X), [t_9_010.cpp(13): A(x)=x]
  32. //H 02: X
  33. //H 03: X
  34. //H 00: t_9_010.cpp(19): A(X), [t_9_010.cpp(13): A(x)=x]
  35. //H 02: X
  36. //H 03: X
  37. //H 10: t_9_010.cpp(21): #define
  38. //H 08: t_9_010.cpp(21): CAT(a, b)=PRIMITIVE_CAT(a, b)
  39. //H 10: t_9_010.cpp(22): #define
  40. //H 08: t_9_010.cpp(22): PRIMITIVE_CAT(a, b)=a ## b
  41. //H 10: t_9_010.cpp(24): #define
  42. //H 08: t_9_010.cpp(24): X()=B
  43. //H 10: t_9_010.cpp(25): #define
  44. //H 08: t_9_010.cpp(25): ABC=1
  45. //H 00: t_9_010.cpp(28): CAT(A, X() C), [t_9_010.cpp(21): CAT(a, b)=PRIMITIVE_CAT(a, b)]
  46. //H 00: t_9_010.cpp(28): X(), [t_9_010.cpp(24): X()=B]
  47. //H 02: B
  48. //H 03: B
  49. //H 02: PRIMITIVE_CAT(A, B C)
  50. //H 00: t_9_010.cpp(21): PRIMITIVE_CAT(A, B C), [t_9_010.cpp(22): PRIMITIVE_CAT(a, b)=a ## b]
  51. //H 02: AB C
  52. //H 03: AB C
  53. //H 03: AB C
  54. //H 00: t_9_010.cpp(29): CAT(A, X()C), [t_9_010.cpp(21): CAT(a, b)=PRIMITIVE_CAT(a, b)]
  55. //H 00: t_9_010.cpp(29): X(), [t_9_010.cpp(24): X()=B]
  56. //H 02: B
  57. //H 03: B
  58. //H 02: PRIMITIVE_CAT(A, BC)
  59. //H 00: t_9_010.cpp(21): PRIMITIVE_CAT(A, BC), [t_9_010.cpp(22): PRIMITIVE_CAT(a, b)=a ## b]
  60. //H 02: ABC
  61. //H 03: ABC
  62. //H 03: ABC