Dog*_*ert 18 php parsing lexer
我想将PHP源文件解析为AST(最好是作为嵌套的指令数组).
我基本上想转换像
f($a, $b + 1)
Run Code Online (Sandbox Code Playgroud)
变成类似的东西
array( 'function_call',
array(
array( 'var', '$a' ),
array( 'expression',
array(
array( 'binary_operation',
'+',
array ('var', '$b'),
array( 'int', '1' )
)
)
)
)
)
Run Code Online (Sandbox Code Playgroud)
是否有任何内置的PHP库或第三方库(最好是PHP)可以让我这样做?
Nik*_*kiC 21
在我发现没有现有的解析器之后,我实现了一个PHP Parser.它将PHP代码解析为节点树.
嘻哈
您可以使用Facebook的HHVM转储AST.
apt-get install hhvm
# parse specified file and dump the AST
hhvm --parse arg
Run Code Online (Sandbox Code Playgroud)
这适用于HipHop(旧的PHP到C++编译器) - 早在2013年!
HHVM
2015年更新
--parse
不受支持.
你会收到一个错误: HHVM The 'parse' command line option is not supported.
功能请求再次支持CLI选项:https://github.com/facebook/hhvm/issues/4615
PHP 7
PHP 7将有一个AST,请参阅相关的RFC.
有两个扩展,它们提供访问并公开PHP 7生成的AST:
归档时间: |
|
查看次数: |
7716 次 |
最近记录: |