misc/liblua/ltm.h
changeset 2812 0a24853de796
child 10017 de822cd3df3a
equal deleted inserted replaced
2811:4cad87e11bf6 2812:0a24853de796
       
     1 /*
       
     2 ** $Id: ltm.h,v 2.6.1.1 2007/12/27 13:02:25 roberto Exp $
       
     3 ** Tag methods
       
     4 ** See Copyright Notice in lua.h
       
     5 */
       
     6 
       
     7 #ifndef ltm_h
       
     8 #define ltm_h
       
     9 
       
    10 
       
    11 #include "lobject.h"
       
    12 
       
    13 
       
    14 /*
       
    15 * WARNING: if you change the order of this enumeration,
       
    16 * grep "ORDER TM"
       
    17 */
       
    18 typedef enum {
       
    19   TM_INDEX,
       
    20   TM_NEWINDEX,
       
    21   TM_GC,
       
    22   TM_MODE,
       
    23   TM_EQ,  /* last tag method with `fast' access */
       
    24   TM_ADD,
       
    25   TM_SUB,
       
    26   TM_MUL,
       
    27   TM_DIV,
       
    28   TM_MOD,
       
    29   TM_POW,
       
    30   TM_UNM,
       
    31   TM_LEN,
       
    32   TM_LT,
       
    33   TM_LE,
       
    34   TM_CONCAT,
       
    35   TM_CALL,
       
    36   TM_N		/* number of elements in the enum */
       
    37 } TMS;
       
    38 
       
    39 
       
    40 
       
    41 #define gfasttm(g,et,e) ((et) == NULL ? NULL : \
       
    42   ((et)->flags & (1u<<(e))) ? NULL : luaT_gettm(et, e, (g)->tmname[e]))
       
    43 
       
    44 #define fasttm(l,et,e)	gfasttm(G(l), et, e)
       
    45 
       
    46 LUAI_DATA const char *const luaT_typenames[];
       
    47 
       
    48 
       
    49 LUAI_FUNC const TValue *luaT_gettm (Table *events, TMS event, TString *ename);
       
    50 LUAI_FUNC const TValue *luaT_gettmbyobj (lua_State *L, const TValue *o,
       
    51                                                        TMS event);
       
    52 LUAI_FUNC void luaT_init (lua_State *L);
       
    53 
       
    54 #endif