summaryrefslogtreecommitdiff
path: root/lua/ltm.h
diff options
context:
space:
mode:
Diffstat (limited to 'lua/ltm.h')
-rw-r--r--lua/ltm.h51
1 files changed, 51 insertions, 0 deletions
diff --git a/lua/ltm.h b/lua/ltm.h
new file mode 100644
index 000000000..b6d8fa1fe
--- /dev/null
+++ b/lua/ltm.h
@@ -0,0 +1,51 @@
+/*
+** $Id: ltm.h,v 1.1 2004/03/16 21:58:30 niemeyer Exp $
+** Tag methods
+** See Copyright Notice in lua.h
+*/
+
+#ifndef ltm_h
+#define ltm_h
+
+
+#include "lobject.h"
+
+
+/*
+* WARNING: if you change the order of this enumeration,
+* grep "ORDER TM"
+*/
+typedef enum {
+ TM_INDEX,
+ TM_NEWINDEX,
+ TM_GC,
+ TM_MODE,
+ TM_EQ, /* last tag method with `fast' access */
+ TM_ADD,
+ TM_SUB,
+ TM_MUL,
+ TM_DIV,
+ TM_POW,
+ TM_UNM,
+ TM_LT,
+ TM_LE,
+ TM_CONCAT,
+ TM_CALL,
+ TM_N /* number of elements in the enum */
+} TMS;
+
+
+
+#define gfasttm(g,et,e) \
+ (((et)->flags & (1u<<(e))) ? NULL : luaT_gettm(et, e, (g)->tmname[e]))
+
+#define fasttm(l,et,e) gfasttm(G(l), et, e)
+
+
+const TObject *luaT_gettm (Table *events, TMS event, TString *ename);
+const TObject *luaT_gettmbyobj (lua_State *L, const TObject *o, TMS event);
+void luaT_init (lua_State *L);
+
+extern const char *const luaT_typenames[];
+
+#endif