- Main Page
- Classes
- Files

# ltm.h

Go to the documentation of this file.

    00001 /*
    00002 ** $Id: ltm.h,v 2.6.1.1 2007/12/27 13:02:25 roberto Exp $
    00003 ** Tag methods
    00004 ** See Copyright Notice in lua.h
    00005 */
    00006
    00007 #ifndef ltm_h
    00008 #define ltm_h
    00009
    00010
    00011 #include "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