tysonandre/php-parser-to-php-ast

使用 nikic/php-parser 的纯 PHP 代替品,用于 nikic/php-ast。还可以用于生成包含某些类型语法错误的文件的 php-ast 树。

0.2.1 2020-03-12 00:43 UTC

This package is auto-updated.

Last update: 2024-09-12 10:36:10 UTC


README

Build Status Build status (Windows)

此工具将 PHP-Parser 中的 AST(抽象语法树)转换为 php-ast。它可以作为 php-ast 的 PHP 实现版本。它还可以用作最佳努力解析器,用于语法正确的 PHP 代码。

另请参阅 https://github.com/TysonAndre/tolerant-php-parser-to-php-ast(正在进行中,可能效果更好)

支持的 php-ast AST 版本:40、45、50

当前状态

没有失败的测试

  • 需要规范化命名空间(大部分已完成)

当前问题

  • 基于此的测试套件涵盖了 Phan 的常见情况,但仍然存在边缘情况。请参阅 #4
  • 请参阅 nikic/php-ast#78

剩余工作

  • 将 PhpParser 异常转换为 \ParseError 实例

使用方法

将其作为 php-ast 的慢速替代品使用

将其作为对 php-ast 具有容错能力的替代品使用:(例如,用于 IDE)

  • 目前有两种模式:忽略错误和添加占位符(例如,__INCOMPLETE_VARIABLE__)。
  • 忽略错误仅处理在编辑文件时出现的某些常见情况。
  • 占位符可能在未来发生变化。
  • tests/ASTConverter/ErrorTolerantConversionTest.php
  • 如果性能是问题,则缓存文件的先前结果(与用于生成文件的版本结合使用 ASTConversion::ASTCONVERTER_VERSION

运行单元测试

要运行单元测试,您必须安装 nikic/php-ast。应安装支持 AST 版本 40 和/或 50 的版本(首选 ~0.1.5

  • 然后运行 vendor/bin/phpunit

可能的未来增强功能