summaryrefslogtreecommitdiff
path: root/src/libluaglue/LuaVM.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/libluaglue/LuaVM.cpp')
-rw-r--r--src/libluaglue/LuaVM.cpp22
1 files changed, 21 insertions, 1 deletions
diff --git a/src/libluaglue/LuaVM.cpp b/src/libluaglue/LuaVM.cpp
index f268823..9363cac 100644
--- a/src/libluaglue/LuaVM.cpp
+++ b/src/libluaglue/LuaVM.cpp
@@ -1,6 +1,11 @@
#include "LuaVM.hpp"
-LuaVM::LuaVM( )
+#include <stdexcept>
+#include <sstream>
+
+using namespace std;
+
+LuaVM::LuaVM( ) : m_lua( 0 )
{
initialize( );
}
@@ -13,4 +18,19 @@ LuaVM::~LuaVM( )
void LuaVM::initialize( )
{
m_lua = luaL_newstate( );
+
+ luaL_openlibs( m_lua );
+}
+
+void LuaVM::loadSource( const char *filename )
+{
+ int res;
+
+ res = luaL_loadfile( m_lua, filename );
+ if( res != 0 ) {
+ ostringstream ss;
+ ss << "Can't read Lua source file from file '" << filename << "': " << lua_tostring( m_lua, -1 );
+ lua_pop( m_lua, 1 );
+ throw std::runtime_error( ss.str( ) );
+ }
}