1 /+ 2 + Copyright 2023 Aya Partridge 3 + Copyright 2010 - 2021 Michael D. Parker 4 + Distributed under the Boost Software License, Version 1.0. 5 + (See accompanying file LICENSE_1_0.txt or copy at 6 + http://www.boost.org/LICENSE_1_0.txt) 7 +/ 8 module bindbc.lua.v53.types; 9 10 version(LUA_53): 11 12 import core.stdc.stdio: BUFSIZ, FILE; 13 import core.stdc.stdint: intptr_t; 14 15 // luaconf.h 16 alias LUA_INT32 = int; 17 alias LUAI_UMEM = size_t; 18 alias LUAI_MEM = ptrdiff_t; 19 alias LUA_NUMBER = double; 20 alias LUA_INTEGER = ptrdiff_t; 21 alias LUA_UNSIGNED = uint; 22 23 alias LUA_KCONTEXT = intptr_t; 24 enum LUAI_MAXSTACK = 1000000; 25 enum LUA_EXTRASPACE = (void*).sizeof; 26 enum LUA_IDSIZE = 60; 27 enum LUAL_BUFFERSIZE = cast(int)(0x80 * (void*).sizeof * lua_Integer.sizeof); 28 29 // lauxlib.h 30 enum LUA_ERRFILE = LUA_ERRERR+1; 31 enum LUA_LOADED_TABLE = "_LOADED"; 32 enum LUA_PRELOAD_TABLE = "_PRELOAD"; 33 34 struct luaL_Reg{ 35 const(char)* name; 36 lua_CFunction func; 37 } 38 39 enum LUAL_NUMSIZES = lua_Integer.sizeof * 16 + lua_Number.sizeof; 40 41 enum LUA_NOREF = -2; 42 enum LUA_REFNIL = -1; 43 44 struct luaL_Buffer{ 45 char* b; 46 size_t size; 47 size_t n; 48 lua_State* L; 49 char[LUAL_BUFFERSIZE] initb; 50 } 51 52 alias LUA_FILEHANDLE = FILE*; 53 54 struct luaL_Stream { 55 FILE* f; 56 lua_CFunction closef; 57 } 58 59 // lua.h 60 enum LUA_VERSION_MAJOR = "5"; 61 enum LUA_VERSION_MINOR = "3"; 62 enum LUA_VERSION_NUM = 503; 63 enum LUA_VERSION_RELEASE = 5; 64 65 enum LUA_VERSION = "Lua " ~ LUA_VERSION_MAJOR ~ "." ~ LUA_VERSION_MINOR; 66 enum LUA_RELEASE = LUA_VERSION ~ "." ~ LUA_VERSION_RELEASE; 67 68 enum LUA_SIGNATURE = "\x1bLua"; 69 enum LUA_MULTRET = -1; 70 71 enum LUA_REGISTRYINDEX = -LUAI_MAXSTACK - 1000; 72 73 enum LUA_OK = 0; 74 enum LUA_YIELD = 1; 75 enum LUA_ERRRUN = 2; 76 enum LUA_ERRSYNTAX = 3; 77 enum LUA_ERRMEM = 4; 78 enum LUA_ERRGCMM = 5; 79 enum LUA_ERRERR = 6; 80 81 struct lua_State; 82 83 extern(C) nothrow{ 84 alias lua_CFunction = int function(lua_State*); 85 alias lua_KFunction = int function(lua_State*, int, lua_KContext); 86 alias lua_Reader = const(char)* function(lua_State*, void*, size_t*); 87 alias lua_Writer = int function(lua_State*, const(void)*, size_t, void*); 88 alias lua_Alloc = void* function(void*, void*, size_t, size_t); 89 } 90 91 enum LUA_TNONE = -1; 92 enum LUA_TNIL = 0; 93 enum LUA_TBOOLEAN = 1; 94 enum LUA_TLIGHTUSERDATA = 2; 95 enum LUA_TNUMBER = 3; 96 enum LUA_TSTRING = 4; 97 enum LUA_TTABLE = 5; 98 enum LUA_TFUNCTION = 6; 99 enum LUA_TUSERDATA = 7; 100 enum LUA_TTHREAD = 8; 101 enum LUA_NUMTAGS = 9; 102 103 enum LUA_MINSTACK = 20; 104 105 enum LUA_RIDX_MAINTHREAD = 1; 106 enum LUA_RIDX_GLOBALS = 2; 107 enum LUA_RIDX_LAST = LUA_RIDX_GLOBALS; 108 109 alias lua_Number = LUA_NUMBER; 110 alias lua_Integer = LUA_INTEGER; 111 alias lua_Unsigned = LUA_UNSIGNED; 112 alias lua_KContext = LUA_KCONTEXT; 113 114 enum LUA_OPADD = 0; 115 enum LUA_OPSUB = 1; 116 enum LUA_OPMUL = 2; 117 enum LUA_OPMOD = 3; 118 enum LUA_OPPOW = 4; 119 enum LUA_OPDIV = 5; 120 enum LUA_OPIDIV = 6; 121 enum LUA_OPBAND = 7; 122 enum LUA_OPBOR = 8; 123 enum LUA_OPBXOR = 9; 124 enum LUA_OPSHL = 10; 125 enum LUA_OPSHR = 11; 126 enum LUA_OPUNM = 12; 127 enum LUA_OPBNOT = 13; 128 129 enum LUA_OPEQ = 0; 130 enum LUA_OPLT = 1; 131 enum LUA_OPLE = 2; 132 133 enum LUA_GCSTOP = 0; 134 enum LUA_GCRESTART = 1; 135 enum LUA_GCCOLLECT = 2; 136 enum LUA_GCCOUNT = 3; 137 enum LUA_GCCOUNTB = 4; 138 enum LUA_GCSTEP = 5; 139 enum LUA_GCSETPAUSE = 6; 140 enum LUA_GCSETSTEPMUL = 7; 141 enum LUA_GCISRUNNING = 9; 142 143 enum LUA_HOOKCALL = 0; 144 enum LUA_HOOKRET = 1; 145 enum LUA_HOOKLINE = 2; 146 enum LUA_HOOKCOUNT = 3; 147 enum LUA_HOOKTAILRET = 4; 148 149 enum LUA_MASKCALL = 1 << LUA_HOOKCALL; 150 enum LUA_MASKRET = 1 << LUA_HOOKRET; 151 enum LUA_MASKLINE = 1 << LUA_HOOKLINE; 152 enum LUA_MASKCOUNT = 1 << LUA_HOOKCOUNT; 153 154 struct lua_Debug{ 155 int event; 156 const(char)* name; 157 const(char)* namewhat; 158 const(char)* what; 159 const(char)* source; 160 int currentline; 161 int linedefined; 162 int lastlinedefined; 163 ubyte nups; 164 ubyte nparams; 165 char isvararg; 166 char istailcall; 167 char[LUA_IDSIZE] short_src; 168 private void* i_ci; 169 } 170 171 alias lua_Hook = extern(C) void function(lua_State*, lua_Debug*) nothrow; 172 173 // lualib.h 174 enum LUA_VERSUFFIX = "_" ~ LUA_VERSION_MAJOR ~ "_" ~ LUA_VERSION_MINOR; 175 enum LUA_COLIBNAME = "coroutine"; 176 enum LUA_TABLIBNAME = "table"; 177 enum LUA_IOLIBNAME = "io"; 178 enum LUA_OSLIBNAME = "os"; 179 enum LUA_STRLIBNAME = "string"; 180 enum LUA_UTF8LIBNAME = "utf8"; 181 enum LUA_BITLIBNAME = "bit32"; 182 enum LUA_MATHLIBNAME = "math"; 183 enum LUA_DBLIBNAME = "debug"; 184 enum LUA_LOADLIBNAME = "package";