|
{ ** $Id: lua.h,v 1.175b 2003/03/18 12:31:39 roberto Exp $ ** Lua - An Extensible Extension Language ** Tecgraf: Computer Graphics Technology Group, PUC-Rio, Brazil ** http://www.lua.org mailto:info@lua.org ** See Copyright Notice at the end of this file } { this .h header file is translated by melice }
unit Lua; interface
const LuaDLL = ''''LuaLibDll.dll'''';
type lua_state = pointer; int = integer; size_t = int;
va_list = int;
const
sLUA_VERSION = ''''Lua 5.0.2''''; sLUA_COPYRIGHT = ''''Copyright (C) 1994-2004 Tecgraf, PUC-Rio''''; sLUA_AUTHORS = ''''R. Ierusalimschy, L. H. de Figueiredo & W. Celes'''';
{ option for multiple returns in `lua_pcall'''' and `lua_call'''' } LUA_MULTRET = -1;
{ ** pseudo-indices } LUA_REGISTRYINDEX = -10000; LUA_GLOBALSINDEX = -10001;
// #define lua_upvalueindex(i) (LUA_GLOBALSINDEX-(i))
{ error codes for `lua_load'''' and `lua_pcall'''' } LUA_ERRRUN = 1; LUA_ERRFILE = 2; LUA_ERRSYNTAX = 3; LUA_ERRMEM = 4; LUA_ERRERR = 5;
// typedef struct lua_State lua_State;
type lua_CFunction = function(L: lua_state): int;
{ ** functions that read/write blocks when loading/dumping Lua chunks } lua_Chunkreader = function(L: lua_State; ud: pointer; sz: size_t): pchar;
lua_Chunkwriter = function(L: lua_State; p: pointer; sz: size_t; ud: pointer): int;
{ ** basic types } const
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;
{ minimum Lua stack available to a C function } LUA_MINSTACK = 20;
{ ** generic extra include file }
{ type of numbers in Lua } type lua_Number = double;
{ ** state manipulation } function lua_open: lua_State; stdcall; external Luadll; procedure lua_close(L: lua_State); stdcall; external Luadll; function lua_newthread(L: lua_State): lua_State; stdcall; external Luadll;
function lua_atpanic(L: lua_State; panicf: lua_CFunction): lua_CFunction; stdcall; external Luadll;
{ ** basic stack manipulation } function lua_gettop(L: lua_State): int; stdcall; external Luadll; procedure lua_settop(L: lua_State; idx: int); stdcall; external Luadll; procedure lua_pushvalue(L: lua_State; idx: int); stdcall; external Luadll; procedure lua_remove(L: lua_State; idx: int); stdcall; external Luadll; procedure lua_insert(L: lua_State; idx: int); stdcall; external Luadll; procedure lua_replace(L: lua_State; idx: int); stdcall; external Luadll; function lua_checkstack(L: lua_State; sz: int): int; stdcall; external Luadll;
procedure lua_xmove(fromls: lua_State; tols: lua_State; n: int); stdcall; external Luadll;
{ ** access functions (stack -> C) }
function lua_isnumber(L: lua_State; idx: int): int; stdcall; external Luadll; function lua_isstring(L: lua_State; idx: int): int; stdcall; external Luadll; function lua_iscfunction(L: lua_State; idx: int): int; stdcall; external Luadll; function lua_isuserdata(L: lua_State; idx: int): int; stdcall; external Luadll; function lua_type(L: lua_State; idx: int): int; stdcall; external Luadll; function lua_typename(L: lua_State; tp: int): pchar; stdcall; external Luadll;
function lua_equal(L: lua_State; idx1: int; idx2: int): int; stdcall; external Luadll; function lua_rawequal(L: lua_State; idx1: int; idx2: int): int; stdcall; external Luadll; function lua_lessthan(L: lua_State; idx1: int; idx2: int): int; stdcall; external Luadll;
function lua_tonumber(L: lua_State; idx: int): lua_Number; stdcall; external Luadll; function lua_toboolean(L: lua_State; idx: int): int; stdcall; external Luadll; function lua_tostring(L: lua_State; idx: int): pchar; stdcall; external Luadll; function lua_strlen(L: lua_State; idx: int): size_t; stdcall; external Luadll; function lua_tocfunction(L: lua_State; idx: int): lua_CFunction; stdcall; external Luadll; procedure lua_touserdata(L: lua_State; idx: int); stdcall; external Luadll; function lua_tothread(L: lua_State; idx: int): lua_State; stdcall; external Luadll; procedure lua_topointer(L: lua_State; idx: int); stdcall; external Luadll;
{ ** push functions (C -> stack) } procedure lua_pushnil(L: lua_State); stdcall; external Luadll; procedure lua_pushnumber(L: lua_State; n: lua_Number); stdcall; external Luadll; procedure lua_pushlstring(L: lua_State; s: pchar; st: size_t); stdcall; external Luadll; procedure lua_pushstring(L: lua_State; s: pchar); stdcall; external Luadll; function lua_pushvfstring(L: lua_State; fmt: pchar; argp: va_list): pchar; stdcall; external Luadll; function lua_pushfstring(L: lua_State; fmt: pchar): pchar; stdcall; external Luadll; procedure lua_pushcclosure(L: lua_State; fn: lua_CFunction; n: int); stdcall; external Luadll; procedure lua_pushboolean(L: lua_State; b: int); stdcall; external Luadll; procedure lua_pushlightuserdata(L: lua_State; p: pointer); stdcall; external Luadll;
{ ** get functions (Lua -> stack) } procedure lua_gettable(L: lua_State; idx: int); stdcall; external Luadll; procedure lua_rawget(L: lua_State; idx: int); stdcall; external Luadll; procedure lua_rawgeti(L: lua_State; idx: int; n: int); stdcall; external Luadll; procedure lua_newtable(L: lua_State); stdcall; external Luadll; procedure lua_newuserdata(L: lua_State; sz: size_t); stdcall; external Luadll; function lua_getmetatable(L: lua_State; objindex: int): int; stdcall; external Luadll; procedure lua_getfenv(L: lua_State; idx: int); stdcall; external Luadll;
{ ** set functions (stack -> Lua) } procedure lua_settable(L: lua_State; idx: int); stdcall; external Luadll; procedure lua_rawset(L: lua_State; idx: int); stdcall; external Luadll; procedure lua_rawseti(L: lua_State; idx: int; n: int); stdcall; external Luadll; function lua_setmetatable(L: lua_State; objindex: int): int; stdcall; external Luadll; function lua_setfenv(L: lua_State; idx: int): int; stdcall; external Luadll;
{ ** `load'''' and `call'''' functions (load and run Lua code) } procedure lua_call(L: lua_State; nargs: int; nresults: int); stdcall; external Luadll; function lua_pcall(L: lua_State; nargs: int; nresults: int; errfunc: int): int; stdcall; external Luadll; function lua_cpcall(L: lua_State; func: lua_CFunction; ud: pointer): int; stdcall; external Luadll;
function lua_load(L: lua_State; reader: lua_Chunkreader; dt: pointer; chunkname: pchar): int; stdcall; external Luadll;
function lua_dump(L: lua_State; writer: lua_Chunkwriter; data: pointer): int; stdcall; external Luadll;
{ ** coroutine functions } function lua_yield(L: lua_State; nresults: int): int; stdcall; external Luadll; function lua_resume(L: lua_State; narg: int): int; stdcall; external Luadll;
{ ** garbage-collection functions } function lua_getgcthreshold(L: lua_State): int; stdcall; external Luadll; function lua_getgccount(L: lua_State): int; stdcall; external Luadll; procedure lua_setgcthreshold(L: lua_State; newthreshold: int); stdcall; external Luadll;
{ ** miscellaneous functions }
function lua_version: pchar; stdcall; external Luadll;
function lua_error(L: lua_State): int; stdcall; external Luadll;
function lua_next(L: lua_State; idx: int): int; stdcall; external Luadll;
procedure lua_concat(L: lua_State; n: int); stdcall; external Luadll;
{ ** =============================================================== ** some useful macros ** =============================================================== }
{ #DEFfine lua_boxpointer(L, u)\ (*(void **)(lua_newuserdata(L, sizeof(void * ))) = (u))
#DEFfine lua_unboxpointer(L, i) (*(void **)(lua_touserdata(L, i)))
#DEFfine lua_pop(L, n)lua_settop(L, -(n) - 1)
#DEFfine lua_register(L, n, f)\ (lua_pushstring(L, n), \ lua_pushcfunction(L, f), \ lua_settable(L, LUA_GLOBALSINDEX))
#DEFine lua_pushcfunction(L, f)lua_pushcclosure(L, f, 0)
#DEFine lua_isfunction(L, n)(lua_type(L, n) = = LUA_TFUNCTION) #DEFine lua_istable(L, n)(lua_type(L, n) = = LUA_TTABLE) #DEFine lua_islightuserdata(L, n)(lua_type(L, n) = = LUA_TLIGHTUSERDATA) #DEFine lua_isnil(L, n)(lua_type(L, n) = = LUA_TNIL) #DEFine lua_isboolean(L, n)(lua_type(L, n) = = LUA_TBOOLEAN) #DEFine lua_isnone(L, n)(lua_type(L, n) = = LUA_TNONE) #DEFine lua_isnoneornil(L, n)(lua_type(L, n) <= 0)
#DEFine lua_pushliteral(L, s)\ lua_pushlstring(L, "" s, (sizeof(s) / sizeof(char)) - 1) } { ** compatibility macros and functions }
function lua_pushupvalues(L: lua_State): int; stdcall; external Luadll;
{ ** MACRO Functions } procedure lua_getregistry(L: lua_state); procedure lua_setglobal(L: lua_state; s: pchar); procedure lua_getglobal(L: lua_state; s: pchar);
{ compatibility with ref system }
{ pre-defined r [1] [2] 下一页 [Delphi程序]转贴:Conversion to Delphi 6: Missing unit Pro… [Delphi程序]AXScript.pas,从官方站点找到的IActivsScript接口 [Delphi程序]提高FastReplace速度 (fStrRep.pas)
|