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

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents 5fb285c0d0e3
children
rev   line source
Chris@13 1 Fixup for precedence and some special syntax
Chris@13 2 -----
Chris@13 3 <?php
Chris@13 4 $a ** $b * $c;
Chris@13 5 $a + $b * $c;
Chris@13 6 $a * $b + $c;
Chris@13 7 $a ? $b : $c;
Chris@13 8 ($a ** $b) * $c;
Chris@13 9 ( $a ** $b ) * $c;
Chris@13 10 !$a = $b;
Chris@13 11 -----
Chris@13 12 // Parens necessary
Chris@13 13 $stmts[0]->expr->left = new Expr\BinaryOp\Plus(new Expr\Variable('a'), new Expr\Variable('b'));
Chris@13 14 // The parens here are "correct", because add is left assoc
Chris@13 15 $stmts[1]->expr->right = new Expr\BinaryOp\Plus(new Expr\Variable('b'), new Expr\Variable('c'));
Chris@13 16 // No parens necessary
Chris@13 17 $stmts[2]->expr->left = new Expr\BinaryOp\Plus(new Expr\Variable('a'), new Expr\Variable('b'));
Chris@13 18 // Parens for RHS not strictly necessary due to assign speciality
Chris@13 19 $stmts[3]->expr->cond = new Expr\Assign(new Expr\Variable('a'), new Expr\Variable('b'));
Chris@13 20 $stmts[3]->expr->if = new Expr\Assign(new Expr\Variable('a'), new Expr\Variable('b'));
Chris@13 21 $stmts[3]->expr->else = new Expr\Assign(new Expr\Variable('a'), new Expr\Variable('b'));
Chris@13 22 // Already has parens
Chris@13 23 $stmts[4]->expr->left = new Expr\BinaryOp\Plus(new Expr\Variable('a'), new Expr\Variable('b'));
Chris@13 24 $stmts[5]->expr->left = new Expr\BinaryOp\Plus(new Expr\Variable('a'), new Expr\Variable('b'));
Chris@13 25 -----
Chris@13 26 <?php
Chris@13 27 ($a + $b) * $c;
Chris@13 28 $a + ($b + $c);
Chris@13 29 $a + $b + $c;
Chris@13 30 ($a = $b) ? $a = $b : ($a = $b);
Chris@13 31 ($a + $b) * $c;
Chris@13 32 ( $a + $b ) * $c;
Chris@13 33 !$a = $b;
Chris@13 34 -----
Chris@13 35 <?php
Chris@13 36 foo ();
Chris@13 37 foo ();
Chris@13 38 $foo -> bar;
Chris@13 39 $foo -> bar;
Chris@13 40 $foo -> bar;
Chris@13 41 $foo -> bar;
Chris@13 42 $foo -> bar;
Chris@13 43 self :: $foo;
Chris@13 44 self :: $foo;
Chris@13 45 -----
Chris@13 46 $stmts[0]->expr->name = new Expr\Variable('a');
Chris@13 47 $stmts[1]->expr->name = new Expr\BinaryOp\Concat(new Expr\Variable('a'), new Expr\Variable('b'));
Chris@13 48 $stmts[2]->expr->var = new Expr\Variable('bar');
Chris@13 49 $stmts[3]->expr->var = new Expr\BinaryOp\Concat(new Expr\Variable('a'), new Expr\Variable('b'));
Chris@13 50 $stmts[4]->expr->name = new Node\Identifier('foo');
Chris@13 51 // In this case the braces are not strictly necessary. However, on PHP 5 they may be required
Chris@13 52 // depending on where the property fetch node itself occurs.
Chris@13 53 $stmts[5]->expr->name = new Expr\Variable('bar');
Chris@13 54 $stmts[6]->expr->name = new Expr\BinaryOp\Concat(new Expr\Variable('a'), new Expr\Variable('b'));
Chris@13 55 $stmts[7]->expr->name = new Node\VarLikeIdentifier('bar');
Chris@13 56 $stmts[8]->expr->name = new Expr\BinaryOp\Concat(new Expr\Variable('a'), new Expr\Variable('b'));
Chris@13 57 -----
Chris@13 58 <?php
Chris@13 59 $a ();
Chris@13 60 ($a . $b) ();
Chris@13 61 $bar -> bar;
Chris@13 62 ($a . $b) -> bar;
Chris@13 63 $foo -> foo;
Chris@13 64 $foo -> {$bar};
Chris@13 65 $foo -> {$a . $b};
Chris@13 66 self :: $bar;
Chris@13 67 self :: ${$a . $b};