Awesome
Tolerant-PHP-Parser to php-ast
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)