{
** $id: lauxlib.h,v 1.60 2003/04/03 13:35:34 roberto exp $
** auxiliary functions for building lua libraries
** see copyright notice in lua.h
}
{
this .h header file is translated by melice
}
unit lauxlib;
interface
uses lua;
type
lual_reg = record
name: pchar;
func: lua_cfunction;
end;
procedure lual_openlib(l: lua_state; libname: pchar; lr: lual_reg;
nup: int); stdcall; external luadll;
function lual_getmetafield(l: lua_state; obj: int;
e: pchar): int; stdcall; external luadll;
function lual_callmeta(l: lua_state; obj: int;
e: pchar): int; stdcall; external luadll;
function lual_typerror(l: lua_state; narg: int;
tname: pchar): int; stdcall; external luadll;
function lual_argerror(l: lua_state; numarg: int;
extramsg: pchar): int; stdcall; external luadll;
function lual_checklstring(l: lua_state; numarg: int;
st: size_t): pchar; stdcall; external luadll;
function lual_optlstring(l: lua_state; numarg: int; def: pchar;
sz: size_t): pchar; stdcall; external luadll;
function lual_checknumber(l: lua_state;
numarg: int): lua_number; stdcall; external luadll;
function lual_optnumber(l: lua_state; narg: int;
def: lua_number): lua_number; stdcall; external luadll;
procedure lual_checkstack(l: lua_state; sz: int;
msg: pchar); stdcall; external luadll;
procedure lual_checktype(l: lua_state; narg: int;
t: int); stdcall; external luadll;
procedure lual_checkany(l: lua_state; narg: int); stdcall; external luadll;
function lual_newmetatable(l: lua_state;
tname: pchar): int; stdcall; external luadll;
procedure lual_getmetatable(l: lua_state;
tname: pchar); stdcall; external luadll;
procedure lual_checkudata(l: lua_state; ud: int;
tname: pchar); stdcall; external luadll;
procedure lual_where(l: lua_state; lvl: int); stdcall; external luadll;
function lual_error(l: lua_state; fmt: pchar): int; stdcall; external luadll;
function lual_findstring(st: pchar; lst: pchar): int; stdcall; external luadll;
function lual_ref(l: lua_state; t: int): int; stdcall; external luadll;
procedure lual_unref(l: lua_state; t: int; ref: int); stdcall; external luadll;
function lual_getn(l: lua_state; t: int): int; stdcall; external luadll;
procedure lual_setn(l: lua_state; t: int; n: int); stdcall; external luadll;
function lual_loadfile(l: lua_state;
filename: pchar): int; stdcall; external luadll;
function lual_loadbuffer(l: lua_state; buff: pchar; sz: size_t;
name: pchar): int; stdcall; external luadll;
{
** ===============================================================
** some useful macros
** ===============================================================
}
{
#define lual_argcheck(l, cond,numarg,extramsg) if (!(cond)) \
lual_argerror(l, numarg,extramsg)
#define lual_checkstring(l,n) (lual_checklstring(l, (n), null))
#define lual_optstring(l,n,d) (lual_optlstring(l, (n), (d), null))
#define lual_checkint(l,n) ((int)lual_checknumber(l, n))
#define lual_checklong(l,n) ((long)lual_checknumber(l, n))
#define lual_optint(l,n,d) ((int)lual_optnumber(l, n,(lua_number)(d)))
#define lual_optlong(l,n,d) ((long)lual_optnumber(l, n,(lua_number)(d)))
}
{
** {======================================================
** generic buffer manipulation
** =======================================================
}
const
bufsiz = 60;
lual_buffersize = bufsiz;
type
lual_buffer = record
p: pchar; { current position in buffer }
lvl: int; { number of strings in the stack (level) }
l: lua_state;
buffer: array[0..lual_buffersize] of pchar;
end;
var
lualbuffer: lual_buffer;
{
#define lual_putchar(b,c) \
((void)((b)->p < ((b)->buffer+lual_buffersize) || lual_prepbuffer(b)), \
(*(b)->p++ = (pchar)(c)))
#define lual_addsize(b,n) ((b)->p += (n))
}
procedure lual_buffinit(l: lua_state; b: lual_buffer); stdcall; external luadll;
function lual_prepbuffer(b: lual_buffer): pchar; stdcall; external luadll;
procedure lual_addlstring(b: lual_buffer; s: pchar;