diff options
author | Lua Team <team@lua.org> | 1995-02-07 12:00:00 +0000 |
---|---|---|
committer | repogen <> | 1995-02-07 12:00:00 +0000 |
commit | a8b6ba0954edb9e0e669e1f451b9a8f145ce5166 (patch) | |
tree | 35e9e9999968c4f13a25a5f647203456f044274a /include/lua.h | |
parent | 944fc7d7d95575f2b8023c1f3d4ac19e1369fc76 (diff) | |
download | lua-github-2.1.tar.gz |
Lua 2.12.1
Diffstat (limited to 'include/lua.h')
-rw-r--r-- | include/lua.h | 102 |
1 files changed, 74 insertions, 28 deletions
diff --git a/include/lua.h b/include/lua.h index 2bafd209..09a0909e 100644 --- a/include/lua.h +++ b/include/lua.h @@ -2,53 +2,99 @@ ** LUA - Linguagem para Usuarios de Aplicacao ** Grupo de Tecnologia em Computacao Grafica ** TeCGraf - PUC-Rio -** $Id: lua.h,v 1.1 1993/12/17 18:41:19 celes Exp $ +** $Id: lua.h,v 3.16 1995/01/27 17:19:06 celes Exp $ */ #ifndef lua_h #define lua_h -typedef void (*lua_CFunction) (void); -typedef struct Object *lua_Object; +/* Private Part */ + +typedef enum +{ + LUA_T_NIL = -1, + LUA_T_NUMBER = -2, + LUA_T_STRING = -3, + LUA_T_ARRAY = -4, + LUA_T_FUNCTION = -5, + LUA_T_CFUNCTION= -6, + LUA_T_USERDATA = 0 +} lua_Type; + -#define lua_register(n,f) (lua_pushcfunction(f), lua_storeglobal(n)) +/* Public Part */ + +#define LUA_NOOBJECT 0 +typedef void (*lua_CFunction) (void); +typedef unsigned int lua_Object; + +lua_Object lua_setfallback (char *name, lua_CFunction fallback); -void lua_errorfunction (void (*fn) (char *s)); void lua_error (char *s); int lua_dofile (char *filename); int lua_dostring (char *string); -int lua_call (char *functionname, int nparam); +int lua_callfunction (lua_Object function); +int lua_call (char *funcname); + +void lua_beginblock (void); +void lua_endblock (void); lua_Object lua_getparam (int number); +#define lua_getresult(_) lua_getparam(_) + float lua_getnumber (lua_Object object); char *lua_getstring (lua_Object object); -char *lua_copystring (lua_Object object); lua_CFunction lua_getcfunction (lua_Object object); void *lua_getuserdata (lua_Object object); -lua_Object lua_getfield (lua_Object object, char *field); -lua_Object lua_getindexed (lua_Object object, float index); + +void lua_pushnil (void); +void lua_pushnumber (float n); +void lua_pushstring (char *s); +void lua_pushliteral (char *s); +void lua_pushcfunction (lua_CFunction fn); +void lua_pushusertag (void *u, int tag); +void lua_pushobject (lua_Object object); + lua_Object lua_getglobal (char *name); +void lua_storeglobal (char *name); + +void lua_storesubscript (void); +lua_Object lua_getsubscript (void); + +int lua_type (lua_Object object); + +int lua_lock (void); +lua_Object lua_getlocked (int ref); +void lua_pushlocked (int ref); +void lua_unlock (int ref); + +lua_Object lua_createtable (void); + + +/* some useful macros */ + +#define lua_lockobject(o) (lua_pushobject(o), lua_lock()) + +#define lua_register(n,f) (lua_pushcfunction(f), lua_storeglobal(n)) + +#define lua_pushuserdata(u) lua_pushusertag(u, LUA_T_USERDATA) + +#define lua_isnil(_) (lua_type(_)==LUA_T_NIL) +#define lua_isnumber(_) (lua_type(_)==LUA_T_NUMBER) +#define lua_isstring(_) (lua_type(_)==LUA_T_STRING) +#define lua_istable(_) (lua_type(_)==LUA_T_ARRAY) +#define lua_isfunction(_) (lua_type(_)==LUA_T_FUNCTION) +#define lua_iscfunction(_) (lua_type(_)==LUA_T_CFUNCTION) +#define lua_isuserdata(_) (lua_type(_)>=LUA_T_USERDATA) + + +/* for lua 1.1 compatibility. Avoid using these macros */ + +#define lua_getindexed(o,n) (lua_pushobject(o), lua_pushnumber(n), lua_getsubscript()) +#define lua_getfield(o,f) (lua_pushobject(o), lua_pushliteral(f), lua_getsubscript()) -lua_Object lua_pop (void); - -int lua_pushnil (void); -int lua_pushnumber (float n); -int lua_pushstring (char *s); -int lua_pushcfunction (lua_CFunction fn); -int lua_pushuserdata (void *u); -int lua_pushobject (lua_Object object); - -int lua_storeglobal (char *name); -int lua_storefield (lua_Object object, char *field); -int lua_storeindexed (lua_Object object, float index); - -int lua_isnil (lua_Object object); -int lua_isnumber (lua_Object object); -int lua_isstring (lua_Object object); -int lua_istable (lua_Object object); -int lua_iscfunction (lua_Object object); -int lua_isuserdata (lua_Object object); +#define lua_copystring(o) (strdup(lua_getstring(o))) #endif |