annotate seqlualib.h @ 53:664736a8fcbf
Included mode argument for seqlua_iterloop in README
author |
jbe |
date |
Tue Aug 26 23:53:29 2014 +0200 (2014-08-26) |
parents |
3362ec36cb09 |
children |
92ce3958aca7 |
rev |
line source |
jbe@0
|
1 #include <lua.h>
|
jbe@0
|
2 #include <lauxlib.h>
|
jbe@0
|
3
|
jbe@0
|
4 typedef struct {
|
jbe@0
|
5 lua_State *L;
|
jbe@8
|
6 int idx;
|
jbe@0
|
7 int itertype;
|
jbe@0
|
8 lua_Integer i;
|
jbe@0
|
9 } seqlua_Iterator;
|
jbe@0
|
10
|
jbe@52
|
11 #define SEQLUA_MODE_NONE 0
|
jbe@52
|
12 #define SEQLUA_MODE_CALL 1
|
jbe@52
|
13 #define SEQLUA_MODE_GENERATOR 2
|
jbe@52
|
14
|
jbe@52
|
15 extern void seqlua_iterinit(lua_State *L, seqlua_Iterator *iter, int mode, int idx);
|
jbe@0
|
16
|
jbe@0
|
17 extern int seqlua_iternext(seqlua_Iterator *iter);
|
jbe@0
|
18
|
jbe@52
|
19 #define seqlua_iterloop(L, iter, mode, idx) \
|
jbe@0
|
20 for ( \
|
jbe@52
|
21 seqlua_iterinit((L), (iter), (mode), (idx)); \
|
jbe@0
|
22 seqlua_iternext(iter); \
|
jbe@25
|
23 )
|
jbe@25
|
24
|
jbe@52
|
25 #define seqlua_iterloopauto(L, iter, mode, idx) \
|
jbe@25
|
26 for ( \
|
jbe@52
|
27 seqlua_iterinit((L), (iter), (mode), (idx)); \
|
jbe@25
|
28 seqlua_iternext(iter); \
|
jbe@0
|
29 lua_pop((L), 1) \
|
jbe@0
|
30 )
|
jbe@0
|
31
|
jbe@0
|
32 #define seqlua_itercount(iter) ((iter)->i)
|
jbe@0
|
33
|