equal
deleted
inserted
replaced
|
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 |