annotate seqlualib.h @ 31:4fc9090ada1d
Mention 3 extra elements on stack in README; Changed order of two instructions in seqlualib.c
author |
jbe |
date |
Sat Aug 23 23:35:10 2014 +0200 (2014-08-23) |
parents |
367fc70acc15 |
children |
3ff7cec8d3ce |
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@30
|
9 lua_Integer len;
|
jbe@0
|
10 } seqlua_Iterator;
|
jbe@0
|
11
|
jbe@0
|
12 extern void seqlua_iterinit(lua_State *L, seqlua_Iterator *iter, int idx);
|
jbe@0
|
13
|
jbe@0
|
14 extern int seqlua_iternext(seqlua_Iterator *iter);
|
jbe@0
|
15
|
jbe@0
|
16 #define seqlua_iterloop(L, iter, idx) \
|
jbe@0
|
17 for ( \
|
jbe@0
|
18 seqlua_iterinit((L), (iter), (idx)); \
|
jbe@0
|
19 seqlua_iternext(iter); \
|
jbe@25
|
20 )
|
jbe@25
|
21
|
jbe@25
|
22 #define seqlua_iterloopauto(L, iter, idx) \
|
jbe@25
|
23 for ( \
|
jbe@25
|
24 seqlua_iterinit((L), (iter), (idx)); \
|
jbe@25
|
25 seqlua_iternext(iter); \
|
jbe@0
|
26 lua_pop((L), 1) \
|
jbe@0
|
27 )
|
jbe@0
|
28
|
jbe@0
|
29 #define seqlua_itercount(iter) ((iter)->i)
|
jbe@0
|
30
|