002.phpt 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982
  1. --TEST--
  2. token_get_all()
  3. --SKIPIF--
  4. <?php if (!extension_loaded("tokenizer")) print "skip"; ?>
  5. --INI--
  6. short_open_tag=1
  7. --FILE--
  8. <?php
  9. $strings = array(
  10. '<? echo 1; if (isset($a)) print $a+1; $a++; $a--; $a == 2; $a === 2; endif; ?>',
  11. '<?php switch($a) { case 1: break; default: break; } while($a) { exit; } ?>',
  12. '<? /* comment */ if (1 || 2) { } $a = 2 | 1; $b = 3^2; $c = 4&2; ?>',
  13. /* feel free to add more yourself */
  14. 'wrong syntax here'
  15. );
  16. foreach ($strings as $s) {
  17. var_dump(token_get_all($s));
  18. }
  19. echo "Done\n";
  20. ?>
  21. --EXPECTF--
  22. array(49) {
  23. [0]=>
  24. array(3) {
  25. [0]=>
  26. int(%d)
  27. [1]=>
  28. string(2) "<?"
  29. [2]=>
  30. int(1)
  31. }
  32. [1]=>
  33. array(3) {
  34. [0]=>
  35. int(%d)
  36. [1]=>
  37. string(1) " "
  38. [2]=>
  39. int(1)
  40. }
  41. [2]=>
  42. array(3) {
  43. [0]=>
  44. int(%d)
  45. [1]=>
  46. string(4) "echo"
  47. [2]=>
  48. int(1)
  49. }
  50. [3]=>
  51. array(3) {
  52. [0]=>
  53. int(%d)
  54. [1]=>
  55. string(1) " "
  56. [2]=>
  57. int(1)
  58. }
  59. [4]=>
  60. array(3) {
  61. [0]=>
  62. int(%d)
  63. [1]=>
  64. string(1) "1"
  65. [2]=>
  66. int(1)
  67. }
  68. [5]=>
  69. string(1) ";"
  70. [6]=>
  71. array(3) {
  72. [0]=>
  73. int(%d)
  74. [1]=>
  75. string(1) " "
  76. [2]=>
  77. int(1)
  78. }
  79. [7]=>
  80. array(3) {
  81. [0]=>
  82. int(%d)
  83. [1]=>
  84. string(2) "if"
  85. [2]=>
  86. int(1)
  87. }
  88. [8]=>
  89. array(3) {
  90. [0]=>
  91. int(%d)
  92. [1]=>
  93. string(1) " "
  94. [2]=>
  95. int(1)
  96. }
  97. [9]=>
  98. string(1) "("
  99. [10]=>
  100. array(3) {
  101. [0]=>
  102. int(%d)
  103. [1]=>
  104. string(5) "isset"
  105. [2]=>
  106. int(1)
  107. }
  108. [11]=>
  109. string(1) "("
  110. [12]=>
  111. array(3) {
  112. [0]=>
  113. int(%d)
  114. [1]=>
  115. string(2) "$a"
  116. [2]=>
  117. int(1)
  118. }
  119. [13]=>
  120. string(1) ")"
  121. [14]=>
  122. string(1) ")"
  123. [15]=>
  124. array(3) {
  125. [0]=>
  126. int(%d)
  127. [1]=>
  128. string(1) " "
  129. [2]=>
  130. int(1)
  131. }
  132. [16]=>
  133. array(3) {
  134. [0]=>
  135. int(%d)
  136. [1]=>
  137. string(5) "print"
  138. [2]=>
  139. int(1)
  140. }
  141. [17]=>
  142. array(3) {
  143. [0]=>
  144. int(%d)
  145. [1]=>
  146. string(1) " "
  147. [2]=>
  148. int(1)
  149. }
  150. [18]=>
  151. array(3) {
  152. [0]=>
  153. int(%d)
  154. [1]=>
  155. string(2) "$a"
  156. [2]=>
  157. int(1)
  158. }
  159. [19]=>
  160. string(1) "+"
  161. [20]=>
  162. array(3) {
  163. [0]=>
  164. int(%d)
  165. [1]=>
  166. string(1) "1"
  167. [2]=>
  168. int(1)
  169. }
  170. [21]=>
  171. string(1) ";"
  172. [22]=>
  173. array(3) {
  174. [0]=>
  175. int(%d)
  176. [1]=>
  177. string(1) " "
  178. [2]=>
  179. int(1)
  180. }
  181. [23]=>
  182. array(3) {
  183. [0]=>
  184. int(%d)
  185. [1]=>
  186. string(2) "$a"
  187. [2]=>
  188. int(1)
  189. }
  190. [24]=>
  191. array(3) {
  192. [0]=>
  193. int(%d)
  194. [1]=>
  195. string(2) "++"
  196. [2]=>
  197. int(1)
  198. }
  199. [25]=>
  200. string(1) ";"
  201. [26]=>
  202. array(3) {
  203. [0]=>
  204. int(%d)
  205. [1]=>
  206. string(1) " "
  207. [2]=>
  208. int(1)
  209. }
  210. [27]=>
  211. array(3) {
  212. [0]=>
  213. int(%d)
  214. [1]=>
  215. string(2) "$a"
  216. [2]=>
  217. int(1)
  218. }
  219. [28]=>
  220. array(3) {
  221. [0]=>
  222. int(%d)
  223. [1]=>
  224. string(2) "--"
  225. [2]=>
  226. int(1)
  227. }
  228. [29]=>
  229. string(1) ";"
  230. [30]=>
  231. array(3) {
  232. [0]=>
  233. int(%d)
  234. [1]=>
  235. string(1) " "
  236. [2]=>
  237. int(1)
  238. }
  239. [31]=>
  240. array(3) {
  241. [0]=>
  242. int(%d)
  243. [1]=>
  244. string(2) "$a"
  245. [2]=>
  246. int(1)
  247. }
  248. [32]=>
  249. array(3) {
  250. [0]=>
  251. int(%d)
  252. [1]=>
  253. string(1) " "
  254. [2]=>
  255. int(1)
  256. }
  257. [33]=>
  258. array(3) {
  259. [0]=>
  260. int(%d)
  261. [1]=>
  262. string(2) "=="
  263. [2]=>
  264. int(1)
  265. }
  266. [34]=>
  267. array(3) {
  268. [0]=>
  269. int(%d)
  270. [1]=>
  271. string(1) " "
  272. [2]=>
  273. int(1)
  274. }
  275. [35]=>
  276. array(3) {
  277. [0]=>
  278. int(%d)
  279. [1]=>
  280. string(1) "2"
  281. [2]=>
  282. int(1)
  283. }
  284. [36]=>
  285. string(1) ";"
  286. [37]=>
  287. array(3) {
  288. [0]=>
  289. int(%d)
  290. [1]=>
  291. string(1) " "
  292. [2]=>
  293. int(1)
  294. }
  295. [38]=>
  296. array(3) {
  297. [0]=>
  298. int(%d)
  299. [1]=>
  300. string(2) "$a"
  301. [2]=>
  302. int(1)
  303. }
  304. [39]=>
  305. array(3) {
  306. [0]=>
  307. int(%d)
  308. [1]=>
  309. string(1) " "
  310. [2]=>
  311. int(1)
  312. }
  313. [40]=>
  314. array(3) {
  315. [0]=>
  316. int(%d)
  317. [1]=>
  318. string(3) "==="
  319. [2]=>
  320. int(1)
  321. }
  322. [41]=>
  323. array(3) {
  324. [0]=>
  325. int(%d)
  326. [1]=>
  327. string(1) " "
  328. [2]=>
  329. int(1)
  330. }
  331. [42]=>
  332. array(3) {
  333. [0]=>
  334. int(%d)
  335. [1]=>
  336. string(1) "2"
  337. [2]=>
  338. int(1)
  339. }
  340. [43]=>
  341. string(1) ";"
  342. [44]=>
  343. array(3) {
  344. [0]=>
  345. int(%d)
  346. [1]=>
  347. string(1) " "
  348. [2]=>
  349. int(1)
  350. }
  351. [45]=>
  352. array(3) {
  353. [0]=>
  354. int(%d)
  355. [1]=>
  356. string(5) "endif"
  357. [2]=>
  358. int(1)
  359. }
  360. [46]=>
  361. string(1) ";"
  362. [47]=>
  363. array(3) {
  364. [0]=>
  365. int(%d)
  366. [1]=>
  367. string(1) " "
  368. [2]=>
  369. int(1)
  370. }
  371. [48]=>
  372. array(3) {
  373. [0]=>
  374. int(%d)
  375. [1]=>
  376. string(2) "?>"
  377. [2]=>
  378. int(1)
  379. }
  380. }
  381. array(37) {
  382. [0]=>
  383. array(3) {
  384. [0]=>
  385. int(%d)
  386. [1]=>
  387. string(6) "<?php "
  388. [2]=>
  389. int(1)
  390. }
  391. [1]=>
  392. array(3) {
  393. [0]=>
  394. int(%d)
  395. [1]=>
  396. string(6) "switch"
  397. [2]=>
  398. int(1)
  399. }
  400. [2]=>
  401. string(1) "("
  402. [3]=>
  403. array(3) {
  404. [0]=>
  405. int(%d)
  406. [1]=>
  407. string(2) "$a"
  408. [2]=>
  409. int(1)
  410. }
  411. [4]=>
  412. string(1) ")"
  413. [5]=>
  414. array(3) {
  415. [0]=>
  416. int(%d)
  417. [1]=>
  418. string(1) " "
  419. [2]=>
  420. int(1)
  421. }
  422. [6]=>
  423. string(1) "{"
  424. [7]=>
  425. array(3) {
  426. [0]=>
  427. int(%d)
  428. [1]=>
  429. string(1) " "
  430. [2]=>
  431. int(1)
  432. }
  433. [8]=>
  434. array(3) {
  435. [0]=>
  436. int(%d)
  437. [1]=>
  438. string(4) "case"
  439. [2]=>
  440. int(1)
  441. }
  442. [9]=>
  443. array(3) {
  444. [0]=>
  445. int(%d)
  446. [1]=>
  447. string(1) " "
  448. [2]=>
  449. int(1)
  450. }
  451. [10]=>
  452. array(3) {
  453. [0]=>
  454. int(%d)
  455. [1]=>
  456. string(1) "1"
  457. [2]=>
  458. int(1)
  459. }
  460. [11]=>
  461. string(1) ":"
  462. [12]=>
  463. array(3) {
  464. [0]=>
  465. int(%d)
  466. [1]=>
  467. string(1) " "
  468. [2]=>
  469. int(1)
  470. }
  471. [13]=>
  472. array(3) {
  473. [0]=>
  474. int(%d)
  475. [1]=>
  476. string(5) "break"
  477. [2]=>
  478. int(1)
  479. }
  480. [14]=>
  481. string(1) ";"
  482. [15]=>
  483. array(3) {
  484. [0]=>
  485. int(%d)
  486. [1]=>
  487. string(1) " "
  488. [2]=>
  489. int(1)
  490. }
  491. [16]=>
  492. array(3) {
  493. [0]=>
  494. int(%d)
  495. [1]=>
  496. string(7) "default"
  497. [2]=>
  498. int(1)
  499. }
  500. [17]=>
  501. string(1) ":"
  502. [18]=>
  503. array(3) {
  504. [0]=>
  505. int(%d)
  506. [1]=>
  507. string(1) " "
  508. [2]=>
  509. int(1)
  510. }
  511. [19]=>
  512. array(3) {
  513. [0]=>
  514. int(%d)
  515. [1]=>
  516. string(5) "break"
  517. [2]=>
  518. int(1)
  519. }
  520. [20]=>
  521. string(1) ";"
  522. [21]=>
  523. array(3) {
  524. [0]=>
  525. int(%d)
  526. [1]=>
  527. string(1) " "
  528. [2]=>
  529. int(1)
  530. }
  531. [22]=>
  532. string(1) "}"
  533. [23]=>
  534. array(3) {
  535. [0]=>
  536. int(%d)
  537. [1]=>
  538. string(1) " "
  539. [2]=>
  540. int(1)
  541. }
  542. [24]=>
  543. array(3) {
  544. [0]=>
  545. int(%d)
  546. [1]=>
  547. string(5) "while"
  548. [2]=>
  549. int(1)
  550. }
  551. [25]=>
  552. string(1) "("
  553. [26]=>
  554. array(3) {
  555. [0]=>
  556. int(%d)
  557. [1]=>
  558. string(2) "$a"
  559. [2]=>
  560. int(1)
  561. }
  562. [27]=>
  563. string(1) ")"
  564. [28]=>
  565. array(3) {
  566. [0]=>
  567. int(%d)
  568. [1]=>
  569. string(1) " "
  570. [2]=>
  571. int(1)
  572. }
  573. [29]=>
  574. string(1) "{"
  575. [30]=>
  576. array(3) {
  577. [0]=>
  578. int(%d)
  579. [1]=>
  580. string(1) " "
  581. [2]=>
  582. int(1)
  583. }
  584. [31]=>
  585. array(3) {
  586. [0]=>
  587. int(%d)
  588. [1]=>
  589. string(4) "exit"
  590. [2]=>
  591. int(1)
  592. }
  593. [32]=>
  594. string(1) ";"
  595. [33]=>
  596. array(3) {
  597. [0]=>
  598. int(%d)
  599. [1]=>
  600. string(1) " "
  601. [2]=>
  602. int(1)
  603. }
  604. [34]=>
  605. string(1) "}"
  606. [35]=>
  607. array(3) {
  608. [0]=>
  609. int(%d)
  610. [1]=>
  611. string(1) " "
  612. [2]=>
  613. int(1)
  614. }
  615. [36]=>
  616. array(3) {
  617. [0]=>
  618. int(%d)
  619. [1]=>
  620. string(2) "?>"
  621. [2]=>
  622. int(1)
  623. }
  624. }
  625. array(48) {
  626. [0]=>
  627. array(3) {
  628. [0]=>
  629. int(%d)
  630. [1]=>
  631. string(2) "<?"
  632. [2]=>
  633. int(1)
  634. }
  635. [1]=>
  636. array(3) {
  637. [0]=>
  638. int(%d)
  639. [1]=>
  640. string(1) " "
  641. [2]=>
  642. int(1)
  643. }
  644. [2]=>
  645. array(3) {
  646. [0]=>
  647. int(%d)
  648. [1]=>
  649. string(13) "/* comment */"
  650. [2]=>
  651. int(1)
  652. }
  653. [3]=>
  654. array(3) {
  655. [0]=>
  656. int(%d)
  657. [1]=>
  658. string(1) " "
  659. [2]=>
  660. int(1)
  661. }
  662. [4]=>
  663. array(3) {
  664. [0]=>
  665. int(%d)
  666. [1]=>
  667. string(2) "if"
  668. [2]=>
  669. int(1)
  670. }
  671. [5]=>
  672. array(3) {
  673. [0]=>
  674. int(%d)
  675. [1]=>
  676. string(1) " "
  677. [2]=>
  678. int(1)
  679. }
  680. [6]=>
  681. string(1) "("
  682. [7]=>
  683. array(3) {
  684. [0]=>
  685. int(%d)
  686. [1]=>
  687. string(1) "1"
  688. [2]=>
  689. int(1)
  690. }
  691. [8]=>
  692. array(3) {
  693. [0]=>
  694. int(%d)
  695. [1]=>
  696. string(1) " "
  697. [2]=>
  698. int(1)
  699. }
  700. [9]=>
  701. array(3) {
  702. [0]=>
  703. int(%d)
  704. [1]=>
  705. string(2) "||"
  706. [2]=>
  707. int(1)
  708. }
  709. [10]=>
  710. array(3) {
  711. [0]=>
  712. int(%d)
  713. [1]=>
  714. string(1) " "
  715. [2]=>
  716. int(1)
  717. }
  718. [11]=>
  719. array(3) {
  720. [0]=>
  721. int(%d)
  722. [1]=>
  723. string(1) "2"
  724. [2]=>
  725. int(1)
  726. }
  727. [12]=>
  728. string(1) ")"
  729. [13]=>
  730. array(3) {
  731. [0]=>
  732. int(%d)
  733. [1]=>
  734. string(1) " "
  735. [2]=>
  736. int(1)
  737. }
  738. [14]=>
  739. string(1) "{"
  740. [15]=>
  741. array(3) {
  742. [0]=>
  743. int(%d)
  744. [1]=>
  745. string(1) " "
  746. [2]=>
  747. int(1)
  748. }
  749. [16]=>
  750. string(1) "}"
  751. [17]=>
  752. array(3) {
  753. [0]=>
  754. int(%d)
  755. [1]=>
  756. string(1) " "
  757. [2]=>
  758. int(1)
  759. }
  760. [18]=>
  761. array(3) {
  762. [0]=>
  763. int(%d)
  764. [1]=>
  765. string(2) "$a"
  766. [2]=>
  767. int(1)
  768. }
  769. [19]=>
  770. array(3) {
  771. [0]=>
  772. int(%d)
  773. [1]=>
  774. string(1) " "
  775. [2]=>
  776. int(1)
  777. }
  778. [20]=>
  779. string(1) "="
  780. [21]=>
  781. array(3) {
  782. [0]=>
  783. int(%d)
  784. [1]=>
  785. string(1) " "
  786. [2]=>
  787. int(1)
  788. }
  789. [22]=>
  790. array(3) {
  791. [0]=>
  792. int(%d)
  793. [1]=>
  794. string(1) "2"
  795. [2]=>
  796. int(1)
  797. }
  798. [23]=>
  799. array(3) {
  800. [0]=>
  801. int(%d)
  802. [1]=>
  803. string(1) " "
  804. [2]=>
  805. int(1)
  806. }
  807. [24]=>
  808. string(1) "|"
  809. [25]=>
  810. array(3) {
  811. [0]=>
  812. int(%d)
  813. [1]=>
  814. string(1) " "
  815. [2]=>
  816. int(1)
  817. }
  818. [26]=>
  819. array(3) {
  820. [0]=>
  821. int(%d)
  822. [1]=>
  823. string(1) "1"
  824. [2]=>
  825. int(1)
  826. }
  827. [27]=>
  828. string(1) ";"
  829. [28]=>
  830. array(3) {
  831. [0]=>
  832. int(%d)
  833. [1]=>
  834. string(1) " "
  835. [2]=>
  836. int(1)
  837. }
  838. [29]=>
  839. array(3) {
  840. [0]=>
  841. int(%d)
  842. [1]=>
  843. string(2) "$b"
  844. [2]=>
  845. int(1)
  846. }
  847. [30]=>
  848. array(3) {
  849. [0]=>
  850. int(%d)
  851. [1]=>
  852. string(1) " "
  853. [2]=>
  854. int(1)
  855. }
  856. [31]=>
  857. string(1) "="
  858. [32]=>
  859. array(3) {
  860. [0]=>
  861. int(%d)
  862. [1]=>
  863. string(1) " "
  864. [2]=>
  865. int(1)
  866. }
  867. [33]=>
  868. array(3) {
  869. [0]=>
  870. int(%d)
  871. [1]=>
  872. string(1) "3"
  873. [2]=>
  874. int(1)
  875. }
  876. [34]=>
  877. string(1) "^"
  878. [35]=>
  879. array(3) {
  880. [0]=>
  881. int(%d)
  882. [1]=>
  883. string(1) "2"
  884. [2]=>
  885. int(1)
  886. }
  887. [36]=>
  888. string(1) ";"
  889. [37]=>
  890. array(3) {
  891. [0]=>
  892. int(%d)
  893. [1]=>
  894. string(1) " "
  895. [2]=>
  896. int(1)
  897. }
  898. [38]=>
  899. array(3) {
  900. [0]=>
  901. int(%d)
  902. [1]=>
  903. string(2) "$c"
  904. [2]=>
  905. int(1)
  906. }
  907. [39]=>
  908. array(3) {
  909. [0]=>
  910. int(%d)
  911. [1]=>
  912. string(1) " "
  913. [2]=>
  914. int(1)
  915. }
  916. [40]=>
  917. string(1) "="
  918. [41]=>
  919. array(3) {
  920. [0]=>
  921. int(%d)
  922. [1]=>
  923. string(1) " "
  924. [2]=>
  925. int(1)
  926. }
  927. [42]=>
  928. array(3) {
  929. [0]=>
  930. int(%d)
  931. [1]=>
  932. string(1) "4"
  933. [2]=>
  934. int(1)
  935. }
  936. [43]=>
  937. string(1) "&"
  938. [44]=>
  939. array(3) {
  940. [0]=>
  941. int(%d)
  942. [1]=>
  943. string(1) "2"
  944. [2]=>
  945. int(1)
  946. }
  947. [45]=>
  948. string(1) ";"
  949. [46]=>
  950. array(3) {
  951. [0]=>
  952. int(%d)
  953. [1]=>
  954. string(1) " "
  955. [2]=>
  956. int(1)
  957. }
  958. [47]=>
  959. array(3) {
  960. [0]=>
  961. int(%d)
  962. [1]=>
  963. string(2) "?>"
  964. [2]=>
  965. int(1)
  966. }
  967. }
  968. array(1) {
  969. [0]=>
  970. array(3) {
  971. [0]=>
  972. int(%d)
  973. [1]=>
  974. string(17) "wrong syntax here"
  975. [2]=>
  976. int(1)
  977. }
  978. }
  979. Done