使用liblua获取Lua语法树

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用liblua获取Lua语法树相关的知识,希望对你有一定的参考价值。

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

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

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

答案

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

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

以上是关于使用liblua获取Lua语法树的主要内容,如果未能解决你的问题,请参考以下文章

Lua BehaviourTree 各节点说明

符号表和抽象语法树是啥关系?两者在编译器设计中是不是必需

尝试从邻接树中获取子项时,语法错误在“)”处或附近

从 dart2js 或 dart-analyzer 获取类型化语法树

ast语法树

AST 抽象语法树