seqlua
annotate seqlualib.h @ 12:91b0d0d4c4dd
Added coroutine example to README
| author | jbe |
|---|---|
| date | Wed Aug 20 05:18:16 2014 +0200 (2014-08-20) |
| parents | 144f0bddee2b |
| children | a95fbd16473f |
| 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@8 | 7 int callargidx; |
| jbe@0 | 8 int itertype; |
| jbe@0 | 9 lua_Integer i; |
| 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@0 | 20 lua_pop((L), 1) \ |
| jbe@0 | 21 ) |
| jbe@0 | 22 |
| jbe@0 | 23 #define seqlua_itercount(iter) ((iter)->i) |
| jbe@0 | 24 |
| jbe@0 | 25 extern void seqlua_iterclosure(lua_State *L, int idx); |
| jbe@0 | 26 |