Go to the documentation of this file.00001 
00002 
00003 
00004 
00005 
00006 
00007 #ifndef ltm_h
00008 #define ltm_h
00009 
00010 
00011 #include <lua/lobject.h>
00012 
00013 
00014 
00015 
00016 
00017 
00018 typedef enum {
00019   TM_INDEX,
00020   TM_NEWINDEX,
00021   TM_GC,
00022   TM_MODE,
00023   TM_EQ,  
00024   TM_ADD,
00025   TM_SUB,
00026   TM_MUL,
00027   TM_DIV,
00028   TM_MOD,
00029   TM_POW,
00030   TM_UNM,
00031   TM_LEN,
00032   TM_LT,
00033   TM_LE,
00034   TM_CONCAT,
00035   TM_CALL,
00036   TM_N          
00037 } TMS;
00038 
00039 
00040 
00041 #define gfasttm(g,et,e) ((et) == NULL ? NULL : \
00042   ((et)->flags & (1u<<(e))) ? NULL : luaT_gettm(et, e, (g)->tmname[e]))
00043 
00044 #define fasttm(l,et,e)  gfasttm(G(l), et, e)
00045 
00046 LUAI_DATA const char *const luaT_typenames[];
00047 
00048 
00049 LUAI_FUNC const TValue *luaT_gettm (Table *events, TMS event, TString *ename);
00050 LUAI_FUNC const TValue *luaT_gettmbyobj (lua_State *L, const TValue *o,
00051                                                        TMS event);
00052 LUAI_FUNC void luaT_init (lua_State *L);
00053 
00054 #endif