token_get_all_variation10.phpt 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783
  1. --TEST--
  2. Test token_get_all() function : usage variations - with constant tokens
  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. * Using different types of constants in 'source' string to check them for token
  13. * integer const - T_LNUMBER(305)
  14. * float/double/real const - T_DNUMBER(306)
  15. * string cosnt - T_CONSTANT_ESCAPED_STRING(315)
  16. * bool const (no tokens specified) - T_UNKNOWN(307)
  17. * null const (no tokens specified) - T_UNKNOWN(307)
  18. */
  19. echo "*** Testing token_get_all() : 'source' string with different constants ***\n";
  20. $a = 1;
  21. $b = 0;
  22. $source = array (
  23. // int const
  24. '<?php $a = 1 + 034; $b = $a + 0x3F; ?>',
  25. // float const
  26. '<?php $a = 0.23E-2 + 0.43e2 + 0.5; ?>',
  27. // string const
  28. '<?php $a = "hello ".\'world\'; ?>',
  29. // bool const
  30. "<?php \$a = (\$b)? true : false; ?>",
  31. "<?php \$b = (\$a)? FALSE : TRUE; ?>",
  32. // null const
  33. '<?php $b = null | NULL; ?>'
  34. );
  35. for($count = 0; $count < count($source); $count++) {
  36. echo "-- Iteration ".($count + 1)." --\n";
  37. var_dump( token_get_all($source[$count]));
  38. }
  39. echo "Done"
  40. ?>
  41. --EXPECTF--
  42. *** Testing token_get_all() : 'source' string with different constants ***
  43. -- Iteration 1 --
  44. array(24) {
  45. [0]=>
  46. array(3) {
  47. [0]=>
  48. int(%d)
  49. [1]=>
  50. string(6) "<?php "
  51. [2]=>
  52. int(1)
  53. }
  54. [1]=>
  55. array(3) {
  56. [0]=>
  57. int(%d)
  58. [1]=>
  59. string(2) "$a"
  60. [2]=>
  61. int(1)
  62. }
  63. [2]=>
  64. array(3) {
  65. [0]=>
  66. int(%d)
  67. [1]=>
  68. string(1) " "
  69. [2]=>
  70. int(1)
  71. }
  72. [3]=>
  73. string(1) "="
  74. [4]=>
  75. array(3) {
  76. [0]=>
  77. int(%d)
  78. [1]=>
  79. string(1) " "
  80. [2]=>
  81. int(1)
  82. }
  83. [5]=>
  84. array(3) {
  85. [0]=>
  86. int(%d)
  87. [1]=>
  88. string(1) "1"
  89. [2]=>
  90. int(1)
  91. }
  92. [6]=>
  93. array(3) {
  94. [0]=>
  95. int(%d)
  96. [1]=>
  97. string(1) " "
  98. [2]=>
  99. int(1)
  100. }
  101. [7]=>
  102. string(1) "+"
  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) "034"
  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) "$b"
  138. [2]=>
  139. int(1)
  140. }
  141. [13]=>
  142. array(3) {
  143. [0]=>
  144. int(%d)
  145. [1]=>
  146. string(1) " "
  147. [2]=>
  148. int(1)
  149. }
  150. [14]=>
  151. string(1) "="
  152. [15]=>
  153. array(3) {
  154. [0]=>
  155. int(%d)
  156. [1]=>
  157. string(1) " "
  158. [2]=>
  159. int(1)
  160. }
  161. [16]=>
  162. array(3) {
  163. [0]=>
  164. int(%d)
  165. [1]=>
  166. string(2) "$a"
  167. [2]=>
  168. int(1)
  169. }
  170. [17]=>
  171. array(3) {
  172. [0]=>
  173. int(%d)
  174. [1]=>
  175. string(1) " "
  176. [2]=>
  177. int(1)
  178. }
  179. [18]=>
  180. string(1) "+"
  181. [19]=>
  182. array(3) {
  183. [0]=>
  184. int(%d)
  185. [1]=>
  186. string(1) " "
  187. [2]=>
  188. int(1)
  189. }
  190. [20]=>
  191. array(3) {
  192. [0]=>
  193. int(%d)
  194. [1]=>
  195. string(4) "0x3F"
  196. [2]=>
  197. int(1)
  198. }
  199. [21]=>
  200. string(1) ";"
  201. [22]=>
  202. array(3) {
  203. [0]=>
  204. int(%d)
  205. [1]=>
  206. string(1) " "
  207. [2]=>
  208. int(1)
  209. }
  210. [23]=>
  211. array(3) {
  212. [0]=>
  213. int(%d)
  214. [1]=>
  215. string(2) "?>"
  216. [2]=>
  217. int(1)
  218. }
  219. }
  220. -- Iteration 2 --
  221. array(17) {
  222. [0]=>
  223. array(3) {
  224. [0]=>
  225. int(%d)
  226. [1]=>
  227. string(6) "<?php "
  228. [2]=>
  229. int(1)
  230. }
  231. [1]=>
  232. array(3) {
  233. [0]=>
  234. int(%d)
  235. [1]=>
  236. string(2) "$a"
  237. [2]=>
  238. int(1)
  239. }
  240. [2]=>
  241. array(3) {
  242. [0]=>
  243. int(%d)
  244. [1]=>
  245. string(1) " "
  246. [2]=>
  247. int(1)
  248. }
  249. [3]=>
  250. string(1) "="
  251. [4]=>
  252. array(3) {
  253. [0]=>
  254. int(%d)
  255. [1]=>
  256. string(1) " "
  257. [2]=>
  258. int(1)
  259. }
  260. [5]=>
  261. array(3) {
  262. [0]=>
  263. int(%d)
  264. [1]=>
  265. string(7) "0.23E-2"
  266. [2]=>
  267. int(1)
  268. }
  269. [6]=>
  270. array(3) {
  271. [0]=>
  272. int(%d)
  273. [1]=>
  274. string(1) " "
  275. [2]=>
  276. int(1)
  277. }
  278. [7]=>
  279. string(1) "+"
  280. [8]=>
  281. array(3) {
  282. [0]=>
  283. int(%d)
  284. [1]=>
  285. string(1) " "
  286. [2]=>
  287. int(1)
  288. }
  289. [9]=>
  290. array(3) {
  291. [0]=>
  292. int(%d)
  293. [1]=>
  294. string(6) "0.43e2"
  295. [2]=>
  296. int(1)
  297. }
  298. [10]=>
  299. array(3) {
  300. [0]=>
  301. int(%d)
  302. [1]=>
  303. string(1) " "
  304. [2]=>
  305. int(1)
  306. }
  307. [11]=>
  308. string(1) "+"
  309. [12]=>
  310. array(3) {
  311. [0]=>
  312. int(%d)
  313. [1]=>
  314. string(1) " "
  315. [2]=>
  316. int(1)
  317. }
  318. [13]=>
  319. array(3) {
  320. [0]=>
  321. int(%d)
  322. [1]=>
  323. string(3) "0.5"
  324. [2]=>
  325. int(1)
  326. }
  327. [14]=>
  328. string(1) ";"
  329. [15]=>
  330. array(3) {
  331. [0]=>
  332. int(%d)
  333. [1]=>
  334. string(1) " "
  335. [2]=>
  336. int(1)
  337. }
  338. [16]=>
  339. array(3) {
  340. [0]=>
  341. int(%d)
  342. [1]=>
  343. string(2) "?>"
  344. [2]=>
  345. int(1)
  346. }
  347. }
  348. -- Iteration 3 --
  349. array(11) {
  350. [0]=>
  351. array(3) {
  352. [0]=>
  353. int(%d)
  354. [1]=>
  355. string(6) "<?php "
  356. [2]=>
  357. int(1)
  358. }
  359. [1]=>
  360. array(3) {
  361. [0]=>
  362. int(%d)
  363. [1]=>
  364. string(2) "$a"
  365. [2]=>
  366. int(1)
  367. }
  368. [2]=>
  369. array(3) {
  370. [0]=>
  371. int(%d)
  372. [1]=>
  373. string(1) " "
  374. [2]=>
  375. int(1)
  376. }
  377. [3]=>
  378. string(1) "="
  379. [4]=>
  380. array(3) {
  381. [0]=>
  382. int(%d)
  383. [1]=>
  384. string(1) " "
  385. [2]=>
  386. int(1)
  387. }
  388. [5]=>
  389. array(3) {
  390. [0]=>
  391. int(%d)
  392. [1]=>
  393. string(8) ""hello ""
  394. [2]=>
  395. int(1)
  396. }
  397. [6]=>
  398. string(1) "."
  399. [7]=>
  400. array(3) {
  401. [0]=>
  402. int(%d)
  403. [1]=>
  404. string(7) "'world'"
  405. [2]=>
  406. int(1)
  407. }
  408. [8]=>
  409. string(1) ";"
  410. [9]=>
  411. array(3) {
  412. [0]=>
  413. int(%d)
  414. [1]=>
  415. string(1) " "
  416. [2]=>
  417. int(1)
  418. }
  419. [10]=>
  420. array(3) {
  421. [0]=>
  422. int(%d)
  423. [1]=>
  424. string(2) "?>"
  425. [2]=>
  426. int(1)
  427. }
  428. }
  429. -- Iteration 4 --
  430. array(18) {
  431. [0]=>
  432. array(3) {
  433. [0]=>
  434. int(%d)
  435. [1]=>
  436. string(6) "<?php "
  437. [2]=>
  438. int(1)
  439. }
  440. [1]=>
  441. array(3) {
  442. [0]=>
  443. int(%d)
  444. [1]=>
  445. string(2) "$a"
  446. [2]=>
  447. int(1)
  448. }
  449. [2]=>
  450. array(3) {
  451. [0]=>
  452. int(%d)
  453. [1]=>
  454. string(1) " "
  455. [2]=>
  456. int(1)
  457. }
  458. [3]=>
  459. string(1) "="
  460. [4]=>
  461. array(3) {
  462. [0]=>
  463. int(%d)
  464. [1]=>
  465. string(1) " "
  466. [2]=>
  467. int(1)
  468. }
  469. [5]=>
  470. string(1) "("
  471. [6]=>
  472. array(3) {
  473. [0]=>
  474. int(%d)
  475. [1]=>
  476. string(2) "$b"
  477. [2]=>
  478. int(1)
  479. }
  480. [7]=>
  481. string(1) ")"
  482. [8]=>
  483. string(1) "?"
  484. [9]=>
  485. array(3) {
  486. [0]=>
  487. int(%d)
  488. [1]=>
  489. string(1) " "
  490. [2]=>
  491. int(1)
  492. }
  493. [10]=>
  494. array(3) {
  495. [0]=>
  496. int(%d)
  497. [1]=>
  498. string(4) "true"
  499. [2]=>
  500. int(1)
  501. }
  502. [11]=>
  503. array(3) {
  504. [0]=>
  505. int(%d)
  506. [1]=>
  507. string(1) " "
  508. [2]=>
  509. int(1)
  510. }
  511. [12]=>
  512. string(1) ":"
  513. [13]=>
  514. array(3) {
  515. [0]=>
  516. int(%d)
  517. [1]=>
  518. string(1) " "
  519. [2]=>
  520. int(1)
  521. }
  522. [14]=>
  523. array(3) {
  524. [0]=>
  525. int(%d)
  526. [1]=>
  527. string(5) "false"
  528. [2]=>
  529. int(1)
  530. }
  531. [15]=>
  532. string(1) ";"
  533. [16]=>
  534. array(3) {
  535. [0]=>
  536. int(%d)
  537. [1]=>
  538. string(1) " "
  539. [2]=>
  540. int(1)
  541. }
  542. [17]=>
  543. array(3) {
  544. [0]=>
  545. int(%d)
  546. [1]=>
  547. string(2) "?>"
  548. [2]=>
  549. int(1)
  550. }
  551. }
  552. -- Iteration 5 --
  553. array(18) {
  554. [0]=>
  555. array(3) {
  556. [0]=>
  557. int(%d)
  558. [1]=>
  559. string(6) "<?php "
  560. [2]=>
  561. int(1)
  562. }
  563. [1]=>
  564. array(3) {
  565. [0]=>
  566. int(%d)
  567. [1]=>
  568. string(2) "$b"
  569. [2]=>
  570. int(1)
  571. }
  572. [2]=>
  573. array(3) {
  574. [0]=>
  575. int(%d)
  576. [1]=>
  577. string(1) " "
  578. [2]=>
  579. int(1)
  580. }
  581. [3]=>
  582. string(1) "="
  583. [4]=>
  584. array(3) {
  585. [0]=>
  586. int(%d)
  587. [1]=>
  588. string(1) " "
  589. [2]=>
  590. int(1)
  591. }
  592. [5]=>
  593. string(1) "("
  594. [6]=>
  595. array(3) {
  596. [0]=>
  597. int(%d)
  598. [1]=>
  599. string(2) "$a"
  600. [2]=>
  601. int(1)
  602. }
  603. [7]=>
  604. string(1) ")"
  605. [8]=>
  606. string(1) "?"
  607. [9]=>
  608. array(3) {
  609. [0]=>
  610. int(%d)
  611. [1]=>
  612. string(1) " "
  613. [2]=>
  614. int(1)
  615. }
  616. [10]=>
  617. array(3) {
  618. [0]=>
  619. int(%d)
  620. [1]=>
  621. string(5) "FALSE"
  622. [2]=>
  623. int(1)
  624. }
  625. [11]=>
  626. array(3) {
  627. [0]=>
  628. int(%d)
  629. [1]=>
  630. string(1) " "
  631. [2]=>
  632. int(1)
  633. }
  634. [12]=>
  635. string(1) ":"
  636. [13]=>
  637. array(3) {
  638. [0]=>
  639. int(%d)
  640. [1]=>
  641. string(1) " "
  642. [2]=>
  643. int(1)
  644. }
  645. [14]=>
  646. array(3) {
  647. [0]=>
  648. int(%d)
  649. [1]=>
  650. string(4) "TRUE"
  651. [2]=>
  652. int(1)
  653. }
  654. [15]=>
  655. string(1) ";"
  656. [16]=>
  657. array(3) {
  658. [0]=>
  659. int(%d)
  660. [1]=>
  661. string(1) " "
  662. [2]=>
  663. int(1)
  664. }
  665. [17]=>
  666. array(3) {
  667. [0]=>
  668. int(%d)
  669. [1]=>
  670. string(2) "?>"
  671. [2]=>
  672. int(1)
  673. }
  674. }
  675. -- Iteration 6 --
  676. array(13) {
  677. [0]=>
  678. array(3) {
  679. [0]=>
  680. int(%d)
  681. [1]=>
  682. string(6) "<?php "
  683. [2]=>
  684. int(1)
  685. }
  686. [1]=>
  687. array(3) {
  688. [0]=>
  689. int(%d)
  690. [1]=>
  691. string(2) "$b"
  692. [2]=>
  693. int(1)
  694. }
  695. [2]=>
  696. array(3) {
  697. [0]=>
  698. int(%d)
  699. [1]=>
  700. string(1) " "
  701. [2]=>
  702. int(1)
  703. }
  704. [3]=>
  705. string(1) "="
  706. [4]=>
  707. array(3) {
  708. [0]=>
  709. int(%d)
  710. [1]=>
  711. string(1) " "
  712. [2]=>
  713. int(1)
  714. }
  715. [5]=>
  716. array(3) {
  717. [0]=>
  718. int(%d)
  719. [1]=>
  720. string(4) "null"
  721. [2]=>
  722. int(1)
  723. }
  724. [6]=>
  725. array(3) {
  726. [0]=>
  727. int(%d)
  728. [1]=>
  729. string(1) " "
  730. [2]=>
  731. int(1)
  732. }
  733. [7]=>
  734. string(1) "|"
  735. [8]=>
  736. array(3) {
  737. [0]=>
  738. int(%d)
  739. [1]=>
  740. string(1) " "
  741. [2]=>
  742. int(1)
  743. }
  744. [9]=>
  745. array(3) {
  746. [0]=>
  747. int(%d)
  748. [1]=>
  749. string(4) "NULL"
  750. [2]=>
  751. int(1)
  752. }
  753. [10]=>
  754. string(1) ";"
  755. [11]=>
  756. array(3) {
  757. [0]=>
  758. int(%d)
  759. [1]=>
  760. string(1) " "
  761. [2]=>
  762. int(1)
  763. }
  764. [12]=>
  765. array(3) {
  766. [0]=>
  767. int(%d)
  768. [1]=>
  769. string(2) "?>"
  770. [2]=>
  771. int(1)
  772. }
  773. }
  774. Done