1 Pretty printer generates least-parentheses output
5 echo 'abc' . 'cde' . 'fgh';
6 echo 'abc' . ('cde' . 'fgh');
8 echo 'abc' . 1 + 2 . 'fgh';
9 echo 'abc' . (1 + 2) . 'fgh';
11 echo 1 * 2 + 3 / 4 % 5 . 6;
12 echo 1 * (2 + 3) / (4 % (5 . 6));
14 $a = $b = $c = $d = $f && true;
15 ($a = $b = $c = $d = $f) && true;
16 $a = $b = $c = $d = $f and true;
17 $a = $b = $c = $d = ($f and true);
19 $a ? $b : $c ? $d : $e ? $f : $g;
20 $a ? $b : ($c ? $d : ($e ? $f : $g));
21 $a ? $b ? $c : $d : $f;
36 yield from $a and yield from $b;
37 yield from ($a and yield from $b);
39 print ($a and print $b);
46 // The following will currently add unnecessary parentheses, because the pretty printer is not aware that assignment
47 // and incdec only work on variables.
52 echo 'abc' . 'cde' . 'fgh';
53 echo 'abc' . ('cde' . 'fgh');
54 echo 'abc' . 1 + 2 . 'fgh';
55 echo 'abc' . (1 + 2) . 'fgh';
56 echo 1 * 2 + 3 / 4 % 5 . 6;
57 echo 1 * (2 + 3) / (4 % (5 . 6));
58 $a = $b = $c = $d = $f && true;
59 ($a = $b = $c = $d = $f) && true;
60 $a = $b = $c = $d = $f and true;
61 $a = $b = $c = $d = ($f and true);
62 $a ? $b : $c ? $d : $e ? $f : $g;
63 $a ? $b : ($c ? $d : ($e ? $f : $g));
64 $a ? $b ? $c : $d : $f;
75 yield from $a and yield from $b;
76 yield from ($a and yield from $b);
77 print ($a and print $b);
82 // The following will currently add unnecessary parentheses, because the pretty printer is not aware that assignment
83 // and incdec only work on variables.