seqlua

view seqlualib.h @ 30:367fc70acc15

Respect the __ipairs and __len metamethods
author jbe
date Sat Aug 23 23:13:17 2014 +0200 (2014-08-23)
parents 44880bcfc323
children 3ff7cec8d3ce
line source
1 #include <lua.h>
2 #include <lauxlib.h>
4 typedef struct {
5 lua_State *L;
6 int idx;
7 int itertype;
8 lua_Integer i;
9 lua_Integer len;
10 } seqlua_Iterator;
12 extern void seqlua_iterinit(lua_State *L, seqlua_Iterator *iter, int idx);
14 extern int seqlua_iternext(seqlua_Iterator *iter);
16 #define seqlua_iterloop(L, iter, idx) \
17 for ( \
18 seqlua_iterinit((L), (iter), (idx)); \
19 seqlua_iternext(iter); \
20 )
22 #define seqlua_iterloopauto(L, iter, idx) \
23 for ( \
24 seqlua_iterinit((L), (iter), (idx)); \
25 seqlua_iternext(iter); \
26 lua_pop((L), 1) \
27 )
29 #define seqlua_itercount(iter) ((iter)->i)

Impressum / About Us