0

我希望将我的 Hack 代码分解为抽象语法树。请就可用的工具/库/github 存储库向我提供建议,这将帮助我将 Hack 代码解析为 AST。我找到了“h2tp”(对 Facebook 编写的 php 转译器的破解),但它不会将代码解析为 AST。我还尝试了这个项目,它可以满足我的要求,但是它不能识别许多操作员,并且需要大量的返工,这将花费很多时间。

4

2 回答 2

1

hhast (HHAST: Low-Level AST Library) 允许你这样做,你可以像这样调用 hh_parse :hh_parse --full-fidelity-json $file | jq

取自(https://github.com/hhvm/hhast/blob/master/docs/ast-lib.md

于 2018-09-29T14:12:40.730 回答
0

HHVM 本身提供了很多工具来转储 PHP 文件的结构。但是,删除了 AST 转储:https ://github.com/facebook/hhvm/issues/1268

您可以做的是转储 HHVM 汇编语言:http ://hhvm.com/blog/6323/the-journey-of-a-thousand-bytecodes

HHVM 还有一个 PHP 转译器,它可能会有所帮助:https ://docs.hhvm.com/hack/tools/transpiler

您也可以尝试将此扩展移植到 HHVM:https ://github.com/nikic/php-ast

于 2016-12-23T09:33:54.070 回答