jbe@0: #include jbe@0: #include jbe@0: jbe@0: typedef struct { jbe@0: lua_State *L; jbe@8: int idx; jbe@0: int itertype; jbe@0: lua_Integer i; jbe@0: } seqlua_Iterator; jbe@0: jbe@0: extern void seqlua_iterinit(lua_State *L, seqlua_Iterator *iter, int idx); jbe@0: jbe@0: extern int seqlua_iternext(seqlua_Iterator *iter); jbe@0: jbe@0: #define seqlua_iterloop(L, iter, idx) \ jbe@0: for ( \ jbe@0: seqlua_iterinit((L), (iter), (idx)); \ jbe@0: seqlua_iternext(iter); \ jbe@25: ) jbe@25: jbe@25: #define seqlua_iterloopauto(L, iter, idx) \ jbe@25: for ( \ jbe@25: seqlua_iterinit((L), (iter), (idx)); \ jbe@25: seqlua_iternext(iter); \ jbe@0: lua_pop((L), 1) \ jbe@0: ) jbe@0: jbe@0: #define seqlua_itercount(iter) ((iter)->i) jbe@0: