summaryrefslogtreecommitdiff
path: root/include/lua.h
diff options
context:
space:
mode:
authorLua Team <team@lua.org>1995-02-07 12:00:00 +0000
committerrepogen <>1995-02-07 12:00:00 +0000
commita8b6ba0954edb9e0e669e1f451b9a8f145ce5166 (patch)
tree35e9e9999968c4f13a25a5f647203456f044274a /include/lua.h
parent944fc7d7d95575f2b8023c1f3d4ac19e1369fc76 (diff)
downloadlua-github-2.1.tar.gz
Lua 2.12.1
Diffstat (limited to 'include/lua.h')
-rw-r--r--include/lua.h102
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