Nikita Popov
1a1300aa2a
Add reverse emulation support
2020-08-01 22:34:36 +02:00
Nikita Popov
3698f4b727
Add common KeywordEmulator
...
The logic for keyword emulation is always going to be the same.
2020-08-01 22:02:52 +02:00
Nikita Popov
7b2ec6703f
Accept a phpVersion option in emulative lexer
...
Testing this will require reverse emulation support.
2020-08-01 21:56:06 +02:00
Nikita Popov
61328f89da
Separate out emulator version info
2020-08-01 21:49:53 +02:00
Nikita Popov
21dce06dfb
Release PHP-Parser 4.7.0
2020-07-25 15:18:53 +02:00
Nikita Popov
acaf3fecad
Implement emulation of PHP 8 T_NAME_* tokens
...
Like comment emulation, this is unconditional, as it is required
for core functionality.
2020-07-23 12:28:13 +02:00
Nikita Popov
a63b495fe6
Migrate grammar to use PHP 8 T_NAME_* tokens
...
This will break everything on PHP < 8.
2020-07-23 12:01:50 +02:00
Nikita Popov
2d1998938c
[PHP 8.0] Support trailing comma in closure use list
...
RFC: https://wiki.php.net/rfc/trailing_comma_in_closure_use_list
2020-07-22 18:43:55 +02:00
Nikita Popov
739b4b4c60
Fix handling of unterminated comment with trailing newline
...
Fixes #688 .
2020-07-22 18:35:55 +02:00
Nikita Popov
17f478107a
Fix file name
2020-07-22 18:30:00 +02:00
Graham Campbell
cd7c058e76
Added missing entry to change log and correct next version indicator ( #685 )
...
* Added missing entry to change log and correct next version indicator
* Update composer.json
2020-07-19 18:36:23 +02:00
Mikaël Mayer
d8b19d7963
Fixed rebuildParsers.php ( #686 )
...
phpyacc is a sh file and should not be run via the php interpreter, but directly.
2020-07-16 21:51:43 +02:00
Tomas Votruba
69c5d48afd
[PHP 8.0] Add match expressions ( #672 )
...
RFC: https://wiki.php.net/rfc/match_expression_v2
Upstream implementation: php/php-src#5371
Closes #671 .
2020-07-15 21:40:05 +02:00
Graham Campbell
6ec527bce7
Corrected license text
2020-07-13 22:32:20 +02:00
Graham Campbell
fc25609ecb
Fixed branch alias
2020-07-13 21:19:31 +02:00
Sebastian Bergmann
f545f18a87
Add ParentConnectingVisitor and NodeConnectingVisitor ( #681 )
2020-07-11 11:31:43 +02:00
Nikita Popov
c346bbfafe
Release PHP-Parser 4.6.0
2020-07-02 19:12:47 +02:00
Nikita Popov
4abc531213
Canonicalize to PHP 8 comment token format
...
The trailing newline is no longer part of the comment token.
2020-06-27 18:53:09 +02:00
TomasVotruba
b58b19ed1d
Add constructor promotion support
2020-06-27 17:57:47 +02:00
Nikita Popov
0d2d8f95a1
FPPP: Support catch without variable
2020-06-27 17:42:46 +02:00
TomasVotruba
244db65dd1
[PHP 8.0] Add trailing comma in parameter list
2020-06-12 20:24:25 +02:00
Nikita Popov
53c2753d75
Release PHP-Parser 4.5.0
2020-06-03 09:24:19 +02:00
TomasVotruba
b5f5313d73
[PHP 8.0] Add exception witout variable
2020-06-03 09:18:13 +02:00
Máté Kocsis
32f89662f3
Add support for the mixed type
2020-05-28 23:39:04 +02:00
Hassan Tariq
f33f081c8f
Fix a minor typo
2020-04-18 10:56:47 +02:00
Nikita Popov
bd43ec7152
Release PHP-Parser 4.4.0
2020-04-10 18:34:50 +02:00
Nikita Popov
d86ca0f745
Support arbitrary expressions in new/instanceof
2020-02-22 21:09:03 +01:00
Nikita Popov
c8d1216531
Treat magic constants like normal constants
2020-02-22 21:06:03 +01:00
Nikita Popov
8999a13cb2
Make class constants fully dereferencable
2020-02-22 21:03:53 +01:00
Nikita Popov
c1eaa0d5cd
Unify array and object dereferencability
2020-02-22 20:57:39 +01:00
Nikita Popov
ca5f7c9761
Split productions, unify {} dereferencing
2020-02-22 20:54:55 +01:00
Nikita Popov
ad696ee75d
Make encapsed strings fully dereferencable
2020-02-22 20:49:11 +01:00
Nikita Popov
6770deda3d
Check that ::class on object works
2020-02-22 20:42:11 +01:00
Nikita Popov
568236a305
Allow expressions in list()
...
Similar to the previous commit: list() syntactically accepts any
expression and non-variables are compile-time errors. The special
case of ($a) ends up being legal by accident.
2020-02-19 21:29:17 +01:00
Nikita Popov
9dda080a9d
Allow expressions in isset()
...
Partial fix for #653 . PHP 7 allows expressions inside isset(), but
rejects non-variables in the compiler. A side-effect of this is that
isset(($x)) is allowed, though this is not intentional.
2020-02-19 21:14:33 +01:00
Nikita Popov
3ec87ef757
Don't require doc comment to be last comment
...
Fixes #652 .
2020-02-15 10:52:34 +01:00
Nikita Popov
a2443aaefa
Make check in numeric literal separator emulator more precise
...
a) Don't check for !== false, preg_match() return 0 if there is
no match. This effectively means that the check was always true.
b) Check for hex characters only if there's an 0x prefix. 1_1 is
very likely a numeric separator, but a_b might well be part of
an identifier.
Fixes #639 .
2020-02-09 22:50:19 +01:00
Ruud Kamphuis
64f4d5b619
Add getProperty
to ClassLike
2020-02-09 22:43:42 +01:00
Nikita Popov
f56d90d4f8
Add additional tests for modifying a Nop comment
2020-02-09 17:23:42 +01:00
Nikita Popov
40aa2282df
Remove trailing comma
2020-02-09 17:15:59 +01:00
Nikita Popov
46cbd9393a
Place Nop nodes more precisely
...
If the Nop is created to collect comments, place it directly after
the comment, instead of at the next non-whitespace character.
2020-02-09 17:10:33 +01:00
Nikita Popov
602af9060d
Add end line / file position / token position to comments
2020-02-09 16:53:46 +01:00
Nikita Popov
bf086d9833
FPPP: Remove special Nop handling
...
This results in ugly formatting, but avoids generating invalid
code.
2020-02-09 16:17:12 +01:00
Ryan Weaver
521addec91
Adding a test case for Nop causing bad new statement placement
2020-02-09 16:16:38 +01:00
Tomáš Votruba
88f3a669c1
Add union type to ParamBuilder and BuilderHelpers
2020-01-05 00:34:49 +01:00
Graham Campbell
ba9cf39999
Test on PHP 7.4 stable
2019-12-20 12:15:00 +01:00
Sam Reed
f862853987
Add .gitattributes to .gitattributes
...
Alphasort too
2019-11-12 15:22:35 +01:00
Nikita Popov
9a9981c347
Release PHP-Parser 4.3.0
2019-11-08 14:50:10 +01:00
Nikita Popov
2c42f64475
Update php-yacc dependency
...
This version has fixed error handling.
2019-11-08 14:46:41 +01:00
Nikita Popov
664c10121e
Add support for union types
...
We definitely need to introduce a general "Type" abstraction in
the next major version.
2019-11-08 14:45:32 +01:00