1 /+ 2 + Copyright 2023 Aya Partridge 3 + Copyright 2019 - 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.v52.types; 9 10 version(LUA_52): 11 12 import core.stdc.stdio: BUFSIZ, FILE; 13 14 // luaconf.h 15 enum LUA_IDSIZE = 60; 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 enum LUAL_BUFFERSIZE = BUFSIZ; 24 25 enum LUAI_MAXSTACK = 1000000; 26 27 enum LUAI_FIRSTPSEUDOIDX = (-LUAI_MAXSTACK - 1000); 28 29 // lauxlib.h 30 enum LUA_ERRFILE = LUA_ERRERR+1; 31 32 struct luaL_Reg{ 33 const(char)* name; 34 lua_CFunction func; 35 } 36 37 enum LUA_NOREF = -2; 38 enum LUA_REFNIL = -1; 39 40 struct luaL_Buffer{ 41 char* b; 42 size_t size; 43 size_t n; 44 lua_State* L; 45 char[LUAL_BUFFERSIZE] buffer; 46 } 47 48 alias LUA_FILEHANDLE = FILE*; 49 50 struct luaL_Stream{ 51 FILE* f; 52 lua_CFunction closef; 53 } 54 55 // lua.h 56 enum LUA_VERSION_MAJOR = "5"; 57 enum LUA_VERSION_MINOR = "2"; 58 enum LUA_VERSION_NUM = 502; 59 enum LUA_VERSION_RELEASE = 4; 60 61 enum LUA_VERSION = "Lua " ~ LUA_VERSION_MAJOR ~ "." ~ LUA_VERSION_MINOR; 62 enum LUA_RELEASE = LUA_VERSION ~ "." ~ LUA_VERSION_RELEASE; 63 64 enum LUA_SIGNATURE = "\033Lua"; 65 enum LUA_MULTRET = -1; 66 67 enum LUA_REGISTRYINDEX = LUAI_FIRSTPSEUDOIDX; 68 69 enum LUA_OK = 0; 70 enum LUA_YIELD = 1; 71 enum LUA_ERRRUN = 2; 72 enum LUA_ERRSYNTAX = 3; 73 enum LUA_ERRMEM = 4; 74 enum LUA_ERRGCMM = 5; 75 enum LUA_ERRERR = 6; 76 77 struct lua_State; 78 79 extern(C) nothrow{ 80 alias lua_CFunction = int function(lua_State*); 81 alias lua_Reader = const(char)* function(lua_State*, void*, size_t*); 82 alias lua_Writer = int function(lua_State*, const(void)*, size_t, void*); 83 alias lua_Alloc = void* function(void*, void*, size_t, size_t); 84 } 85 86 enum LUA_TNONE = -1; 87 enum LUA_TNIL = 0; 88 enum LUA_TBOOLEAN = 1; 89 enum LUA_TLIGHTUSERDATA = 2; 90 enum LUA_TNUMBER = 3; 91 enum LUA_TSTRING = 4; 92 enum LUA_TTABLE = 5; 93 enum LUA_TFUNCTION = 6; 94 enum LUA_TUSERDATA = 7; 95 enum LUA_TTHREAD = 8; 96 enum LUA_NUMTAGS = 9; 97 98 enum LUA_MINSTACK = 20; 99 100 enum LUA_RIDX_MAINTHREAD = 1; 101 enum LUA_RIDX_GLOBALS = 2; 102 enum LUA_RIDX_LAST = LUA_RIDX_GLOBALS; 103 104 alias lua_Number = LUA_NUMBER; 105 alias lua_Integer = LUA_INTEGER; 106 alias lua_Unsigned = LUA_UNSIGNED; 107 108 enum LUA_OPADD = 0; 109 enum LUA_OPSUB = 1; 110 enum LUA_OPMUL = 2; 111 enum LUA_OPDIV = 3; 112 enum LUA_OPMOD = 4; 113 enum LUA_OPPOW = 5; 114 enum LUA_OPUNM = 6; 115 116 enum LUA_OPEQ = 0; 117 enum LUA_OPLT = 1; 118 enum LUA_OPLE = 2; 119 120 enum LUA_GCSTOP = 0; 121 enum LUA_GCRESTART = 1; 122 enum LUA_GCCOLLECT = 2; 123 enum LUA_GCCOUNT = 3; 124 enum LUA_GCCOUNTB = 4; 125 enum LUA_GCSTEP = 5; 126 enum LUA_GCSETPAUSE = 6; 127 enum LUA_GCSETSTEPMUL = 7; 128 enum LUA_GCSETMAJORINC = 8; 129 enum LUA_GCISRUNNING = 9; 130 enum LUA_GCGEN = 10; 131 enum LUA_GCINC = 11; 132 133 enum LUA_HOOKCALL = 0; 134 enum LUA_HOOKRET = 1; 135 enum LUA_HOOKLINE = 2; 136 enum LUA_HOOKCOUNT = 3; 137 enum LUA_HOOKTAILRET = 4; 138 139 enum LUA_MASKCALL = 1 << LUA_HOOKCALL; 140 enum LUA_MASKRET = 1 << LUA_HOOKRET; 141 enum LUA_MASKLINE = 1 << LUA_HOOKLINE; 142 enum LUA_MASKCOUNT = 1 << LUA_HOOKCOUNT; 143 144 struct lua_Debug{ 145 int event; 146 const(char)* name; 147 const(char)* namewhat; 148 const(char)* what; 149 const(char)* source; 150 int currentline; 151 int linedefined; 152 int lastlinedefined; 153 ubyte nups; 154 ubyte nparams; 155 char isvararg; 156 char istailcall; 157 char[LUA_IDSIZE] short_src; 158 private void* i_ci; 159 } 160 161 alias lua_Hook = extern(C) void function(lua_State*, lua_Debug*) nothrow; 162 163 // lualib.h 164 enum LUA_COLIBNAME = "coroutine"; 165 enum LUA_TABLIBNAME = "table"; 166 enum LUA_IOLIBNAME = "io"; 167 enum LUA_OSLIBNAME = "os"; 168 enum LUA_STRLIBNAME = "string"; 169 enum LUA_BITLIBNAME = "bit32"; 170 enum LUA_MATHLIBNAME = "math"; 171 enum LUA_DBLIBNAME = "debug"; 172 enum LUA_LOADLIBNAME = "package";