Mercurial > hg > isophonics-drupal-site
comparison vendor/nikic/php-parser/test/code/parser/semiReserved.test @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children | 5fb285c0d0e3 |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:4c8ae668cc8c |
---|---|
1 Valid usages of reserved keywords as identifiers | |
2 ----- | |
3 <?php | |
4 | |
5 class Test { | |
6 function array() {} | |
7 function public() {} | |
8 | |
9 static function list() {} | |
10 static function protected() {} | |
11 | |
12 public $class; | |
13 public $private; | |
14 | |
15 const TRAIT = 3, FINAL = 4; | |
16 | |
17 const __CLASS__ = 1, __TRAIT__ = 2, __FUNCTION__ = 3, __METHOD__ = 4, __LINE__ = 5, | |
18 __FILE__ = 6, __DIR__ = 7, __NAMESPACE__ = 8; | |
19 // __halt_compiler does not work | |
20 } | |
21 | |
22 $t = new Test; | |
23 $t->array(); | |
24 $t->public(); | |
25 | |
26 Test::list(); | |
27 Test::protected(); | |
28 | |
29 $t->class; | |
30 $t->private; | |
31 | |
32 Test::TRAIT; | |
33 Test::FINAL; | |
34 | |
35 class Foo { | |
36 use TraitA, TraitB { | |
37 TraitA::catch insteadof namespace\TraitB; | |
38 TraitA::list as foreach; | |
39 TraitB::throw as protected public; | |
40 TraitB::self as protected; | |
41 exit as die; | |
42 \TraitC::exit as bye; | |
43 namespace\TraitC::exit as byebye; | |
44 TraitA:: | |
45 // | |
46 /** doc comment */ | |
47 # | |
48 catch /* comment */ | |
49 // comment | |
50 # comment | |
51 insteadof TraitB; | |
52 } | |
53 } | |
54 ----- | |
55 array( | |
56 0: Stmt_Class( | |
57 flags: 0 | |
58 name: Test | |
59 extends: null | |
60 implements: array( | |
61 ) | |
62 stmts: array( | |
63 0: Stmt_ClassMethod( | |
64 flags: 0 | |
65 byRef: false | |
66 name: array | |
67 params: array( | |
68 ) | |
69 returnType: null | |
70 stmts: array( | |
71 ) | |
72 ) | |
73 1: Stmt_ClassMethod( | |
74 flags: 0 | |
75 byRef: false | |
76 name: public | |
77 params: array( | |
78 ) | |
79 returnType: null | |
80 stmts: array( | |
81 ) | |
82 ) | |
83 2: Stmt_ClassMethod( | |
84 flags: MODIFIER_STATIC (8) | |
85 byRef: false | |
86 name: list | |
87 params: array( | |
88 ) | |
89 returnType: null | |
90 stmts: array( | |
91 ) | |
92 ) | |
93 3: Stmt_ClassMethod( | |
94 flags: MODIFIER_STATIC (8) | |
95 byRef: false | |
96 name: protected | |
97 params: array( | |
98 ) | |
99 returnType: null | |
100 stmts: array( | |
101 ) | |
102 ) | |
103 4: Stmt_Property( | |
104 flags: MODIFIER_PUBLIC (1) | |
105 props: array( | |
106 0: Stmt_PropertyProperty( | |
107 name: class | |
108 default: null | |
109 ) | |
110 ) | |
111 ) | |
112 5: Stmt_Property( | |
113 flags: MODIFIER_PUBLIC (1) | |
114 props: array( | |
115 0: Stmt_PropertyProperty( | |
116 name: private | |
117 default: null | |
118 ) | |
119 ) | |
120 ) | |
121 6: Stmt_ClassConst( | |
122 flags: 0 | |
123 consts: array( | |
124 0: Const( | |
125 name: TRAIT | |
126 value: Scalar_LNumber( | |
127 value: 3 | |
128 ) | |
129 ) | |
130 1: Const( | |
131 name: FINAL | |
132 value: Scalar_LNumber( | |
133 value: 4 | |
134 ) | |
135 ) | |
136 ) | |
137 ) | |
138 7: Stmt_ClassConst( | |
139 flags: 0 | |
140 consts: array( | |
141 0: Const( | |
142 name: __CLASS__ | |
143 value: Scalar_LNumber( | |
144 value: 1 | |
145 ) | |
146 ) | |
147 1: Const( | |
148 name: __TRAIT__ | |
149 value: Scalar_LNumber( | |
150 value: 2 | |
151 ) | |
152 ) | |
153 2: Const( | |
154 name: __FUNCTION__ | |
155 value: Scalar_LNumber( | |
156 value: 3 | |
157 ) | |
158 ) | |
159 3: Const( | |
160 name: __METHOD__ | |
161 value: Scalar_LNumber( | |
162 value: 4 | |
163 ) | |
164 ) | |
165 4: Const( | |
166 name: __LINE__ | |
167 value: Scalar_LNumber( | |
168 value: 5 | |
169 ) | |
170 ) | |
171 5: Const( | |
172 name: __FILE__ | |
173 value: Scalar_LNumber( | |
174 value: 6 | |
175 ) | |
176 ) | |
177 6: Const( | |
178 name: __DIR__ | |
179 value: Scalar_LNumber( | |
180 value: 7 | |
181 ) | |
182 ) | |
183 7: Const( | |
184 name: __NAMESPACE__ | |
185 value: Scalar_LNumber( | |
186 value: 8 | |
187 ) | |
188 ) | |
189 ) | |
190 ) | |
191 ) | |
192 ) | |
193 1: Expr_Assign( | |
194 var: Expr_Variable( | |
195 name: t | |
196 ) | |
197 expr: Expr_New( | |
198 class: Name( | |
199 parts: array( | |
200 0: Test | |
201 ) | |
202 ) | |
203 args: array( | |
204 ) | |
205 ) | |
206 ) | |
207 2: Expr_MethodCall( | |
208 var: Expr_Variable( | |
209 name: t | |
210 ) | |
211 name: array | |
212 args: array( | |
213 ) | |
214 ) | |
215 3: Expr_MethodCall( | |
216 var: Expr_Variable( | |
217 name: t | |
218 ) | |
219 name: public | |
220 args: array( | |
221 ) | |
222 ) | |
223 4: Expr_StaticCall( | |
224 class: Name( | |
225 parts: array( | |
226 0: Test | |
227 ) | |
228 ) | |
229 name: list | |
230 args: array( | |
231 ) | |
232 ) | |
233 5: Expr_StaticCall( | |
234 class: Name( | |
235 parts: array( | |
236 0: Test | |
237 ) | |
238 ) | |
239 name: protected | |
240 args: array( | |
241 ) | |
242 ) | |
243 6: Expr_PropertyFetch( | |
244 var: Expr_Variable( | |
245 name: t | |
246 ) | |
247 name: class | |
248 ) | |
249 7: Expr_PropertyFetch( | |
250 var: Expr_Variable( | |
251 name: t | |
252 ) | |
253 name: private | |
254 ) | |
255 8: Expr_ClassConstFetch( | |
256 class: Name( | |
257 parts: array( | |
258 0: Test | |
259 ) | |
260 ) | |
261 name: TRAIT | |
262 ) | |
263 9: Expr_ClassConstFetch( | |
264 class: Name( | |
265 parts: array( | |
266 0: Test | |
267 ) | |
268 ) | |
269 name: FINAL | |
270 ) | |
271 10: Stmt_Class( | |
272 flags: 0 | |
273 name: Foo | |
274 extends: null | |
275 implements: array( | |
276 ) | |
277 stmts: array( | |
278 0: Stmt_TraitUse( | |
279 traits: array( | |
280 0: Name( | |
281 parts: array( | |
282 0: TraitA | |
283 ) | |
284 ) | |
285 1: Name( | |
286 parts: array( | |
287 0: TraitB | |
288 ) | |
289 ) | |
290 ) | |
291 adaptations: array( | |
292 0: Stmt_TraitUseAdaptation_Precedence( | |
293 trait: Name( | |
294 parts: array( | |
295 0: TraitA | |
296 ) | |
297 ) | |
298 method: catch | |
299 insteadof: array( | |
300 0: Name_Relative( | |
301 parts: array( | |
302 0: TraitB | |
303 ) | |
304 ) | |
305 ) | |
306 ) | |
307 1: Stmt_TraitUseAdaptation_Alias( | |
308 trait: Name( | |
309 parts: array( | |
310 0: TraitA | |
311 ) | |
312 ) | |
313 method: list | |
314 newModifier: null | |
315 newName: foreach | |
316 ) | |
317 2: Stmt_TraitUseAdaptation_Alias( | |
318 trait: Name( | |
319 parts: array( | |
320 0: TraitB | |
321 ) | |
322 ) | |
323 method: throw | |
324 newModifier: MODIFIER_PROTECTED (2) | |
325 newName: public | |
326 ) | |
327 3: Stmt_TraitUseAdaptation_Alias( | |
328 trait: Name( | |
329 parts: array( | |
330 0: TraitB | |
331 ) | |
332 ) | |
333 method: self | |
334 newModifier: MODIFIER_PROTECTED (2) | |
335 newName: null | |
336 ) | |
337 4: Stmt_TraitUseAdaptation_Alias( | |
338 trait: null | |
339 method: exit | |
340 newModifier: null | |
341 newName: die | |
342 ) | |
343 5: Stmt_TraitUseAdaptation_Alias( | |
344 trait: Name_FullyQualified( | |
345 parts: array( | |
346 0: TraitC | |
347 ) | |
348 ) | |
349 method: exit | |
350 newModifier: null | |
351 newName: bye | |
352 ) | |
353 6: Stmt_TraitUseAdaptation_Alias( | |
354 trait: Name_Relative( | |
355 parts: array( | |
356 0: TraitC | |
357 ) | |
358 ) | |
359 method: exit | |
360 newModifier: null | |
361 newName: byebye | |
362 ) | |
363 7: Stmt_TraitUseAdaptation_Precedence( | |
364 trait: Name( | |
365 parts: array( | |
366 0: TraitA | |
367 ) | |
368 ) | |
369 method: catch | |
370 insteadof: array( | |
371 0: Name( | |
372 parts: array( | |
373 0: TraitB | |
374 ) | |
375 ) | |
376 ) | |
377 ) | |
378 ) | |
379 ) | |
380 ) | |
381 ) | |
382 ) |