token_get_all_variation5.phpt 9.1 KB

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