我正在评估Lua的裸机项目(其中大多数已经在运行),看起来像我们所需要的。
我需要将其放入我的代码中,并且能够完全不挂在Lua内而调用Lua。我需要像状态机一样反复调用Lua,并在每次调用它时说“继续打电话给我,我还没有结束”,“停止,我遇到错误”或“停止”时让它返回一个状态。 ,没有错误,脚本已完成。”
我已经看到了允许对所评估的字节代码的每一行或字节从Lua到c进行回调的钩子,但是我不能使用回调。
Lua的状态机实现是否存在?
您正在寻找使用lua_resume
的lua_resume
C函数。从其文档中:
如果协程产生,lua_resume返回LUA_YIELD;如果协程完成无错误执行,则返回0;如果发生错误,则返回错误代码(请参见lua_pcall)。
在我看来,这完全像您在描述什么。