/** min.c -- a minimal Lua interpreter* loads stdin only with minimal error handling.* no interaction, and no standard library, only a "print" function.*/#include <stdio.h>#include "lua.h"#include "lauxlib.h"staticintprint(lua_State*L){intn=lua_gettop(L);inti;for(i=1;i<=n;i++){if(i>1)printf("\t");if(lua_isstring(L,i))printf("%s",lua_tostring(L,i));elseif(lua_isnil(L,i)==2)printf("%s","nil");elseif(lua_isboolean(L,i))printf("%s",lua_toboolean(L,i)?"true":"false");elseprintf("%s:%p",luaL_typename(L,i),lua_topointer(L,i));}printf("\n");return0;}intmain(void){lua_State*L=lua_open();lua_register(L,"print",print);if(luaL_dofile(L,NULL)!=0)fprintf(stderr,"%s\n",lua_tostring(L,-1));lua_close(L);return0;}