551 lines
24 KiB
Text
551 lines
24 KiB
Text
//
|
|
// This file was autogenerated.
|
|
//
|
|
|
|
|
|
|
|
WINVER :: 0x0501;
|
|
|
|
LUA_MULTILIB :: "lib";
|
|
|
|
LUA_LMULTILIB :: "lib";
|
|
|
|
LUA_LROOT :: "/usr/local";
|
|
LUA_LUADIR :: "/lua/5.1/";
|
|
|
|
LUA_JROOT :: LUA_LROOT;
|
|
|
|
LUA_PATH :: "LUA_PATH";
|
|
LUA_CPATH :: "LUA_CPATH";
|
|
LUA_INIT :: "LUA_INIT";
|
|
|
|
LUA_DIRSEP :: "/";
|
|
|
|
LUA_PATHSEP :: ";";
|
|
LUA_PATH_MARK :: "?";
|
|
LUA_EXECDIR :: "!";
|
|
LUA_IGMARK :: "-";
|
|
|
|
LUAI_MAXSTACK :: 65500;
|
|
LUAI_MAXCSTACK :: 8000;
|
|
LUAI_GCPAUSE :: 200;
|
|
LUAI_GCMUL :: 200;
|
|
LUA_MAXCAPTURES :: 32;
|
|
|
|
LUA_IDSIZE :: 60;
|
|
|
|
LUA_NUMBER_SCAN :: "%lf";
|
|
LUA_NUMBER_FMT :: "%.14g";
|
|
|
|
LUAI_MAXNUMBER2STR :: 32;
|
|
LUA_INTFRMLEN :: "l";
|
|
|
|
LUA_VERSION :: "Lua 5.1";
|
|
LUA_RELEASE :: "Lua 5.1.4";
|
|
LUA_VERSION_NUM :: 501;
|
|
LUA_COPYRIGHT :: "Copyright (C) 1994-2008 Lua.org, PUC-Rio";
|
|
LUA_AUTHORS :: "R. Ierusalimschy, L. H. de Figueiredo & W. Celes";
|
|
|
|
LUA_SIGNATURE :: "\033Lua";
|
|
|
|
LUA_MULTRET :: -1;
|
|
|
|
LUA_REGISTRYINDEX :: -10000;
|
|
LUA_ENVIRONINDEX :: -10001;
|
|
LUA_GLOBALSINDEX :: -10002;
|
|
|
|
LUA_OK :: 0;
|
|
LUA_YIELD :: 1;
|
|
LUA_ERRRUN :: 2;
|
|
LUA_ERRSYNTAX :: 3;
|
|
LUA_ERRMEM :: 4;
|
|
LUA_ERRERR :: 5;
|
|
|
|
LUA_TNONE :: -1;
|
|
|
|
LUA_TNIL :: 0;
|
|
LUA_TBOOLEAN :: 1;
|
|
LUA_TLIGHTUSERDATA :: 2;
|
|
LUA_TNUMBER :: 3;
|
|
LUA_TSTRING :: 4;
|
|
LUA_TTABLE :: 5;
|
|
LUA_TFUNCTION :: 6;
|
|
LUA_TUSERDATA :: 7;
|
|
LUA_TTHREAD :: 8;
|
|
|
|
LUA_MINSTACK :: 20;
|
|
|
|
LUA_GCSTOP :: 0;
|
|
LUA_GCRESTART :: 1;
|
|
LUA_GCCOLLECT :: 2;
|
|
LUA_GCCOUNT :: 3;
|
|
LUA_GCCOUNTB :: 4;
|
|
LUA_GCSTEP :: 5;
|
|
LUA_GCSETPAUSE :: 6;
|
|
LUA_GCSETSTEPMUL :: 7;
|
|
LUA_GCISRUNNING :: 9;
|
|
|
|
lua_Chunkreader :: Reader;
|
|
lua_Chunkwriter :: Writer;
|
|
|
|
LUA_HOOKCALL :: 0;
|
|
LUA_HOOKRET :: 1;
|
|
LUA_HOOKLINE :: 2;
|
|
LUA_HOOKCOUNT :: 3;
|
|
LUA_HOOKTAILRET :: 4;
|
|
|
|
LUA_MASKCALL :: 1 << LUA_HOOKCALL;
|
|
LUA_MASKRET :: 1 << LUA_HOOKRET;
|
|
LUA_MASKLINE :: 1 << LUA_HOOKLINE;
|
|
LUA_MASKCOUNT :: 1 << LUA_HOOKCOUNT;
|
|
|
|
LUAJIT_VERSION :: "LuaJIT 2.1.1744318430";
|
|
LUAJIT_VERSION_NUM :: 20199;
|
|
LUAJIT_VERSION_SYM :: JIT_version_2_1_1744318430;
|
|
LUAJIT_COPYRIGHT :: "Copyright (C) 2005-2025 Mike Pall";
|
|
LUAJIT_URL :: "https://luajit.org/";
|
|
|
|
LUAJIT_MODE_MASK :: 0x00ff;
|
|
|
|
LUAJIT_MODE_OFF :: 0x0000;
|
|
LUAJIT_MODE_ON :: 0x0100;
|
|
LUAJIT_MODE_FLUSH :: 0x0200;
|
|
|
|
LUA_FILEHANDLE :: "FILE*";
|
|
|
|
LUA_COLIBNAME :: "coroutine";
|
|
LUA_MATHLIBNAME :: "math";
|
|
LUA_STRLIBNAME :: "string";
|
|
LUA_TABLIBNAME :: "table";
|
|
LUA_IOLIBNAME :: "io";
|
|
LUA_OSLIBNAME :: "os";
|
|
LUA_LOADLIBNAME :: "package";
|
|
LUA_DBLIBNAME :: "debug";
|
|
LUA_BITLIBNAME :: "bit";
|
|
LUA_JITLIBNAME :: "jit";
|
|
LUA_FFILIBNAME :: "ffi";
|
|
|
|
LUA_ERRFILE :: LUA_ERRERR+1;
|
|
|
|
LUA_NOREF :: -2;
|
|
LUA_REFNIL :: -1;
|
|
|
|
State :: struct {}
|
|
|
|
CFunction :: #type (L: *State) -> s32 #c_call;
|
|
|
|
/*
|
|
** functions that read/write blocks when loading/dumping Lua chunks
|
|
*/
|
|
Reader :: #type (L: *State, ud: *void, sz: *u64) -> *u8 #c_call;
|
|
|
|
Writer :: #type (L: *State, p: *void, sz: u64, ud: *void) -> s32 #c_call;
|
|
|
|
/*
|
|
** prototype for memory-allocation functions
|
|
*/
|
|
Alloc :: #type (ud: *void, ptr: *void, osize: u64, nsize: u64) -> *void #c_call;
|
|
|
|
/* type of numbers in Lua */
|
|
Number :: float64;
|
|
|
|
/* type for integer functions */
|
|
Integer :: ptrdiff_t;
|
|
|
|
/*
|
|
** state manipulation
|
|
*/
|
|
newstate :: (f: Alloc, ud: *void) -> *State #foreign luajit_5_1 "lua_newstate";
|
|
close :: (L: *State) -> void #foreign luajit_5_1 "lua_close";
|
|
newthread :: (L: *State) -> *State #foreign luajit_5_1 "lua_newthread";
|
|
|
|
atpanic :: (L: *State, panicf: CFunction) -> CFunction #foreign luajit_5_1 "lua_atpanic";
|
|
|
|
/*
|
|
** basic stack manipulation
|
|
*/
|
|
gettop :: (L: *State) -> s32 #foreign luajit_5_1 "lua_gettop";
|
|
settop :: (L: *State, idx: s32) -> void #foreign luajit_5_1 "lua_settop";
|
|
pushvalue :: (L: *State, idx: s32) -> void #foreign luajit_5_1 "lua_pushvalue";
|
|
_remove :: (L: *State, idx: s32) -> void #foreign luajit_5_1 "lua_remove";
|
|
insert :: (L: *State, idx: s32) -> void #foreign luajit_5_1 "lua_insert";
|
|
replace :: (L: *State, idx: s32) -> void #foreign luajit_5_1 "lua_replace";
|
|
checkstack :: (L: *State, sz: s32) -> s32 #foreign luajit_5_1 "lua_checkstack";
|
|
|
|
xmove :: (from: *State, to: *State, n: s32) -> void #foreign luajit_5_1 "lua_xmove";
|
|
|
|
/*
|
|
** access functions (stack -> C)
|
|
*/
|
|
isnumber :: (L: *State, idx: s32) -> s32 #foreign luajit_5_1 "lua_isnumber";
|
|
isstring :: (L: *State, idx: s32) -> s32 #foreign luajit_5_1 "lua_isstring";
|
|
iscfunction :: (L: *State, idx: s32) -> s32 #foreign luajit_5_1 "lua_iscfunction";
|
|
isuserdata :: (L: *State, idx: s32) -> s32 #foreign luajit_5_1 "lua_isuserdata";
|
|
type :: (L: *State, idx: s32) -> s32 #foreign luajit_5_1 "lua_type";
|
|
typename :: (L: *State, tp: s32) -> *u8 #foreign luajit_5_1 "lua_typename";
|
|
|
|
equal :: (L: *State, idx1: s32, idx2: s32) -> s32 #foreign luajit_5_1 "lua_equal";
|
|
rawequal :: (L: *State, idx1: s32, idx2: s32) -> s32 #foreign luajit_5_1 "lua_rawequal";
|
|
lessthan :: (L: *State, idx1: s32, idx2: s32) -> s32 #foreign luajit_5_1 "lua_lessthan";
|
|
|
|
tonumber :: (L: *State, idx: s32) -> Number #foreign luajit_5_1 "lua_tonumber";
|
|
tointeger :: (L: *State, idx: s32) -> Integer #foreign luajit_5_1 "lua_tointeger";
|
|
toboolean :: (L: *State, idx: s32) -> s32 #foreign luajit_5_1 "lua_toboolean";
|
|
tolstring :: (L: *State, idx: s32, len: *u64) -> *u8 #foreign luajit_5_1 "lua_tolstring";
|
|
objlen :: (L: *State, idx: s32) -> u64 #foreign luajit_5_1 "lua_objlen";
|
|
tocfunction :: (L: *State, idx: s32) -> CFunction #foreign luajit_5_1 "lua_tocfunction";
|
|
touserdata :: (L: *State, idx: s32) -> *void #foreign luajit_5_1 "lua_touserdata";
|
|
tothread :: (L: *State, idx: s32) -> *State #foreign luajit_5_1 "lua_tothread";
|
|
topointer :: (L: *State, idx: s32) -> *void #foreign luajit_5_1 "lua_topointer";
|
|
|
|
/*
|
|
** push functions (C -> stack)
|
|
*/
|
|
pushnil :: (L: *State) -> void #foreign luajit_5_1 "lua_pushnil";
|
|
pushnumber :: (L: *State, n: Number) -> void #foreign luajit_5_1 "lua_pushnumber";
|
|
pushinteger :: (L: *State, n: Integer) -> void #foreign luajit_5_1 "lua_pushinteger";
|
|
pushlstring :: (L: *State, s: *u8, l: u64) -> void #foreign luajit_5_1 "lua_pushlstring";
|
|
pushstring :: (L: *State, s: *u8) -> void #foreign luajit_5_1 "lua_pushstring";
|
|
|
|
pushfstring_CFormat :: (L: *State, fmt: *u8, __args: ..Any) -> *u8 #foreign luajit_5_1 "lua_pushfstring";
|
|
pushfstring :: (L: *State, fmt: string, __args: ..Any) -> *u8 {
|
|
push_allocator(temp);
|
|
formatted_text_builder: String_Builder;
|
|
print_to_builder(*formatted_text_builder, fmt, ..__args);
|
|
append(*formatted_text_builder, "\0");
|
|
formatted_text := builder_to_string(*formatted_text_builder);
|
|
return pushfstring_CFormat(L, "%s", formatted_text.data);
|
|
} @PrintLike
|
|
pushcclosure :: (L: *State, fn: CFunction, n: s32) -> void #foreign luajit_5_1 "lua_pushcclosure";
|
|
pushboolean :: (L: *State, b: s32) -> void #foreign luajit_5_1 "lua_pushboolean";
|
|
pushlightuserdata :: (L: *State, p: *void) -> void #foreign luajit_5_1 "lua_pushlightuserdata";
|
|
pushthread :: (L: *State) -> s32 #foreign luajit_5_1 "lua_pushthread";
|
|
|
|
/*
|
|
** get functions (Lua -> stack)
|
|
*/
|
|
gettable :: (L: *State, idx: s32) -> void #foreign luajit_5_1 "lua_gettable";
|
|
getfield :: (L: *State, idx: s32, k: *u8) -> void #foreign luajit_5_1 "lua_getfield";
|
|
rawget :: (L: *State, idx: s32) -> void #foreign luajit_5_1 "lua_rawget";
|
|
rawgeti :: (L: *State, idx: s32, n: s32) -> void #foreign luajit_5_1 "lua_rawgeti";
|
|
createtable :: (L: *State, narr: s32, nrec: s32) -> void #foreign luajit_5_1 "lua_createtable";
|
|
newuserdata :: (L: *State, sz: u64) -> *void #foreign luajit_5_1 "lua_newuserdata";
|
|
getmetatable :: (L: *State, objindex: s32) -> s32 #foreign luajit_5_1 "lua_getmetatable";
|
|
getfenv :: (L: *State, idx: s32) -> void #foreign luajit_5_1 "lua_getfenv";
|
|
|
|
/*
|
|
** set functions (stack -> Lua)
|
|
*/
|
|
settable :: (L: *State, idx: s32) -> void #foreign luajit_5_1 "lua_settable";
|
|
setfield :: (L: *State, idx: s32, k: *u8) -> void #foreign luajit_5_1 "lua_setfield";
|
|
rawset :: (L: *State, idx: s32) -> void #foreign luajit_5_1 "lua_rawset";
|
|
rawseti :: (L: *State, idx: s32, n: s32) -> void #foreign luajit_5_1 "lua_rawseti";
|
|
setmetatable :: (L: *State, objindex: s32) -> s32 #foreign luajit_5_1 "lua_setmetatable";
|
|
setfenv :: (L: *State, idx: s32) -> s32 #foreign luajit_5_1 "lua_setfenv";
|
|
|
|
/*
|
|
** `load' and `call' functions (load and run Lua code)
|
|
*/
|
|
call :: (L: *State, nargs: s32, nresults: s32) -> void #foreign luajit_5_1 "lua_call";
|
|
pcall :: (L: *State, nargs: s32, nresults: s32, errfunc: s32) -> s32 #foreign luajit_5_1 "lua_pcall";
|
|
cpcall :: (L: *State, func: CFunction, ud: *void) -> s32 #foreign luajit_5_1 "lua_cpcall";
|
|
load :: (L: *State, reader: Reader, dt: *void, chunkname: *u8) -> s32 #foreign luajit_5_1 "lua_load";
|
|
|
|
dump :: (L: *State, writer: Writer, data: *void) -> s32 #foreign luajit_5_1 "lua_dump";
|
|
|
|
/*
|
|
** coroutine functions
|
|
*/
|
|
yield :: (L: *State, nresults: s32) -> s32 #foreign luajit_5_1 "lua_yield";
|
|
resume :: (L: *State, narg: s32) -> s32 #foreign luajit_5_1 "lua_resume";
|
|
status :: (L: *State) -> s32 #foreign luajit_5_1 "lua_status";
|
|
|
|
gc :: (L: *State, what: s32, data: s32) -> s32 #foreign luajit_5_1 "lua_gc";
|
|
|
|
/*
|
|
** miscellaneous functions
|
|
*/
|
|
error :: (L: *State) -> s32 #foreign luajit_5_1 "lua_error";
|
|
|
|
next :: (L: *State, idx: s32) -> s32 #foreign luajit_5_1 "lua_next";
|
|
|
|
concat :: (L: *State, n: s32) -> void #foreign luajit_5_1 "lua_concat";
|
|
|
|
getallocf :: (L: *State, ud: **void) -> Alloc #foreign luajit_5_1 "lua_getallocf";
|
|
setallocf :: (L: *State, f: Alloc, ud: *void) -> void #foreign luajit_5_1 "lua_setallocf";
|
|
|
|
/* Functions to be called by the debuger in specific events */
|
|
Hook :: #type (L: *State, ar: *Debug) -> void #c_call;
|
|
|
|
getstack :: (L: *State, level: s32, ar: *Debug) -> s32 #foreign luajit_5_1 "lua_getstack";
|
|
getinfo :: (L: *State, what: *u8, ar: *Debug) -> s32 #foreign luajit_5_1 "lua_getinfo";
|
|
getlocal :: (L: *State, ar: *Debug, n: s32) -> *u8 #foreign luajit_5_1 "lua_getlocal";
|
|
setlocal :: (L: *State, ar: *Debug, n: s32) -> *u8 #foreign luajit_5_1 "lua_setlocal";
|
|
getupvalue :: (L: *State, funcindex: s32, n: s32) -> *u8 #foreign luajit_5_1 "lua_getupvalue";
|
|
setupvalue :: (L: *State, funcindex: s32, n: s32) -> *u8 #foreign luajit_5_1 "lua_setupvalue";
|
|
sethook :: (L: *State, func: Hook, mask: s32, count: s32) -> s32 #foreign luajit_5_1 "lua_sethook";
|
|
gethook :: (L: *State) -> Hook #foreign luajit_5_1 "lua_gethook";
|
|
gethookmask :: (L: *State) -> s32 #foreign luajit_5_1 "lua_gethookmask";
|
|
gethookcount :: (L: *State) -> s32 #foreign luajit_5_1 "lua_gethookcount";
|
|
|
|
/* From Lua 5.2. */
|
|
upvalueid :: (L: *State, idx: s32, n: s32) -> *void #foreign luajit_5_1 "lua_upvalueid";
|
|
upvaluejoin :: (L: *State, idx1: s32, n1: s32, idx2: s32, n2: s32) -> void #foreign luajit_5_1 "lua_upvaluejoin";
|
|
loadx :: (L: *State, reader: Reader, dt: *void, chunkname: *u8, mode: *u8) -> s32 #foreign luajit_5_1 "lua_loadx";
|
|
|
|
version :: (L: *State) -> *Number #foreign luajit_5_1 "lua_version";
|
|
copy :: (L: *State, fromidx: s32, toidx: s32) -> void #foreign luajit_5_1 "lua_copy";
|
|
tonumberx :: (L: *State, idx: s32, isnum: *s32) -> Number #foreign luajit_5_1 "lua_tonumberx";
|
|
tointegerx :: (L: *State, idx: s32, isnum: *s32) -> Integer #foreign luajit_5_1 "lua_tointegerx";
|
|
|
|
/* From Lua 5.3. */
|
|
isyieldable :: (L: *State) -> s32 #foreign luajit_5_1 "lua_isyieldable";
|
|
|
|
Debug :: struct {
|
|
event: s32;
|
|
name: *u8; /* (n) */
|
|
namewhat: *u8; /* (n) `global', `local', `field', `method' */
|
|
what: *u8; /* (S) `Lua', `C', `main', `tail' */
|
|
source: *u8; /* (S) */
|
|
currentline: s32; /* (l) */
|
|
nups: s32; /* (u) number of upvalues */
|
|
linedefined: s32; /* (S) */
|
|
lastlinedefined: s32; /* (S) */
|
|
short_src: [60] u8; /* (S) */
|
|
|
|
i_ci: s32; /* active function */
|
|
}
|
|
|
|
LUAJIT_MODE :: enum u32 {
|
|
ENGINE :: 0;
|
|
DEBUG :: 1;
|
|
|
|
FUNC :: 2;
|
|
ALLFUNC :: 3;
|
|
ALLSUBFUNC :: 4;
|
|
|
|
TRACE :: 5;
|
|
|
|
WRAPCFUNC :: 16;
|
|
|
|
MAX :: 17;
|
|
|
|
LUAJIT_MODE_ENGINE :: ENGINE;
|
|
LUAJIT_MODE_DEBUG :: DEBUG;
|
|
|
|
LUAJIT_MODE_FUNC :: FUNC;
|
|
LUAJIT_MODE_ALLFUNC :: ALLFUNC;
|
|
LUAJIT_MODE_ALLSUBFUNC :: ALLSUBFUNC;
|
|
|
|
LUAJIT_MODE_TRACE :: TRACE;
|
|
|
|
LUAJIT_MODE_WRAPCFUNC :: WRAPCFUNC;
|
|
|
|
LUAJIT_MODE_MAX :: MAX;
|
|
}
|
|
|
|
/* Control the JIT engine. */
|
|
JIT_setmode :: (L: *State, idx: s32, mode: s32) -> s32 #foreign luajit_5_1 "luaJIT_setmode";
|
|
|
|
/* Low-overhead profiling API. */
|
|
JIT_profile_callback :: #type (data: *void, L: *State, samples: s32, vmstate: s32) -> void #c_call;
|
|
|
|
JIT_profile_start :: (L: *State, mode: *u8, cb: JIT_profile_callback, data: *void) -> void #foreign luajit_5_1 "luaJIT_profile_start";
|
|
|
|
JIT_profile_stop :: (L: *State) -> void #foreign luajit_5_1 "luaJIT_profile_stop";
|
|
JIT_profile_dumpstack :: (L: *State, fmt: *u8, depth: s32, len: *u64) -> *u8 #foreign luajit_5_1 "luaJIT_profile_dumpstack";
|
|
|
|
/* Enforce (dynamic) linker error for version mismatches. Call from main. */
|
|
JIT_version_2_1_1744318430 :: () -> void #foreign luajit_5_1 "luaJIT_version_2_1_1744318430";
|
|
|
|
open_base :: (L: *State) -> s32 #foreign luajit_5_1 "luaopen_base";
|
|
open_math :: (L: *State) -> s32 #foreign luajit_5_1 "luaopen_math";
|
|
open_string :: (L: *State) -> s32 #foreign luajit_5_1 "luaopen_string";
|
|
open_table :: (L: *State) -> s32 #foreign luajit_5_1 "luaopen_table";
|
|
open_io :: (L: *State) -> s32 #foreign luajit_5_1 "luaopen_io";
|
|
open_os :: (L: *State) -> s32 #foreign luajit_5_1 "luaopen_os";
|
|
open_package :: (L: *State) -> s32 #foreign luajit_5_1 "luaopen_package";
|
|
open_debug :: (L: *State) -> s32 #foreign luajit_5_1 "luaopen_debug";
|
|
open_bit :: (L: *State) -> s32 #foreign luajit_5_1 "luaopen_bit";
|
|
open_jit :: (L: *State) -> s32 #foreign luajit_5_1 "luaopen_jit";
|
|
open_ffi :: (L: *State) -> s32 #foreign luajit_5_1 "luaopen_ffi";
|
|
open_string_buffer :: (L: *State) -> s32 #foreign luajit_5_1 "luaopen_string_buffer";
|
|
|
|
L_openlibs :: (L: *State) -> void #foreign luajit_5_1 "luaL_openlibs";
|
|
|
|
L_Reg :: struct {
|
|
name: *u8;
|
|
func: CFunction;
|
|
}
|
|
|
|
L_openlib :: (L: *State, libname: *u8, l: *L_Reg, nup: s32) -> void #foreign luajit_5_1 "luaL_openlib";
|
|
|
|
L_register :: (L: *State, libname: *u8, l: *L_Reg) -> void #foreign luajit_5_1 "luaL_register";
|
|
|
|
L_getmetafield :: (L: *State, obj: s32, e: *u8) -> s32 #foreign luajit_5_1 "luaL_getmetafield";
|
|
L_callmeta :: (L: *State, obj: s32, e: *u8) -> s32 #foreign luajit_5_1 "luaL_callmeta";
|
|
L_typerror :: (L: *State, narg: s32, tname: *u8) -> s32 #foreign luajit_5_1 "luaL_typerror";
|
|
L_argerror :: (L: *State, numarg: s32, extramsg: *u8) -> s32 #foreign luajit_5_1 "luaL_argerror";
|
|
L_checklstring :: (L: *State, numArg: s32, l: *u64) -> *u8 #foreign luajit_5_1 "luaL_checklstring";
|
|
|
|
L_optlstring :: (L: *State, numArg: s32, def: *u8, l: *u64) -> *u8 #foreign luajit_5_1 "luaL_optlstring";
|
|
|
|
L_checknumber :: (L: *State, numArg: s32) -> Number #foreign luajit_5_1 "luaL_checknumber";
|
|
L_optnumber :: (L: *State, nArg: s32, def: Number) -> Number #foreign luajit_5_1 "luaL_optnumber";
|
|
|
|
L_checkinteger :: (L: *State, numArg: s32) -> Integer #foreign luajit_5_1 "luaL_checkinteger";
|
|
L_optinteger :: (L: *State, nArg: s32, def: Integer) -> Integer #foreign luajit_5_1 "luaL_optinteger";
|
|
|
|
L_checkstack :: (L: *State, sz: s32, msg: *u8) -> void #foreign luajit_5_1 "luaL_checkstack";
|
|
L_checktype :: (L: *State, narg: s32, t: s32) -> void #foreign luajit_5_1 "luaL_checktype";
|
|
L_checkany :: (L: *State, narg: s32) -> void #foreign luajit_5_1 "luaL_checkany";
|
|
|
|
L_newmetatable :: (L: *State, tname: *u8) -> s32 #foreign luajit_5_1 "luaL_newmetatable";
|
|
L_checkudata :: (L: *State, ud: s32, tname: *u8) -> *void #foreign luajit_5_1 "luaL_checkudata";
|
|
|
|
L_where :: (L: *State, lvl: s32) -> void #foreign luajit_5_1 "luaL_where";
|
|
L_error_CFormat :: (L: *State, fmt: *u8, __args: ..Any) -> s32 #foreign luajit_5_1 "luaL_error";
|
|
L_error :: (L: *State, fmt: string, __args: ..Any) -> s32 {
|
|
push_allocator(temp);
|
|
formatted_text_builder: String_Builder;
|
|
print_to_builder(*formatted_text_builder, fmt, ..__args);
|
|
append(*formatted_text_builder, "\0");
|
|
formatted_text := builder_to_string(*formatted_text_builder);
|
|
return L_error_CFormat(L, "%s", formatted_text.data);
|
|
} @PrintLike
|
|
|
|
L_checkoption :: (L: *State, narg: s32, def: *u8, lst: **u8) -> s32 #foreign luajit_5_1 "luaL_checkoption";
|
|
|
|
L_ref :: (L: *State, t: s32) -> s32 #foreign luajit_5_1 "luaL_ref";
|
|
L_unref :: (L: *State, t: s32, ref: s32) -> void #foreign luajit_5_1 "luaL_unref";
|
|
|
|
L_loadfile :: (L: *State, filename: *u8) -> s32 #foreign luajit_5_1 "luaL_loadfile";
|
|
L_loadbuffer :: (L: *State, buff: *u8, sz: u64, name: *u8) -> s32 #foreign luajit_5_1 "luaL_loadbuffer";
|
|
|
|
L_loadstring :: (L: *State, s: *u8) -> s32 #foreign luajit_5_1 "luaL_loadstring";
|
|
|
|
L_newstate :: () -> *State #foreign luajit_5_1 "luaL_newstate";
|
|
|
|
L_gsub :: (L: *State, s: *u8, p: *u8, r: *u8) -> *u8 #foreign luajit_5_1 "luaL_gsub";
|
|
|
|
L_findtable :: (L: *State, idx: s32, fname: *u8, szhint: s32) -> *u8 #foreign luajit_5_1 "luaL_findtable";
|
|
|
|
/* From Lua 5.2. */
|
|
L_fileresult :: (L: *State, stat: s32, fname: *u8) -> s32 #foreign luajit_5_1 "luaL_fileresult";
|
|
L_execresult :: (L: *State, stat: s32) -> s32 #foreign luajit_5_1 "luaL_execresult";
|
|
L_loadfilex :: (L: *State, filename: *u8, mode: *u8) -> s32 #foreign luajit_5_1 "luaL_loadfilex";
|
|
|
|
L_loadbufferx :: (L: *State, buff: *u8, sz: u64, name: *u8, mode: *u8) -> s32 #foreign luajit_5_1 "luaL_loadbufferx";
|
|
|
|
L_traceback :: (L: *State, L1: *State, msg: *u8, level: s32) -> void #foreign luajit_5_1 "luaL_traceback";
|
|
|
|
L_setfuncs :: (L: *State, l: *L_Reg, nup: s32) -> void #foreign luajit_5_1 "luaL_setfuncs";
|
|
L_pushmodule :: (L: *State, modname: *u8, sizehint: s32) -> void #foreign luajit_5_1 "luaL_pushmodule";
|
|
|
|
L_testudata :: (L: *State, ud: s32, tname: *u8) -> *void #foreign luajit_5_1 "luaL_testudata";
|
|
L_setmetatable :: (L: *State, tname: *u8) -> void #foreign luajit_5_1 "luaL_setmetatable";
|
|
|
|
/*
|
|
** {======================================================
|
|
** Generic Buffer manipulation
|
|
** =======================================================
|
|
*/
|
|
L_Buffer :: struct {
|
|
p: *u8; /* current position in buffer */
|
|
lvl: s32; /* number of strings in the stack (level) */
|
|
L: *State;
|
|
buffer: [1024] u8;
|
|
}
|
|
|
|
L_buffinit :: (L: *State, B: *L_Buffer) -> void #foreign luajit_5_1 "luaL_buffinit";
|
|
L_prepbuffer :: (B: *L_Buffer) -> *u8 #foreign luajit_5_1 "luaL_prepbuffer";
|
|
L_addlstring :: (B: *L_Buffer, s: *u8, l: u64) -> void #foreign luajit_5_1 "luaL_addlstring";
|
|
L_addstring :: (B: *L_Buffer, s: *u8) -> void #foreign luajit_5_1 "luaL_addstring";
|
|
L_addvalue :: (B: *L_Buffer) -> void #foreign luajit_5_1 "luaL_addvalue";
|
|
L_pushresult :: (B: *L_Buffer) -> void #foreign luajit_5_1 "luaL_pushresult";
|
|
|
|
#scope_file
|
|
|
|
#import "Basic"; // For assert, push_context
|
|
|
|
|
|
#run {
|
|
{
|
|
info := type_info(Debug);
|
|
for info.members {
|
|
if it.name == {
|
|
case "event";
|
|
assert(it.offset_in_bytes == 0, "Debug.event has unexpected offset % instead of 0", it.offset_in_bytes);
|
|
assert(it.type.runtime_size == 4, "Debug.event has unexpected size % instead of 4", it.type.runtime_size);
|
|
case "name";
|
|
assert(it.offset_in_bytes == 8, "Debug.name has unexpected offset % instead of 8", it.offset_in_bytes);
|
|
assert(it.type.runtime_size == 8, "Debug.name has unexpected size % instead of 8", it.type.runtime_size);
|
|
case "namewhat";
|
|
assert(it.offset_in_bytes == 16, "Debug.namewhat has unexpected offset % instead of 16", it.offset_in_bytes);
|
|
assert(it.type.runtime_size == 8, "Debug.namewhat has unexpected size % instead of 8", it.type.runtime_size);
|
|
case "what";
|
|
assert(it.offset_in_bytes == 24, "Debug.what has unexpected offset % instead of 24", it.offset_in_bytes);
|
|
assert(it.type.runtime_size == 8, "Debug.what has unexpected size % instead of 8", it.type.runtime_size);
|
|
case "source";
|
|
assert(it.offset_in_bytes == 32, "Debug.source has unexpected offset % instead of 32", it.offset_in_bytes);
|
|
assert(it.type.runtime_size == 8, "Debug.source has unexpected size % instead of 8", it.type.runtime_size);
|
|
case "currentline";
|
|
assert(it.offset_in_bytes == 40, "Debug.currentline has unexpected offset % instead of 40", it.offset_in_bytes);
|
|
assert(it.type.runtime_size == 4, "Debug.currentline has unexpected size % instead of 4", it.type.runtime_size);
|
|
case "nups";
|
|
assert(it.offset_in_bytes == 44, "Debug.nups has unexpected offset % instead of 44", it.offset_in_bytes);
|
|
assert(it.type.runtime_size == 4, "Debug.nups has unexpected size % instead of 4", it.type.runtime_size);
|
|
case "linedefined";
|
|
assert(it.offset_in_bytes == 48, "Debug.linedefined has unexpected offset % instead of 48", it.offset_in_bytes);
|
|
assert(it.type.runtime_size == 4, "Debug.linedefined has unexpected size % instead of 4", it.type.runtime_size);
|
|
case "lastlinedefined";
|
|
assert(it.offset_in_bytes == 52, "Debug.lastlinedefined has unexpected offset % instead of 52", it.offset_in_bytes);
|
|
assert(it.type.runtime_size == 4, "Debug.lastlinedefined has unexpected size % instead of 4", it.type.runtime_size);
|
|
case "short_src";
|
|
assert(it.offset_in_bytes == 56, "Debug.short_src has unexpected offset % instead of 56", it.offset_in_bytes);
|
|
assert(it.type.runtime_size == 60, "Debug.short_src has unexpected size % instead of 60", it.type.runtime_size);
|
|
case "i_ci";
|
|
assert(it.offset_in_bytes == 116, "Debug.i_ci has unexpected offset % instead of 116", it.offset_in_bytes);
|
|
assert(it.type.runtime_size == 4, "Debug.i_ci has unexpected size % instead of 4", it.type.runtime_size);
|
|
}
|
|
}
|
|
assert(size_of(Debug) == 120, "Debug has size % instead of 120", size_of(Debug));
|
|
}
|
|
|
|
{
|
|
info := type_info(L_Reg);
|
|
for info.members {
|
|
if it.name == {
|
|
case "name";
|
|
assert(it.offset_in_bytes == 0, "L_Reg.name has unexpected offset % instead of 0", it.offset_in_bytes);
|
|
assert(it.type.runtime_size == 8, "L_Reg.name has unexpected size % instead of 8", it.type.runtime_size);
|
|
case "func";
|
|
assert(it.offset_in_bytes == 8, "L_Reg.func has unexpected offset % instead of 8", it.offset_in_bytes);
|
|
assert(it.type.runtime_size == 8, "L_Reg.func has unexpected size % instead of 8", it.type.runtime_size);
|
|
}
|
|
}
|
|
assert(size_of(L_Reg) == 16, "L_Reg has size % instead of 16", size_of(L_Reg));
|
|
}
|
|
|
|
{
|
|
info := type_info(L_Buffer);
|
|
for info.members {
|
|
if it.name == {
|
|
case "p";
|
|
assert(it.offset_in_bytes == 0, "L_Buffer.p has unexpected offset % instead of 0", it.offset_in_bytes);
|
|
assert(it.type.runtime_size == 8, "L_Buffer.p has unexpected size % instead of 8", it.type.runtime_size);
|
|
case "lvl";
|
|
assert(it.offset_in_bytes == 8, "L_Buffer.lvl has unexpected offset % instead of 8", it.offset_in_bytes);
|
|
assert(it.type.runtime_size == 4, "L_Buffer.lvl has unexpected size % instead of 4", it.type.runtime_size);
|
|
case "L";
|
|
assert(it.offset_in_bytes == 16, "L_Buffer.L has unexpected offset % instead of 16", it.offset_in_bytes);
|
|
assert(it.type.runtime_size == 8, "L_Buffer.L has unexpected size % instead of 8", it.type.runtime_size);
|
|
case "buffer";
|
|
assert(it.offset_in_bytes == 24, "L_Buffer.buffer has unexpected offset % instead of 24", it.offset_in_bytes);
|
|
assert(it.type.runtime_size == 1024, "L_Buffer.buffer has unexpected size % instead of 1024", it.type.runtime_size);
|
|
}
|
|
}
|
|
assert(size_of(L_Buffer) == 1048, "L_Buffer has size % instead of 1048", size_of(L_Buffer));
|
|
}
|
|
}
|
|
|