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.v51.types; 9 10 version(LUA_51): 11 12 import core.stdc.stdio: BUFSIZ; 13 14 // luaconf.h 15 enum LUA_IDSIZE = 60; 16 alias LUAI_UINT32 = uint; 17 alias LUAI_INT32 = int; 18 enum LUAI_MAXINT32 = int.max; 19 alias LUAI_UMEM = size_t; 20 alias LUAI_MEM = ptrdiff_t; 21 alias LUA_NUMBER = double; 22 alias LUA_INTEGER = ptrdiff_t; 23 24 enum LUAL_BUFFERSIZE = BUFSIZ; 25 26 enum LUAI_MAXSTACK = 1000000; 27 28 // lauxlib.h 29 enum LUA_ERRFILE = LUA_ERRERR+1; 30 31 struct luaL_Reg{ 32 const(char)* name; 33 lua_CFunction func; 34 } 35 36 enum LUA_NOREF = -2; 37 enum LUA_REFNIL = -1; 38 39 struct luaL_Buffer{ 40 char* p; 41 int lvl; 42 lua_State* L; 43 char[LUAL_BUFFERSIZE] buffer; 44 } 45 46 // lua.h 47 // The 5.1 header does not define LUA_VERSION_MAJOR/MINOR/NUM/RELEASE, but we will 48 // for consistency with the other versions. 49 enum LUA_VERSION_MAJOR = "5"; 50 enum LUA_VERSION_MINOR = "1"; 51 enum LUA_VERSION_NUM = 501; 52 enum LUA_VERSION_RELEASE = 5; 53 54 enum LUA_VERSION = "Lua " ~ LUA_VERSION_MAJOR ~ "." ~ LUA_VERSION_MINOR; 55 enum LUA_RELEASE = LUA_VERSION ~ "." ~ LUA_VERSION_RELEASE; 56 57 enum LUA_SIGNATURE = "\033Lua"; 58 enum LUA_MULTRET = -1; 59 60 enum LUA_REGISTRYINDEX = -10_000; 61 enum LUA_ENVIRONINDEX = -10_001; 62 enum LUA_GLOBALSINDEX = -10_002; 63 64 enum LUA_YIELD = 1; 65 enum LUA_ERRRUN = 2; 66 enum LUA_ERRSYNTAX = 3; 67 enum LUA_ERRMEM = 4; 68 enum LUA_ERRERR = 5; 69 70 struct lua_State; 71 72 extern(C) nothrow{ 73 alias lua_CFunction = int function(lua_State*); 74 alias lua_Reader = const(char)* function(lua_State*, void*, size_t*); 75 alias lua_Writer = int function(lua_State*, const(void)*, size_t, void*); 76 alias lua_Alloc = void* function(void*, void*, size_t, size_t); 77 } 78 79 enum LUA_TNONE = -1; 80 enum LUA_TNIL = 0; 81 enum LUA_TBOOLEAN = 1; 82 enum LUA_TLIGHTUSERDATA = 2; 83 enum LUA_TNUMBER = 3; 84 enum LUA_TSTRING = 4; 85 enum LUA_TTABLE = 5; 86 enum LUA_TFUNCTION = 6; 87 enum LUA_TUSERDATA = 7; 88 enum LUA_TTHREAD = 8; 89 90 enum LUA_MINSTACK = 20; 91 92 alias lua_Number = LUA_NUMBER; 93 alias lua_Integer = LUA_INTEGER; 94 95 enum LUA_GCSTOP = 0; 96 enum LUA_GCRESTART = 1; 97 enum LUA_GCCOLLECT = 2; 98 enum LUA_GCCOUNT = 3; 99 enum LUA_GCCOUNTB = 4; 100 enum LUA_GCSTEP = 5; 101 enum LUA_GCSETPAUSE = 6; 102 enum LUA_GCSETSTEPMUL = 7; 103 104 enum LUA_HOOKCALL = 0; 105 enum LUA_HOOKRET = 1; 106 enum LUA_HOOKLINE = 2; 107 enum LUA_HOOKCOUNT = 3; 108 enum LUA_HOOKTAILRET = 4; 109 110 enum LUA_MASKCALL = 1 << LUA_HOOKCALL; 111 enum LUA_MASKRET = 1 << LUA_HOOKRET; 112 enum LUA_MASKLINE = 1 << LUA_HOOKLINE; 113 enum LUA_MASKCOUNT = 1 << LUA_HOOKCOUNT; 114 115 struct lua_Debug{ 116 int event; 117 const(char)* name; 118 const(char)* namewhat; 119 const(char)* what; 120 const(char)* source; 121 int currentline; 122 int nups; 123 int linedefined; 124 int lastlinedefined; 125 char[LUA_IDSIZE] short_src; 126 private int i_ci; 127 } 128 129 alias lua_Hook = extern(C) void function(lua_State*, lua_Debug*) nothrow; 130 131 // lualib.h 132 enum LUA_FILEHANDLE = "FILE*"; 133 enum LUA_COLIBNAME = "coroutine"; 134 enum LUA_TABLIBNAME = "table"; 135 enum LUA_IOLIBNAME = "io"; 136 enum LUA_OSLIBNAME = "os"; 137 enum LUA_STRLIBNAME = "string"; 138 enum LUA_MATHLIBNAME = "math"; 139 enum LUA_DBLIBNAME = "debug"; 140 enum LUA_LOADLIBNAME = "package";