mirror of
https://github.com/phabelio/PHP-Parser.git
synced 2024-12-12 00:59:49 +01:00
e4b837e0c4
The list was getting unweildly. Also improve error message when parsing fails in pretty printer test and extend some tests.
78 lines
1.7 KiB
Plaintext
78 lines
1.7 KiB
Plaintext
Pretty printer generates least-parentheses output
|
|
-----
|
|
<?php
|
|
|
|
echo 'abc' . 'cde' . 'fgh';
|
|
echo 'abc' . ('cde' . 'fgh');
|
|
|
|
echo 'abc' . 1 + 2 . 'fgh';
|
|
echo 'abc' . (1 + 2) . 'fgh';
|
|
|
|
echo 1 * 2 + 3 / 4 % 5 . 6;
|
|
echo 1 * (2 + 3) / (4 % (5 . 6));
|
|
|
|
$a = $b = $c = $d = $f && true;
|
|
($a = $b = $c = $d = $f) && true;
|
|
$a = $b = $c = $d = $f and true;
|
|
$a = $b = $c = $d = ($f and true);
|
|
|
|
$a ? $b : $c ? $d : $e ? $f : $g;
|
|
$a ? $b : ($c ? $d : ($e ? $f : $g));
|
|
$a ? $b ? $c : $d : $f;
|
|
|
|
$a ?? $b ?? $c;
|
|
($a ?? $b) ?? $c;
|
|
$a ?? ($b ? $c : $d);
|
|
$a || ($b ?? $c);
|
|
|
|
(1 > 0) > (1 < 0);
|
|
++$a + $b;
|
|
$a + $b++;
|
|
|
|
$a ** $b ** $c;
|
|
($a ** $b) ** $c;
|
|
-1 ** 2;
|
|
|
|
yield from $a and yield from $b;
|
|
yield from ($a and yield from $b);
|
|
|
|
print ($a and print $b);
|
|
|
|
// The following will currently add unnecessary parentheses, because the pretty printer is not aware that assignment
|
|
// and incdec only work on variables.
|
|
!$a = $b;
|
|
++$a ** $b;
|
|
$a ** $b++;
|
|
-----
|
|
echo 'abc' . 'cde' . 'fgh';
|
|
echo 'abc' . ('cde' . 'fgh');
|
|
echo 'abc' . 1 + 2 . 'fgh';
|
|
echo 'abc' . (1 + 2) . 'fgh';
|
|
echo 1 * 2 + 3 / 4 % 5 . 6;
|
|
echo 1 * (2 + 3) / (4 % (5 . 6));
|
|
$a = $b = $c = $d = $f && true;
|
|
($a = $b = $c = $d = $f) && true;
|
|
$a = $b = $c = $d = $f and true;
|
|
$a = $b = $c = $d = ($f and true);
|
|
$a ? $b : $c ? $d : $e ? $f : $g;
|
|
$a ? $b : ($c ? $d : ($e ? $f : $g));
|
|
$a ? $b ? $c : $d : $f;
|
|
$a ?? $b ?? $c;
|
|
($a ?? $b) ?? $c;
|
|
$a ?? ($b ? $c : $d);
|
|
$a || ($b ?? $c);
|
|
(1 > 0) > (1 < 0);
|
|
++$a + $b;
|
|
$a + $b++;
|
|
$a ** $b ** $c;
|
|
($a ** $b) ** $c;
|
|
-1 ** 2;
|
|
yield from $a and yield from $b;
|
|
yield from ($a and yield from $b);
|
|
print ($a and print $b);
|
|
// The following will currently add unnecessary parentheses, because the pretty printer is not aware that assignment
|
|
// and incdec only work on variables.
|
|
!($a = $b);
|
|
(++$a) ** $b;
|
|
$a ** ($b++);
|