У меня есть интерпретатор Lua, что всякий раз, когда я делаю синтаксическую ошибку в своем коде, возвращаемое сообщение об ошибке просто attempted to call a string value
вместо значимого сообщения об ошибке. Например, если я запускаю этот код Lua:Описательные сообщения об ошибках для ошибок синтаксиса Lua
for a= 1,10
print(a)
end
Вместо возвращения содержательную 'do' expected near 'print'
и номер строки, он просто возвращает ошибку attempted to call a string value
.
Мой код C++ выглядит следующим образом:
void LuaInterpreter::run(std::string script) {
luaL_openlibs(m_mainState);
// Adds all functions for calling in lua code
addFunctions(m_mainState);
// Loading the script string into lua
luaL_loadstring(m_mainState, script.c_str());
// Calls the script
int error =lua_pcall(m_mainState, 0, 0, 0);
if (error) {
std::cout << lua_tostring(m_mainState, -1) << std::endl;
lua_pop(m_mainState, 1);
}
}
Заранее спасибо!