说我有一个功能:
function hi()
print('hi')
end
我希望能够将此函数作为参数并对其进行分析,例如列出其中的所有函数调用,查看它引用的所有变量等。
请注意,我不是在讨论分析源代码;我没有函数的源文本,我只有函数对象,即这是在运行时完成的。
我认为你这样做的方法是获得函数的AST。但我不知道该怎么做。那么我将如何获得函数的AST(或者如果有更好的方法则分析它)?
答案 0 :(得分:2)
您可能想尝试我的lbci,一个字节码检查器库。
答案 1 :(得分:1)
我要问。你为什么没有这个来源?是以某种方式混淆了吗?
无论如何如上所述,AST - 即使在Lua中确实没有一个开始,也不能通过任何运行时机制获得。
虽然在许多情况下很容易获得对源的访问,因为它被嵌入到嵌入式解释器中(当然除非他们只发送字节码...
答案 2 :(得分:0)