int ctokens_callback(const TokenInfo*info) { cbdata*c=info->user_data; lua_State*L=c->L; lua_rawgeti(L, LUA_REGISTRYINDEX, c->func_idx); lua_newtable(L); lua_pushstring(L, "token"); lua_pushlstring(L,info->token,info->len); lua_rawset(L,-3); SetTableStr("kind",kinds[info->type]); SetTableInt("line", info->line); SetTableInt("column", info->col); if (c->data_idx!=LUA_REFNIL) { lua_pushstring(L, "data"); lua_rawgeti(L, LUA_REGISTRYINDEX, c->data_idx); lua_rawset(L,-3); } lua_call(c->L, 1, 1); return lua_toboolean(c->L,-1); }
static void gsdl_hash_cb(gpointer key, gpointer value, gpointer L) { SetTableStr((gchar*)key, (gchar*)value); }