2812
+ − 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