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