From ee4625d39413d1e0ba42bb048325c9526ad4f174 Mon Sep 17 00:00:00 2001 From: d-led Date: Mon, 1 Oct 2012 22:42:05 +0200 Subject: [PATCH] initial commit --- .gitignore | 112 ++++ Lua/include/lauxlib.h | 174 ++++++ Lua/include/lua.h | 388 ++++++++++++ Lua/include/lua.hpp | 9 + Lua/include/luaconf.h | 763 ++++++++++++++++++++++++ Lua/include/lualib.h | 53 ++ Lua/lib/lua.exe | Bin 0 -> 45056 bytes Lua/lib/lua5.1.dll | Bin 0 -> 167936 bytes Lua/lib/lua5.1.lib | Bin 0 -> 26112 bytes Lua/lib/pugilua.dll | Bin 0 -> 40448 bytes Lua/lib/pugilua.lib | Bin 0 -> 1734 bytes Lua/lib/test.bat | 2 + Lua/lib/test.lua | 6 + Notepad++.lnk | Bin 0 -> 1081 bytes pugilua/pugilua.cpp | 9 + pugilua/pugilua_lib.cpp | 56 ++ pugilua/pugilua_lib.h | 5 + scripts/pugilua/pugilua.sln | 34 ++ scripts/pugilua/pugilua.vcxproj | 93 +++ scripts/pugilua/pugilua.vcxproj.filters | 33 + 20 files changed, 1737 insertions(+) create mode 100644 .gitignore create mode 100644 Lua/include/lauxlib.h create mode 100644 Lua/include/lua.h create mode 100644 Lua/include/lua.hpp create mode 100644 Lua/include/luaconf.h create mode 100644 Lua/include/lualib.h create mode 100644 Lua/lib/lua.exe create mode 100644 Lua/lib/lua5.1.dll create mode 100644 Lua/lib/lua5.1.lib create mode 100644 Lua/lib/pugilua.dll create mode 100644 Lua/lib/pugilua.lib create mode 100644 Lua/lib/test.bat create mode 100644 Lua/lib/test.lua create mode 100644 Notepad++.lnk create mode 100644 pugilua/pugilua.cpp create mode 100644 pugilua/pugilua_lib.cpp create mode 100644 pugilua/pugilua_lib.h create mode 100644 scripts/pugilua/pugilua.sln create mode 100644 scripts/pugilua/pugilua.vcxproj create mode 100644 scripts/pugilua/pugilua.vcxproj.filters diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..bb2a173 --- /dev/null +++ b/.gitignore @@ -0,0 +1,112 @@ + + +
## Ignore Visual Studio temporary files, build results, and
+## files generated by popular Visual Studio add-ons.
+
+# User-specific files
+*.suo
+*.user
+*.sln.docstates
+
+# Build results
+
+[Dd]ebug*/
+[Rr]elease/
+
+build/
+
+
+[Tt]est[Rr]esult
+[Bb]uild[Ll]og.*
+
+*_i.c
+*_p.c
+*.ilk
+*.meta
+*.obj
+*.pch
+*.pdb
+*.pgc
+*.pgd
+*.rsp
+*.sbr
+*.tlb
+*.tli
+*.tlh
+*.tmp
+*.exp
+*.vspscc
+*.vssscc
+.builds
+
+*.pidb
+
+*.log
+*.scc
+# Visual C++ cache files
+ipch/
+*.aps
+*.ncb
+*.opensdf
+*.sdf
+
+# Visual Studio profiler
+*.psess
+*.vsp
+
+# Guidance Automation Toolkit
+*.gpState
+
+# ReSharper is a .NET coding add-in
+_ReSharper*/
+
+*.[Rr]e[Ss]harper
+
+# NCrunch
+*.ncrunch*
+.*crunch*.local.xml
+
+# Installshield output folder
+[Ee]xpress
+
+# DocProject is a documentation generator add-in
+DocProject/buildhelp/
+DocProject/Help/*.HxT
+DocProject/Help/*.HxC
+DocProject/Help/*.hhc
+DocProject/Help/*.hhk
+DocProject/Help/*.hhp
+DocProject/Help/Html2
+DocProject/Help/html
+
+# Click-Once directory
+publish
+
+# Publish Web Output
+*.Publish.xml
+
+# Others
+[Bb]in
+[Oo]bj
+sql
+TestResults
+[Tt]est[Rr]esult*
+*.Cache
+ClientBin
+[Ss]tyle[Cc]op.*
+~$*
+*.dbmdl
+
+*.[Pp]ublish.xml
+
+Generated_Code #added for RIA/Silverlight projects
+
+# Backup & report files from converting an old project file to a newer
+# Visual Studio version. Backup files are not needed, because we have git ;-)
+_UpgradeReport_Files/
+Backup*/
+UpgradeLog*.XML
+
+# NuGet
+packages/
+
\ No newline at end of file diff --git a/Lua/include/lauxlib.h b/Lua/include/lauxlib.h new file mode 100644 index 0000000..3425823 --- /dev/null +++ b/Lua/include/lauxlib.h @@ -0,0 +1,174 @@ +/* +** $Id: lauxlib.h,v 1.88.1.1 2007/12/27 13:02:25 roberto Exp $ +** Auxiliary functions for building Lua libraries +** See Copyright Notice in lua.h +*/ + + +#ifndef lauxlib_h +#define lauxlib_h + + +#include +#include + +#include "lua.h" + + +#if defined(LUA_COMPAT_GETN) +LUALIB_API int (luaL_getn) (lua_State *L, int t); +LUALIB_API void (luaL_setn) (lua_State *L, int t, int n); +#else +#define luaL_getn(L,i) ((int)lua_objlen(L, i)) +#define luaL_setn(L,i,j) ((void)0) /* no op! */ +#endif + +#if defined(LUA_COMPAT_OPENLIB) +#define luaI_openlib luaL_openlib +#endif + + +/* extra error code for `luaL_load' */ +#define LUA_ERRFILE (LUA_ERRERR+1) + + +typedef struct luaL_Reg { + const char *name; + lua_CFunction func; +} luaL_Reg; + + + +LUALIB_API void (luaI_openlib) (lua_State *L, const char *libname, + const luaL_Reg *l, int nup); +LUALIB_API void (luaL_register) (lua_State *L, const char *libname, + const luaL_Reg *l); +LUALIB_API int (luaL_getmetafield) (lua_State *L, int obj, const char *e); +LUALIB_API int (luaL_callmeta) (lua_State *L, int obj, const char *e); +LUALIB_API int (luaL_typerror) (lua_State *L, int narg, const char *tname); +LUALIB_API int (luaL_argerror) (lua_State *L, int numarg, const char *extramsg); +LUALIB_API const char *(luaL_checklstring) (lua_State *L, int numArg, + size_t *l); +LUALIB_API const char *(luaL_optlstring) (lua_State *L, int numArg, + const char *def, size_t *l); +LUALIB_API lua_Number (luaL_checknumber) (lua_State *L, int numArg); +LUALIB_API lua_Number (luaL_optnumber) (lua_State *L, int nArg, lua_Number def); + +LUALIB_API lua_Integer (luaL_checkinteger) (lua_State *L, int numArg); +LUALIB_API lua_Integer (luaL_optinteger) (lua_State *L, int nArg, + lua_Integer def); + +LUALIB_API void (luaL_checkstack) (lua_State *L, int sz, const char *msg); +LUALIB_API void (luaL_checktype) (lua_State *L, int narg, int t); +LUALIB_API void (luaL_checkany) (lua_State *L, int narg); + +LUALIB_API int (luaL_newmetatable) (lua_State *L, const char *tname); +LUALIB_API void *(luaL_checkudata) (lua_State *L, int ud, const char *tname); + +LUALIB_API void (luaL_where) (lua_State *L, int lvl); +LUALIB_API int (luaL_error) (lua_State *L, const char *fmt, ...); + +LUALIB_API int (luaL_checkoption) (lua_State *L, int narg, const char *def, + const char *const lst[]); + +LUALIB_API int (luaL_ref) (lua_State *L, int t); +LUALIB_API void (luaL_unref) (lua_State *L, int t, int ref); + +LUALIB_API int (luaL_loadfile) (lua_State *L, const char *filename); +LUALIB_API int (luaL_loadbuffer) (lua_State *L, const char *buff, size_t sz, + const char *name); +LUALIB_API int (luaL_loadstring) (lua_State *L, const char *s); + +LUALIB_API lua_State *(luaL_newstate) (void); + + +LUALIB_API const char *(luaL_gsub) (lua_State *L, const char *s, const char *p, + const char *r); + +LUALIB_API const char *(luaL_findtable) (lua_State *L, int idx, + const char *fname, int szhint); + + + + +/* +** =============================================================== +** some useful macros +** =============================================================== +*/ + +#define luaL_argcheck(L, cond,numarg,extramsg) \ + ((void)((cond) || luaL_argerror(L, (numarg), (extramsg)))) +#define luaL_checkstring(L,n) (luaL_checklstring(L, (n), NULL)) +#define luaL_optstring(L,n,d) (luaL_optlstring(L, (n), (d), NULL)) +#define luaL_checkint(L,n) ((int)luaL_checkinteger(L, (n))) +#define luaL_optint(L,n,d) ((int)luaL_optinteger(L, (n), (d))) +#define luaL_checklong(L,n) ((long)luaL_checkinteger(L, (n))) +#define luaL_optlong(L,n,d) ((long)luaL_optinteger(L, (n), (d))) + +#define luaL_typename(L,i) lua_typename(L, lua_type(L,(i))) + +#define luaL_dofile(L, fn) \ + (luaL_loadfile(L, fn) || lua_pcall(L, 0, LUA_MULTRET, 0)) + +#define luaL_dostring(L, s) \ + (luaL_loadstring(L, s) || lua_pcall(L, 0, LUA_MULTRET, 0)) + +#define luaL_getmetatable(L,n) (lua_getfield(L, LUA_REGISTRYINDEX, (n))) + +#define luaL_opt(L,f,n,d) (lua_isnoneornil(L,(n)) ? (d) : f(L,(n))) + +/* +** {====================================================== +** Generic Buffer manipulation +** ======================================================= +*/ + + + +typedef struct luaL_Buffer { + char *p; /* current position in buffer */ + int lvl; /* number of strings in the stack (level) */ + lua_State *L; + char buffer[LUAL_BUFFERSIZE]; +} luaL_Buffer; + +#define luaL_addchar(B,c) \ + ((void)((B)->p < ((B)->buffer+LUAL_BUFFERSIZE) || luaL_prepbuffer(B)), \ + (*(B)->p++ = (char)(c))) + +/* compatibility only */ +#define luaL_putchar(B,c) luaL_addchar(B,c) + +#define luaL_addsize(B,n) ((B)->p += (n)) + +LUALIB_API void (luaL_buffinit) (lua_State *L, luaL_Buffer *B); +LUALIB_API char *(luaL_prepbuffer) (luaL_Buffer *B); +LUALIB_API void (luaL_addlstring) (luaL_Buffer *B, const char *s, size_t l); +LUALIB_API void (luaL_addstring) (luaL_Buffer *B, const char *s); +LUALIB_API void (luaL_addvalue) (luaL_Buffer *B); +LUALIB_API void (luaL_pushresult) (luaL_Buffer *B); + + +/* }====================================================== */ + + +/* compatibility with ref system */ + +/* pre-defined references */ +#define LUA_NOREF (-2) +#define LUA_REFNIL (-1) + +#define lua_ref(L,lock) ((lock) ? luaL_ref(L, LUA_REGISTRYINDEX) : \ + (lua_pushstring(L, "unlocked references are obsolete"), lua_error(L), 0)) + +#define lua_unref(L,ref) luaL_unref(L, LUA_REGISTRYINDEX, (ref)) + +#define lua_getref(L,ref) lua_rawgeti(L, LUA_REGISTRYINDEX, (ref)) + + +#define luaL_reg luaL_Reg + +#endif + + diff --git a/Lua/include/lua.h b/Lua/include/lua.h new file mode 100644 index 0000000..e4bdfd3 --- /dev/null +++ b/Lua/include/lua.h @@ -0,0 +1,388 @@ +/* +** $Id: lua.h,v 1.218.1.5 2008/08/06 13:30:12 roberto Exp $ +** Lua - An Extensible Extension Language +** Lua.org, PUC-Rio, Brazil (http://www.lua.org) +** See Copyright Notice at the end of this file +*/ + + +#ifndef lua_h +#define lua_h + +#include +#include + + +#include "luaconf.h" + + +#define LUA_VERSION "Lua 5.1" +#define LUA_RELEASE "Lua 5.1.4" +#define LUA_VERSION_NUM 501 +#define LUA_COPYRIGHT "Copyright (C) 1994-2008 Lua.org, PUC-Rio" +#define LUA_AUTHORS "R. Ierusalimschy, L. H. de Figueiredo & W. Celes" + + +/* mark for precompiled code (`Lua') */ +#define LUA_SIGNATURE "\033Lua" + +/* option for multiple returns in `lua_pcall' and `lua_call' */ +#define LUA_MULTRET (-1) + + +/* +** pseudo-indices +*/ +#define LUA_REGISTRYINDEX (-10000) +#define LUA_ENVIRONINDEX (-10001) +#define LUA_GLOBALSINDEX (-10002) +#define lua_upvalueindex(i) (LUA_GLOBALSINDEX-(i)) + + +/* thread status; 0 is OK */ +#define LUA_YIELD 1 +#define LUA_ERRRUN 2 +#define LUA_ERRSYNTAX 3 +#define LUA_ERRMEM 4 +#define LUA_ERRERR 5 + + +typedef struct lua_State lua_State; + +typedef int (*lua_CFunction) (lua_State *L); + + +/* +** functions that read/write blocks when loading/dumping Lua chunks +*/ +typedef const char * (*lua_Reader) (lua_State *L, void *ud, size_t *sz); + +typedef int (*lua_Writer) (lua_State *L, const void* p, size_t sz, void* ud); + + +/* +** prototype for memory-allocation functions +*/ +typedef void * (*lua_Alloc) (void *ud, void *ptr, size_t osize, size_t nsize); + + +/* +** basic types +*/ +#define LUA_TNONE (-1) + +#define LUA_TNIL 0 +#define LUA_TBOOLEAN 1 +#define LUA_TLIGHTUSERDATA 2 +#define LUA_TNUMBER 3 +#define LUA_TSTRING 4 +#define LUA_TTABLE 5 +#define LUA_TFUNCTION 6 +#define LUA_TUSERDATA 7 +#define LUA_TTHREAD 8 + + + +/* minimum Lua stack available to a C function */ +#define LUA_MINSTACK 20 + + +/* +** generic extra include file +*/ +#if defined(LUA_USER_H) +#include LUA_USER_H +#endif + + +/* type of numbers in Lua */ +typedef LUA_NUMBER lua_Number; + + +/* type for integer functions */ +typedef LUA_INTEGER lua_Integer; + + + +/* +** state manipulation +*/ +LUA_API lua_State *(lua_newstate) (lua_Alloc f, void *ud); +LUA_API void (lua_close) (lua_State *L); +LUA_API lua_State *(lua_newthread) (lua_State *L); + +LUA_API lua_CFunction (lua_atpanic) (lua_State *L, lua_CFunction panicf); + + +/* +** basic stack manipulation +*/ +LUA_API int (lua_gettop) (lua_State *L); +LUA_API void (lua_settop) (lua_State *L, int idx); +LUA_API void (lua_pushvalue) (lua_State *L, int idx); +LUA_API void (lua_remove) (lua_State *L, int idx); +LUA_API void (lua_insert) (lua_State *L, int idx); +LUA_API void (lua_replace) (lua_State *L, int idx); +LUA_API int (lua_checkstack) (lua_State *L, int sz); + +LUA_API void (lua_xmove) (lua_State *from, lua_State *to, int n); + + +/* +** access functions (stack -> C) +*/ + +LUA_API int (lua_isnumber) (lua_State *L, int idx); +LUA_API int (lua_isstring) (lua_State *L, int idx); +LUA_API int (lua_iscfunction) (lua_State *L, int idx); +LUA_API int (lua_isuserdata) (lua_State *L, int idx); +LUA_API int (lua_type) (lua_State *L, int idx); +LUA_API const char *(lua_typename) (lua_State *L, int tp); + +LUA_API int (lua_equal) (lua_State *L, int idx1, int idx2); +LUA_API int (lua_rawequal) (lua_State *L, int idx1, int idx2); +LUA_API int (lua_lessthan) (lua_State *L, int idx1, int idx2); + +LUA_API lua_Number (lua_tonumber) (lua_State *L, int idx); +LUA_API lua_Integer (lua_tointeger) (lua_State *L, int idx); +LUA_API int (lua_toboolean) (lua_State *L, int idx); +LUA_API const char *(lua_tolstring) (lua_State *L, int idx, size_t *len); +LUA_API size_t (lua_objlen) (lua_State *L, int idx); +LUA_API lua_CFunction (lua_tocfunction) (lua_State *L, int idx); +LUA_API void *(lua_touserdata) (lua_State *L, int idx); +LUA_API lua_State *(lua_tothread) (lua_State *L, int idx); +LUA_API const void *(lua_topointer) (lua_State *L, int idx); + + +/* +** push functions (C -> stack) +*/ +LUA_API void (lua_pushnil) (lua_State *L); +LUA_API void (lua_pushnumber) (lua_State *L, lua_Number n); +LUA_API void (lua_pushinteger) (lua_State *L, lua_Integer n); +LUA_API void (lua_pushlstring) (lua_State *L, const char *s, size_t l); +LUA_API void (lua_pushstring) (lua_State *L, const char *s); +LUA_API const char *(lua_pushvfstring) (lua_State *L, const char *fmt, + va_list argp); +LUA_API const char *(lua_pushfstring) (lua_State *L, const char *fmt, ...); +LUA_API void (lua_pushcclosure) (lua_State *L, lua_CFunction fn, int n); +LUA_API void (lua_pushboolean) (lua_State *L, int b); +LUA_API void (lua_pushlightuserdata) (lua_State *L, void *p); +LUA_API int (lua_pushthread) (lua_State *L); + + +/* +** get functions (Lua -> stack) +*/ +LUA_API void (lua_gettable) (lua_State *L, int idx); +LUA_API void (lua_getfield) (lua_State *L, int idx, const char *k); +LUA_API void (lua_rawget) (lua_State *L, int idx); +LUA_API void (lua_rawgeti) (lua_State *L, int idx, int n); +LUA_API void (lua_createtable) (lua_State *L, int narr, int nrec); +LUA_API void *(lua_newuserdata) (lua_State *L, size_t sz); +LUA_API int (lua_getmetatable) (lua_State *L, int objindex); +LUA_API void (lua_getfenv) (lua_State *L, int idx); + + +/* +** set functions (stack -> Lua) +*/ +LUA_API void (lua_settable) (lua_State *L, int idx); +LUA_API void (lua_setfield) (lua_State *L, int idx, const char *k); +LUA_API void (lua_rawset) (lua_State *L, int idx); +LUA_API void (lua_rawseti) (lua_State *L, int idx, int n); +LUA_API int (lua_setmetatable) (lua_State *L, int objindex); +LUA_API int (lua_setfenv) (lua_State *L, int idx); + + +/* +** `load' and `call' functions (load and run Lua code) +*/ +LUA_API void (lua_call) (lua_State *L, int nargs, int nresults); +LUA_API int (lua_pcall) (lua_State *L, int nargs, int nresults, int errfunc); +LUA_API int (lua_cpcall) (lua_State *L, lua_CFunction func, void *ud); +LUA_API int (lua_load) (lua_State *L, lua_Reader reader, void *dt, + const char *chunkname); + +LUA_API int (lua_dump) (lua_State *L, lua_Writer writer, void *data); + + +/* +** coroutine functions +*/ +LUA_API int (lua_yield) (lua_State *L, int nresults); +LUA_API int (lua_resume) (lua_State *L, int narg); +LUA_API int (lua_status) (lua_State *L); + +/* +** garbage-collection function and options +*/ + +#define LUA_GCSTOP 0 +#define LUA_GCRESTART 1 +#define LUA_GCCOLLECT 2 +#define LUA_GCCOUNT 3 +#define LUA_GCCOUNTB 4 +#define LUA_GCSTEP 5 +#define LUA_GCSETPAUSE 6 +#define LUA_GCSETSTEPMUL 7 + +LUA_API int (lua_gc) (lua_State *L, int what, int data); + + +/* +** miscellaneous functions +*/ + +LUA_API int (lua_error) (lua_State *L); + +LUA_API int (lua_next) (lua_State *L, int idx); + +LUA_API void (lua_concat) (lua_State *L, int n); + +LUA_API lua_Alloc (lua_getallocf) (lua_State *L, void **ud); +LUA_API void lua_setallocf (lua_State *L, lua_Alloc f, void *ud); + + + +/* +** =============================================================== +** some useful macros +** =============================================================== +*/ + +#define lua_pop(L,n) lua_settop(L, -(n)-1) + +#define lua_newtable(L) lua_createtable(L, 0, 0) + +#define lua_register(L,n,f) (lua_pushcfunction(L, (f)), lua_setglobal(L, (n))) + +#define lua_pushcfunction(L,f) lua_pushcclosure(L, (f), 0) + +#define lua_strlen(L,i) lua_objlen(L, (i)) + +#define lua_isfunction(L,n) (lua_type(L, (n)) == LUA_TFUNCTION) +#define lua_istable(L,n) (lua_type(L, (n)) == LUA_TTABLE) +#define lua_islightuserdata(L,n) (lua_type(L, (n)) == LUA_TLIGHTUSERDATA) +#define lua_isnil(L,n) (lua_type(L, (n)) == LUA_TNIL) +#define lua_isboolean(L,n) (lua_type(L, (n)) == LUA_TBOOLEAN) +#define lua_isthread(L,n) (lua_type(L, (n)) == LUA_TTHREAD) +#define lua_isnone(L,n) (lua_type(L, (n)) == LUA_TNONE) +#define lua_isnoneornil(L, n) (lua_type(L, (n)) <= 0) + +#define lua_pushliteral(L, s) \ + lua_pushlstring(L, "" s, (sizeof(s)/sizeof(char))-1) + +#define lua_setglobal(L,s) lua_setfield(L, LUA_GLOBALSINDEX, (s)) +#define lua_getglobal(L,s) lua_getfield(L, LUA_GLOBALSINDEX, (s)) + +#define lua_tostring(L,i) lua_tolstring(L, (i), NULL) + + + +/* +** compatibility macros and functions +*/ + +#define lua_open() luaL_newstate() + +#define lua_getregistry(L) lua_pushvalue(L, LUA_REGISTRYINDEX) + +#define lua_getgccount(L) lua_gc(L, LUA_GCCOUNT, 0) + +#define lua_Chunkreader lua_Reader +#define lua_Chunkwriter lua_Writer + + +/* hack */ +LUA_API void lua_setlevel (lua_State *from, lua_State *to); + + +/* +** {====================================================================== +** Debug API +** ======================================================================= +*/ + + +/* +** Event codes +*/ +#define LUA_HOOKCALL 0 +#define LUA_HOOKRET 1 +#define LUA_HOOKLINE 2 +#define LUA_HOOKCOUNT 3 +#define LUA_HOOKTAILRET 4 + + +/* +** Event masks +*/ +#define LUA_MASKCALL (1 << LUA_HOOKCALL) +#define LUA_MASKRET (1 << LUA_HOOKRET) +#define LUA_MASKLINE (1 << LUA_HOOKLINE) +#define LUA_MASKCOUNT (1 << LUA_HOOKCOUNT) + +typedef struct lua_Debug lua_Debug; /* activation record */ + + +/* Functions to be called by the debuger in specific events */ +typedef void (*lua_Hook) (lua_State *L, lua_Debug *ar); + + +LUA_API int lua_getstack (lua_State *L, int level, lua_Debug *ar); +LUA_API int lua_getinfo (lua_State *L, const char *what, lua_Debug *ar); +LUA_API const char *lua_getlocal (lua_State *L, const lua_Debug *ar, int n); +LUA_API const char *lua_setlocal (lua_State *L, const lua_Debug *ar, int n); +LUA_API const char *lua_getupvalue (lua_State *L, int funcindex, int n); +LUA_API const char *lua_setupvalue (lua_State *L, int funcindex, int n); + +LUA_API int lua_sethook (lua_State *L, lua_Hook func, int mask, int count); +LUA_API lua_Hook lua_gethook (lua_State *L); +LUA_API int lua_gethookmask (lua_State *L); +LUA_API int lua_gethookcount (lua_State *L); + + +struct lua_Debug { + int event; + const char *name; /* (n) */ + const char *namewhat; /* (n) `global', `local', `field', `method' */ + const char *what; /* (S) `Lua', `C', `main', `tail' */ + const char *source; /* (S) */ + int currentline; /* (l) */ + int nups; /* (u) number of upvalues */ + int linedefined; /* (S) */ + int lastlinedefined; /* (S) */ + char short_src[LUA_IDSIZE]; /* (S) */ + /* private part */ + int i_ci; /* active function */ +}; + +/* }====================================================================== */ + + +/****************************************************************************** +* Copyright (C) 1994-2008 Lua.org, PUC-Rio. All rights reserved. +* +* Permission is hereby granted, free of charge, to any person obtaining +* a copy of this software and associated documentation files (the +* "Software"), to deal in the Software without restriction, including +* without limitation the rights to use, copy, modify, merge, publish, +* distribute, sublicense, and/or sell copies of the Software, and to +* permit persons to whom the Software is furnished to do so, subject to +* the following conditions: +* +* The above copyright notice and this permission notice shall be +* included in all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +******************************************************************************/ + + +#endif diff --git a/Lua/include/lua.hpp b/Lua/include/lua.hpp new file mode 100644 index 0000000..ec417f5 --- /dev/null +++ b/Lua/include/lua.hpp @@ -0,0 +1,9 @@ +// lua.hpp +// Lua header files for C++ +// <> not supplied automatically because Lua also compiles as C++ + +extern "C" { +#include "lua.h" +#include "lualib.h" +#include "lauxlib.h" +} diff --git a/Lua/include/luaconf.h b/Lua/include/luaconf.h new file mode 100644 index 0000000..5e7b98b --- /dev/null +++ b/Lua/include/luaconf.h @@ -0,0 +1,763 @@ +/* +** $Id: luaconf.h,v 1.82.1.7 2008/02/11 16:25:08 roberto Exp $ +** Configuration file for Lua +** See Copyright Notice in lua.h +*/ + + +#ifndef lconfig_h +#define lconfig_h + +#include +#include + + +/* +** ================================================================== +** Search for "@@" to find all configurable definitions. +** =================================================================== +*/ + + +/* +@@ LUA_ANSI controls the use of non-ansi features. +** CHANGE it (define it) if you want Lua to avoid the use of any +** non-ansi feature or library. +*/ +#if defined(__STRICT_ANSI__) +#define LUA_ANSI +#endif + + +#if !defined(LUA_ANSI) && defined(_WIN32) +#define LUA_WIN +#endif + +#if defined(LUA_USE_LINUX) +#define LUA_USE_POSIX +#define LUA_USE_DLOPEN /* needs an extra library: -ldl */ +#define LUA_USE_READLINE /* needs some extra libraries */ +#endif + +#if defined(LUA_USE_MACOSX) +#define LUA_USE_POSIX +#define LUA_DL_DYLD /* does not need extra library */ +#endif + + + +/* +@@ LUA_USE_POSIX includes all functionallity listed as X/Open System +@* Interfaces Extension (XSI). +** CHANGE it (define it) if your system is XSI compatible. +*/ +#if defined(LUA_USE_POSIX) +#define LUA_USE_MKSTEMP +#define LUA_USE_ISATTY +#define LUA_USE_POPEN +#define LUA_USE_ULONGJMP +#endif + + +/* +@@ LUA_PATH and LUA_CPATH are the names of the environment variables that +@* Lua check to set its paths. +@@ LUA_INIT is the name of the environment variable that Lua +@* checks for initialization code. +** CHANGE them if you want different names. +*/ +#define LUA_PATH "LUA_PATH" +#define LUA_CPATH "LUA_CPATH" +#define LUA_INIT "LUA_INIT" + + +/* +@@ LUA_PATH_DEFAULT is the default path that Lua uses to look for +@* Lua libraries. +@@ LUA_CPATH_DEFAULT is the default path that Lua uses to look for +@* C libraries. +** CHANGE them if your machine has a non-conventional directory +** hierarchy or if you want to install your libraries in +** non-conventional directories. +*/ +#if defined(_WIN32) +/* +** In Windows, any exclamation mark ('!') in the path is replaced by the +** path of the directory of the executable file of the current process. +*/ +#define LUA_LDIR "!\\lua\\" +#define LUA_CDIR "!\\" +#define LUA_PATH_DEFAULT \ + ".\\?.lua;" LUA_LDIR"?.lua;" LUA_LDIR"?\\init.lua;" \ + LUA_CDIR"?.lua;" LUA_CDIR"?\\init.lua" +#define LUA_CPATH_DEFAULT \ + ".\\?.dll;" ".\\?51.dll;" LUA_CDIR"?.dll;" LUA_CDIR"?51.dll;" LUA_CDIR"clibs\\?.dll;" LUA_CDIR"clibs\\?51.dll;" LUA_CDIR"loadall.dll;" LUA_CDIR"clibs\\loadall.dll" + +#else +#define LUA_ROOT "/usr/local/" +#define LUA_LDIR LUA_ROOT "share/lua/5.1/" +#define LUA_CDIR LUA_ROOT "lib/lua/5.1/" +#define LUA_PATH_DEFAULT \ + "./?.lua;" LUA_LDIR"?.lua;" LUA_LDIR"?/init.lua;" \ + LUA_CDIR"?.lua;" LUA_CDIR"?/init.lua" +#define LUA_CPATH_DEFAULT \ + "./?.so;" "./lib?51.so;" LUA_CDIR"?.so;" LUA_CDIR"lib?51.so;" LUA_CDIR"loadall.so" +#endif + + +/* +@@ LUA_DIRSEP is the directory separator (for submodules). +** CHANGE it if your machine does not use "/" as the directory separator +** and is not Windows. (On Windows Lua automatically uses "\".) +*/ +#if defined(_WIN32) +#define LUA_DIRSEP "\\" +#else +#define LUA_DIRSEP "/" +#endif + + +/* +@@ LUA_PATHSEP is the character that separates templates in a path. +@@ LUA_PATH_MARK is the string that marks the substitution points in a +@* template. +@@ LUA_EXECDIR in a Windows path is replaced by the executable's +@* directory. +@@ LUA_IGMARK is a mark to ignore all before it when bulding the +@* luaopen_ function name. +** CHANGE them if for some reason your system cannot use those +** characters. (E.g., if one of those characters is a common character +** in file/directory names.) Probably you do not need to change them. +*/ +#define LUA_PATHSEP ";" +#define LUA_PATH_MARK "?" +#define LUA_EXECDIR "!" +#define LUA_IGMARK "-" + + +/* +@@ LUA_INTEGER is the integral type used by lua_pushinteger/lua_tointeger. +** CHANGE that if ptrdiff_t is not adequate on your machine. (On most +** machines, ptrdiff_t gives a good choice between int or long.) +*/ +#define LUA_INTEGER ptrdiff_t + + +/* +@@ LUA_API is a mark for all core API functions. +@@ LUALIB_API is a mark for all standard library functions. +** CHANGE them if you need to define those functions in some special way. +** For instance, if you want to create one Windows DLL with the core and +** the libraries, you may want to use the following definition (define +** LUA_BUILD_AS_DLL to get it). +*/ +#if defined(LUA_BUILD_AS_DLL) + +#if defined(LUA_CORE) || defined(LUA_LIB) +#define LUA_API __declspec(dllexport) +#else +#define LUA_API __declspec(dllimport) +#endif + +#else + +#define LUA_API extern + +#endif + +/* more often than not the libs go together with the core */ +#define LUALIB_API LUA_API + + +/* +@@ LUAI_FUNC is a mark for all extern functions that are not to be +@* exported to outside modules. +@@ LUAI_DATA is a mark for all extern (const) variables that are not to +@* be exported to outside modules. +** CHANGE them if you need to mark them in some special way. Elf/gcc +** (versions 3.2 and later) mark them as "hidden" to optimize access +** when Lua is compiled as a shared library. +*/ +#if defined(luaall_c) +#define LUAI_FUNC static +#define LUAI_DATA /* empty */ + +#elif defined(__GNUC__) && ((__GNUC__*100 + __GNUC_MINOR__) >= 302) && \ + defined(__ELF__) +#define LUAI_FUNC __attribute__((visibility("hidden"))) extern +#define LUAI_DATA LUAI_FUNC + +#else +#define LUAI_FUNC extern +#define LUAI_DATA extern +#endif + + + +/* +@@ LUA_QL describes how error messages quote program elements. +** CHANGE it if you want a different appearance. +*/ +#define LUA_QL(x) "'" x "'" +#define LUA_QS LUA_QL("%s") + + +/* +@@ LUA_IDSIZE gives the maximum size for the description of the source +@* of a function in debug information. +** CHANGE it if you want a different size. +*/ +#define LUA_IDSIZE 60 + + +/* +** {================================================================== +** Stand-alone configuration +** =================================================================== +*/ + +#if defined(lua_c) || defined(luaall_c) + +/* +@@ lua_stdin_is_tty detects whether the standard input is a 'tty' (that +@* is, whether we're running lua interactively). +** CHANGE it if you have a better definition for non-POSIX/non-Windows +** systems. +*/ +#if defined(LUA_USE_ISATTY) +#include +#define lua_stdin_is_tty() isatty(0) +#elif defined(LUA_WIN) +#include +#include +#define lua_stdin_is_tty() _isatty(_fileno(stdin)) +#else +#define lua_stdin_is_tty() 1 /* assume stdin is a tty */ +#endif + + +/* +@@ LUA_PROMPT is the default prompt used by stand-alone Lua. +@@ LUA_PROMPT2 is the default continuation prompt used by stand-alone Lua. +** CHANGE them if you want different prompts. (You can also change the +** prompts dynamically, assigning to globals _PROMPT/_PROMPT2.) +*/ +#define LUA_PROMPT "> " +#define LUA_PROMPT2 ">> " + + +/* +@@ LUA_PROGNAME is the default name for the stand-alone Lua program. +** CHANGE it if your stand-alone interpreter has a different name and +** your system is not able to detect that name automatically. +*/ +#define LUA_PROGNAME "lua" + + +/* +@@ LUA_MAXINPUT is the maximum length for an input line in the +@* stand-alone interpreter. +** CHANGE it if you need longer lines. +*/ +#define LUA_MAXINPUT 512 + + +/* +@@ lua_readline defines how to show a prompt and then read a line from +@* the standard input. +@@ lua_saveline defines how to "save" a read line in a "history". +@@ lua_freeline defines how to free a line read by lua_readline. +** CHANGE them if you want to improve this functionality (e.g., by using +** GNU readline and history facilities). +*/ +#if defined(LUA_USE_READLINE) +#include +#include +#include +#define lua_readline(L,b,p) ((void)L, ((b)=readline(p)) != NULL) +#define lua_saveline(L,idx) \ + if (lua_strlen(L,idx) > 0) /* non-empty line? */ \ + add_history(lua_tostring(L, idx)); /* add it to history */ +#define lua_freeline(L,b) ((void)L, free(b)) +#else +#define lua_readline(L,b,p) \ + ((void)L, fputs(p, stdout), fflush(stdout), /* show prompt */ \ + fgets(b, LUA_MAXINPUT, stdin) != NULL) /* get line */ +#define lua_saveline(L,idx) { (void)L; (void)idx; } +#define lua_freeline(L,b) { (void)L; (void)b; } +#endif + +#endif + +/* }================================================================== */ + + +/* +@@ LUAI_GCPAUSE defines the default pause between garbage-collector cycles +@* as a percentage. +** CHANGE it if you want the GC to run faster or slower (higher values +** mean larger pauses which mean slower collection.) You can also change +** this value dynamically. +*/ +#define LUAI_GCPAUSE 200 /* 200% (wait memory to double before next GC) */ + + +/* +@@ LUAI_GCMUL defines the default speed of garbage collection relative to +@* memory allocation as a percentage. +** CHANGE it if you want to change the granularity of the garbage +** collection. (Higher values mean coarser collections. 0 represents +** infinity, where each step performs a full collection.) You can also +** change this value dynamically. +*/ +#define LUAI_GCMUL 200 /* GC runs 'twice the speed' of memory allocation */ + + + +/* +@@ LUA_COMPAT_GETN controls compatibility with old getn behavior. +** CHANGE it (define it) if you want exact compatibility with the +** behavior of setn/getn in Lua 5.0. +*/ +#undef LUA_COMPAT_GETN + +/* +@@ LUA_COMPAT_LOADLIB controls compatibility about global loadlib. +** CHANGE it to undefined as soon as you do not need a global 'loadlib' +** function (the function is still available as 'package.loadlib'). +*/ +#undef LUA_COMPAT_LOADLIB + +/* +@@ LUA_COMPAT_VARARG controls compatibility with old vararg feature. +** CHANGE it to undefined as soon as your programs use only '...' to +** access vararg parameters (instead of the old 'arg' table). +*/ +#define LUA_COMPAT_VARARG + +/* +@@ LUA_COMPAT_MOD controls compatibility with old math.mod function. +** CHANGE it to undefined as soon as your programs use 'math.fmod' or +** the new '%' operator instead of 'math.mod'. +*/ +#define LUA_COMPAT_MOD + +/* +@@ LUA_COMPAT_LSTR controls compatibility with old long string nesting +@* facility. +** CHANGE it to 2 if you want the old behaviour, or undefine it to turn +** off the advisory error when nesting [[...]]. +*/ +#define LUA_COMPAT_LSTR 1 + +/* +@@ LUA_COMPAT_GFIND controls compatibility with old 'string.gfind' name. +** CHANGE it to undefined as soon as you rename 'string.gfind' to +** 'string.gmatch'. +*/ +#define LUA_COMPAT_GFIND + +/* +@@ LUA_COMPAT_OPENLIB controls compatibility with old 'luaL_openlib' +@* behavior. +** CHANGE it to undefined as soon as you replace to 'luaL_register' +** your uses of 'luaL_openlib' +*/ +#define LUA_COMPAT_OPENLIB + + + +/* +@@ luai_apicheck is the assert macro used by the Lua-C API. +** CHANGE luai_apicheck if you want Lua to perform some checks in the +** parameters it gets from API calls. This may slow down the interpreter +** a bit, but may be quite useful when debugging C code that interfaces +** with Lua. A useful redefinition is to use assert.h. +*/ +#if defined(LUA_USE_APICHECK) +#include +#define luai_apicheck(L,o) { (void)L; assert(o); } +#else +#define luai_apicheck(L,o) { (void)L; } +#endif + + +/* +@@ LUAI_BITSINT defines the number of bits in an int. +** CHANGE here if Lua cannot automatically detect the number of bits of +** your machine. Probably you do not need to change this. +*/ +/* avoid overflows in comparison */ +#if INT_MAX-20 < 32760 +#define LUAI_BITSINT 16 +#elif INT_MAX > 2147483640L +/* int has at least 32 bits */ +#define LUAI_BITSINT 32 +#else +#error "you must define LUA_BITSINT with number of bits in an integer" +#endif + + +/* +@@ LUAI_UINT32 is an unsigned integer with at least 32 bits. +@@ LUAI_INT32 is an signed integer with at least 32 bits. +@@ LUAI_UMEM is an unsigned integer big enough to count the total +@* memory used by Lua. +@@ LUAI_MEM is a signed integer big enough to count the total memory +@* used by Lua. +** CHANGE here if for some weird reason the default definitions are not +** good enough for your machine. (The definitions in the 'else' +** part always works, but may waste space on machines with 64-bit +** longs.) Probably you do not need to change this. +*/ +#if LUAI_BITSINT >= 32 +#define LUAI_UINT32 unsigned int +#define LUAI_INT32 int +#define LUAI_MAXINT32 INT_MAX +#define LUAI_UMEM size_t +#define LUAI_MEM ptrdiff_t +#else +/* 16-bit ints */ +#define LUAI_UINT32 unsigned long +#define LUAI_INT32 long +#define LUAI_MAXINT32 LONG_MAX +#define LUAI_UMEM unsigned long +#define LUAI_MEM long +#endif + + +/* +@@ LUAI_MAXCALLS limits the number of nested calls. +** CHANGE it if you need really deep recursive calls. This limit is +** arbitrary; its only purpose is to stop infinite recursion before +** exhausting memory. +*/ +#define LUAI_MAXCALLS 20000 + + +/* +@@ LUAI_MAXCSTACK limits the number of Lua stack slots that a C function +@* can use. +** CHANGE it if you need lots of (Lua) stack space for your C +** functions. This limit is arbitrary; its only purpose is to stop C +** functions to consume unlimited stack space. (must be smaller than +** -LUA_REGISTRYINDEX) +*/ +#define LUAI_MAXCSTACK 8000 + + + +/* +** {================================================================== +** CHANGE (to smaller values) the following definitions if your system +** has a small C stack. (Or you may want to change them to larger +** values if your system has a large C stack and these limits are +** too rigid for you.) Some of these constants control the size of +** stack-allocated arrays used by the compiler or the interpreter, while +** others limit the maximum number of recursive calls that the compiler +** or the interpreter can perform. Values too large may cause a C stack +** overflow for some forms of deep constructs. +** =================================================================== +*/ + + +/* +@@ LUAI_MAXCCALLS is the maximum depth for nested C calls (short) and +@* syntactical nested non-terminals in a program. +*/ +#define LUAI_MAXCCALLS 200 + + +/* +@@ LUAI_MAXVARS is the maximum number of local variables per function +@* (must be smaller than 250). +*/ +#define LUAI_MAXVARS 200 + + +/* +@@ LUAI_MAXUPVALUES is the maximum number of upvalues per function +@* (must be smaller than 250). +*/ +#define LUAI_MAXUPVALUES 60 + + +/* +@@ LUAL_BUFFERSIZE is the buffer size used by the lauxlib buffer system. +*/ +#define LUAL_BUFFERSIZE BUFSIZ + +/* }================================================================== */ + + + + +/* +** {================================================================== +@@ LUA_NUMBER is the type of numbers in Lua. +** CHANGE the following definitions only if you want to build Lua +** with a number type different from double. You may also need to +** change lua_number2int & lua_number2integer. +** =================================================================== +*/ + +#define LUA_NUMBER_DOUBLE +#define LUA_NUMBER double + +/* +@@ LUAI_UACNUMBER is the result of an 'usual argument conversion' +@* over a number. +*/ +#define LUAI_UACNUMBER double + + +/* +@@ LUA_NUMBER_SCAN is the format for reading numbers. +@@ LUA_NUMBER_FMT is the format for writing numbers. +@@ lua_number2str converts a number to a string. +@@ LUAI_MAXNUMBER2STR is maximum size of previous conversion. +@@ lua_str2number converts a string to a number. +*/ +#define LUA_NUMBER_SCAN "%lf" +#define LUA_NUMBER_FMT "%.14g" +#define lua_number2str(s,n) sprintf((s), LUA_NUMBER_FMT, (n)) +#define LUAI_MAXNUMBER2STR 32 /* 16 digits, sign, point, and \0 */ +#define lua_str2number(s,p) strtod((s), (p)) + + +/* +@@ The luai_num* macros define the primitive operations over numbers. +*/ +#if defined(LUA_CORE) +#include +#define luai_numadd(a,b) ((a)+(b)) +#define luai_numsub(a,b) ((a)-(b)) +#define luai_nummul(a,b) ((a)*(b)) +#define luai_numdiv(a,b) ((a)/(b)) +#define luai_nummod(a,b) ((a) - floor((a)/(b))*(b)) +#define luai_numpow(a,b) (pow(a,b)) +#define luai_numunm(a) (-(a)) +#define luai_numeq(a,b) ((a)==(b)) +#define luai_numlt(a,b) ((a)<(b)) +#define luai_numle(a,b) ((a)<=(b)) +#define luai_numisnan(a) (!luai_numeq((a), (a))) +#endif + + +/* +@@ lua_number2int is a macro to convert lua_Number to int. +@@ lua_number2integer is a macro to convert lua_Number to lua_Integer. +** CHANGE them if you know a faster way to convert a lua_Number to +** int (with any rounding method and without throwing errors) in your +** system. In Pentium machines, a naive typecast from double to int +** in C is extremely slow, so any alternative is worth trying. +*/ + +/* On a Pentium, resort to a trick */ +#if defined(LUA_NUMBER_DOUBLE) && !defined(LUA_ANSI) && !defined(__SSE2__) && \ + (defined(__i386) || defined (_M_IX86) || defined(__i386__)) + +/* On a Microsoft compiler, use assembler */ +#if defined(_MSC_VER) + +#define lua_number2int(i,d) __asm fld d __asm fistp i +#define lua_number2integer(i,n) lua_number2int(i, n) + +/* the next trick should work on any Pentium, but sometimes clashes + with a DirectX idiosyncrasy */ +#else + +union luai_Cast { double l_d; long l_l; }; +#define lua_number2int(i,d) \ + { volatile union luai_Cast u; u.l_d = (d) + 6755399441055744.0; (i) = u.l_l; } +#define lua_number2integer(i,n) lua_number2int(i, n) + +#endif + + +/* this option always works, but may be slow */ +#else +#define lua_number2int(i,d) ((i)=(int)(d)) +#define lua_number2integer(i,d) ((i)=(lua_Integer)(d)) + +#endif + +/* }================================================================== */ + + +/* +@@ LUAI_USER_ALIGNMENT_T is a type that requires maximum alignment. +** CHANGE it if your system requires alignments larger than double. (For +** instance, if your system supports long doubles and they must be +** aligned in 16-byte boundaries, then you should add long double in the +** union.) Probably you do not need to change this. +*/ +#define LUAI_USER_ALIGNMENT_T union { double u; void *s; long l; } + + +/* +@@ LUAI_THROW/LUAI_TRY define how Lua does exception handling. +** CHANGE them if you prefer to use longjmp/setjmp even with C++ +** or if want/don't to use _longjmp/_setjmp instead of regular +** longjmp/setjmp. By default, Lua handles errors with exceptions when +** compiling as C++ code, with _longjmp/_setjmp when asked to use them, +** and with longjmp/setjmp otherwise. +*/ +#if defined(__cplusplus) +/* C++ exceptions */ +#define LUAI_THROW(L,c) throw(c) +#define LUAI_TRY(L,c,a) try { a } catch(...) \ + { if ((c)->status == 0) (c)->status = -1; } +#define luai_jmpbuf int /* dummy variable */ + +#elif defined(LUA_USE_ULONGJMP) +/* in Unix, try _longjmp/_setjmp (more efficient) */ +#define LUAI_THROW(L,c) _longjmp((c)->b, 1) +#define LUAI_TRY(L,c,a) if (_setjmp((c)->b) == 0) { a } +#define luai_jmpbuf jmp_buf + +#else +/* default handling with long jumps */ +#define LUAI_THROW(L,c) longjmp((c)->b, 1) +#define LUAI_TRY(L,c,a) if (setjmp((c)->b) == 0) { a } +#define luai_jmpbuf jmp_buf + +#endif + + +/* +@@ LUA_MAXCAPTURES is the maximum number of captures that a pattern +@* can do during pattern-matching. +** CHANGE it if you need more captures. This limit is arbitrary. +*/ +#define LUA_MAXCAPTURES 32 + + +/* +@@ lua_tmpnam is the function that the OS library uses to create a +@* temporary name. +@@ LUA_TMPNAMBUFSIZE is the maximum size of a name created by lua_tmpnam. +** CHANGE them if you have an alternative to tmpnam (which is considered +** insecure) or if you want the original tmpnam anyway. By default, Lua +** uses tmpnam except when POSIX is available, where it uses mkstemp. +*/ +#if defined(loslib_c) || defined(luaall_c) + +#if defined(LUA_USE_MKSTEMP) +#include +#define LUA_TMPNAMBUFSIZE 32 +#define lua_tmpnam(b,e) { \ + strcpy(b, "/tmp/lua_XXXXXX"); \ + e = mkstemp(b); \ + if (e != -1) close(e); \ + e = (e == -1); } + +#else +#define LUA_TMPNAMBUFSIZE L_tmpnam +#define lua_tmpnam(b,e) { e = (tmpnam(b) == NULL); } +#endif + +#endif + + +/* +@@ lua_popen spawns a new process connected to the current one through +@* the file streams. +** CHANGE it if you have a way to implement it in your system. +*/ +#if defined(LUA_USE_POPEN) + +#define lua_popen(L,c,m) ((void)L, fflush(NULL), popen(c,m)) +#define lua_pclose(L,file) ((void)L, (pclose(file) != -1)) + +#elif defined(LUA_WIN) + +#define lua_popen(L,c,m) ((void)L, _popen(c,m)) +#define lua_pclose(L,file) ((void)L, (_pclose(file) != -1)) + +#else + +#define lua_popen(L,c,m) ((void)((void)c, m), \ + luaL_error(L, LUA_QL("popen") " not supported"), (FILE*)0) +#define lua_pclose(L,file) ((void)((void)L, file), 0) + +#endif + +/* +@@ LUA_DL_* define which dynamic-library system Lua should use. +** CHANGE here if Lua has problems choosing the appropriate +** dynamic-library system for your platform (either Windows' DLL, Mac's +** dyld, or Unix's dlopen). If your system is some kind of Unix, there +** is a good chance that it has dlopen, so LUA_DL_DLOPEN will work for +** it. To use dlopen you also need to adapt the src/Makefile (probably +** adding -ldl to the linker options), so Lua does not select it +** automatically. (When you change the makefile to add -ldl, you must +** also add -DLUA_USE_DLOPEN.) +** If you do not want any kind of dynamic library, undefine all these +** options. +** By default, _WIN32 gets LUA_DL_DLL and MAC OS X gets LUA_DL_DYLD. +*/ +#if defined(LUA_USE_DLOPEN) +#define LUA_DL_DLOPEN +#endif + +#if defined(LUA_WIN) +#define LUA_DL_DLL +#endif + + +/* +@@ LUAI_EXTRASPACE allows you to add user-specific data in a lua_State +@* (the data goes just *before* the lua_State pointer). +** CHANGE (define) this if you really need that. This value must be +** a multiple of the maximum alignment required for your machine. +*/ +#define LUAI_EXTRASPACE 0 + + +/* +@@ luai_userstate* allow user-specific actions on threads. +** CHANGE them if you defined LUAI_EXTRASPACE and need to do something +** extra when a thread is created/deleted/resumed/yielded. +*/ +#define luai_userstateopen(L) ((void)L) +#define luai_userstateclose(L) ((void)L) +#define luai_userstatethread(L,L1) ((void)L) +#define luai_userstatefree(L) ((void)L) +#define luai_userstateresume(L,n) ((void)L) +#define luai_userstateyield(L,n) ((void)L) + + +/* +@@ LUA_INTFRMLEN is the length modifier for integer conversions +@* in 'string.format'. +@@ LUA_INTFRM_T is the integer type correspoding to the previous length +@* modifier. +** CHANGE them if your system supports long long or does not support long. +*/ + +#if defined(LUA_USELONGLONG) + +#define LUA_INTFRMLEN "ll" +#define LUA_INTFRM_T long long + +#else + +#define LUA_INTFRMLEN "l" +#define LUA_INTFRM_T long + +#endif + + + +/* =================================================================== */ + +/* +** Local configuration. You can use this space to add your redefinitions +** without modifying the main part of the file. +*/ + + + +#endif + diff --git a/Lua/include/lualib.h b/Lua/include/lualib.h new file mode 100644 index 0000000..469417f --- /dev/null +++ b/Lua/include/lualib.h @@ -0,0 +1,53 @@ +/* +** $Id: lualib.h,v 1.36.1.1 2007/12/27 13:02:25 roberto Exp $ +** Lua standard libraries +** See Copyright Notice in lua.h +*/ + + +#ifndef lualib_h +#define lualib_h + +#include "lua.h" + + +/* Key to file-handle type */ +#define LUA_FILEHANDLE "FILE*" + + +#define LUA_COLIBNAME "coroutine" +LUALIB_API int (luaopen_base) (lua_State *L); + +#define LUA_TABLIBNAME "table" +LUALIB_API int (luaopen_table) (lua_State *L); + +#define LUA_IOLIBNAME "io" +LUALIB_API int (luaopen_io) (lua_State *L); + +#define LUA_OSLIBNAME "os" +LUALIB_API int (luaopen_os) (lua_State *L); + +#define LUA_STRLIBNAME "string" +LUALIB_API int (luaopen_string) (lua_State *L); + +#define LUA_MATHLIBNAME "math" +LUALIB_API int (luaopen_math) (lua_State *L); + +#define LUA_DBLIBNAME "debug" +LUALIB_API int (luaopen_debug) (lua_State *L); + +#define LUA_LOADLIBNAME "package" +LUALIB_API int (luaopen_package) (lua_State *L); + + +/* open all previous libraries */ +LUALIB_API void (luaL_openlibs) (lua_State *L); + + + +#ifndef lua_assert +#define lua_assert(x) ((void)0) +#endif + + +#endif diff --git a/Lua/lib/lua.exe b/Lua/lib/lua.exe new file mode 100644 index 0000000000000000000000000000000000000000..5feaa4b3263ff7a5141c2e6833cb03ad66c4c12f GIT binary patch literal 45056 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 R<*SyiTc<>#=}%W4{{_-r9X9{~ literal 0 HcmV?d00001 diff --git a/Lua/lib/lua5.1.dll b/Lua/lib/lua5.1.dll new file mode 100644 index 0000000000000000000000000000000000000000..63da757b2fff405b57872a774056664369986d8f GIT binary patch literal 167936 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

5G}Zr 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 literal 0 HcmV?d00001 diff --git a/Lua/lib/lua5.1.lib b/Lua/lib/lua5.1.lib new file mode 100644 index 0000000000000000000000000000000000000000..df98827653f9d59cc51c4c3dfd56d7dce7087457 GIT binary patch literal 26112 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 literal 0 HcmV?d00001 diff --git a/Lua/lib/pugilua.lib b/Lua/lib/pugilua.lib new file mode 100644 index 0000000000000000000000000000000000000000..74bdc28dd502e63dc313757c89affa980e44b411 GIT binary patch literal 1734 zcmcIl-A)=o6#jOXYP%Bu%rlHYs66vSQ-hh^)dUC`9GDFVIIQ zm-QWb=L~TCT#f+VmvjY>rBS5O!uSE|-_JkjkngLbbDAu4;W zJFS4vQe(JY`?Oani>+d*#J9W)6n%p^Zz5+f>?8gOlp{lsaXxX=I% zI%4!Q$clS#n%DH1+@()ae!Csg`&V@ALhd#?u4X|06IA2G>oIX*Iw}9?u-8oP4n?3y zlP^k;ql3izRN&Vy>dCBHTBXSk`hH7*+yn>dE2;NJ!gxxP0ewo3aR=6wPU8xmu!wks z)HqYxN%CY^;foo##!gQb9`aF^j=wRsZtJCCpx~2H}V0XAn`0gJqKRR^XdIh(cc%E^(x{7MN=~7iDc_VJN6wT7$$)v{ z`kaiI`RFX{wT;cG`uar|41;{P*ZxvpdF3chMXs-Ci`18`aMt^&1Udd!@6PMdnTfcl dN9}@isKx&$T%44R^lEX~_}!X%_ahg;yaD2EM@s+z literal 0 HcmV?d00001 diff --git a/Lua/lib/test.bat b/Lua/lib/test.bat new file mode 100644 index 0000000..b461070 --- /dev/null +++ b/Lua/lib/test.bat @@ -0,0 +1,2 @@ +lua test.lua +pause \ No newline at end of file diff --git a/Lua/lib/test.lua b/Lua/lib/test.lua new file mode 100644 index 0000000..db22cc5 --- /dev/null +++ b/Lua/lib/test.lua @@ -0,0 +1,6 @@ +assert(require 'pugilua') + +local doc=pugi.xml_document() +os.execute("cd") +local res=doc:load_file [[..\..\tests\data\latintest_latin1.xml]] +print(res.description) \ No newline at end of file diff --git a/Notepad++.lnk b/Notepad++.lnk new file mode 100644 index 0000000000000000000000000000000000000000..93733fbc7e6ce407ec44e386ad6bb279158fff15 GIT binary patch literal 1081 zcma)4Ur1A76#uPEj2@aa!AfutgtokGZrWN@o6GfY>17(MyboU7#YUTsxnhJY5JC!y zK#M2>34)^M1T8}8C8DAiA$l6U1U+Qb+h)}7T(9oI!tTd8-|suW^PO|VdA}L;mJck5BAfq9&xLtz9ZfV zJG#1iJJnEuWd^O9W)D~25l(7~ypejATSs7hU92d_Tp8AsfQw7wCYVRsb}#t)v2!)9 z(i!grj$5&XllT(5@2|0k*2GqrDNg|!D7v*vU2|bgP5mCE4T2x7(6#xo?1FJesbS*wYCwtP38c-#3r22#NydbEIvNI zCt)Ruhd12Rm9L+Wv!04urbH?;P+@_bcWk;ev)D0N`n9mtRetvAU^(+@yjc6>QNzWW LFVhq2@e=C~XkpVM literal 0 HcmV?d00001 diff --git a/pugilua/pugilua.cpp b/pugilua/pugilua.cpp new file mode 100644 index 0000000..30a780c --- /dev/null +++ b/pugilua/pugilua.cpp @@ -0,0 +1,9 @@ +#include +#include + +#include "pugilua_lib.h" + +extern "C" __declspec(dllexport) int luaopen_pugilua (lua_State* L) { + register_pugilua(L); + return 1; +} \ No newline at end of file diff --git a/pugilua/pugilua_lib.cpp b/pugilua/pugilua_lib.cpp new file mode 100644 index 0000000..50434dc --- /dev/null +++ b/pugilua/pugilua_lib.cpp @@ -0,0 +1,56 @@ +#include "pugilua_lib.h" + +#include +#include +#include +#include + +namespace pugi { + namespace lua { + + class lxml_parse_result { + public: + lxml_parse_result(pugi::xml_parse_result& r):res(r) { } + lxml_parse_result() { } + + public: + std::string description() const { + return res.description(); + } + + private: + pugi::xml_parse_result res; + }; + + class lxml_document { + public: + + RefCountedPtr load_file(char const* path) { + return RefCountedPtr(new lxml_parse_result(doc.load_file(path))); + } + + private: + pugi::xml_document doc; + }; + + } +} + +void register_pugilua (lua_State* L) { + using namespace pugi::lua; + luabridge::getGlobalNamespace(L) + .beginNamespace("pugi") + + .beginClass("xml_parse_result") + .addConstructor() + .addProperty("description",&lxml_parse_result::description) + .endClass() + + .beginClass("xml_document") + .addConstructor() + .addFunction("load_file",&lxml_document::load_file) + .endClass() + + .endNamespace() + ; +} \ No newline at end of file diff --git a/pugilua/pugilua_lib.h b/pugilua/pugilua_lib.h new file mode 100644 index 0000000..b2d0646 --- /dev/null +++ b/pugilua/pugilua_lib.h @@ -0,0 +1,5 @@ +#pragma once + +#include + +void register_pugilua (lua_State* L); \ No newline at end of file diff --git a/scripts/pugilua/pugilua.sln b/scripts/pugilua/pugilua.sln new file mode 100644 index 0000000..be39fa3 --- /dev/null +++ b/scripts/pugilua/pugilua.sln @@ -0,0 +1,34 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C++ Express 2010 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pugilua", "pugilua.vcxproj", "{D6C305C1-4C93-4206-BCEB-0420417806B8}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pugixml_vs2010", "..\..\..\cpp\pugixml\scripts\pugixml_vs2010.vcxproj", "{89A1E353-E2DC-495C-B403-742BE206ACED}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {D6C305C1-4C93-4206-BCEB-0420417806B8}.Debug|Win32.ActiveCfg = Debug|Win32 + {D6C305C1-4C93-4206-BCEB-0420417806B8}.Debug|Win32.Build.0 = Debug|Win32 + {D6C305C1-4C93-4206-BCEB-0420417806B8}.Debug|x64.ActiveCfg = Debug|Win32 + {D6C305C1-4C93-4206-BCEB-0420417806B8}.Release|Win32.ActiveCfg = Release|Win32 + {D6C305C1-4C93-4206-BCEB-0420417806B8}.Release|Win32.Build.0 = Release|Win32 + {D6C305C1-4C93-4206-BCEB-0420417806B8}.Release|x64.ActiveCfg = Release|Win32 + {89A1E353-E2DC-495C-B403-742BE206ACED}.Debug|Win32.ActiveCfg = Debug|Win32 + {89A1E353-E2DC-495C-B403-742BE206ACED}.Debug|Win32.Build.0 = Debug|Win32 + {89A1E353-E2DC-495C-B403-742BE206ACED}.Debug|x64.ActiveCfg = Debug|x64 + {89A1E353-E2DC-495C-B403-742BE206ACED}.Debug|x64.Build.0 = Debug|x64 + {89A1E353-E2DC-495C-B403-742BE206ACED}.Release|Win32.ActiveCfg = Release|Win32 + {89A1E353-E2DC-495C-B403-742BE206ACED}.Release|Win32.Build.0 = Release|Win32 + {89A1E353-E2DC-495C-B403-742BE206ACED}.Release|x64.ActiveCfg = Release|x64 + {89A1E353-E2DC-495C-B403-742BE206ACED}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/scripts/pugilua/pugilua.vcxproj b/scripts/pugilua/pugilua.vcxproj new file mode 100644 index 0000000..93eff6c --- /dev/null +++ b/scripts/pugilua/pugilua.vcxproj @@ -0,0 +1,93 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {D6C305C1-4C93-4206-BCEB-0420417806B8} + pugilua + + + + DynamicLibrary + true + MultiByte + + + DynamicLibrary + false + true + MultiByte + + + + + + + + + + + + + $(SolutionDir)\..\..\Lua\lib\ + + + + Level3 + Disabled + $(SolutionDir)\..\..\Lua\Include;$(SolutionDir)\..\..\LuaBridge;$(SolutionDir)\..\..\src + + + true + $(SolutionDir)\..\..\Lua\lib + lua5.1.lib;%(AdditionalDependencies) + + + + + + + Level3 + MaxSpeed + true + true + $(SolutionDir)\..\..\Lua\Include;$(SolutionDir)\..\..\LuaBridge;$(SolutionDir)\..\..\src + + + true + true + true + $(SolutionDir)\..\..\Lua\lib\$(TargetFileName) + $(SolutionDir)\..\..\Lua\lib + lua5.1.lib;%(AdditionalDependencies) + + + + + + + {89a1e353-e2dc-495c-b403-742be206aced} + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/scripts/pugilua/pugilua.vcxproj.filters b/scripts/pugilua/pugilua.vcxproj.filters new file mode 100644 index 0000000..13b9b01 --- /dev/null +++ b/scripts/pugilua/pugilua.vcxproj.filters @@ -0,0 +1,33 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + Source Files + + + + + Header Files + + + + + + \ No newline at end of file