128613242SJonas Devlieghere //===-- Lua.cpp -----------------------------------------------------------===// 228613242SJonas Devlieghere // 328613242SJonas Devlieghere // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 428613242SJonas Devlieghere // See https://llvm.org/LICENSE.txt for license information. 528613242SJonas Devlieghere // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 628613242SJonas Devlieghere // 728613242SJonas Devlieghere //===----------------------------------------------------------------------===// 828613242SJonas Devlieghere 928613242SJonas Devlieghere #include "Lua.h" 1028613242SJonas Devlieghere #include "llvm/Support/FormatVariadic.h" 1128613242SJonas Devlieghere 1228613242SJonas Devlieghere using namespace lldb_private; 13*45c971f7SJonas Devlieghere using namespace lldb; 1428613242SJonas Devlieghere 1528613242SJonas Devlieghere llvm::Error Lua::Run(llvm::StringRef buffer) { 1628613242SJonas Devlieghere int error = 1728613242SJonas Devlieghere luaL_loadbuffer(m_lua_state, buffer.data(), buffer.size(), "buffer") || 1828613242SJonas Devlieghere lua_pcall(m_lua_state, 0, 0, 0); 1928613242SJonas Devlieghere if (!error) 2028613242SJonas Devlieghere return llvm::Error::success(); 2128613242SJonas Devlieghere 2228613242SJonas Devlieghere llvm::Error e = llvm::make_error<llvm::StringError>( 2328613242SJonas Devlieghere llvm::formatv("{0}\n", lua_tostring(m_lua_state, -1)), 2428613242SJonas Devlieghere llvm::inconvertibleErrorCode()); 2528613242SJonas Devlieghere // Pop error message from the stack. 2628613242SJonas Devlieghere lua_pop(m_lua_state, 1); 2728613242SJonas Devlieghere return e; 2828613242SJonas Devlieghere } 29