bug60097.phpt 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. --TEST--
  2. Bug 60097: token_get_all fails to lex nested heredoc
  3. --FILE--
  4. <?php
  5. var_dump(token_get_all('<?php
  6. <<<DOC1
  7. {$s(<<<DOC2
  8. DOC2
  9. )}
  10. DOC1;
  11. '));
  12. ?>
  13. --EXPECT--
  14. array(14) {
  15. [0]=>
  16. array(3) {
  17. [0]=>
  18. int(376)
  19. [1]=>
  20. string(6) "<?php
  21. "
  22. [2]=>
  23. int(1)
  24. }
  25. [1]=>
  26. array(3) {
  27. [0]=>
  28. int(380)
  29. [1]=>
  30. string(8) "<<<DOC1
  31. "
  32. [2]=>
  33. int(2)
  34. }
  35. [2]=>
  36. array(3) {
  37. [0]=>
  38. int(383)
  39. [1]=>
  40. string(1) "{"
  41. [2]=>
  42. int(3)
  43. }
  44. [3]=>
  45. array(3) {
  46. [0]=>
  47. int(312)
  48. [1]=>
  49. string(2) "$s"
  50. [2]=>
  51. int(3)
  52. }
  53. [4]=>
  54. string(1) "("
  55. [5]=>
  56. array(3) {
  57. [0]=>
  58. int(380)
  59. [1]=>
  60. string(8) "<<<DOC2
  61. "
  62. [2]=>
  63. int(3)
  64. }
  65. [6]=>
  66. array(3) {
  67. [0]=>
  68. int(381)
  69. [1]=>
  70. string(4) "DOC2"
  71. [2]=>
  72. int(4)
  73. }
  74. [7]=>
  75. array(3) {
  76. [0]=>
  77. int(379)
  78. [1]=>
  79. string(1) "
  80. "
  81. [2]=>
  82. int(4)
  83. }
  84. [8]=>
  85. string(1) ")"
  86. [9]=>
  87. string(1) "}"
  88. [10]=>
  89. array(3) {
  90. [0]=>
  91. int(317)
  92. [1]=>
  93. string(1) "
  94. "
  95. [2]=>
  96. int(5)
  97. }
  98. [11]=>
  99. array(3) {
  100. [0]=>
  101. int(381)
  102. [1]=>
  103. string(4) "DOC1"
  104. [2]=>
  105. int(6)
  106. }
  107. [12]=>
  108. string(1) ";"
  109. [13]=>
  110. array(3) {
  111. [0]=>
  112. int(379)
  113. [1]=>
  114. string(1) "
  115. "
  116. [2]=>
  117. int(6)
  118. }
  119. }