PHP 的控制流图实现

v0.7.0 2022-05-02 18:14 UTC

This package is auto-updated.

Last update: 2024-08-24 13:39:17 UTC


README

Build Status Latest Stable Version

PHP-CFG

纯PHP实现的控制流图(CFG),指令采用静态单赋值(SSA)形式。

所使用的SSA构建算法基于Braun等人的《简单而有效的静态单赋值形式构建》。该算法直接从抽象语法树构建SSA形式,而不先通过非SSA中间表示。如果您在寻找支配边界,这里不会找到...

构建的SSA形式是最小化和纯净的(或应该是)。

用法

要启动解析器,您需要给它一个PhpParser实例

$parser = new PHPCfg\Parser(
    (new PhpParser\ParserFactory)->create(PhpParser\ParserFactory::PREFER_PHP7)
);

然后,只需对一个代码块调用parse,并给出一个文件名

$script = $parser->parse(file_get_contents(__FILE__), __FILE__);

要转储图,只需使用内置的dumper

$dumper = new PHPCfg\Printer\Text();
echo $dumper->printScript($script);