Mercurial > vba-clojure
diff src/lua/lauxlib.h @ 11:27763b933818
raise lua sources up one level
author | Robert McIntyre <rlm@mit.edu> |
---|---|
date | Sat, 03 Mar 2012 11:07:39 -0600 |
parents | src/lua/src/lauxlib.h@f9f4f1b99eed |
children |
line wrap: on
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/src/lua/lauxlib.h Sat Mar 03 11:07:39 2012 -0600 1.3 @@ -0,0 +1,174 @@ 1.4 +/* 1.5 +** $Id: lauxlib.h,v 1.88.1.1 2007/12/27 13:02:25 roberto Exp $ 1.6 +** Auxiliary functions for building Lua libraries 1.7 +** See Copyright Notice in lua.h 1.8 +*/ 1.9 + 1.10 + 1.11 +#ifndef lauxlib_h 1.12 +#define lauxlib_h 1.13 + 1.14 + 1.15 +#include <stddef.h> 1.16 +#include <stdio.h> 1.17 + 1.18 +#include "lua.h" 1.19 + 1.20 + 1.21 +#if defined(LUA_COMPAT_GETN) 1.22 +LUALIB_API int (luaL_getn) (lua_State *L, int t); 1.23 +LUALIB_API void (luaL_setn) (lua_State *L, int t, int n); 1.24 +#else 1.25 +#define luaL_getn(L,i) ((int)lua_objlen(L, i)) 1.26 +#define luaL_setn(L,i,j) ((void)0) /* no op! */ 1.27 +#endif 1.28 + 1.29 +#if defined(LUA_COMPAT_OPENLIB) 1.30 +#define luaI_openlib luaL_openlib 1.31 +#endif 1.32 + 1.33 + 1.34 +/* extra error code for `luaL_load' */ 1.35 +#define LUA_ERRFILE (LUA_ERRERR+1) 1.36 + 1.37 + 1.38 +typedef struct luaL_Reg { 1.39 + const char *name; 1.40 + lua_CFunction func; 1.41 +} luaL_Reg; 1.42 + 1.43 + 1.44 + 1.45 +LUALIB_API void (luaI_openlib) (lua_State *L, const char *libname, 1.46 + const luaL_Reg *l, int nup); 1.47 +LUALIB_API void (luaL_register) (lua_State *L, const char *libname, 1.48 + const luaL_Reg *l); 1.49 +LUALIB_API int (luaL_getmetafield) (lua_State *L, int obj, const char *e); 1.50 +LUALIB_API int (luaL_callmeta) (lua_State *L, int obj, const char *e); 1.51 +LUALIB_API int (luaL_typerror) (lua_State *L, int narg, const char *tname); 1.52 +LUALIB_API int (luaL_argerror) (lua_State *L, int numarg, const char *extramsg); 1.53 +LUALIB_API const char *(luaL_checklstring) (lua_State *L, int numArg, 1.54 + size_t *l); 1.55 +LUALIB_API const char *(luaL_optlstring) (lua_State *L, int numArg, 1.56 + const char *def, size_t *l); 1.57 +LUALIB_API lua_Number (luaL_checknumber) (lua_State *L, int numArg); 1.58 +LUALIB_API lua_Number (luaL_optnumber) (lua_State *L, int nArg, lua_Number def); 1.59 + 1.60 +LUALIB_API lua_Integer (luaL_checkinteger) (lua_State *L, int numArg); 1.61 +LUALIB_API lua_Integer (luaL_optinteger) (lua_State *L, int nArg, 1.62 + lua_Integer def); 1.63 + 1.64 +LUALIB_API void (luaL_checkstack) (lua_State *L, int sz, const char *msg); 1.65 +LUALIB_API void (luaL_checktype) (lua_State *L, int narg, int t); 1.66 +LUALIB_API void (luaL_checkany) (lua_State *L, int narg); 1.67 + 1.68 +LUALIB_API int (luaL_newmetatable) (lua_State *L, const char *tname); 1.69 +LUALIB_API void *(luaL_checkudata) (lua_State *L, int ud, const char *tname); 1.70 + 1.71 +LUALIB_API void (luaL_where) (lua_State *L, int lvl); 1.72 +LUALIB_API int (luaL_error) (lua_State *L, const char *fmt, ...); 1.73 + 1.74 +LUALIB_API int (luaL_checkoption) (lua_State *L, int narg, const char *def, 1.75 + const char *const lst[]); 1.76 + 1.77 +LUALIB_API int (luaL_ref) (lua_State *L, int t); 1.78 +LUALIB_API void (luaL_unref) (lua_State *L, int t, int ref); 1.79 + 1.80 +LUALIB_API int (luaL_loadfile) (lua_State *L, const char *filename); 1.81 +LUALIB_API int (luaL_loadbuffer) (lua_State *L, const char *buff, size_t sz, 1.82 + const char *name); 1.83 +LUALIB_API int (luaL_loadstring) (lua_State *L, const char *s); 1.84 + 1.85 +LUALIB_API lua_State *(luaL_newstate) (void); 1.86 + 1.87 + 1.88 +LUALIB_API const char *(luaL_gsub) (lua_State *L, const char *s, const char *p, 1.89 + const char *r); 1.90 + 1.91 +LUALIB_API const char *(luaL_findtable) (lua_State *L, int idx, 1.92 + const char *fname, int szhint); 1.93 + 1.94 + 1.95 + 1.96 + 1.97 +/* 1.98 +** =============================================================== 1.99 +** some useful macros 1.100 +** =============================================================== 1.101 +*/ 1.102 + 1.103 +#define luaL_argcheck(L, cond,numarg,extramsg) \ 1.104 + ((void)((cond) || luaL_argerror(L, (numarg), (extramsg)))) 1.105 +#define luaL_checkstring(L,n) (luaL_checklstring(L, (n), NULL)) 1.106 +#define luaL_optstring(L,n,d) (luaL_optlstring(L, (n), (d), NULL)) 1.107 +#define luaL_checkint(L,n) ((int)luaL_checkinteger(L, (n))) 1.108 +#define luaL_optint(L,n,d) ((int)luaL_optinteger(L, (n), (d))) 1.109 +#define luaL_checklong(L,n) ((long)luaL_checkinteger(L, (n))) 1.110 +#define luaL_optlong(L,n,d) ((long)luaL_optinteger(L, (n), (d))) 1.111 + 1.112 +#define luaL_typename(L,i) lua_typename(L, lua_type(L,(i))) 1.113 + 1.114 +#define luaL_dofile(L, fn) \ 1.115 + (luaL_loadfile(L, fn) || lua_pcall(L, 0, LUA_MULTRET, 0)) 1.116 + 1.117 +#define luaL_dostring(L, s) \ 1.118 + (luaL_loadstring(L, s) || lua_pcall(L, 0, LUA_MULTRET, 0)) 1.119 + 1.120 +#define luaL_getmetatable(L,n) (lua_getfield(L, LUA_REGISTRYINDEX, (n))) 1.121 + 1.122 +#define luaL_opt(L,f,n,d) (lua_isnoneornil(L,(n)) ? (d) : f(L,(n))) 1.123 + 1.124 +/* 1.125 +** {====================================================== 1.126 +** Generic Buffer manipulation 1.127 +** ======================================================= 1.128 +*/ 1.129 + 1.130 + 1.131 + 1.132 +typedef struct luaL_Buffer { 1.133 + char *p; /* current position in buffer */ 1.134 + int lvl; /* number of strings in the stack (level) */ 1.135 + lua_State *L; 1.136 + char buffer[LUAL_BUFFERSIZE]; 1.137 +} luaL_Buffer; 1.138 + 1.139 +#define luaL_addchar(B,c) \ 1.140 + ((void)((B)->p < ((B)->buffer+LUAL_BUFFERSIZE) || luaL_prepbuffer(B)), \ 1.141 + (*(B)->p++ = (char)(c))) 1.142 + 1.143 +/* compatibility only */ 1.144 +#define luaL_putchar(B,c) luaL_addchar(B,c) 1.145 + 1.146 +#define luaL_addsize(B,n) ((B)->p += (n)) 1.147 + 1.148 +LUALIB_API void (luaL_buffinit) (lua_State *L, luaL_Buffer *B); 1.149 +LUALIB_API char *(luaL_prepbuffer) (luaL_Buffer *B); 1.150 +LUALIB_API void (luaL_addlstring) (luaL_Buffer *B, const char *s, size_t l); 1.151 +LUALIB_API void (luaL_addstring) (luaL_Buffer *B, const char *s); 1.152 +LUALIB_API void (luaL_addvalue) (luaL_Buffer *B); 1.153 +LUALIB_API void (luaL_pushresult) (luaL_Buffer *B); 1.154 + 1.155 + 1.156 +/* }====================================================== */ 1.157 + 1.158 + 1.159 +/* compatibility with ref system */ 1.160 + 1.161 +/* pre-defined references */ 1.162 +#define LUA_NOREF (-2) 1.163 +#define LUA_REFNIL (-1) 1.164 + 1.165 +#define lua_ref(L,lock) ((lock) ? luaL_ref(L, LUA_REGISTRYINDEX) : \ 1.166 + (lua_pushstring(L, "unlocked references are obsolete"), lua_error(L), 0)) 1.167 + 1.168 +#define lua_unref(L,ref) luaL_unref(L, LUA_REGISTRYINDEX, (ref)) 1.169 + 1.170 +#define lua_getref(L,ref) lua_rawgeti(L, LUA_REGISTRYINDEX, (ref)) 1.171 + 1.172 + 1.173 +#define luaL_reg luaL_Reg 1.174 + 1.175 +#endif 1.176 + 1.177 +