Nut/OS  4.10.3
API Reference
ltm.h
Go to the documentation of this file.
00001 /*
00002 ** $Id: ltm.h 2345 2008-10-10 11:52:25Z haraldkipp $
00003 ** Tag methods
00004 ** See Copyright Notice in lua.h
00005 */
00006 
00007 #ifndef ltm_h
00008 #define ltm_h
00009 
00010 
00011 #include <lua/lobject.h>
00012 
00013 
00014 /*
00015 * WARNING: if you change the order of this enumeration,
00016 * grep "ORDER TM"
00017 */
00018 typedef enum {
00019   TM_INDEX,
00020   TM_NEWINDEX,
00021   TM_GC,
00022   TM_MODE,
00023   TM_EQ,  /* last tag method with `fast' access */
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          /* number of elements in the enum */
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