token_get_all_variation9.phpt 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443
  1. --TEST--
  2. Test token_get_all() function : usage variations - with different types of comments
  3. --SKIPIF--
  4. <?php if (!extension_loaded("tokenizer")) print "skip"; ?>
  5. --FILE--
  6. <?php
  7. /* Prototype : array token_get_all(string $source)
  8. * Description: splits the given source into an array of PHP languange tokens
  9. * Source code: ext/tokenizer/tokenizer.c
  10. */
  11. /*
  12. * Passing 'source' argument with different style of comments
  13. */
  14. // '//', '/* */', '#' - T_COMMENT(365)
  15. // '/** */' - T_DOC_COMMENT(366)
  16. echo "*** Testing token_get_all() : 'source' string with different comments ***\n";
  17. // types of comments: '//', '/* */', '#' & /** */
  18. $source = '<?php
  19. /** Performing addition operation on given values :
  20. * a, b
  21. */
  22. // int value
  23. $a = 10;
  24. $b = 20;
  25. $c = true; // bool value
  26. /*
  27. * Performing operation on $a,$b
  28. * display result
  29. */
  30. $c = $a + $b;
  31. var_dump($c); # expected: int(30)
  32. # end of program
  33. ?>';
  34. var_dump( token_get_all($source));
  35. echo "Done"
  36. ?>
  37. --EXPECTF--
  38. *** Testing token_get_all() : 'source' string with different comments ***
  39. array(51) {
  40. [0]=>
  41. array(3) {
  42. [0]=>
  43. int(%d)
  44. [1]=>
  45. string(6) "<?php "
  46. [2]=>
  47. int(1)
  48. }
  49. [1]=>
  50. array(3) {
  51. [0]=>
  52. int(%d)
  53. [1]=>
  54. string(1) "
  55. "
  56. [2]=>
  57. int(1)
  58. }
  59. [2]=>
  60. array(3) {
  61. [0]=>
  62. int(%d)
  63. [1]=>
  64. string(65) "/** Performing addition operation on given values :
  65. * a, b
  66. */"
  67. [2]=>
  68. int(2)
  69. }
  70. [3]=>
  71. array(3) {
  72. [0]=>
  73. int(%d)
  74. [1]=>
  75. string(2) "
  76. "
  77. [2]=>
  78. int(4)
  79. }
  80. [4]=>
  81. array(3) {
  82. [0]=>
  83. int(%d)
  84. [1]=>
  85. string(13) "// int value
  86. "
  87. [2]=>
  88. int(6)
  89. }
  90. [5]=>
  91. array(3) {
  92. [0]=>
  93. int(%d)
  94. [1]=>
  95. string(2) "$a"
  96. [2]=>
  97. int(7)
  98. }
  99. [6]=>
  100. array(3) {
  101. [0]=>
  102. int(%d)
  103. [1]=>
  104. string(1) " "
  105. [2]=>
  106. int(7)
  107. }
  108. [7]=>
  109. string(1) "="
  110. [8]=>
  111. array(3) {
  112. [0]=>
  113. int(%d)
  114. [1]=>
  115. string(1) " "
  116. [2]=>
  117. int(7)
  118. }
  119. [9]=>
  120. array(3) {
  121. [0]=>
  122. int(%d)
  123. [1]=>
  124. string(2) "10"
  125. [2]=>
  126. int(7)
  127. }
  128. [10]=>
  129. string(1) ";"
  130. [11]=>
  131. array(3) {
  132. [0]=>
  133. int(%d)
  134. [1]=>
  135. string(1) "
  136. "
  137. [2]=>
  138. int(7)
  139. }
  140. [12]=>
  141. array(3) {
  142. [0]=>
  143. int(%d)
  144. [1]=>
  145. string(2) "$b"
  146. [2]=>
  147. int(8)
  148. }
  149. [13]=>
  150. array(3) {
  151. [0]=>
  152. int(%d)
  153. [1]=>
  154. string(1) " "
  155. [2]=>
  156. int(8)
  157. }
  158. [14]=>
  159. string(1) "="
  160. [15]=>
  161. array(3) {
  162. [0]=>
  163. int(%d)
  164. [1]=>
  165. string(1) " "
  166. [2]=>
  167. int(8)
  168. }
  169. [16]=>
  170. array(3) {
  171. [0]=>
  172. int(%d)
  173. [1]=>
  174. string(2) "20"
  175. [2]=>
  176. int(8)
  177. }
  178. [17]=>
  179. string(1) ";"
  180. [18]=>
  181. array(3) {
  182. [0]=>
  183. int(%d)
  184. [1]=>
  185. string(1) "
  186. "
  187. [2]=>
  188. int(8)
  189. }
  190. [19]=>
  191. array(3) {
  192. [0]=>
  193. int(%d)
  194. [1]=>
  195. string(2) "$c"
  196. [2]=>
  197. int(9)
  198. }
  199. [20]=>
  200. array(3) {
  201. [0]=>
  202. int(%d)
  203. [1]=>
  204. string(1) " "
  205. [2]=>
  206. int(9)
  207. }
  208. [21]=>
  209. string(1) "="
  210. [22]=>
  211. array(3) {
  212. [0]=>
  213. int(%d)
  214. [1]=>
  215. string(1) " "
  216. [2]=>
  217. int(9)
  218. }
  219. [23]=>
  220. array(3) {
  221. [0]=>
  222. int(%d)
  223. [1]=>
  224. string(4) "true"
  225. [2]=>
  226. int(9)
  227. }
  228. [24]=>
  229. string(1) ";"
  230. [25]=>
  231. array(3) {
  232. [0]=>
  233. int(%d)
  234. [1]=>
  235. string(1) " "
  236. [2]=>
  237. int(9)
  238. }
  239. [26]=>
  240. array(3) {
  241. [0]=>
  242. int(%d)
  243. [1]=>
  244. string(14) "// bool value
  245. "
  246. [2]=>
  247. int(9)
  248. }
  249. [27]=>
  250. array(3) {
  251. [0]=>
  252. int(%d)
  253. [1]=>
  254. string(1) "
  255. "
  256. [2]=>
  257. int(10)
  258. }
  259. [28]=>
  260. array(3) {
  261. [0]=>
  262. int(%d)
  263. [1]=>
  264. string(59) "/*
  265. * Performing operation on $a,$b
  266. * display result
  267. */"
  268. [2]=>
  269. int(11)
  270. }
  271. [29]=>
  272. array(3) {
  273. [0]=>
  274. int(%d)
  275. [1]=>
  276. string(1) "
  277. "
  278. [2]=>
  279. int(14)
  280. }
  281. [30]=>
  282. array(3) {
  283. [0]=>
  284. int(%d)
  285. [1]=>
  286. string(2) "$c"
  287. [2]=>
  288. int(15)
  289. }
  290. [31]=>
  291. array(3) {
  292. [0]=>
  293. int(%d)
  294. [1]=>
  295. string(1) " "
  296. [2]=>
  297. int(15)
  298. }
  299. [32]=>
  300. string(1) "="
  301. [33]=>
  302. array(3) {
  303. [0]=>
  304. int(%d)
  305. [1]=>
  306. string(1) " "
  307. [2]=>
  308. int(15)
  309. }
  310. [34]=>
  311. array(3) {
  312. [0]=>
  313. int(%d)
  314. [1]=>
  315. string(2) "$a"
  316. [2]=>
  317. int(15)
  318. }
  319. [35]=>
  320. array(3) {
  321. [0]=>
  322. int(%d)
  323. [1]=>
  324. string(1) " "
  325. [2]=>
  326. int(15)
  327. }
  328. [36]=>
  329. string(1) "+"
  330. [37]=>
  331. array(3) {
  332. [0]=>
  333. int(%d)
  334. [1]=>
  335. string(1) " "
  336. [2]=>
  337. int(15)
  338. }
  339. [38]=>
  340. array(3) {
  341. [0]=>
  342. int(%d)
  343. [1]=>
  344. string(2) "$b"
  345. [2]=>
  346. int(15)
  347. }
  348. [39]=>
  349. string(1) ";"
  350. [40]=>
  351. array(3) {
  352. [0]=>
  353. int(%d)
  354. [1]=>
  355. string(1) "
  356. "
  357. [2]=>
  358. int(15)
  359. }
  360. [41]=>
  361. array(3) {
  362. [0]=>
  363. int(%d)
  364. [1]=>
  365. string(8) "var_dump"
  366. [2]=>
  367. int(16)
  368. }
  369. [42]=>
  370. string(1) "("
  371. [43]=>
  372. array(3) {
  373. [0]=>
  374. int(%d)
  375. [1]=>
  376. string(2) "$c"
  377. [2]=>
  378. int(16)
  379. }
  380. [44]=>
  381. string(1) ")"
  382. [45]=>
  383. string(1) ";"
  384. [46]=>
  385. array(3) {
  386. [0]=>
  387. int(%d)
  388. [1]=>
  389. string(1) " "
  390. [2]=>
  391. int(16)
  392. }
  393. [47]=>
  394. array(3) {
  395. [0]=>
  396. int(%d)
  397. [1]=>
  398. string(20) "# expected: int(%d)
  399. "
  400. [2]=>
  401. int(16)
  402. }
  403. [48]=>
  404. array(3) {
  405. [0]=>
  406. int(%d)
  407. [1]=>
  408. string(1) "
  409. "
  410. [2]=>
  411. int(17)
  412. }
  413. [49]=>
  414. array(3) {
  415. [0]=>
  416. int(%d)
  417. [1]=>
  418. string(17) "# end of program
  419. "
  420. [2]=>
  421. int(18)
  422. }
  423. [50]=>
  424. array(3) {
  425. [0]=>
  426. int(%d)
  427. [1]=>
  428. string(2) "?>"
  429. [2]=>
  430. int(19)
  431. }
  432. }
  433. Done