#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"
void check_stack(lua_State *L)
{
int i;
for (i = 0; i < lua_gettop(L); i++) {
switch (lua_type(L, i)) {
case LUA_TNIL:
printf("stack[%d]: nil\n", i);
break;
case LUA_TNUMBER:
printf("stack[%d]: number: %g\n", i, lua_tonumber(L, i));
break;
case LUA_TBOOLEAN:
printf("stack[%d]: boolean: %d\n", i, lua_toboolean(L, i));
break;
case LUA_TSTRING:
printf("stack[%d]: string: %s\n", i, lua_tostring(L, i));
break;
case LUA_TTABLE:
printf("stack[%d]: table\n", i);
break;
case LUA_TFUNCTION:
printf("stack[%d]: function: %p\n", i, lua_tocfunction(L, i));
break;
case LUA_TUSERDATA:
printf("stack[%d]: user data: %p\n", i, lua_touserdata(L, i));
break;
case LUA_TTHREAD:
printf("stack[%d]: thread: %p\n", i, lua_tothread(L, i));
break;
case LUA_TLIGHTUSERDATA:
printf("stack[%d]: light user data\n", i);
break;
default:
printf("stack[%d]:不明な型\n", i);
break;
}
}
}
int main(int argc,char* argv[])
{
double v;
lua_State *L=lua_open();
luaopen_base(L);
luaopen_io(L);
check_stack(L);
return 0;
}