int main(int argc,char **argv) { lua_State *L = luaL_newstate(); luaL_openlibs(L); if (luaL_dofile(L,"node_echo.lua")) { const char * error = lua_tostring(L, -1); lua_pop(L,1); printf("%s\n",error); } CALL_LUA_FUNC1(L,"main",0, PUSH_TABLE2(L,PUSH_STRING(L,argv[1]), PUSH_NUMBER(L,atoi(argv[2]))) ); printf("end here\n"); return 0; }
LUALIB_API int luaopen_zlib(lua_State *L) { const luaL_Reg lzstream_meta[] = { {"write", lzstream_compress }, {"read", lzstream_decompress }, {"lines", lzstream_lines }, {"flush", lzstream_flush }, {"close", lzstream_close }, {"adler", lzstream_adler }, {"__tostring", lzstream_tostring }, {"__gc", lzstream_gc }, {NULL, NULL} }; const luaL_Reg zlib[] = { {"version", lzlib_version }, {"adler32", lzlib_adler32 }, {"crc32", lzlib_crc32 }, {"deflate", lzlib_deflate }, {"inflate", lzlib_inflate }, {"compress", lzlib_compress }, {"decompress", lzlib_decompress }, {NULL, NULL} }; /* ====================================================================== */ /* create new metatable for zlib compression structures */ luaL_newmetatable(L, ZSTREAMMETA); lua_pushliteral(L, "__index"); lua_pushvalue(L, -2); /* push metatable */ lua_rawset(L, -3); /* metatable.__index = metatable */ /* ** Stack: metatable */ luaL_register(L, NULL, lzstream_meta); lua_pop(L, 1); /* remove metatable from stack */ /* ** Stack: */ lua_newtable(L); lua_pushliteral (L, "_COPYRIGHT"); lua_pushliteral (L, "Copyright (C) 2003-2010 Tiago Dionizio"); lua_settable (L, -3); lua_pushliteral (L, "_DESCRIPTION"); lua_pushliteral (L, "Lua 5 interface to access zlib library functions"); lua_settable (L, -3); lua_pushliteral (L, "_VERSION"); lua_pushliteral (L, "lzlib 0.4-work3"); lua_settable (L, -3); #define PUSH_LITERAL(name) \ lua_pushliteral (L, #name); \ lua_pushinteger (L, Z_##name); \ lua_settable (L, -3); #define PUSH_NUMBER(name, value) \ lua_pushliteral (L, #name); \ lua_pushinteger (L, value); \ lua_settable (L, -3); PUSH_LITERAL(NO_COMPRESSION) PUSH_LITERAL(BEST_SPEED) PUSH_LITERAL(BEST_COMPRESSION) PUSH_LITERAL(DEFAULT_COMPRESSION) PUSH_LITERAL(FILTERED) PUSH_LITERAL(HUFFMAN_ONLY) PUSH_LITERAL(RLE) PUSH_LITERAL(FIXED) PUSH_LITERAL(DEFAULT_STRATEGY) PUSH_NUMBER(MINIMUM_MEMLEVEL, 1) PUSH_NUMBER(MAXIMUM_MEMLEVEL, 9) PUSH_NUMBER(DEFAULT_MEMLEVEL, 8) PUSH_NUMBER(DEFAULT_WINDOWBITS, 15) PUSH_NUMBER(MINIMUM_WINDOWBITS, 8) PUSH_NUMBER(MAXIMUM_WINDOWBITS, 15) PUSH_NUMBER(GZIP_WINDOWBITS, 16) PUSH_NUMBER(RAW_WINDOWBITS, -1) luaL_register(L, NULL, zlib); /* ** Stack: zlib table */ return 1; }