token_get_all_variation3.phpt 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570
  1. --TEST--
  2. Test token_get_all() function : usage variations - with logical operators
  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 logical operators to test them for tokens
  13. * and - T_AND_LOGICAL_AND(265),
  14. * or - T_LOGICAL_OR(263),
  15. * xor - T_LOGICAL_XOR(264),
  16. * && - T_BOOLEAN_AND(279),
  17. * || - T_BOOLEAN_OR(278)
  18. */
  19. echo "*** Testing token_get_all() : 'source' string with different logical operators ***\n";
  20. // logical operators : 'and', 'or', 'xor', '&&', '||'
  21. $source = array (
  22. '<?php $a = 1 and 024; ?>',
  23. '<?php $b = $b or 0X1E; ?>',
  24. '<?php $c = $a xor $b; ?>',
  25. '<?php $a = $b && 2; ?>',
  26. '<?php $b = $b || 1; ?>'
  27. );
  28. for($count = 0; $count < count($source); $count++) {
  29. echo "-- Iteration ".($count + 1)." --\n";
  30. var_dump( token_get_all($source[$count]));
  31. }
  32. echo "Done"
  33. ?>
  34. --EXPECTF--
  35. *** Testing token_get_all() : 'source' string with different logical operators ***
  36. -- Iteration 1 --
  37. array(13) {
  38. [0]=>
  39. array(3) {
  40. [0]=>
  41. int(%d)
  42. [1]=>
  43. string(6) "<?php "
  44. [2]=>
  45. int(1)
  46. }
  47. [1]=>
  48. array(3) {
  49. [0]=>
  50. int(%d)
  51. [1]=>
  52. string(2) "$a"
  53. [2]=>
  54. int(1)
  55. }
  56. [2]=>
  57. array(3) {
  58. [0]=>
  59. int(%d)
  60. [1]=>
  61. string(1) " "
  62. [2]=>
  63. int(1)
  64. }
  65. [3]=>
  66. string(1) "="
  67. [4]=>
  68. array(3) {
  69. [0]=>
  70. int(%d)
  71. [1]=>
  72. string(1) " "
  73. [2]=>
  74. int(1)
  75. }
  76. [5]=>
  77. array(3) {
  78. [0]=>
  79. int(%d)
  80. [1]=>
  81. string(1) "1"
  82. [2]=>
  83. int(1)
  84. }
  85. [6]=>
  86. array(3) {
  87. [0]=>
  88. int(%d)
  89. [1]=>
  90. string(1) " "
  91. [2]=>
  92. int(1)
  93. }
  94. [7]=>
  95. array(3) {
  96. [0]=>
  97. int(%d)
  98. [1]=>
  99. string(3) "and"
  100. [2]=>
  101. int(1)
  102. }
  103. [8]=>
  104. array(3) {
  105. [0]=>
  106. int(%d)
  107. [1]=>
  108. string(1) " "
  109. [2]=>
  110. int(1)
  111. }
  112. [9]=>
  113. array(3) {
  114. [0]=>
  115. int(%d)
  116. [1]=>
  117. string(3) "024"
  118. [2]=>
  119. int(1)
  120. }
  121. [10]=>
  122. string(1) ";"
  123. [11]=>
  124. array(3) {
  125. [0]=>
  126. int(%d)
  127. [1]=>
  128. string(1) " "
  129. [2]=>
  130. int(1)
  131. }
  132. [12]=>
  133. array(3) {
  134. [0]=>
  135. int(%d)
  136. [1]=>
  137. string(2) "?>"
  138. [2]=>
  139. int(1)
  140. }
  141. }
  142. -- Iteration 2 --
  143. array(13) {
  144. [0]=>
  145. array(3) {
  146. [0]=>
  147. int(%d)
  148. [1]=>
  149. string(6) "<?php "
  150. [2]=>
  151. int(1)
  152. }
  153. [1]=>
  154. array(3) {
  155. [0]=>
  156. int(%d)
  157. [1]=>
  158. string(2) "$b"
  159. [2]=>
  160. int(1)
  161. }
  162. [2]=>
  163. array(3) {
  164. [0]=>
  165. int(%d)
  166. [1]=>
  167. string(1) " "
  168. [2]=>
  169. int(1)
  170. }
  171. [3]=>
  172. string(1) "="
  173. [4]=>
  174. array(3) {
  175. [0]=>
  176. int(%d)
  177. [1]=>
  178. string(1) " "
  179. [2]=>
  180. int(1)
  181. }
  182. [5]=>
  183. array(3) {
  184. [0]=>
  185. int(%d)
  186. [1]=>
  187. string(2) "$b"
  188. [2]=>
  189. int(1)
  190. }
  191. [6]=>
  192. array(3) {
  193. [0]=>
  194. int(%d)
  195. [1]=>
  196. string(1) " "
  197. [2]=>
  198. int(1)
  199. }
  200. [7]=>
  201. array(3) {
  202. [0]=>
  203. int(%d)
  204. [1]=>
  205. string(2) "or"
  206. [2]=>
  207. int(1)
  208. }
  209. [8]=>
  210. array(3) {
  211. [0]=>
  212. int(%d)
  213. [1]=>
  214. string(1) " "
  215. [2]=>
  216. int(1)
  217. }
  218. [9]=>
  219. array(3) {
  220. [0]=>
  221. int(%d)
  222. [1]=>
  223. string(4) "0X1E"
  224. [2]=>
  225. int(1)
  226. }
  227. [10]=>
  228. string(1) ";"
  229. [11]=>
  230. array(3) {
  231. [0]=>
  232. int(%d)
  233. [1]=>
  234. string(1) " "
  235. [2]=>
  236. int(1)
  237. }
  238. [12]=>
  239. array(3) {
  240. [0]=>
  241. int(%d)
  242. [1]=>
  243. string(2) "?>"
  244. [2]=>
  245. int(1)
  246. }
  247. }
  248. -- Iteration 3 --
  249. array(13) {
  250. [0]=>
  251. array(3) {
  252. [0]=>
  253. int(%d)
  254. [1]=>
  255. string(6) "<?php "
  256. [2]=>
  257. int(1)
  258. }
  259. [1]=>
  260. array(3) {
  261. [0]=>
  262. int(%d)
  263. [1]=>
  264. string(2) "$c"
  265. [2]=>
  266. int(1)
  267. }
  268. [2]=>
  269. array(3) {
  270. [0]=>
  271. int(%d)
  272. [1]=>
  273. string(1) " "
  274. [2]=>
  275. int(1)
  276. }
  277. [3]=>
  278. string(1) "="
  279. [4]=>
  280. array(3) {
  281. [0]=>
  282. int(%d)
  283. [1]=>
  284. string(1) " "
  285. [2]=>
  286. int(1)
  287. }
  288. [5]=>
  289. array(3) {
  290. [0]=>
  291. int(%d)
  292. [1]=>
  293. string(2) "$a"
  294. [2]=>
  295. int(1)
  296. }
  297. [6]=>
  298. array(3) {
  299. [0]=>
  300. int(%d)
  301. [1]=>
  302. string(1) " "
  303. [2]=>
  304. int(1)
  305. }
  306. [7]=>
  307. array(3) {
  308. [0]=>
  309. int(%d)
  310. [1]=>
  311. string(3) "xor"
  312. [2]=>
  313. int(1)
  314. }
  315. [8]=>
  316. array(3) {
  317. [0]=>
  318. int(%d)
  319. [1]=>
  320. string(1) " "
  321. [2]=>
  322. int(1)
  323. }
  324. [9]=>
  325. array(3) {
  326. [0]=>
  327. int(%d)
  328. [1]=>
  329. string(2) "$b"
  330. [2]=>
  331. int(1)
  332. }
  333. [10]=>
  334. string(1) ";"
  335. [11]=>
  336. array(3) {
  337. [0]=>
  338. int(%d)
  339. [1]=>
  340. string(1) " "
  341. [2]=>
  342. int(1)
  343. }
  344. [12]=>
  345. array(3) {
  346. [0]=>
  347. int(%d)
  348. [1]=>
  349. string(2) "?>"
  350. [2]=>
  351. int(1)
  352. }
  353. }
  354. -- Iteration 4 --
  355. array(13) {
  356. [0]=>
  357. array(3) {
  358. [0]=>
  359. int(%d)
  360. [1]=>
  361. string(6) "<?php "
  362. [2]=>
  363. int(1)
  364. }
  365. [1]=>
  366. array(3) {
  367. [0]=>
  368. int(%d)
  369. [1]=>
  370. string(2) "$a"
  371. [2]=>
  372. int(1)
  373. }
  374. [2]=>
  375. array(3) {
  376. [0]=>
  377. int(%d)
  378. [1]=>
  379. string(1) " "
  380. [2]=>
  381. int(1)
  382. }
  383. [3]=>
  384. string(1) "="
  385. [4]=>
  386. array(3) {
  387. [0]=>
  388. int(%d)
  389. [1]=>
  390. string(1) " "
  391. [2]=>
  392. int(1)
  393. }
  394. [5]=>
  395. array(3) {
  396. [0]=>
  397. int(%d)
  398. [1]=>
  399. string(2) "$b"
  400. [2]=>
  401. int(1)
  402. }
  403. [6]=>
  404. array(3) {
  405. [0]=>
  406. int(%d)
  407. [1]=>
  408. string(1) " "
  409. [2]=>
  410. int(1)
  411. }
  412. [7]=>
  413. array(3) {
  414. [0]=>
  415. int(%d)
  416. [1]=>
  417. string(2) "&&"
  418. [2]=>
  419. int(1)
  420. }
  421. [8]=>
  422. array(3) {
  423. [0]=>
  424. int(%d)
  425. [1]=>
  426. string(1) " "
  427. [2]=>
  428. int(1)
  429. }
  430. [9]=>
  431. array(3) {
  432. [0]=>
  433. int(%d)
  434. [1]=>
  435. string(1) "2"
  436. [2]=>
  437. int(1)
  438. }
  439. [10]=>
  440. string(1) ";"
  441. [11]=>
  442. array(3) {
  443. [0]=>
  444. int(%d)
  445. [1]=>
  446. string(1) " "
  447. [2]=>
  448. int(1)
  449. }
  450. [12]=>
  451. array(3) {
  452. [0]=>
  453. int(%d)
  454. [1]=>
  455. string(2) "?>"
  456. [2]=>
  457. int(1)
  458. }
  459. }
  460. -- Iteration 5 --
  461. array(13) {
  462. [0]=>
  463. array(3) {
  464. [0]=>
  465. int(%d)
  466. [1]=>
  467. string(6) "<?php "
  468. [2]=>
  469. int(1)
  470. }
  471. [1]=>
  472. array(3) {
  473. [0]=>
  474. int(%d)
  475. [1]=>
  476. string(2) "$b"
  477. [2]=>
  478. int(1)
  479. }
  480. [2]=>
  481. array(3) {
  482. [0]=>
  483. int(%d)
  484. [1]=>
  485. string(1) " "
  486. [2]=>
  487. int(1)
  488. }
  489. [3]=>
  490. string(1) "="
  491. [4]=>
  492. array(3) {
  493. [0]=>
  494. int(%d)
  495. [1]=>
  496. string(1) " "
  497. [2]=>
  498. int(1)
  499. }
  500. [5]=>
  501. array(3) {
  502. [0]=>
  503. int(%d)
  504. [1]=>
  505. string(2) "$b"
  506. [2]=>
  507. int(1)
  508. }
  509. [6]=>
  510. array(3) {
  511. [0]=>
  512. int(%d)
  513. [1]=>
  514. string(1) " "
  515. [2]=>
  516. int(1)
  517. }
  518. [7]=>
  519. array(3) {
  520. [0]=>
  521. int(%d)
  522. [1]=>
  523. string(2) "||"
  524. [2]=>
  525. int(1)
  526. }
  527. [8]=>
  528. array(3) {
  529. [0]=>
  530. int(%d)
  531. [1]=>
  532. string(1) " "
  533. [2]=>
  534. int(1)
  535. }
  536. [9]=>
  537. array(3) {
  538. [0]=>
  539. int(%d)
  540. [1]=>
  541. string(1) "1"
  542. [2]=>
  543. int(1)
  544. }
  545. [10]=>
  546. string(1) ";"
  547. [11]=>
  548. array(3) {
  549. [0]=>
  550. int(%d)
  551. [1]=>
  552. string(1) " "
  553. [2]=>
  554. int(1)
  555. }
  556. [12]=>
  557. array(3) {
  558. [0]=>
  559. int(%d)
  560. [1]=>
  561. string(2) "?>"
  562. [2]=>
  563. int(1)
  564. }
  565. }
  566. Done