2010-11-24 2 views
0

EDIT 2:Lua C question

** Я хотел бы получить подробное объяснение. Я NOOB для языка C.

Как использовать исходный код Lua для создания Lua-интерпретатора, который будет выполнять заданные блоки кода Lua? Блоки кода Lua будут отправлены как char.

ответ

2

вам нужно позвонить в lua_load скомпилировать блок кода, а затем вызов lua_call для его запуска. Для действительно хорошего примера того, как это делается, взгляните на example provided here:.

Первый аргумент любой функции апи Lua всегда является состояние интерпретатора, который является возвращаемым значением lua_open()

пример фактически использует luaL_loadbuffer который оборачивает вызов lua_load сделать компиляцию A C натянуть немного проще. вы можете прочитать, как использовать его в главе справочного руководства, которая охватывает The Auxiliary Library. Это оставляет lua chunk в верхней части стека lua, который затем может быть вызван с помощью lua_call, но в этом примере используется lua_pcall, что обеспечивает некоторое улавливание ошибок. поскольку кусок, который вы только что скомпилировали, не принимает никаких аргументов (это кусок не функция) и не имеет никакого возвращаемого значения, которое вам было бы интересно, и вы хотите увидеть ошибку точно так, как она была создана, все аргументы, кроме первого (который всегда является состоянием интерпретатора lua), могут быть нулями.

+0

Выглядит хорошо. Я попробую – 2010-11-24 22:03:45