C API、lua_insert()
/* * $ gcc -Wall -W -o 2008100400 -llua50 2008100400.c */ #include <stdio.h> #include <lua50/lua.h> int main(void) { lua_State *L; L = lua_open(); printf("%d\n", lua_gettop(L)); lua_pushnumber(L, 10); printf("%d %d\n", lua_gettop(L), (int)lua_tonumber(L, -1)); lua_pushnumber(L, 20); printf("%d %d\n", lua_gettop(L), (int)lua_tonumber(L, -1)); lua_pushnumber(L, 30); printf("%d %d\n", lua_gettop(L), (int)lua_tonumber(L, -1)); lua_insert(L, 1); printf("%d %d\n", lua_gettop(L), (int)lua_tonumber(L, -1)); printf("%d %d\n", lua_gettop(L), (int)lua_tonumber(L, 1)); printf("%d %d\n", lua_gettop(L), (int)lua_tonumber(L, 2)); printf("%d %d\n", lua_gettop(L), (int)lua_tonumber(L, 3)); lua_insert(L, 1); printf("%d %d\n", lua_gettop(L), (int)lua_tonumber(L, -1)); lua_close(L); return 0; }
で、
0 1 10 2 20 3 30 3 20 3 30 3 10 3 20 3 10