Updated to Drupal 8.5. Core Media not yet in use.
[yaffs-website] / vendor / nikic / php-parser / test / code / parser / semiReserved.test
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: Identifier(
59             name: Test
60         )
61         extends: null
62         implements: array(
63         )
64         stmts: array(
65             0: Stmt_ClassMethod(
66                 flags: 0
67                 byRef: false
68                 name: Identifier(
69                     name: array
70                 )
71                 params: array(
72                 )
73                 returnType: null
74                 stmts: array(
75                 )
76             )
77             1: Stmt_ClassMethod(
78                 flags: 0
79                 byRef: false
80                 name: Identifier(
81                     name: public
82                 )
83                 params: array(
84                 )
85                 returnType: null
86                 stmts: array(
87                 )
88             )
89             2: Stmt_ClassMethod(
90                 flags: MODIFIER_STATIC (8)
91                 byRef: false
92                 name: Identifier(
93                     name: list
94                 )
95                 params: array(
96                 )
97                 returnType: null
98                 stmts: array(
99                 )
100             )
101             3: Stmt_ClassMethod(
102                 flags: MODIFIER_STATIC (8)
103                 byRef: false
104                 name: Identifier(
105                     name: protected
106                 )
107                 params: array(
108                 )
109                 returnType: null
110                 stmts: array(
111                 )
112             )
113             4: Stmt_Property(
114                 flags: MODIFIER_PUBLIC (1)
115                 props: array(
116                     0: Stmt_PropertyProperty(
117                         name: VarLikeIdentifier(
118                             name: class
119                         )
120                         default: null
121                     )
122                 )
123             )
124             5: Stmt_Property(
125                 flags: MODIFIER_PUBLIC (1)
126                 props: array(
127                     0: Stmt_PropertyProperty(
128                         name: VarLikeIdentifier(
129                             name: private
130                         )
131                         default: null
132                     )
133                 )
134             )
135             6: Stmt_ClassConst(
136                 flags: 0
137                 consts: array(
138                     0: Const(
139                         name: Identifier(
140                             name: TRAIT
141                         )
142                         value: Scalar_LNumber(
143                             value: 3
144                         )
145                     )
146                     1: Const(
147                         name: Identifier(
148                             name: FINAL
149                         )
150                         value: Scalar_LNumber(
151                             value: 4
152                         )
153                     )
154                 )
155             )
156             7: Stmt_ClassConst(
157                 flags: 0
158                 consts: array(
159                     0: Const(
160                         name: Identifier(
161                             name: __CLASS__
162                         )
163                         value: Scalar_LNumber(
164                             value: 1
165                         )
166                     )
167                     1: Const(
168                         name: Identifier(
169                             name: __TRAIT__
170                         )
171                         value: Scalar_LNumber(
172                             value: 2
173                         )
174                     )
175                     2: Const(
176                         name: Identifier(
177                             name: __FUNCTION__
178                         )
179                         value: Scalar_LNumber(
180                             value: 3
181                         )
182                     )
183                     3: Const(
184                         name: Identifier(
185                             name: __METHOD__
186                         )
187                         value: Scalar_LNumber(
188                             value: 4
189                         )
190                     )
191                     4: Const(
192                         name: Identifier(
193                             name: __LINE__
194                         )
195                         value: Scalar_LNumber(
196                             value: 5
197                         )
198                     )
199                     5: Const(
200                         name: Identifier(
201                             name: __FILE__
202                         )
203                         value: Scalar_LNumber(
204                             value: 6
205                         )
206                     )
207                     6: Const(
208                         name: Identifier(
209                             name: __DIR__
210                         )
211                         value: Scalar_LNumber(
212                             value: 7
213                         )
214                     )
215                     7: Const(
216                         name: Identifier(
217                             name: __NAMESPACE__
218                         )
219                         value: Scalar_LNumber(
220                             value: 8
221                         )
222                     )
223                 )
224             )
225         )
226     )
227     1: Stmt_Expression(
228         expr: Expr_Assign(
229             var: Expr_Variable(
230                 name: t
231             )
232             expr: Expr_New(
233                 class: Name(
234                     parts: array(
235                         0: Test
236                     )
237                 )
238                 args: array(
239                 )
240             )
241         )
242     )
243     2: Stmt_Expression(
244         expr: Expr_MethodCall(
245             var: Expr_Variable(
246                 name: t
247             )
248             name: Identifier(
249                 name: array
250             )
251             args: array(
252             )
253         )
254     )
255     3: Stmt_Expression(
256         expr: Expr_MethodCall(
257             var: Expr_Variable(
258                 name: t
259             )
260             name: Identifier(
261                 name: public
262             )
263             args: array(
264             )
265         )
266     )
267     4: Stmt_Expression(
268         expr: Expr_StaticCall(
269             class: Name(
270                 parts: array(
271                     0: Test
272                 )
273             )
274             name: Identifier(
275                 name: list
276             )
277             args: array(
278             )
279         )
280     )
281     5: Stmt_Expression(
282         expr: Expr_StaticCall(
283             class: Name(
284                 parts: array(
285                     0: Test
286                 )
287             )
288             name: Identifier(
289                 name: protected
290             )
291             args: array(
292             )
293         )
294     )
295     6: Stmt_Expression(
296         expr: Expr_PropertyFetch(
297             var: Expr_Variable(
298                 name: t
299             )
300             name: Identifier(
301                 name: class
302             )
303         )
304     )
305     7: Stmt_Expression(
306         expr: Expr_PropertyFetch(
307             var: Expr_Variable(
308                 name: t
309             )
310             name: Identifier(
311                 name: private
312             )
313         )
314     )
315     8: Stmt_Expression(
316         expr: Expr_ClassConstFetch(
317             class: Name(
318                 parts: array(
319                     0: Test
320                 )
321             )
322             name: Identifier(
323                 name: TRAIT
324             )
325         )
326     )
327     9: Stmt_Expression(
328         expr: Expr_ClassConstFetch(
329             class: Name(
330                 parts: array(
331                     0: Test
332                 )
333             )
334             name: Identifier(
335                 name: FINAL
336             )
337         )
338     )
339     10: Stmt_Class(
340         flags: 0
341         name: Identifier(
342             name: Foo
343         )
344         extends: null
345         implements: array(
346         )
347         stmts: array(
348             0: Stmt_TraitUse(
349                 traits: array(
350                     0: Name(
351                         parts: array(
352                             0: TraitA
353                         )
354                     )
355                     1: Name(
356                         parts: array(
357                             0: TraitB
358                         )
359                     )
360                 )
361                 adaptations: array(
362                     0: Stmt_TraitUseAdaptation_Precedence(
363                         trait: Name(
364                             parts: array(
365                                 0: TraitA
366                             )
367                         )
368                         method: Identifier(
369                             name: catch
370                         )
371                         insteadof: array(
372                             0: Name_Relative(
373                                 parts: array(
374                                     0: TraitB
375                                 )
376                             )
377                         )
378                     )
379                     1: Stmt_TraitUseAdaptation_Alias(
380                         trait: Name(
381                             parts: array(
382                                 0: TraitA
383                             )
384                         )
385                         method: Identifier(
386                             name: list
387                         )
388                         newModifier: null
389                         newName: Identifier(
390                             name: foreach
391                         )
392                     )
393                     2: Stmt_TraitUseAdaptation_Alias(
394                         trait: Name(
395                             parts: array(
396                                 0: TraitB
397                             )
398                         )
399                         method: Identifier(
400                             name: throw
401                         )
402                         newModifier: MODIFIER_PROTECTED (2)
403                         newName: Identifier(
404                             name: public
405                         )
406                     )
407                     3: Stmt_TraitUseAdaptation_Alias(
408                         trait: Name(
409                             parts: array(
410                                 0: TraitB
411                             )
412                         )
413                         method: Identifier(
414                             name: self
415                         )
416                         newModifier: MODIFIER_PROTECTED (2)
417                         newName: null
418                     )
419                     4: Stmt_TraitUseAdaptation_Alias(
420                         trait: null
421                         method: Identifier(
422                             name: exit
423                         )
424                         newModifier: null
425                         newName: Identifier(
426                             name: die
427                         )
428                     )
429                     5: Stmt_TraitUseAdaptation_Alias(
430                         trait: Name_FullyQualified(
431                             parts: array(
432                                 0: TraitC
433                             )
434                         )
435                         method: Identifier(
436                             name: exit
437                         )
438                         newModifier: null
439                         newName: Identifier(
440                             name: bye
441                         )
442                     )
443                     6: Stmt_TraitUseAdaptation_Alias(
444                         trait: Name_Relative(
445                             parts: array(
446                                 0: TraitC
447                             )
448                         )
449                         method: Identifier(
450                             name: exit
451                         )
452                         newModifier: null
453                         newName: Identifier(
454                             name: byebye
455                         )
456                     )
457                     7: Stmt_TraitUseAdaptation_Precedence(
458                         trait: Name(
459                             parts: array(
460                                 0: TraitA
461                             )
462                         )
463                         method: Identifier(
464                             name: catch
465                             comments: array(
466                                 0: //
467                                 1: /** doc comment */
468                                 2: #
469                             )
470                         )
471                         insteadof: array(
472                             0: Name(
473                                 parts: array(
474                                     0: TraitB
475                                 )
476                             )
477                         )
478                     )
479                 )
480             )
481         )
482     )
483 )