lua头文件翻译之lauxlib[1]

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 melice 的 blog

{
** $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;

本文关键:lua头文件翻译之lauxlib
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top