tsufeki/php-lenient-parser

用PHP编写的PHP解析器,处理部分/非法输入

0.1.5 2018-08-17 19:01 UTC

This package is auto-updated.

Last update: 2024-09-17 03:44:46 UTC


README

这是一个用PHP编写的PHP 7解析器。它处理一些部分和非法代码,生成最佳尝试的部分语法树。其目的是简化静态代码分析和操作。

尽管它的错误报告并不完整,也就是说,它可能静默地接受非法的PHP输入。

由于这只是一个PHP解析器的替换,请前往那里获取实际文档。

安装

首选的安装方法是composer

php composer.phar require tsufeki/php-lenient-parser

用法

使用工厂获取解析器的实例

$parser = (new LenientParserFactory())->create();

或者提供你自己的词法分析和选项(目前不支持选项)

$parser = (new LenientParserFactory())->create(LenientParserFactory::ONLY_PHP7, $lexer, $options);

创建的解析器是php-parser的直接替换。

不要直接实例化LenientParser,请使用工厂。

信息

目前不支持PHP 5的解析,只支持PHP 7。

内部,解析器实现为一个Pratt解析器(也称为"自顶向下运算符优先级解析器")。

许可证

php-parser相同,BSD - 查看LICENCE

测试套件和CLI脚本(位于bin/test/test_old/目录下)是从php-parser借用并修改的。