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

This package is auto-updated.

Last update: 2024-04-05 01:34:28 UTC


README

Build Status Latest Stable Version License

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)