annotate vendor/nikic/php-parser/test/code/parser/semiReserved.test @ 19:fa3358dc1485 tip

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