У меня есть приложение, которое использует файлы lua для некоторых из наиболее неясных параметров конфигурации. По сути, он в основном содержит вызовы приложения для создания вещей и изменения свойств; большинство функций C не имеют возвращаемого значения, но некоторые имеют.
Теперь мне нужно прочитать эти же файлы конфигурации в другом приложении и выполнять существенно разные вещи при вызове функций (поэтому я не могу использовать общий код). Кроме того, меня интересует только подмножество возможных функций, и я думаю, что могу по умолчанию игнорировать (и / или возвращать nil) любой другой вызов функции.
Так что мне интересно, какой здесь лучший подход. Как (из приложения C ++) я могу загрузить и выполнить lua-скрипт, чтобы выражения и т. функции?
(Примечание: у меня есть доступ к словарю исходного приложения, которое в основном использует luabind; я мог бы просто использовать те же определения и изменить реализацию, но это слишком хрупко, поскольку в исходное приложение может быть добавлено больше функций позже. I хотелось бы что-то более общее.)
Цель состоит в том, чтобы получить немного кода C, который я могу использовать в качестве общего заполнителя; конечным результатом будет «все, что определено (стандартные библиотечные подпрограммы, функции, определенные в Lua, и функции C, явно зарегистрированные), вызывайте это как обычно; для всего остального вызовите одну конкретную подпрограмму, которая просто ничего не делает, вместо того, чтобы вызывать ошибку». И желательно что-нибудь совместимое с luabind.
Весь процесс инициируется фрагментом кода C, который настраивает среду Lua, загружает набор файлов, вызывает одну функцию и затем разрушает среду. Ничего не будет происходить.