annotate 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
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@0 58 name: Test
Chris@0 59 extends: null
Chris@0 60 implements: array(
Chris@0 61 )
Chris@0 62 stmts: array(
Chris@0 63 0: Stmt_ClassMethod(
Chris@0 64 flags: 0
Chris@0 65 byRef: false
Chris@0 66 name: array
Chris@0 67 params: array(
Chris@0 68 )
Chris@0 69 returnType: null
Chris@0 70 stmts: array(
Chris@0 71 )
Chris@0 72 )
Chris@0 73 1: Stmt_ClassMethod(
Chris@0 74 flags: 0
Chris@0 75 byRef: false
Chris@0 76 name: public
Chris@0 77 params: array(
Chris@0 78 )
Chris@0 79 returnType: null
Chris@0 80 stmts: array(
Chris@0 81 )
Chris@0 82 )
Chris@0 83 2: Stmt_ClassMethod(
Chris@0 84 flags: MODIFIER_STATIC (8)
Chris@0 85 byRef: false
Chris@0 86 name: list
Chris@0 87 params: array(
Chris@0 88 )
Chris@0 89 returnType: null
Chris@0 90 stmts: array(
Chris@0 91 )
Chris@0 92 )
Chris@0 93 3: Stmt_ClassMethod(
Chris@0 94 flags: MODIFIER_STATIC (8)
Chris@0 95 byRef: false
Chris@0 96 name: protected
Chris@0 97 params: array(
Chris@0 98 )
Chris@0 99 returnType: null
Chris@0 100 stmts: array(
Chris@0 101 )
Chris@0 102 )
Chris@0 103 4: Stmt_Property(
Chris@0 104 flags: MODIFIER_PUBLIC (1)
Chris@0 105 props: array(
Chris@0 106 0: Stmt_PropertyProperty(
Chris@0 107 name: class
Chris@0 108 default: null
Chris@0 109 )
Chris@0 110 )
Chris@0 111 )
Chris@0 112 5: Stmt_Property(
Chris@0 113 flags: MODIFIER_PUBLIC (1)
Chris@0 114 props: array(
Chris@0 115 0: Stmt_PropertyProperty(
Chris@0 116 name: private
Chris@0 117 default: null
Chris@0 118 )
Chris@0 119 )
Chris@0 120 )
Chris@0 121 6: Stmt_ClassConst(
Chris@0 122 flags: 0
Chris@0 123 consts: array(
Chris@0 124 0: Const(
Chris@0 125 name: TRAIT
Chris@0 126 value: Scalar_LNumber(
Chris@0 127 value: 3
Chris@0 128 )
Chris@0 129 )
Chris@0 130 1: Const(
Chris@0 131 name: FINAL
Chris@0 132 value: Scalar_LNumber(
Chris@0 133 value: 4
Chris@0 134 )
Chris@0 135 )
Chris@0 136 )
Chris@0 137 )
Chris@0 138 7: Stmt_ClassConst(
Chris@0 139 flags: 0
Chris@0 140 consts: array(
Chris@0 141 0: Const(
Chris@0 142 name: __CLASS__
Chris@0 143 value: Scalar_LNumber(
Chris@0 144 value: 1
Chris@0 145 )
Chris@0 146 )
Chris@0 147 1: Const(
Chris@0 148 name: __TRAIT__
Chris@0 149 value: Scalar_LNumber(
Chris@0 150 value: 2
Chris@0 151 )
Chris@0 152 )
Chris@0 153 2: Const(
Chris@0 154 name: __FUNCTION__
Chris@0 155 value: Scalar_LNumber(
Chris@0 156 value: 3
Chris@0 157 )
Chris@0 158 )
Chris@0 159 3: Const(
Chris@0 160 name: __METHOD__
Chris@0 161 value: Scalar_LNumber(
Chris@0 162 value: 4
Chris@0 163 )
Chris@0 164 )
Chris@0 165 4: Const(
Chris@0 166 name: __LINE__
Chris@0 167 value: Scalar_LNumber(
Chris@0 168 value: 5
Chris@0 169 )
Chris@0 170 )
Chris@0 171 5: Const(
Chris@0 172 name: __FILE__
Chris@0 173 value: Scalar_LNumber(
Chris@0 174 value: 6
Chris@0 175 )
Chris@0 176 )
Chris@0 177 6: Const(
Chris@0 178 name: __DIR__
Chris@0 179 value: Scalar_LNumber(
Chris@0 180 value: 7
Chris@0 181 )
Chris@0 182 )
Chris@0 183 7: Const(
Chris@0 184 name: __NAMESPACE__
Chris@0 185 value: Scalar_LNumber(
Chris@0 186 value: 8
Chris@0 187 )
Chris@0 188 )
Chris@0 189 )
Chris@0 190 )
Chris@0 191 )
Chris@0 192 )
Chris@0 193 1: Expr_Assign(
Chris@0 194 var: Expr_Variable(
Chris@0 195 name: t
Chris@0 196 )
Chris@0 197 expr: Expr_New(
Chris@0 198 class: Name(
Chris@0 199 parts: array(
Chris@0 200 0: Test
Chris@0 201 )
Chris@0 202 )
Chris@0 203 args: array(
Chris@0 204 )
Chris@0 205 )
Chris@0 206 )
Chris@0 207 2: Expr_MethodCall(
Chris@0 208 var: Expr_Variable(
Chris@0 209 name: t
Chris@0 210 )
Chris@0 211 name: array
Chris@0 212 args: array(
Chris@0 213 )
Chris@0 214 )
Chris@0 215 3: Expr_MethodCall(
Chris@0 216 var: Expr_Variable(
Chris@0 217 name: t
Chris@0 218 )
Chris@0 219 name: public
Chris@0 220 args: array(
Chris@0 221 )
Chris@0 222 )
Chris@0 223 4: Expr_StaticCall(
Chris@0 224 class: Name(
Chris@0 225 parts: array(
Chris@0 226 0: Test
Chris@0 227 )
Chris@0 228 )
Chris@0 229 name: list
Chris@0 230 args: array(
Chris@0 231 )
Chris@0 232 )
Chris@0 233 5: Expr_StaticCall(
Chris@0 234 class: Name(
Chris@0 235 parts: array(
Chris@0 236 0: Test
Chris@0 237 )
Chris@0 238 )
Chris@0 239 name: protected
Chris@0 240 args: array(
Chris@0 241 )
Chris@0 242 )
Chris@0 243 6: Expr_PropertyFetch(
Chris@0 244 var: Expr_Variable(
Chris@0 245 name: t
Chris@0 246 )
Chris@0 247 name: class
Chris@0 248 )
Chris@0 249 7: Expr_PropertyFetch(
Chris@0 250 var: Expr_Variable(
Chris@0 251 name: t
Chris@0 252 )
Chris@0 253 name: private
Chris@0 254 )
Chris@0 255 8: Expr_ClassConstFetch(
Chris@0 256 class: Name(
Chris@0 257 parts: array(
Chris@0 258 0: Test
Chris@0 259 )
Chris@0 260 )
Chris@0 261 name: TRAIT
Chris@0 262 )
Chris@0 263 9: Expr_ClassConstFetch(
Chris@0 264 class: Name(
Chris@0 265 parts: array(
Chris@0 266 0: Test
Chris@0 267 )
Chris@0 268 )
Chris@0 269 name: FINAL
Chris@0 270 )
Chris@0 271 10: Stmt_Class(
Chris@0 272 flags: 0
Chris@0 273 name: Foo
Chris@0 274 extends: null
Chris@0 275 implements: array(
Chris@0 276 )
Chris@0 277 stmts: array(
Chris@0 278 0: Stmt_TraitUse(
Chris@0 279 traits: array(
Chris@0 280 0: Name(
Chris@0 281 parts: array(
Chris@0 282 0: TraitA
Chris@0 283 )
Chris@0 284 )
Chris@0 285 1: Name(
Chris@0 286 parts: array(
Chris@0 287 0: TraitB
Chris@0 288 )
Chris@0 289 )
Chris@0 290 )
Chris@0 291 adaptations: array(
Chris@0 292 0: Stmt_TraitUseAdaptation_Precedence(
Chris@0 293 trait: Name(
Chris@0 294 parts: array(
Chris@0 295 0: TraitA
Chris@0 296 )
Chris@0 297 )
Chris@0 298 method: catch
Chris@0 299 insteadof: array(
Chris@0 300 0: Name_Relative(
Chris@0 301 parts: array(
Chris@0 302 0: TraitB
Chris@0 303 )
Chris@0 304 )
Chris@0 305 )
Chris@0 306 )
Chris@0 307 1: Stmt_TraitUseAdaptation_Alias(
Chris@0 308 trait: Name(
Chris@0 309 parts: array(
Chris@0 310 0: TraitA
Chris@0 311 )
Chris@0 312 )
Chris@0 313 method: list
Chris@0 314 newModifier: null
Chris@0 315 newName: foreach
Chris@0 316 )
Chris@0 317 2: Stmt_TraitUseAdaptation_Alias(
Chris@0 318 trait: Name(
Chris@0 319 parts: array(
Chris@0 320 0: TraitB
Chris@0 321 )
Chris@0 322 )
Chris@0 323 method: throw
Chris@0 324 newModifier: MODIFIER_PROTECTED (2)
Chris@0 325 newName: public
Chris@0 326 )
Chris@0 327 3: Stmt_TraitUseAdaptation_Alias(
Chris@0 328 trait: Name(
Chris@0 329 parts: array(
Chris@0 330 0: TraitB
Chris@0 331 )
Chris@0 332 )
Chris@0 333 method: self
Chris@0 334 newModifier: MODIFIER_PROTECTED (2)
Chris@0 335 newName: null
Chris@0 336 )
Chris@0 337 4: Stmt_TraitUseAdaptation_Alias(
Chris@0 338 trait: null
Chris@0 339 method: exit
Chris@0 340 newModifier: null
Chris@0 341 newName: die
Chris@0 342 )
Chris@0 343 5: Stmt_TraitUseAdaptation_Alias(
Chris@0 344 trait: Name_FullyQualified(
Chris@0 345 parts: array(
Chris@0 346 0: TraitC
Chris@0 347 )
Chris@0 348 )
Chris@0 349 method: exit
Chris@0 350 newModifier: null
Chris@0 351 newName: bye
Chris@0 352 )
Chris@0 353 6: Stmt_TraitUseAdaptation_Alias(
Chris@0 354 trait: Name_Relative(
Chris@0 355 parts: array(
Chris@0 356 0: TraitC
Chris@0 357 )
Chris@0 358 )
Chris@0 359 method: exit
Chris@0 360 newModifier: null
Chris@0 361 newName: byebye
Chris@0 362 )
Chris@0 363 7: Stmt_TraitUseAdaptation_Precedence(
Chris@0 364 trait: Name(
Chris@0 365 parts: array(
Chris@0 366 0: TraitA
Chris@0 367 )
Chris@0 368 )
Chris@0 369 method: catch
Chris@0 370 insteadof: array(
Chris@0 371 0: Name(
Chris@0 372 parts: array(
Chris@0 373 0: TraitB
Chris@0 374 )
Chris@0 375 )
Chris@0 376 )
Chris@0 377 )
Chris@0 378 )
Chris@0 379 )
Chris@0 380 )
Chris@0 381 )
Chris@0 382 )