Это может звучать глупо, но я не вижу упоминаний об этой конкретной проблеме.В основном:
Я хочу выполнять скрипт Lua построчно, в первую очередь, чтобы иметь возможность приостановить / возобновить выполнение в любое время и в любом месте, где я захочу.То, что я делаю, очень просто: загрузить чанк с помощью luaL_loadbuffer (), а затем выполнить lua_pcall ().
Дело в том ... Как правильно определить блоки Lua для их атомарного выполнения?
Например, предположим, что в скрипте есть функция - выполняя файл построчно с помощью метода, описанного выше, я не могу найти способ правильно распознать функцию, и, следовательно, ее содержимое загружается ивызывается один за другим.
Я могу себе представить, что одним из решений будет ручная обработка стека, в который я помещаю управляющие ключевые слова, которые я могу распознать в скрипте («функция», «если», «делать» и т. д.)и соответствующее им условие «конец», если я найду вложенные блоки.Как только я нажимаю последний «конец», я называю весь блок, но это звучит просто ужасно.Наверняка должен быть лучший способ сделать это.
Надеюсь, в этом есть какой-то смысл, и спасибо!