bug60097.phpt 1.3 KB

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