jc/thirdparty/luajit/luajit.jai
2025-05-21 22:41:15 -06:00

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));
}
}