Skip to content

Commit 1a57c20

Browse files
committed
Implement TOKEN_AS_OBJECT mode
1 parent df71503 commit 1a57c20

File tree

2 files changed

+446
-39
lines changed

2 files changed

+446
-39
lines changed
Lines changed: 356 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,356 @@
1+
--TEST--
2+
TOKEN_AS_OBJECT mode
3+
--FILE--
4+
<?php
5+
6+
$code = <<<'PHP'
7+
<?php
8+
function foo() {
9+
echo "bar";
10+
}
11+
PHP;
12+
var_dump(token_get_all($code, TOKEN_AS_OBJECT));
13+
var_dump(token_get_all($code, TOKEN_AS_OBJECT|TOKEN_PARSE));
14+
15+
?>
16+
--EXPECT--
17+
array(15) {
18+
[0]=>
19+
object(PhpToken)#1 (4) {
20+
["id"]=>
21+
int(382)
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(342)
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(385)
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(310)
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(40)
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(41)
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(385)
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(123)
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(385)
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(324)
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(385)
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(314)
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(59)
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(385)
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(125)
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(382)
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(342)
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(385)
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(310)
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(40)
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(41)
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(385)
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(123)
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(385)
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(324)
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(385)
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(314)
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(59)
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(385)
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(125)
349+
["text"]=>
350+
string(1) "}"
351+
["line"]=>
352+
int(4)
353+
["pos"]=>
354+
int(39)
355+
}
356+
}

0 commit comments

Comments
 (0)