使用liblua获取Lua语法树

是否可以使用liblua获取Lua的语法树?

我需要Lua代码的AST,但是我不能依赖于ANTLR4,所以我正在寻找一个自包含的解决方案。既然我的主机应用程序已经嵌入了Lua,那么liblua将是完美的选择。

如果不能使用liblua,那么在C++中解析Lua的其他选项是什么?

点赞
用户1566221
用户1566221

内置的 Lua 解析器是一个一遍编译器,直接生成 Lua 虚拟机指令。没有创建 AST,如果想将 VM 代码反编译成 AST,比起使用任何你感觉舒适的解析生成器创建解析器更加复杂。

比如,Bison 可以生成完全可接受的 C++ 代码,而不需要任何运行时。它有一个 C++ API,但也可以使用 C 模板,并将结果编译为 C++ 程序。

2018-05-21 18:07:06