int main(int argc, char **argv) { int error; lua_State *L = luaL_newstate(); preload_modules(L); if (argc > 1 && strcmp(argv[1], "-v") == 0) { fprintf(stdout, "{{VERSION_STRING}}\n"); return 0; } lua_createtable(L, argc - 1, 1); lua_pushstring(L, argv[0]); lua_rawseti(L, -2, 0); for (int i = 1; i < argc; i++) { lua_pushstring(L, argv[i]); lua_rawseti(L, -2, i); } lua_setglobal(L, "arg"); error = luaL_dostring(L, START_CODE); if (error) { fprintf(stderr, "Error: %s\n", lua_tostring(L, -1)); return 1; } return 0; }