Nikita Popov
dbe56d23de
Release PHP-Parser 4.10.3
2020-12-03 18:45:45 +01:00
Tommy Quissens
c64986fa55
Allow both '{' and T_CURLY_OPEN as curly bracket ( #732 )
2020-12-03 18:42:00 +01:00
Stefano Arlandini
bc7a9bf9c2
Remove useless code left from old implementation
2020-12-02 12:54:15 +01:00
James Titcumb
2816485126
Updated README to indicate that parsing PHP 8.0 code is supported
2020-12-01 15:15:26 +01:00
Anders Jürisoo
1d1bc8a364
Upgrade some PrettyPrinter methods to protected
...
I noticed some methods in the Standard PrettyPrinter is private, can they be upgraded to `protected` to ease when extending it?
2020-10-17 22:04:40 +02:00
Nikita Popov
d520bc9e1d
Don't allow failures on PHP 8.0 integration tests
...
These are passing now.
2020-09-30 21:15:05 +02:00
Nikita Popov
51e0b30843
Test against 8.0.0rc1
...
This should fix the remaining test failures.
2020-09-30 20:51:01 +02:00
Nikita Popov
eff72eeffa
Fix #718 : PrettyPrinter breaks nested ternaries
...
Mark ternary as non-associative operator, as left-associative use
is deprecated in PHP 7.4 and removed in PHP 8.0.
2020-09-30 20:42:58 +02:00
Nikita Popov
658f1be311
Release PHP-Parser 4.10.2
2020-09-26 12:30:38 +02:00
Nikita Popov
b9b65a2996
Fix check for token emulation conflicts
2020-09-26 12:29:16 +02:00
Nikita Popov
1b479e7592
Release PHP-Parser 4.10.1
2020-09-23 20:23:49 +02:00
Nikita Popov
b5351f883a
Make keyword emulation check case-insensitive
2020-09-23 20:19:40 +02:00
Nikita Popov
88be6127fa
FPPP: Fix remove + add at start of list
2020-09-22 22:41:02 +02:00
Nikita Popov
8a97fa157f
Recover from missing semicolon after property or class const
...
Fixes #712 .
2020-09-19 23:11:36 +02:00
Nikita Popov
1c13d05035
Release PHP-Parser 4.10.0
2020-09-19 16:52:48 +02:00
Nikita Popov
c7dc3ce552
Add basic FPPP support for attributes
2020-09-19 16:43:45 +02:00
Nikita Popov
9f6ad686a7
Adjust skip list for moved test
...
The two remaining test_old failures are due to a bug on the PHP
side.
2020-09-19 15:55:07 +02:00
Nikita Popov
1899471f80
Update test for PHP 8 error behavior
...
Replace division by zero with a different error condition that
still warns, and adjust the expected message based on PHP version.
2020-09-19 15:52:05 +02:00
Nikita Popov
8505acd151
Correctly handle ?-> in encapsed strings
...
Followup upstream change.
2020-09-19 15:47:14 +02:00
Nikita Popov
c3e20d9970
Use 8.0.0beta4 to tests against
2020-09-19 15:27:27 +02:00
Tomas Votruba
4c22c62783
[PHP 8.0] Add attributes support ( #661 )
...
Adds support for PHP 8 attributes, represented using `AttrGroup` nodes
containing `Attribute` nodes. The `attrGroup` subnode is added to all
nodes that can have attributes.
This is still missing FPPP support.
Co-authored-by: Nikita Popov <nikita.ppv@gmail.com>
2020-09-13 21:01:17 +02:00
Nikita Popov
f66a32e2df
Emulate PHP 8 attribute syntax
...
Perform emulation by replacing #[ with %[, then patching % back
to # and coalescing #[ into T_ATTRIBUTE if it is a freestanding
token.
2020-09-06 17:42:38 +02:00
Nikita Popov
75abbbd2d4
Handle flexible heredoc via TokenEmulator
...
Extend the interface to support preprocessing.
2020-09-06 17:05:23 +02:00
Nikita Popov
39b046007d
Refactor token emulator registration
...
Only determine needed emulators based on PHP version once, and
add an adaptor that allows treating forward and reverse emulation
the same.
Previously the isEmulationNeeded() check was too conservative,
as it also considered emulators that are not relevant for the
version. Though possibly that check should just be dropped
altogether.
2020-09-06 15:50:52 +02:00
Nikita Popov
e3872b8906
Improve compatibility with other libs defining compat tokens
2020-09-06 15:00:28 +02:00
Ondřej Mirtes
4a40a84cf6
Fixed PHPDoc typo
2020-09-02 12:33:46 +02:00
Nikita Popov
88e519766f
Release PHP-Parser 4.9.1
2020-08-30 18:15:20 +02:00
Nikita Popov
35306de32f
Support visibility modifiers in namespaced names
...
Fixes #704 .
2020-08-29 16:35:31 +02:00
Nikita Popov
ad365b1beb
FPPP: Fix code block detection during removal
...
Instead of checking whether there is a {/} before/after the removed
note, check whether {/} occurs in the between-node range. Dropping
that is what we're really concerned about here.
2020-08-29 16:28:28 +02:00
Nikita Popov
4bc82432de
Only special-case brace handling for statement lists
...
Don't interpret the } before a catch clause as a block statement
and trigger a pretty printing fallback.
2020-08-23 20:57:00 +02:00
Ondrej Mirtes
fd6052e37d
FPPP failing tests
2020-08-23 20:54:01 +02:00
Nikita Popov
bd722809f7
FPPP: Support removing nodes from start of list
2020-08-23 17:35:37 +02:00
Viktor Szépe
56356e4aec
Remove repeated word from PHPDoc in Name
2020-08-23 08:59:38 +02:00
Nikita Popov
aaee038b91
Release PHP-Parser 4.9.0
2020-08-18 21:48:01 +02:00
Nikita Popov
f9d35fe11e
Fix casing of class name
2020-08-10 11:21:16 +02:00
Nikita Popov
8bcaa4261e
Add parens for new/instanceof with complex expression
...
This is not fully accurate because the rules for "new variables"
are different than the rules for dereferenceable LHS.
2020-08-09 22:07:33 +02:00
Nikita Popov
feb6bf7a0c
Wrap class const LHS in parens if necessary
...
This looks like a very old bug in the pretty printer that showed
up in PHP 8 tests.
2020-08-09 21:41:30 +02:00
Nikita Popov
0cee2088ea
Remove self/parent/static restriction for namespace names
...
This no longer applies as of PHP 8.0.
2020-08-09 21:21:22 +02:00
Nikita Popov
78e08fc178
Allow keywords in namespace declaration
2020-08-09 21:19:59 +02:00
Nikita Popov
3aadc15e2e
Support keywords in namespaced names
2020-08-09 21:11:49 +02:00
Nikita Popov
a98350581c
Add support for throw expression
2020-08-09 20:52:55 +02:00
Nikita Popov
7f398769a0
Add support for static return type
2020-08-09 18:52:32 +02:00
Nikita Popov
98f7f39d1c
Add named argument support
...
Not adding any explicit FPPP support, as I don't think add/remove
of names can be handled any better than full reformatting.
2020-08-09 17:37:44 +02:00
Nikita Popov
722119502f
Fine grained version choice for test_old
2020-08-09 16:54:13 +02:00
Graham Campbell
544aee1671
Fix up tests
2020-08-09 16:54:09 +02:00
Nikita Popov
8c58eb4cd4
Release PHP-Parser 4.8.0
2020-08-09 12:23:20 +02:00
Nikita Popov
23d9c17770
Add support for nullsafe operator
2020-08-09 12:08:05 +02:00
Nikita Popov
31be7b4ed9
Update php-yacc, remove unused tokens
2020-08-08 19:22:28 +02:00
Nikita Popov
f6bf041583
Remove last uses of MockBuilder
2020-08-08 11:58:00 +02:00
Nikita Popov
1bf073a76c
Avoid most MockBuilder uses in NodeVisitor testing
...
This removes all the warnings about at() usage ... even though
it is still used. Apparently warnings don't get emitted if the
at() usage is inside a data provider?
2020-08-08 11:49:05 +02:00