tsufeki / php-lenient-parser
用PHP编写的PHP解析器,处理部分/非法输入
0.1.5
2018-08-17 19:01 UTC
Requires
- php: >=7.0
- ext-tokenizer: *
- nikic/php-parser: ^4.0 || ^3.0.5
Requires (Dev)
- phpunit/phpunit: ^5.0
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
借用并修改的。