使用liblua获取Lua语法树

时间:2018-05-21 09:47:36

标签: c++ parsing lua abstract-syntax-tree

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

我需要lua代码的AST,但我不能依赖ANTLR4,所以我正在寻找一个自包含的解决方案。由于我的主机应用已嵌入lua,liblua将是完美的。

如果没有liblua,还有哪些其他选项可以在C ++中解析Lua?

1 个答案:

答案 0 :(得分:0)

内置的Lua解析器是一个单行编译器,它直接生成Lua VM指令。没有创建AST,将VM代码反编译为AST比使用您认为合适的任何解析器生成器创建解析器更复杂。

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