tysonandre / tolerant-php-parser-to-php-ast
A pure PHP substitute for nikic/php-ast, using Microsoft/tolerant-php-parser. Can also be used to generate php-ast trees, even for files with some types of syntax errors.
1.0.1
2020-10-04 17:14 UTC
Requires
- php: >=7.2
- microsoft/tolerant-php-parser: 0.0.23
Requires (Dev)
- phan/phan: ^3.0.4
- phpunit/phpunit: ^7.5
Suggests
- ext-ast: ^1.0.6
This package is auto-updated.
Last update: 2024-11-05 03:00:25 UTC
README
This project uses Microsoft/tolerant-php-parser to generate a tree with error tolerance, then converts from that tree to ast\Node from php-ast
This release supports AST version 70.
Usage
Using it as a slow substitute for php-ast
Using it as an error-tolerant substitute for php-ast (e.g. for use in IDEs)
- There are currently two modes: omitting errors and adding placeholders (e.g.
__INCOMPLETE_VARIABLE__
). - Omitting errors only handles some common cases that come up while editing a file.
- Placeholders may change in the future.
- tests/ASTConverter/ErrorTolerantConversionTest.php
- Phan's Language Server uses this code to do that.
Running unit tests
To run unit tests, you must install nikic/php-ast 1.0.1+ (for the expected results to be created).
You must also run composer install
if you haven't already done so.
- For php 7.4, php-ast 1.0.3+ must be installed.
- For php 8.0, php-ast 1.0.10+ must be installed.
- Then run
vendor/bin/phpunit
Possible Future Enhancements
- Adding a mode to never accept invalid PHP (for completeness)