SuperStrict Rem bbdoc: Lua Core end rem Module Pub.Lua ModuleInfo "Version: 1.27" ModuleInfo "Author: Tecgraf,PUC-Rio" ModuleInfo "License: MIT License" ModuleInfo "Modserver: BRL" ModuleInfo "Credit: Adapted for BlitzMax by Thomas Mayer, Noel Cower, Andreas Rozek and Simon Armstrong" ModuleInfo "History: 1.27" ModuleInfo "History: Modified luaconf.h (line 14) to autodetect LUA_USE_LINUX and LUA_USE_MACOSX" ModuleInfo "History: 1.26" ModuleInfo "History: Removed BRL.Retro dependancy & replaced Left() with [..1]" ModuleInfo "History: 1.25" ModuleInfo "History: Updated to Lua 5.1.4 - Htbaa" ModuleInfo "History: 1.24" ModuleInfo "History: fixed int<->long discrepancies between Lua and BlitzMAX" ModuleInfo "History: 1.23" ModuleInfo "History: several bugfixes and extensions" ModuleInfo "History: support for strings with embedded ~0 (and byte arrays)" ModuleInfo "History: modifications for Lua 5.1.2" ModuleInfo "History: source code is now 'superstrict'-compliant" ModuleInfo "History: added some documentation" ModuleInfo "History: 1.22" ModuleInfo "History: added lots of definitions to support most of the official Lua 5.1.1 API" ModuleInfo "History: 1.21" ModuleInfo "History: removed luac.c from build list" ModuleInfo "History: 1.20" ModuleInfo "History: fixed missing paramters in lua_createtable definition" ModuleInfo "History: 1.19" ModuleInfo "History: updated with lua5.1.1 source" ModuleInfo "History: 1.18" ModuleInfo "History: added extra Imports and luaL_openlibs decl" ModuleInfo "History: 1.17" ModuleInfo "History: added luaL_loadstring fixed missing lua_dostring" ModuleInfo "History: 1.16" ModuleInfo "History: Added lua_newtable as a BMax function" ModuleInfo "History: Changed extern'd lua_newtable to lua_createtable" ModuleInfo "History: Added lua_load, lua_dostring and lua_dobuffer." ModuleInfo "History: 1.15 Release" ModuleInfo "History: New LUA 5.1 based build" ModuleInfo "History: Modified constants and added new wrappers for 5.1 compatability" ModuleInfo "History: 1.14 Release" ModuleInfo "History: Added luaopen_debug and ldblib.c" ModuleInfo "History: Replaced byte ptr with $z (CString) where a C string is expected" ModuleInfo "History: 1.12 Release" ModuleInfo "History: Removed lua.h import" Import "lua-5.1.4/src/lstate.c" Import "lua-5.1.4/src/llex.c" Import "lua-5.1.4/src/ltm.c" Import "lua-5.1.4/src/lstring.c" Import "lua-5.1.4/src/ltable.c" Import "lua-5.1.4/src/lfunc.c" Import "lua-5.1.4/src/ldo.c" Import "lua-5.1.4/src/lgc.c" Import "lua-5.1.4/src/lzio.c" Import "lua-5.1.4/src/lobject.c" Import "lua-5.1.4/src/lparser.c" Import "lua-5.1.4/src/lvm.c" Import "lua-5.1.4/src/lundump.c" Import "lua-5.1.4/src/lmem.c" Import "lua-5.1.4/src/lcode.c" Import "lua-5.1.4/src/ldebug.c" Import "lua-5.1.4/src/lopcodes.c" Import "lua-5.1.4/src/lapi.c" Import "lua-5.1.4/src/ldump.c" Import "lua-5.1.4/src/lbaselib.c" Import "lua-5.1.4/src/lauxlib.c" Import "lua-5.1.4/src/liolib.c" Import "lua-5.1.4/src/lmathlib.c" Import "lua-5.1.4/src/lstrlib.c" Import "lua-5.1.4/src/ltablib.c" Import "lua-5.1.4/src/ldblib.c" Import "lua-5.1.4/src/linit.c" Import "lua-5.1.4/src/loadlib.c" Import "lua-5.1.4/src/loslib.c" 'import "lua-5.1.4/src/lua.c" 'Import "lua-5.1.4/src/luac.c" Import "lua-5.1.4/src/print.c" ' ****************************************************************************** ' * * ' * Constant Definitions * ' * * ' ****************************************************************************** Const LUA_IDSIZE:Int = 60 ' **** (lua.h) some basic definitions - just to be complete **** Const LUA_VERSION:String = "Lua 5.1" Const LUA_RELEASE:String = "Lua 5.1.4" Const LUA_VERSION_NUM:Int = 501 Const LUA_COPYRIGHT:String = "Copyright (C) 1994-2008 Lua.org, PUC-Rio" Const LUA_AUTHORS:String = "R. Ierusalimschy, L. H. de Figueiredo & W. Celes" ' **** (lua.h) option for multiple returns in `lua_pcall' and `lua_call' **** Const LUA_MULTRET:Int = -1 ' **** (lua.h) pseudo-indices **** Const LUA_REGISTRYINDEX:Int = -10000 Const LUA_ENVIRONINDEX:Int = -10001 Const LUA_GLOBALSINDEX:Int = -10002 ' **** (lua.h) thread status (0 is OK) **** Const LUA_YIELD_:Int = 1 ' added _ after LUA_YIELD because of lua_yield function Const LUA_ERRRUN:Int = 2 Const LUA_ERRSYNTAX:Int = 3 Const LUA_ERRMEM:Int = 4 Const LUA_ERRERR:Int = 5 ' **** (lua.h) basic types **** Const LUA_TNONE:Int = -1 Const LUA_TNIL:Int = 0 Const LUA_TBOOLEAN:Int = 1 Const LUA_TLIGHTUSERDATA:Int = 2 Const LUA_TNUMBER:Int = 3 Const LUA_TSTRING:Int = 4 Const LUA_TTABLE:Int = 5 Const LUA_TFUNCTION:Int = 6 Const LUA_TUSERDATA:Int = 7 Const LUA_TTHREAD:Int = 8 ' **** (lua.h) garbage-collection options **** Const LUA_GCSTOP:Int = 0 Const LUA_GCRESTART:Int = 1 Const LUA_GCCOLLECT:Int = 2 Const LUA_GCCOUNT:Int = 3 Const LUA_GCCOUNTB:Int = 4 Const LUA_GCSTEP:Int = 5 Const LUA_GCSETPAUSE:Int = 6 Const LUA_GCSETSTEPMUL:Int = 7 ' **** (lua.h) event codes **** Const LUA_HOOKCALL:Int = 0 Const LUA_HOOKRET:Int = 1 Const LUA_HOOKLINE:Int = 2 Const LUA_HOOKCOUNT:Int = 3 Const LUA_HOOKTAILRET:Int = 4 ' **** (lua.h) event masks **** Const LUA_MASKCALL:Int = (1 Shl LUA_HOOKCALL) Const LUA_MASKRET:Int = (1 Shl LUA_HOOKRET) Const LUA_MASKLINE:Int = (1 Shl LUA_HOOKLINE) Const LUA_MASKCOUNT:Int = (1 Shl LUA_HOOKCOUNT) ' ****************************************************************************** ' * * ' * The Lua API (Functions) * ' * * ' ****************************************************************************** Extern Type lua_Debug Field event:Int Field name:Byte Ptr ' no ~0 expected Field namewhat:Byte Ptr ' dto. Field what:Byte Ptr ' dto. Field source:Byte Ptr ' dto. Field currentline:Int Field nups:Int Field linedefined:Int Field lastlinedefined:Int ' field short_src:byte[LUA_IDSIZE] ' we use padding to occupy 60 bytes Field short_src:Byte, short_src_01:Byte, short_src_02:Byte, short_src_03:Byte Field short_src_04:Long, short_src_12:Long, short_src_20:Long Field short_src_28:Long, short_src_36:Long, short_src_44:Long Field short_src_52:Long Field i_ci:Int ' "private" field - mentioned here to get the right size End Type End Extern Extern Rem bbdoc: see Lua Reference Manual end rem Function lua_atpanic:Byte Ptr (lua_state:Byte Ptr, panicf:Int(ls:Byte Ptr)) Rem bbdoc: see Lua Reference Manual end rem Function lua_call (lua_state:Byte Ptr, nargs:Int, nresults:Int) Rem bbdoc: see Lua Reference Manual end rem Function lua_checkstack:Int (lua_state:Byte Ptr, extra:Int) Rem bbdoc: see Lua Reference Manual end rem Function lua_close (lua_state:Byte Ptr) Rem bbdoc: see Lua Reference Manual end rem Function lua_concat (lua_state:Byte Ptr, n:Int) Rem bbdoc: see Lua Reference Manual end rem Function lua_cpcall:Int (lua_state:Byte Ptr, func:Int(ls:Byte Ptr), ud:Byte Ptr) Rem bbdoc: see Lua Reference Manual end rem Function lua_createtable (lua_state:Byte Ptr, narr:Int, nrec:Int) Rem bbdoc: see Lua Reference Manual end rem Function lua_dump:Int (lua_state:Byte Ptr, writer:Int(ls:Byte Ptr,p:Byte Ptr,sz:Int,ud:Byte Ptr), data:Byte Ptr) Rem bbdoc: see Lua Reference Manual end rem Function lua_equal:Int (lua_state:Byte Ptr, index1:Int, index2:Int) Rem bbdoc: see Lua Reference Manual end rem Function lua_error:Int (lua_state:Byte Ptr) Rem bbdoc: see Lua Reference Manual end rem Function lua_gc:Int (lua_state:Byte Ptr, what:Int, data:Int) Rem bbdoc: see Lua Reference Manual end rem Function lua_getallocf:Byte Ptr (lua_state:Byte Ptr, ud:Byte Ptr Ptr) Rem bbdoc: see Lua Reference Manual end rem Function lua_getfenv (lua_state:Byte Ptr, index:Int) Rem bbdoc: see Lua Reference Manual end rem Function lua_getfield (lua_state:Byte Ptr, index:Int, k$z) ' no ~0 expected Rem bbdoc: see Lua Reference Manual end rem Function lua_gethook:Byte Ptr (lua_state:Byte Ptr) Rem bbdoc: see Lua Reference Manual end rem Function lua_gethookcount:Int (lua_state:Byte Ptr) Rem bbdoc: see Lua Reference Manual end rem Function lua_gethookmask:Int (lua_state:Byte Ptr) Rem bbdoc: see Lua Reference Manual end rem Function lua_getinfo:Int (lua_state:Byte Ptr, what$z, ar:lua_Debug Ptr) ' no ~0 expected Rem bbdoc: see Lua Reference Manual end rem Function lua_getlocal$z (lua_state:Byte Ptr, ar:lua_Debug Ptr, n:Int) ' no ~0 expected Rem bbdoc: see Lua Reference Manual end rem Function lua_getmetatable:Int (lua_state:Byte Ptr, index:Int) Rem bbdoc: see Lua Reference Manual end rem Function lua_getstack:Int (lua_state:Byte Ptr, level:Int, ar:lua_Debug Ptr) ' no ~0 expected Rem bbdoc: see Lua Reference Manual end rem Function lua_gettable (lua_state:Byte Ptr, index:Int) Rem bbdoc: see Lua Reference Manual end rem Function lua_gettop:Int (lua_state:Byte Ptr) Rem bbdoc: see Lua Reference Manual end rem Function lua_getupvalue$z (lua_state:Byte Ptr, funcindex:Int, n:Int) ' no ~0 expected Rem bbdoc: see Lua Reference Manual end rem Function lua_insert (lua_state:Byte Ptr, index:Int) Rem bbdoc: see Lua Reference Manual end rem Function lua_iscfunction:Int (lua_state:Byte Ptr, index:Int) Rem bbdoc: see Lua Reference Manual end rem Function lua_isnumber:Int (lua_state:Byte Ptr, index:Int) Rem bbdoc: see Lua Reference Manual end rem Function lua_isstring:Int (lua_state:Byte Ptr, index:Int) Rem bbdoc: see Lua Reference Manual end rem Function lua_isuserdata:Int (lua_state:Byte Ptr, index:Int) Rem bbdoc: see Lua Reference Manual end rem Function lua_lessthan:Int (lua_state:Byte Ptr, index1:Int, index2:Int) Rem bbdoc: see Lua Reference Manual end rem Function lua_load:Int (lua_state:Byte Ptr, reader:Byte Ptr(ls:Byte Ptr,data:Byte Ptr,sz:Int Ptr), data:Byte Ptr, chunkname$z) ' no ~0 expected Rem bbdoc: see Lua Reference Manual end rem Function lua_newstate:Byte Ptr (f:Byte Ptr(ud:Byte Ptr, p:Byte Ptr, osize:Int, nsize:Int), ud:Byte Ptr) Rem bbdoc: see Lua Reference Manual end rem Function lua_newthread:Byte Ptr (lua_state:Byte Ptr) Rem bbdoc: see Lua Reference Manual end rem Function lua_newuserdata:Byte Ptr (lua_state:Byte Ptr, size:Int) Rem bbdoc: see Lua Reference Manual end rem Function lua_next:Int (lua_state:Byte Ptr, index:Int) Rem bbdoc: see Lua Reference Manual end rem Function lua_objlen:Int (lua_state:Byte Ptr, index:Int) Rem bbdoc: see Lua Reference Manual end rem Function lua_pcall:Int (lua_state:Byte Ptr, nargs:Int, nresults:Int, errfunc:Int) Rem bbdoc: see Lua Reference Manual end rem Function lua_pushboolean (lua_state:Byte Ptr, b:Int) Rem bbdoc: see Lua Reference Manual end rem Function lua_pushcclosure (lua_state:Byte Ptr, fn:Int(ls:Byte Ptr), n:Int) ' function lua_pushfstring$z (lua_state:byte ptr, fmt$z, ...) Rem bbdoc: see Lua Reference Manual end rem Function lua_pushinteger (lua_state:Byte Ptr, n:Int) Rem bbdoc: see Lua Reference Manual end rem Function lua_pushlightuserdata (lua_state:Byte Ptr, p:Byte Ptr) Rem bbdoc: see Lua Reference Manual end rem Function lua_pushlstring (lua_state:Byte Ptr, s:Byte Ptr, size:Int) ' without any conversion! Rem bbdoc: see Lua Reference Manual end rem Function lua_pushnil (lua_state:Byte Ptr) Rem bbdoc: see Lua Reference Manual end rem Function lua_pushnumber (lua_state:Byte Ptr, n:Double) Rem bbdoc: see Lua Reference Manual end rem Function lua_pushstring (lua_state:Byte Ptr, s$z) ' no ~0 expected Rem bbdoc: see Lua Reference Manual end rem Function lua_pushthread:Int (lua_state:Byte Ptr) Rem bbdoc: see Lua Reference Manual end rem Function lua_pushvalue (lua_state:Byte Ptr, index:Int) ' function lua_pushvfstring$z (lua_state:byte ptr, fmt$z, argp:???) Rem bbdoc: see Lua Reference Manual end rem Function lua_rawequal:Int (lua_state:Byte Ptr, index1:Int, index2:Int) Rem bbdoc: see Lua Reference Manual end rem Function lua_rawget (lua_state:Byte Ptr, index:Int) Rem bbdoc: see Lua Reference Manual end rem Function lua_rawgeti (lua_state:Byte Ptr, index:Int, n:Int) Rem bbdoc: see Lua Reference Manual end rem Function lua_rawset (lua_state:Byte Ptr, index:Int) Rem bbdoc: see Lua Reference Manual end rem Function lua_rawseti (lua_state:Byte Ptr, index:Int, n:Int) Rem bbdoc: see Lua Reference Manual end rem Function lua_remove (lua_state:Byte Ptr, index:Int) Rem bbdoc: see Lua Reference Manual end rem Function lua_replace (lua_state:Byte Ptr, index:Int) Rem bbdoc: see Lua Reference Manual end rem Function lua_resume:Int (lua_state:Byte Ptr, narg:Int) Rem bbdoc: see Lua Reference Manual end rem Function lua_setallocf (lua_state:Byte Ptr, f:Byte Ptr(ud:Byte Ptr, p:Byte Ptr, osize:Int, nsize:Int), ud:Byte Ptr) Rem bbdoc: see Lua Reference Manual end rem Function lua_setfenv:Int (lua_state:Byte Ptr, index:Int) Rem bbdoc: see Lua Reference Manual end rem Function lua_setfield (lua_state:Byte Ptr, index:Int, k$z) ' no ~0 expected Rem bbdoc: see Lua Reference Manual end rem Function lua_sethook:Int (lua_state:Byte Ptr, f(ls:Byte Ptr,ar:lua_Debug Ptr), mask:Int, count:Int) Rem bbdoc: see Lua Reference Manual end rem Function lua_setlocal$z (lua_state:Byte Ptr, ar:lua_Debug Ptr, n:Int) ' no ~0 expected Rem bbdoc: see Lua Reference Manual end rem Function lua_setmetatable:Int (lua_state:Byte Ptr, index:Int) Rem bbdoc: see Lua Reference Manual end rem Function lua_settable (lua_state:Byte Ptr, index:Int) Rem bbdoc: see Lua Reference Manual end rem Function lua_settop (lua_state:Byte Ptr, index:Int) Rem bbdoc: see Lua Reference Manual end rem Function lua_setupvalue$z (lua_state:Byte Ptr, funcindex:Int, n:Int) ' no ~0 expected Rem bbdoc: see Lua Reference Manual end rem Function lua_status:Int (lua_state:Byte Ptr) Rem bbdoc: see Lua Reference Manual end rem Function lua_toboolean:Int (lua_state:Byte Ptr, index:Int) Rem bbdoc: see Lua Reference Manual end rem Function lua_tocfunction:Byte Ptr (lua_state:Byte Ptr, index:Int) Rem bbdoc: see Lua Reference Manual end rem Function lua_tointeger:Int (lua_state:Byte Ptr, index:Int) Rem bbdoc: see Lua Reference Manual end rem Function lua_tolstring:Byte Ptr (lua_state:Byte Ptr, index:Int, size:Int Ptr) ' without any conversion! Rem bbdoc: see Lua Reference Manual end rem Function lua_tonumber:Double (lua_state:Byte Ptr, index:Int) Rem bbdoc: see Lua Reference Manual end rem Function lua_topointer:Byte Ptr (lua_state:Byte Ptr, index:Int) Rem bbdoc: see Lua Reference Manual end rem Function lua_tothread:Byte Ptr (lua_state:Byte Ptr, index:Int) Rem bbdoc: see Lua Reference Manual end rem Function lua_touserdata:Byte Ptr (lua_state:Byte Ptr, index:Int) Rem bbdoc: see Lua Reference Manual end rem Function lua_type:Int (lua_state:Byte Ptr, index:Int) Rem bbdoc: see Lua Reference Manual end rem Function lua_typename$z (lua_state:Byte Ptr, tp:Int) ' no ~0 expected Rem bbdoc: see Lua Reference Manual end rem Function lua_xmove (fromState:Byte Ptr, toState:Byte Ptr, n:Int) Rem bbdoc: see Lua Reference Manual end rem Function lua_yield:Int (lua_state:Byte Ptr, nresults:Int) End Extern ' ****************************************************************************** ' * * ' * The Lua API (Macros) * ' * * ' ****************************************************************************** Rem bbdoc: see Lua Reference Manual end rem Function lua_getglobal (lua_state:Byte Ptr, name:String) lua_getfield(lua_state, LUA_GLOBALSINDEX, name) End Function Rem bbdoc: see Lua Reference Manual end rem Function lua_isboolean:Int (lua_state:Byte Ptr, index:Int) Return (lua_type(lua_state,index) = LUA_TBOOLEAN) End Function Rem bbdoc: see Lua Reference Manual end rem Function lua_isfunction:Int (lua_state:Byte Ptr, index:Int) Return (lua_type(lua_state,index) = LUA_TFUNCTION) End Function Rem bbdoc: see Lua Reference Manual end rem Function lua_islightuserdata:Int (lua_state:Byte Ptr, index:Int) Return (lua_type(lua_state,index) = LUA_TLIGHTUSERDATA) End Function Rem bbdoc: see Lua Reference Manual end rem Function lua_isnil:Int (lua_state:Byte Ptr, index:Int) Return (lua_type(lua_state,index) = LUA_TNIL) End Function Rem bbdoc: see Lua Reference Manual end rem Function lua_isnone:Int (lua_state:Byte Ptr, index:Int) Return (lua_type(lua_state,index) = LUA_TNONE) End Function Rem bbdoc: see Lua Reference Manual end rem Function lua_isnoneornil:Int (lua_state:Byte Ptr, index:Int) Return (lua_type(lua_state,index) <= 0) End Function Rem bbdoc: see Lua Reference Manual end rem Function lua_istable:Int (lua_state:Byte Ptr, index:Int) Return (lua_type(lua_state,index) = LUA_TTABLE) End Function Rem bbdoc: see Lua Reference Manual end rem Function lua_isthread:Int (lua_state:Byte Ptr, index:Int) Return (lua_type(lua_state,index) = LUA_TTHREAD) End Function Rem bbdoc: see Lua Reference Manual end rem Function lua_newtable (lua_state:Byte Ptr) lua_createtable(lua_state,0,0) End Function Rem bbdoc: see Lua Reference Manual end rem Function lua_pop (lua_state:Byte Ptr, n:Int) lua_settop(lua_state,-(n)-1) End Function Function lua_pushbytearray (lua_state:Byte Ptr, Buffer:Byte[]) lua_pushlstring(lua_state, Varptr Buffer[0], Buffer.length) End Function Rem bbdoc: see Lua Reference Manual end rem Function lua_pushcfunction (lua_state:Byte Ptr, fn:Int(ls:Byte Ptr)) lua_pushcclosure(lua_state, fn, 0) End Function Rem bbdoc: see Lua Reference Manual end rem Function lua_register (lua_state:Byte Ptr, name:String, f:Int(ls:Byte Ptr)) lua_pushcfunction(lua_state, f) lua_setglobal (lua_state, name) End Function Rem bbdoc: see Lua Reference Manual end rem Function lua_setglobal (lua_state:Byte Ptr, name:String) lua_setfield(lua_state, LUA_GLOBALSINDEX, name) End Function Function lua_tobytearray:Byte[] (lua_state:Byte Ptr, index:Int) Local Length:Int Local DataPtr:Byte Ptr = lua_tolstring(lua_state, index, Varptr Length) If (DataPtr = Null) Then Return Null Else Local Result:Byte[] = New Byte[Length] MemCopy(Varptr Result[0], DataPtr, Length); Return Result End If End Function Rem bbdoc: see Lua Reference Manual end rem Function lua_tostring:String (lua_state:Byte Ptr, index:Int) Local Length:Int Local StringPtr:Byte Ptr = lua_tolstring(lua_state, index, Varptr Length) If (StringPtr = Null) Then Return Null Else Return String.fromBytes(StringPtr,Length) End If End Function ' ****************************************************************************** ' * * ' * The Auxiliary Library (Functions) * ' * * ' ****************************************************************************** Extern Type lua_Reg Field name:Byte Ptr ' no ~0 expected Field func:Int(ls:Byte Ptr) End Type End Extern Extern Rem bbdoc: see Lua Reference Manual end rem Function luaL_addlstring (B:Byte Ptr, s:Byte Ptr, l:Int) Rem bbdoc: see Lua Reference Manual end rem Function luaL_addsize (B:Byte Ptr, size:Int) Rem bbdoc: see Lua Reference Manual end rem Function luaL_addstring (B:Byte Ptr, s$z) ' no ~0 allowed! Rem bbdoc: see Lua Reference Manual end rem Function luaL_addvalue (B:Byte Ptr) Rem bbdoc: see Lua Reference Manual end rem Function luaL_argerror:Int (lua_state:Byte Ptr, narg:Int, extramsg$z) ' no ~0 expected Rem bbdoc: see Lua Reference Manual end rem Function luaL_buffinit (lua_state:Byte Ptr, B:Byte Ptr) Rem bbdoc: see Lua Reference Manual end rem Function luaL_callmeta:Int (lua_state:Byte Ptr, obj:Int, e$z) ' no ~0 expected Rem bbdoc: see Lua Reference Manual end rem Function luaL_checkany (lua_state:Byte Ptr, narg:Int) Rem bbdoc: see Lua Reference Manual end rem Function luaL_checkinteger:Int (lua_state:Byte Ptr, narg:Int) Rem bbdoc: see Lua Reference Manual end rem Function luaL_checklstring:Byte Ptr (lua_state:Byte Ptr, narg:Int, size:Int Ptr) Rem bbdoc: see Lua Reference Manual end rem Function luaL_checknumber:Double (lua_state:Byte Ptr, narg:Int) ' function luaL_checkoption:int (lua_state:byte ptr, narg:int, def$z, lst$z[]) Rem bbdoc: see Lua Reference Manual end rem Function luaL_checkstack (lua_state:Byte Ptr, sz:Int, msg$z) ' no ~0 expected Rem bbdoc: see Lua Reference Manual end rem Function luaL_checktype (lua_state:Byte Ptr, narg:Int, t:Int) Rem bbdoc: see Lua Reference Manual end rem Function luaL_checkudata:Byte Ptr (lua_state:Byte Ptr, narg:Int, tname$z) ' no ~0 expected ' function luaL_error:int (lua_state:byte ptr, fmt$z, ...) Rem bbdoc: see Lua Reference Manual end rem Function luaL_getmetafield:Int (lua_state:Byte Ptr, obj:Int, e$z) ' no ~0 expected Rem bbdoc: see Lua Reference Manual end rem Function luaL_gsub$z (lua_state:Byte Ptr, s$z, p$z, r$z) ' no ~0 expected Rem bbdoc: see Lua Reference Manual end rem Function luaL_loadbuffer:Int (lua_state:Byte Ptr, buff:Byte Ptr, sz:Int, name$z) ' no ~0 expected Rem bbdoc: see Lua Reference Manual end rem Function luaL_loadfile:Int (lua_state:Byte Ptr, filename$z) ' no ~0 expected Rem bbdoc: see Lua Reference Manual end rem Function luaL_loadstring:Int (lua_state:Byte Ptr, s$z) ' no ~0 allowed! Rem bbdoc: see Lua Reference Manual end rem Function luaL_newmetatable:Int (lua_state:Byte Ptr, tname$z) ' no ~0 expected Rem bbdoc: see Lua Reference Manual end rem Function luaL_newstate:Byte Ptr () Rem bbdoc: see Lua Reference Manual end rem Function luaL_openlibs (lua_state:Byte Ptr) Rem bbdoc: see Lua Reference Manual end rem Function luaL_optinteger:Int (lua_state:Byte Ptr, narg:Int, d:Int) Rem bbdoc: see Lua Reference Manual end rem Function luaL_optlstring:Byte Ptr (lua_state:Byte Ptr, narg:Int, d$z, size:Int Ptr) ' no ~0 expected in "d" Rem bbdoc: see Lua Reference Manual end rem Function luaL_optnumber:Double (lua_state:Byte Ptr, narg:Int, d:Double) Rem bbdoc: see Lua Reference Manual end rem Function luaL_prepbuffer:Byte Ptr (B:Byte Ptr) Rem bbdoc: see Lua Reference Manual end rem Function luaL_pushresult (B:Byte Ptr) Rem bbdoc: see Lua Reference Manual end rem Function luaL_ref:Int (lua_state:Byte Ptr, t:Int) Rem bbdoc: see Lua Reference Manual end rem Function luaL_register (lua_state:Byte Ptr, libname$z, l:lua_Reg Ptr) ' no ~0 expected Rem bbdoc: see Lua Reference Manual end rem Function luaL_typerror:Int (lua_state:Byte Ptr, narg:Int, tname$z) ' no ~0 expected Rem bbdoc: see Lua Reference Manual end rem Function luaL_unref (lua_state:Byte Ptr, t:Int, ref:Int) Rem bbdoc: see Lua Reference Manual end rem Function luaL_where (lua_state:Byte Ptr, lvl:Int) End Extern ' ****************************************************************************** ' * * ' * The Auxiliary Library (Macros) * ' * * ' ****************************************************************************** Rem bbdoc: see Lua Reference Manual end rem Function luaL_addchar (B:Byte Ptr, c:String) ' luaL_addstring(B,Left$(c,1)) ' not really efficient, just to be complete luaL_addstring( B,c[..Min(c.Length,1)] ) 'functionally equivalent? End Function Rem bbdoc: see Lua Reference Manual end rem Function luaL_argcheck (lua_state:Byte Ptr, cond:Int, narg:Int, extramsg:String) If (Not cond) Then luaL_argerror(lua_state, narg, extramsg) End Function Rem bbdoc: see Lua Reference Manual end rem Function luaL_checkint:Int (lua_state:Byte Ptr, narg:Int) Return Int(luaL_checkinteger(lua_state, narg)) ' Lua itself does the same! End Function Rem bbdoc: see Lua Reference Manual end rem Function luaL_checklong:Long (lua_state:Byte Ptr, narg:Int) Return luaL_checkinteger(lua_state, narg) End Function Rem bbdoc: see Lua Reference Manual end rem Function luaL_checkstring:String (lua_state:Byte Ptr, narg:Int) Local Size:Int Local StringPtr:Byte Ptr = luaL_checklstring(lua_state, narg, Varptr Size) If (StringPtr = Null) Then Return Null Else Return String.fromBytes(StringPtr,Size) End If End Function Rem bbdoc: see Lua Reference Manual end rem Function luaL_dofile:Int (lua_state:Byte Ptr, filename:String) If (luaL_loadfile(lua_state,filename) <> 0) Then Return 1 Else Return lua_pcall(lua_state, 0, LUA_MULTRET, 0) End If End Function Rem bbdoc: see Lua Reference Manual end rem Function luaL_dostring:Int (lua_state:Byte Ptr, str:String) If (luaL_loadstring(lua_state,str) <> 0) Then Return 1 Else Return lua_pcall(lua_state, 0, LUA_MULTRET, 0) End If End Function Rem bbdoc: see Lua Reference Manual end rem Function luaL_getmetatable (lua_state:Byte Ptr, tname:String) lua_getfield(lua_state, LUA_REGISTRYINDEX, tname) End Function Rem bbdoc: see Lua Reference Manual end rem Function luaL_optint:Int (lua_state:Byte Ptr, narg:Int, d:Int) Return luaL_optinteger(lua_state, narg, d) End Function Rem bbdoc: see Lua Reference Manual end rem Function luaL_optlong:Long (lua_state:Byte Ptr, narg:Int, d:Long) If ((Abs(narg) > lua_gettop(lua_state)) Or lua_isnil(lua_state,narg)) Then Return d Else Return luaL_checklong(lua_state,narg) End If End Function Rem bbdoc: see Lua Reference Manual end rem Function luaL_optstring:String (lua_state:Byte Ptr, narg:Int, d:String) Local Size:Int Local StringPtr:Byte Ptr = luaL_optlstring(lua_state, narg, d, Varptr Size) If (StringPtr = Null) Then Return Null Else Return String.fromBytes(StringPtr,Size) End If End Function Rem bbdoc: see Lua Reference Manual end rem Function luaL_typename:String (lua_state:Byte Ptr, idx:Int) Return lua_typename(lua_state, lua_type (lua_state,idx)) End Function ' ****************************************************************************** ' * * ' * compatibility extensions (not to break existing axe.lua programs) * ' * * ' ****************************************************************************** Extern Function luaopen_base:Int (lua_state:Byte Ptr) Function luaopen_debug:Int (lua_state:Byte Ptr) Function luaopen_io:Int (lua_state:Byte Ptr) Function luaopen_math:Int (lua_state:Byte Ptr) Function luaopen_os:Int (lua_state:Byte Ptr) Function luaopen_package:Int (lua_state:Byte Ptr) Function luaopen_string:Int (lua_state:Byte Ptr) Function luaopen_table:Int (lua_state:Byte Ptr) End Extern Function lua_dobuffer:Int (lua_state:Byte Ptr, buff:String, sz:Int, name:String) If (luaL_loadbuffer(lua_state,buff,sz,name) <> 0) Then Return 1 Else Return lua_pcall(lua_state, 0, LUA_MULTRET, 0) End If End Function Function lua_dofile:Int (lua_state:Byte Ptr, filename:String) Return luaL_dofile(lua_state,filename) End Function Function lua_dostring:Int (lua_state:Byte Ptr, str:String) Return luaL_dostring(lua_state,str) End Function Function lua_strlen:Int (lua_state:Byte Ptr, index:Int) Return lua_objlen(lua_state,index) End Function