annotate vendor/nikic/php-parser/test/code/parser/errorHandling/recovery.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 Error recovery
Chris@0 2 -----
Chris@0 3 <?php
Chris@0 4
Chris@0 5 foo()
Chris@0 6 bar()
Chris@0 7 baz()
Chris@0 8 -----
Chris@0 9 Syntax error, unexpected T_STRING from 4:1 to 4:3
Chris@0 10 Syntax error, unexpected T_STRING from 5:1 to 5:3
Chris@0 11 Syntax error, unexpected EOF from 5:6 to 5:6
Chris@0 12 array(
Chris@0 13 0: Expr_FuncCall(
Chris@0 14 name: Name(
Chris@0 15 parts: array(
Chris@0 16 0: foo
Chris@0 17 )
Chris@0 18 )
Chris@0 19 args: array(
Chris@0 20 )
Chris@0 21 )
Chris@0 22 1: Expr_FuncCall(
Chris@0 23 name: Name(
Chris@0 24 parts: array(
Chris@0 25 0: bar
Chris@0 26 )
Chris@0 27 )
Chris@0 28 args: array(
Chris@0 29 )
Chris@0 30 )
Chris@0 31 2: Expr_FuncCall(
Chris@0 32 name: Name(
Chris@0 33 parts: array(
Chris@0 34 0: baz
Chris@0 35 )
Chris@0 36 )
Chris@0 37 args: array(
Chris@0 38 )
Chris@0 39 )
Chris@0 40 )
Chris@0 41 -----
Chris@0 42 <?php
Chris@0 43
Chris@0 44 foo()
Chris@0 45 bar();
Chris@0 46 baz();
Chris@0 47 -----
Chris@0 48 Syntax error, unexpected T_STRING from 4:1 to 4:3
Chris@0 49 array(
Chris@0 50 0: Expr_FuncCall(
Chris@0 51 name: Name(
Chris@0 52 parts: array(
Chris@0 53 0: foo
Chris@0 54 )
Chris@0 55 )
Chris@0 56 args: array(
Chris@0 57 )
Chris@0 58 )
Chris@0 59 1: Expr_FuncCall(
Chris@0 60 name: Name(
Chris@0 61 parts: array(
Chris@0 62 0: bar
Chris@0 63 )
Chris@0 64 )
Chris@0 65 args: array(
Chris@0 66 )
Chris@0 67 )
Chris@0 68 2: Expr_FuncCall(
Chris@0 69 name: Name(
Chris@0 70 parts: array(
Chris@0 71 0: baz
Chris@0 72 )
Chris@0 73 )
Chris@0 74 args: array(
Chris@0 75 )
Chris@0 76 )
Chris@0 77 )
Chris@0 78 -----
Chris@0 79 <?php
Chris@0 80
Chris@0 81 foo();
Chris@0 82 bar()
Chris@0 83 baz();
Chris@0 84 -----
Chris@0 85 Syntax error, unexpected T_STRING from 5:1 to 5:3
Chris@0 86 array(
Chris@0 87 0: Expr_FuncCall(
Chris@0 88 name: Name(
Chris@0 89 parts: array(
Chris@0 90 0: foo
Chris@0 91 )
Chris@0 92 )
Chris@0 93 args: array(
Chris@0 94 )
Chris@0 95 )
Chris@0 96 1: Expr_FuncCall(
Chris@0 97 name: Name(
Chris@0 98 parts: array(
Chris@0 99 0: bar
Chris@0 100 )
Chris@0 101 )
Chris@0 102 args: array(
Chris@0 103 )
Chris@0 104 )
Chris@0 105 2: Expr_FuncCall(
Chris@0 106 name: Name(
Chris@0 107 parts: array(
Chris@0 108 0: baz
Chris@0 109 )
Chris@0 110 )
Chris@0 111 args: array(
Chris@0 112 )
Chris@0 113 )
Chris@0 114 )
Chris@0 115 -----
Chris@0 116 <?php
Chris@0 117 abc;
Chris@0 118 1 + ;
Chris@0 119 -----
Chris@0 120 Syntax error, unexpected ';' from 3:5 to 3:5
Chris@0 121 array(
Chris@0 122 0: Expr_ConstFetch(
Chris@0 123 name: Name(
Chris@0 124 parts: array(
Chris@0 125 0: abc
Chris@0 126 )
Chris@0 127 )
Chris@0 128 )
Chris@0 129 1: Scalar_LNumber(
Chris@0 130 value: 1
Chris@0 131 )
Chris@0 132 )
Chris@0 133 -----
Chris@0 134 <?php
Chris@0 135 function test() {
Chris@0 136 1 +
Chris@0 137 }
Chris@0 138 -----
Chris@0 139 Syntax error, unexpected '}' from 4:1 to 4:1
Chris@0 140 array(
Chris@0 141 0: Stmt_Function(
Chris@0 142 byRef: false
Chris@0 143 name: test
Chris@0 144 params: array(
Chris@0 145 )
Chris@0 146 returnType: null
Chris@0 147 stmts: array(
Chris@0 148 0: Scalar_LNumber(
Chris@0 149 value: 1
Chris@0 150 )
Chris@0 151 )
Chris@0 152 )
Chris@0 153 )
Chris@0 154 -----
Chris@0 155 <?php
Chris@0 156
Chris@0 157 $i = 0;
Chris@0 158 while
Chris@0 159
Chris@0 160 $j = 1;
Chris@0 161 $k = 2;
Chris@0 162 -----
Chris@0 163 Syntax error, unexpected T_VARIABLE, expecting '(' from 6:1 to 6:2
Chris@0 164 array(
Chris@0 165 0: Expr_Assign(
Chris@0 166 var: Expr_Variable(
Chris@0 167 name: i
Chris@0 168 )
Chris@0 169 expr: Scalar_LNumber(
Chris@0 170 value: 0
Chris@0 171 )
Chris@0 172 )
Chris@0 173 1: Expr_Assign(
Chris@0 174 var: Expr_Variable(
Chris@0 175 name: j
Chris@0 176 )
Chris@0 177 expr: Scalar_LNumber(
Chris@0 178 value: 1
Chris@0 179 )
Chris@0 180 )
Chris@0 181 2: Expr_Assign(
Chris@0 182 var: Expr_Variable(
Chris@0 183 name: k
Chris@0 184 )
Chris@0 185 expr: Scalar_LNumber(
Chris@0 186 value: 2
Chris@0 187 )
Chris@0 188 )
Chris@0 189 )
Chris@0 190 -----
Chris@0 191 <?php
Chris@0 192
Chris@0 193 $i = 0;
Chris@0 194 while () {
Chris@0 195 $j = 1;
Chris@0 196 }
Chris@0 197 $k = 2;
Chris@0 198 // The output here drops the loop - would require Error node to handle this
Chris@0 199 -----
Chris@0 200 Syntax error, unexpected ')' from 4:8 to 4:8
Chris@0 201 array(
Chris@0 202 0: Expr_Assign(
Chris@0 203 var: Expr_Variable(
Chris@0 204 name: i
Chris@0 205 )
Chris@0 206 expr: Scalar_LNumber(
Chris@0 207 value: 0
Chris@0 208 )
Chris@0 209 )
Chris@0 210 1: Expr_Assign(
Chris@0 211 var: Expr_Variable(
Chris@0 212 name: j
Chris@0 213 )
Chris@0 214 expr: Scalar_LNumber(
Chris@0 215 value: 1
Chris@0 216 )
Chris@0 217 )
Chris@0 218 2: Expr_Assign(
Chris@0 219 var: Expr_Variable(
Chris@0 220 name: k
Chris@0 221 )
Chris@0 222 expr: Scalar_LNumber(
Chris@0 223 value: 2
Chris@0 224 )
Chris@0 225 )
Chris@0 226 3: Stmt_Nop(
Chris@0 227 comments: array(
Chris@0 228 0: // The output here drops the loop - would require Error node to handle this
Chris@0 229 )
Chris@0 230 )
Chris@0 231 )
Chris@0 232 -----
Chris@0 233 <?php
Chris@0 234 // Can't recover this yet, as the '}' for the inner_statement_list
Chris@0 235 // is always required.
Chris@0 236
Chris@0 237 $i = 0;
Chris@0 238 while (true) {
Chris@0 239 $i = 1;
Chris@0 240 $i = 2;
Chris@0 241 -----
Chris@0 242 Syntax error, unexpected EOF from 8:12 to 8:12
Chris@0 243 -----
Chris@0 244 <?php
Chris@0 245 $foo->
Chris@0 246 ;
Chris@0 247 -----
Chris@0 248 !!positions
Chris@0 249 Syntax error, unexpected ';', expecting T_STRING or T_VARIABLE or '{' or '$' from 3:1 to 3:1
Chris@0 250 array(
Chris@0 251 0: Expr_PropertyFetch[2:1 - 2:6](
Chris@0 252 var: Expr_Variable[2:1 - 2:4](
Chris@0 253 name: foo
Chris@0 254 )
Chris@0 255 name: Expr_Error[3:1 - 2:6](
Chris@0 256 )
Chris@0 257 )
Chris@0 258 )
Chris@0 259 -----
Chris@0 260 <?php
Chris@0 261 function foo() {
Chris@0 262 $bar->
Chris@0 263 }
Chris@0 264 -----
Chris@0 265 !!positions
Chris@0 266 Syntax error, unexpected '}', expecting T_STRING or T_VARIABLE or '{' or '$' from 4:1 to 4:1
Chris@0 267 array(
Chris@0 268 0: Stmt_Function[2:1 - 4:1](
Chris@0 269 byRef: false
Chris@0 270 name: foo
Chris@0 271 params: array(
Chris@0 272 )
Chris@0 273 returnType: null
Chris@0 274 stmts: array(
Chris@0 275 0: Expr_PropertyFetch[3:5 - 3:10](
Chris@0 276 var: Expr_Variable[3:5 - 3:8](
Chris@0 277 name: bar
Chris@0 278 )
Chris@0 279 name: Expr_Error[4:1 - 3:10](
Chris@0 280 )
Chris@0 281 )
Chris@0 282 )
Chris@0 283 )
Chris@0 284 )
Chris@0 285 -----
Chris@0 286 <?php
Chris@0 287 new T
Chris@0 288 -----
Chris@0 289 Syntax error, unexpected EOF from 2:6 to 2:6
Chris@0 290 array(
Chris@0 291 0: Expr_New(
Chris@0 292 class: Name(
Chris@0 293 parts: array(
Chris@0 294 0: T
Chris@0 295 )
Chris@0 296 )
Chris@0 297 args: array(
Chris@0 298 )
Chris@0 299 )
Chris@0 300 )
Chris@0 301 -----
Chris@0 302 <?php
Chris@0 303 new
Chris@0 304 -----
Chris@0 305 !!php7,positions
Chris@0 306 Syntax error, unexpected EOF from 2:4 to 2:4
Chris@0 307 array(
Chris@0 308 0: Expr_New[2:1 - 2:3](
Chris@0 309 class: Expr_Error[2:4 - 2:3](
Chris@0 310 )
Chris@0 311 args: array(
Chris@0 312 )
Chris@0 313 )
Chris@0 314 )
Chris@0 315 -----
Chris@0 316 <?php
Chris@0 317 $foo instanceof
Chris@0 318 -----
Chris@0 319 !!php7
Chris@0 320 Syntax error, unexpected EOF from 2:16 to 2:16
Chris@0 321 array(
Chris@0 322 0: Expr_Instanceof(
Chris@0 323 expr: Expr_Variable(
Chris@0 324 name: foo
Chris@0 325 )
Chris@0 326 class: Expr_Error(
Chris@0 327 )
Chris@0 328 )
Chris@0 329 )
Chris@0 330 -----
Chris@0 331 <?php
Chris@0 332 $
Chris@0 333 -----
Chris@0 334 !!php7
Chris@0 335 Syntax error, unexpected EOF, expecting T_VARIABLE or '{' or '$' from 2:2 to 2:2
Chris@0 336 array(
Chris@0 337 0: Expr_Variable(
Chris@0 338 name: Expr_Error(
Chris@0 339 )
Chris@0 340 )
Chris@0 341 )
Chris@0 342 -----
Chris@0 343 <?php
Chris@0 344 Foo::$
Chris@0 345 -----
Chris@0 346 !!php7
Chris@0 347 Syntax error, unexpected EOF, expecting T_VARIABLE or '{' or '$' from 2:7 to 2:7
Chris@0 348 array(
Chris@0 349 0: Expr_StaticPropertyFetch(
Chris@0 350 class: Name(
Chris@0 351 parts: array(
Chris@0 352 0: Foo
Chris@0 353 )
Chris@0 354 )
Chris@0 355 name: Expr_Error(
Chris@0 356 )
Chris@0 357 )
Chris@0 358 )
Chris@0 359 -----
Chris@0 360 <?php
Chris@0 361 Foo::
Chris@0 362 -----
Chris@0 363 !!php7
Chris@0 364 Syntax error, unexpected EOF from 2:6 to 2:6
Chris@0 365 array(
Chris@0 366 0: Expr_ClassConstFetch(
Chris@0 367 class: Name(
Chris@0 368 parts: array(
Chris@0 369 0: Foo
Chris@0 370 )
Chris@0 371 )
Chris@0 372 name: Expr_Error(
Chris@0 373 )
Chris@0 374 )
Chris@0 375 )
Chris@0 376 -----
Chris@0 377 <?php
Chris@0 378 namespace Foo
Chris@0 379 use A
Chris@0 380 use function a
Chris@0 381 use A\{B}
Chris@0 382 const A = 1
Chris@0 383 break
Chris@0 384 break 2
Chris@0 385 continue
Chris@0 386 continue 2
Chris@0 387 return
Chris@0 388 return 2
Chris@0 389 echo $a
Chris@0 390 unset($a)
Chris@0 391 throw $x
Chris@0 392 goto label
Chris@0 393 -----
Chris@0 394 !!php7
Chris@0 395 Syntax error, unexpected T_USE, expecting ';' or '{' from 3:1 to 3:3
Chris@0 396 Syntax error, unexpected T_USE, expecting ';' from 5:1 to 5:3
Chris@0 397 Syntax error, unexpected T_CONST, expecting ';' from 6:1 to 6:5
Chris@0 398 Syntax error, unexpected T_BREAK, expecting ';' from 7:1 to 7:5
Chris@0 399 Syntax error, unexpected T_THROW, expecting ';' from 15:1 to 15:5
Chris@0 400 array(
Chris@0 401 0: Stmt_Namespace(
Chris@0 402 name: Name(
Chris@0 403 parts: array(
Chris@0 404 0: Foo
Chris@0 405 )
Chris@0 406 )
Chris@0 407 stmts: array(
Chris@0 408 0: Stmt_Use(
Chris@0 409 type: TYPE_NORMAL (1)
Chris@0 410 uses: array(
Chris@0 411 0: Stmt_UseUse(
Chris@0 412 type: TYPE_UNKNOWN (0)
Chris@0 413 name: Name(
Chris@0 414 parts: array(
Chris@0 415 0: A
Chris@0 416 )
Chris@0 417 )
Chris@0 418 alias: A
Chris@0 419 )
Chris@0 420 )
Chris@0 421 )
Chris@0 422 1: Stmt_Use(
Chris@0 423 type: TYPE_FUNCTION (2)
Chris@0 424 uses: array(
Chris@0 425 0: Stmt_UseUse(
Chris@0 426 type: TYPE_UNKNOWN (0)
Chris@0 427 name: Name(
Chris@0 428 parts: array(
Chris@0 429 0: a
Chris@0 430 )
Chris@0 431 )
Chris@0 432 alias: a
Chris@0 433 )
Chris@0 434 )
Chris@0 435 )
Chris@0 436 2: Stmt_GroupUse(
Chris@0 437 type: TYPE_UNKNOWN (0)
Chris@0 438 prefix: Name(
Chris@0 439 parts: array(
Chris@0 440 0: A
Chris@0 441 )
Chris@0 442 )
Chris@0 443 uses: array(
Chris@0 444 0: Stmt_UseUse(
Chris@0 445 type: TYPE_NORMAL (1)
Chris@0 446 name: Name(
Chris@0 447 parts: array(
Chris@0 448 0: B
Chris@0 449 )
Chris@0 450 )
Chris@0 451 alias: B
Chris@0 452 )
Chris@0 453 )
Chris@0 454 )
Chris@0 455 3: Stmt_Const(
Chris@0 456 consts: array(
Chris@0 457 0: Const(
Chris@0 458 name: A
Chris@0 459 value: Scalar_LNumber(
Chris@0 460 value: 1
Chris@0 461 )
Chris@0 462 )
Chris@0 463 )
Chris@0 464 )
Chris@0 465 4: Stmt_Break(
Chris@0 466 num: null
Chris@0 467 )
Chris@0 468 5: Stmt_Break(
Chris@0 469 num: Scalar_LNumber(
Chris@0 470 value: 2
Chris@0 471 )
Chris@0 472 )
Chris@0 473 6: Stmt_Continue(
Chris@0 474 num: null
Chris@0 475 )
Chris@0 476 7: Stmt_Continue(
Chris@0 477 num: Scalar_LNumber(
Chris@0 478 value: 2
Chris@0 479 )
Chris@0 480 )
Chris@0 481 8: Stmt_Return(
Chris@0 482 expr: null
Chris@0 483 )
Chris@0 484 9: Stmt_Return(
Chris@0 485 expr: Scalar_LNumber(
Chris@0 486 value: 2
Chris@0 487 )
Chris@0 488 )
Chris@0 489 10: Stmt_Echo(
Chris@0 490 exprs: array(
Chris@0 491 0: Expr_Variable(
Chris@0 492 name: a
Chris@0 493 )
Chris@0 494 )
Chris@0 495 )
Chris@0 496 11: Stmt_Unset(
Chris@0 497 vars: array(
Chris@0 498 0: Expr_Variable(
Chris@0 499 name: a
Chris@0 500 )
Chris@0 501 )
Chris@0 502 )
Chris@0 503 12: Stmt_Throw(
Chris@0 504 expr: Expr_Variable(
Chris@0 505 name: x
Chris@0 506 )
Chris@0 507 )
Chris@0 508 13: Stmt_Goto(
Chris@0 509 name: label
Chris@0 510 )
Chris@0 511 )
Chris@0 512 )
Chris@0 513 )
Chris@0 514 -----
Chris@0 515 <?php
Chris@0 516
Chris@0 517 use A\{B, };
Chris@0 518 use function A\{b, };
Chris@0 519 use A, ;
Chris@0 520 const A = 42, ;
Chris@0 521
Chris@0 522 class X implements Y, {
Chris@0 523 use A, ;
Chris@0 524 use A, {
Chris@0 525 A::b insteadof C, ;
Chris@0 526 }
Chris@0 527 const A = 42, ;
Chris@0 528 public $x, ;
Chris@0 529 }
Chris@0 530 interface I extends J, {}
Chris@0 531
Chris@0 532 unset($x, );
Chris@0 533 isset($x, );
Chris@0 534
Chris@0 535 declare(a=42, );
Chris@0 536
Chris@0 537 function foo($a, ) {}
Chris@0 538 foo($a, );
Chris@0 539 global $a, ;
Chris@0 540 static $a, ;
Chris@0 541 echo $a, ;
Chris@0 542
Chris@0 543 for ($a, ; $b, ; $c, );
Chris@0 544 function ($a, ) use ($b, ) {};
Chris@0 545 -----
Chris@0 546 !!php7
Chris@0 547 A trailing comma is not allowed here from 5:6 to 5:6
Chris@0 548 A trailing comma is not allowed here from 6:13 to 6:13
Chris@0 549 A trailing comma is not allowed here from 8:21 to 8:21
Chris@0 550 A trailing comma is not allowed here from 9:10 to 9:10
Chris@0 551 A trailing comma is not allowed here from 10:10 to 10:10
Chris@0 552 A trailing comma is not allowed here from 11:25 to 11:25
Chris@0 553 A trailing comma is not allowed here from 13:17 to 13:17
Chris@0 554 A trailing comma is not allowed here from 14:14 to 14:14
Chris@0 555 A trailing comma is not allowed here from 16:22 to 16:22
Chris@0 556 A trailing comma is not allowed here from 18:9 to 18:9
Chris@0 557 A trailing comma is not allowed here from 19:9 to 19:9
Chris@0 558 A trailing comma is not allowed here from 21:13 to 21:13
Chris@0 559 A trailing comma is not allowed here from 23:16 to 23:16
Chris@0 560 A trailing comma is not allowed here from 24:7 to 24:7
Chris@0 561 A trailing comma is not allowed here from 25:10 to 25:10
Chris@0 562 A trailing comma is not allowed here from 26:10 to 26:10
Chris@0 563 A trailing comma is not allowed here from 27:8 to 27:8
Chris@0 564 A trailing comma is not allowed here from 29:8 to 29:8
Chris@0 565 A trailing comma is not allowed here from 29:14 to 29:14
Chris@0 566 A trailing comma is not allowed here from 29:20 to 29:20
Chris@0 567 A trailing comma is not allowed here from 30:13 to 30:13
Chris@0 568 A trailing comma is not allowed here from 30:24 to 30:24
Chris@0 569 array(
Chris@0 570 0: Stmt_GroupUse(
Chris@0 571 type: TYPE_UNKNOWN (0)
Chris@0 572 prefix: Name(
Chris@0 573 parts: array(
Chris@0 574 0: A
Chris@0 575 )
Chris@0 576 )
Chris@0 577 uses: array(
Chris@0 578 0: Stmt_UseUse(
Chris@0 579 type: TYPE_NORMAL (1)
Chris@0 580 name: Name(
Chris@0 581 parts: array(
Chris@0 582 0: B
Chris@0 583 )
Chris@0 584 )
Chris@0 585 alias: B
Chris@0 586 )
Chris@0 587 )
Chris@0 588 )
Chris@0 589 1: Stmt_GroupUse(
Chris@0 590 type: TYPE_FUNCTION (2)
Chris@0 591 prefix: Name(
Chris@0 592 parts: array(
Chris@0 593 0: A
Chris@0 594 )
Chris@0 595 )
Chris@0 596 uses: array(
Chris@0 597 0: Stmt_UseUse(
Chris@0 598 type: TYPE_UNKNOWN (0)
Chris@0 599 name: Name(
Chris@0 600 parts: array(
Chris@0 601 0: b
Chris@0 602 )
Chris@0 603 )
Chris@0 604 alias: b
Chris@0 605 )
Chris@0 606 )
Chris@0 607 )
Chris@0 608 2: Stmt_Use(
Chris@0 609 type: TYPE_NORMAL (1)
Chris@0 610 uses: array(
Chris@0 611 0: Stmt_UseUse(
Chris@0 612 type: TYPE_UNKNOWN (0)
Chris@0 613 name: Name(
Chris@0 614 parts: array(
Chris@0 615 0: A
Chris@0 616 )
Chris@0 617 )
Chris@0 618 alias: A
Chris@0 619 )
Chris@0 620 )
Chris@0 621 )
Chris@0 622 3: Stmt_Const(
Chris@0 623 consts: array(
Chris@0 624 0: Const(
Chris@0 625 name: A
Chris@0 626 value: Scalar_LNumber(
Chris@0 627 value: 42
Chris@0 628 )
Chris@0 629 )
Chris@0 630 )
Chris@0 631 )
Chris@0 632 4: Stmt_Class(
Chris@0 633 flags: 0
Chris@0 634 name: X
Chris@0 635 extends: null
Chris@0 636 implements: array(
Chris@0 637 0: Name(
Chris@0 638 parts: array(
Chris@0 639 0: Y
Chris@0 640 )
Chris@0 641 )
Chris@0 642 )
Chris@0 643 stmts: array(
Chris@0 644 0: Stmt_TraitUse(
Chris@0 645 traits: array(
Chris@0 646 0: Name(
Chris@0 647 parts: array(
Chris@0 648 0: A
Chris@0 649 )
Chris@0 650 )
Chris@0 651 )
Chris@0 652 adaptations: array(
Chris@0 653 )
Chris@0 654 )
Chris@0 655 1: Stmt_TraitUse(
Chris@0 656 traits: array(
Chris@0 657 0: Name(
Chris@0 658 parts: array(
Chris@0 659 0: A
Chris@0 660 )
Chris@0 661 )
Chris@0 662 )
Chris@0 663 adaptations: array(
Chris@0 664 0: Stmt_TraitUseAdaptation_Precedence(
Chris@0 665 trait: Name(
Chris@0 666 parts: array(
Chris@0 667 0: A
Chris@0 668 )
Chris@0 669 )
Chris@0 670 method: b
Chris@0 671 insteadof: array(
Chris@0 672 0: Name(
Chris@0 673 parts: array(
Chris@0 674 0: C
Chris@0 675 )
Chris@0 676 )
Chris@0 677 )
Chris@0 678 )
Chris@0 679 )
Chris@0 680 )
Chris@0 681 2: Stmt_ClassConst(
Chris@0 682 flags: 0
Chris@0 683 consts: array(
Chris@0 684 0: Const(
Chris@0 685 name: A
Chris@0 686 value: Scalar_LNumber(
Chris@0 687 value: 42
Chris@0 688 )
Chris@0 689 )
Chris@0 690 )
Chris@0 691 )
Chris@0 692 3: Stmt_Property(
Chris@0 693 flags: MODIFIER_PUBLIC (1)
Chris@0 694 props: array(
Chris@0 695 0: Stmt_PropertyProperty(
Chris@0 696 name: x
Chris@0 697 default: null
Chris@0 698 )
Chris@0 699 )
Chris@0 700 )
Chris@0 701 )
Chris@0 702 )
Chris@0 703 5: Stmt_Interface(
Chris@0 704 name: I
Chris@0 705 extends: array(
Chris@0 706 0: Name(
Chris@0 707 parts: array(
Chris@0 708 0: J
Chris@0 709 )
Chris@0 710 )
Chris@0 711 )
Chris@0 712 stmts: array(
Chris@0 713 )
Chris@0 714 )
Chris@0 715 6: Stmt_Unset(
Chris@0 716 vars: array(
Chris@0 717 0: Expr_Variable(
Chris@0 718 name: x
Chris@0 719 )
Chris@0 720 )
Chris@0 721 )
Chris@0 722 7: Expr_Isset(
Chris@0 723 vars: array(
Chris@0 724 0: Expr_Variable(
Chris@0 725 name: x
Chris@0 726 )
Chris@0 727 )
Chris@0 728 )
Chris@0 729 8: Stmt_Declare(
Chris@0 730 declares: array(
Chris@0 731 0: Stmt_DeclareDeclare(
Chris@0 732 key: a
Chris@0 733 value: Scalar_LNumber(
Chris@0 734 value: 42
Chris@0 735 )
Chris@0 736 )
Chris@0 737 )
Chris@0 738 stmts: null
Chris@0 739 )
Chris@0 740 9: Stmt_Function(
Chris@0 741 byRef: false
Chris@0 742 name: foo
Chris@0 743 params: array(
Chris@0 744 0: Param(
Chris@0 745 type: null
Chris@0 746 byRef: false
Chris@0 747 variadic: false
Chris@0 748 name: a
Chris@0 749 default: null
Chris@0 750 )
Chris@0 751 )
Chris@0 752 returnType: null
Chris@0 753 stmts: array(
Chris@0 754 )
Chris@0 755 )
Chris@0 756 10: Expr_FuncCall(
Chris@0 757 name: Name(
Chris@0 758 parts: array(
Chris@0 759 0: foo
Chris@0 760 )
Chris@0 761 )
Chris@0 762 args: array(
Chris@0 763 0: Arg(
Chris@0 764 value: Expr_Variable(
Chris@0 765 name: a
Chris@0 766 )
Chris@0 767 byRef: false
Chris@0 768 unpack: false
Chris@0 769 )
Chris@0 770 )
Chris@0 771 )
Chris@0 772 11: Stmt_Global(
Chris@0 773 vars: array(
Chris@0 774 0: Expr_Variable(
Chris@0 775 name: a
Chris@0 776 )
Chris@0 777 )
Chris@0 778 )
Chris@0 779 12: Stmt_Static(
Chris@0 780 vars: array(
Chris@0 781 0: Stmt_StaticVar(
Chris@0 782 name: a
Chris@0 783 default: null
Chris@0 784 )
Chris@0 785 )
Chris@0 786 )
Chris@0 787 13: Stmt_Echo(
Chris@0 788 exprs: array(
Chris@0 789 0: Expr_Variable(
Chris@0 790 name: a
Chris@0 791 )
Chris@0 792 )
Chris@0 793 )
Chris@0 794 14: Stmt_For(
Chris@0 795 init: array(
Chris@0 796 0: Expr_Variable(
Chris@0 797 name: a
Chris@0 798 )
Chris@0 799 )
Chris@0 800 cond: array(
Chris@0 801 0: Expr_Variable(
Chris@0 802 name: b
Chris@0 803 )
Chris@0 804 )
Chris@0 805 loop: array(
Chris@0 806 0: Expr_Variable(
Chris@0 807 name: c
Chris@0 808 )
Chris@0 809 )
Chris@0 810 stmts: array(
Chris@0 811 )
Chris@0 812 )
Chris@0 813 15: Expr_Closure(
Chris@0 814 static: false
Chris@0 815 byRef: false
Chris@0 816 params: array(
Chris@0 817 0: Param(
Chris@0 818 type: null
Chris@0 819 byRef: false
Chris@0 820 variadic: false
Chris@0 821 name: a
Chris@0 822 default: null
Chris@0 823 )
Chris@0 824 )
Chris@0 825 uses: array(
Chris@0 826 0: Expr_ClosureUse(
Chris@0 827 var: b
Chris@0 828 byRef: false
Chris@0 829 )
Chris@0 830 )
Chris@0 831 returnType: null
Chris@0 832 stmts: array(
Chris@0 833 )
Chris@0 834 )
Chris@0 835 )
Chris@0 836 -----
Chris@0 837 <?php
Chris@0 838
Chris@0 839 foo(Bar::);
Chris@0 840 -----
Chris@0 841 !!php7,positions
Chris@0 842 Syntax error, unexpected ')' from 3:10 to 3:10
Chris@0 843 array(
Chris@0 844 0: Expr_FuncCall[3:1 - 3:10](
Chris@0 845 name: Name[3:1 - 3:3](
Chris@0 846 parts: array(
Chris@0 847 0: foo
Chris@0 848 )
Chris@0 849 )
Chris@0 850 args: array(
Chris@0 851 0: Arg[3:5 - 3:9](
Chris@0 852 value: Expr_ClassConstFetch[3:5 - 3:9](
Chris@0 853 class: Name[3:5 - 3:7](
Chris@0 854 parts: array(
Chris@0 855 0: Bar
Chris@0 856 )
Chris@0 857 )
Chris@0 858 name: Expr_Error[3:10 - 3:9](
Chris@0 859 )
Chris@0 860 )
Chris@0 861 byRef: false
Chris@0 862 unpack: false
Chris@0 863 )
Chris@0 864 )
Chris@0 865 )
Chris@0 866 )