PhpToken_tokenize.phpt 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358
  1. --TEST--
  2. PhpToken::tokenize() method
  3. --EXTENSIONS--
  4. tokenizer
  5. --FILE--
  6. <?php
  7. $code = <<<'PHP'
  8. <?php
  9. function foo() {
  10. echo "bar";
  11. }
  12. PHP;
  13. var_dump(PhpToken::tokenize($code));
  14. var_dump(PhpToken::tokenize($code, TOKEN_PARSE));
  15. ?>
  16. --EXPECTF--
  17. array(15) {
  18. [0]=>
  19. object(PhpToken)#1 (4) {
  20. ["id"]=>
  21. int(%d)
  22. ["text"]=>
  23. string(6) "<?php
  24. "
  25. ["line"]=>
  26. int(1)
  27. ["pos"]=>
  28. int(0)
  29. }
  30. [1]=>
  31. object(PhpToken)#2 (4) {
  32. ["id"]=>
  33. int(%d)
  34. ["text"]=>
  35. string(8) "function"
  36. ["line"]=>
  37. int(2)
  38. ["pos"]=>
  39. int(6)
  40. }
  41. [2]=>
  42. object(PhpToken)#3 (4) {
  43. ["id"]=>
  44. int(%d)
  45. ["text"]=>
  46. string(1) " "
  47. ["line"]=>
  48. int(2)
  49. ["pos"]=>
  50. int(14)
  51. }
  52. [3]=>
  53. object(PhpToken)#4 (4) {
  54. ["id"]=>
  55. int(%d)
  56. ["text"]=>
  57. string(3) "foo"
  58. ["line"]=>
  59. int(2)
  60. ["pos"]=>
  61. int(15)
  62. }
  63. [4]=>
  64. object(PhpToken)#5 (4) {
  65. ["id"]=>
  66. int(%d)
  67. ["text"]=>
  68. string(1) "("
  69. ["line"]=>
  70. int(2)
  71. ["pos"]=>
  72. int(18)
  73. }
  74. [5]=>
  75. object(PhpToken)#6 (4) {
  76. ["id"]=>
  77. int(%d)
  78. ["text"]=>
  79. string(1) ")"
  80. ["line"]=>
  81. int(2)
  82. ["pos"]=>
  83. int(19)
  84. }
  85. [6]=>
  86. object(PhpToken)#7 (4) {
  87. ["id"]=>
  88. int(%d)
  89. ["text"]=>
  90. string(1) " "
  91. ["line"]=>
  92. int(2)
  93. ["pos"]=>
  94. int(20)
  95. }
  96. [7]=>
  97. object(PhpToken)#8 (4) {
  98. ["id"]=>
  99. int(%d)
  100. ["text"]=>
  101. string(1) "{"
  102. ["line"]=>
  103. int(2)
  104. ["pos"]=>
  105. int(21)
  106. }
  107. [8]=>
  108. object(PhpToken)#9 (4) {
  109. ["id"]=>
  110. int(%d)
  111. ["text"]=>
  112. string(5) "
  113. "
  114. ["line"]=>
  115. int(2)
  116. ["pos"]=>
  117. int(22)
  118. }
  119. [9]=>
  120. object(PhpToken)#10 (4) {
  121. ["id"]=>
  122. int(%d)
  123. ["text"]=>
  124. string(4) "echo"
  125. ["line"]=>
  126. int(3)
  127. ["pos"]=>
  128. int(27)
  129. }
  130. [10]=>
  131. object(PhpToken)#11 (4) {
  132. ["id"]=>
  133. int(%d)
  134. ["text"]=>
  135. string(1) " "
  136. ["line"]=>
  137. int(3)
  138. ["pos"]=>
  139. int(31)
  140. }
  141. [11]=>
  142. object(PhpToken)#12 (4) {
  143. ["id"]=>
  144. int(%d)
  145. ["text"]=>
  146. string(5) ""bar""
  147. ["line"]=>
  148. int(3)
  149. ["pos"]=>
  150. int(32)
  151. }
  152. [12]=>
  153. object(PhpToken)#13 (4) {
  154. ["id"]=>
  155. int(%d)
  156. ["text"]=>
  157. string(1) ";"
  158. ["line"]=>
  159. int(3)
  160. ["pos"]=>
  161. int(37)
  162. }
  163. [13]=>
  164. object(PhpToken)#14 (4) {
  165. ["id"]=>
  166. int(%d)
  167. ["text"]=>
  168. string(1) "
  169. "
  170. ["line"]=>
  171. int(3)
  172. ["pos"]=>
  173. int(38)
  174. }
  175. [14]=>
  176. object(PhpToken)#15 (4) {
  177. ["id"]=>
  178. int(%d)
  179. ["text"]=>
  180. string(1) "}"
  181. ["line"]=>
  182. int(4)
  183. ["pos"]=>
  184. int(39)
  185. }
  186. }
  187. array(15) {
  188. [0]=>
  189. object(PhpToken)#15 (4) {
  190. ["id"]=>
  191. int(%d)
  192. ["text"]=>
  193. string(6) "<?php
  194. "
  195. ["line"]=>
  196. int(1)
  197. ["pos"]=>
  198. int(0)
  199. }
  200. [1]=>
  201. object(PhpToken)#14 (4) {
  202. ["id"]=>
  203. int(%d)
  204. ["text"]=>
  205. string(8) "function"
  206. ["line"]=>
  207. int(2)
  208. ["pos"]=>
  209. int(6)
  210. }
  211. [2]=>
  212. object(PhpToken)#13 (4) {
  213. ["id"]=>
  214. int(%d)
  215. ["text"]=>
  216. string(1) " "
  217. ["line"]=>
  218. int(2)
  219. ["pos"]=>
  220. int(14)
  221. }
  222. [3]=>
  223. object(PhpToken)#12 (4) {
  224. ["id"]=>
  225. int(%d)
  226. ["text"]=>
  227. string(3) "foo"
  228. ["line"]=>
  229. int(2)
  230. ["pos"]=>
  231. int(15)
  232. }
  233. [4]=>
  234. object(PhpToken)#11 (4) {
  235. ["id"]=>
  236. int(%d)
  237. ["text"]=>
  238. string(1) "("
  239. ["line"]=>
  240. int(2)
  241. ["pos"]=>
  242. int(18)
  243. }
  244. [5]=>
  245. object(PhpToken)#10 (4) {
  246. ["id"]=>
  247. int(%d)
  248. ["text"]=>
  249. string(1) ")"
  250. ["line"]=>
  251. int(2)
  252. ["pos"]=>
  253. int(19)
  254. }
  255. [6]=>
  256. object(PhpToken)#9 (4) {
  257. ["id"]=>
  258. int(%d)
  259. ["text"]=>
  260. string(1) " "
  261. ["line"]=>
  262. int(2)
  263. ["pos"]=>
  264. int(20)
  265. }
  266. [7]=>
  267. object(PhpToken)#8 (4) {
  268. ["id"]=>
  269. int(%d)
  270. ["text"]=>
  271. string(1) "{"
  272. ["line"]=>
  273. int(2)
  274. ["pos"]=>
  275. int(21)
  276. }
  277. [8]=>
  278. object(PhpToken)#7 (4) {
  279. ["id"]=>
  280. int(%d)
  281. ["text"]=>
  282. string(5) "
  283. "
  284. ["line"]=>
  285. int(2)
  286. ["pos"]=>
  287. int(22)
  288. }
  289. [9]=>
  290. object(PhpToken)#6 (4) {
  291. ["id"]=>
  292. int(%d)
  293. ["text"]=>
  294. string(4) "echo"
  295. ["line"]=>
  296. int(3)
  297. ["pos"]=>
  298. int(27)
  299. }
  300. [10]=>
  301. object(PhpToken)#5 (4) {
  302. ["id"]=>
  303. int(%d)
  304. ["text"]=>
  305. string(1) " "
  306. ["line"]=>
  307. int(3)
  308. ["pos"]=>
  309. int(31)
  310. }
  311. [11]=>
  312. object(PhpToken)#4 (4) {
  313. ["id"]=>
  314. int(%d)
  315. ["text"]=>
  316. string(5) ""bar""
  317. ["line"]=>
  318. int(3)
  319. ["pos"]=>
  320. int(32)
  321. }
  322. [12]=>
  323. object(PhpToken)#3 (4) {
  324. ["id"]=>
  325. int(%d)
  326. ["text"]=>
  327. string(1) ";"
  328. ["line"]=>
  329. int(3)
  330. ["pos"]=>
  331. int(37)
  332. }
  333. [13]=>
  334. object(PhpToken)#2 (4) {
  335. ["id"]=>
  336. int(%d)
  337. ["text"]=>
  338. string(1) "
  339. "
  340. ["line"]=>
  341. int(3)
  342. ["pos"]=>
  343. int(38)
  344. }
  345. [14]=>
  346. object(PhpToken)#1 (4) {
  347. ["id"]=>
  348. int(%d)
  349. ["text"]=>
  350. string(1) "}"
  351. ["line"]=>
  352. int(4)
  353. ["pos"]=>
  354. int(39)
  355. }
  356. }