Sun, 23 Nov 2008 04:12:04 +0000
Cleanup and commenting
#include <string.h> #include <stdio.h> #include <stdlib.h> #include <lua.h> #include <lauxlib.h> #include <lualib.h> #if !defined(LUA_VERSION_NUM) || (LUA_VERSION_NUM < 501) #include <compat-5.1.h> #endif /* * * Table construction helper functions * * LUA_PUSH_ATTRIB_* creates string indexed (hashmap) * LUA_PUSH_ATTRIB_* creates integer indexed (array) * */ #define LUA_PUSH_ATTRIB_INT(n, v) \ lua_pushstring(L, n); \ lua_pushinteger(L, v); \ lua_rawset(L, -3); #define LUA_PUSH_ATTRIB_FLOAT(n, v) \ lua_pushstring(L, n); \ lua_pushnumber(L, v); \ lua_rawset(L, -3); #define LUA_PUSH_ATTRIB_STRING(n, v) \ lua_pushstring(L, n); \ lua_pushstring(L, v); \ lua_rawset(L, -3); #define LUA_PUSH_ATTRIB_BOOL(n, v) \ lua_pushstring(L, n); \ lua_pushboolean(L, v); \ lua_rawset(L, -3); #define LUA_PUSH_ATTRIB_NIL(n) \ lua_pushstring(L, n); \ lua_pushnil(L); \ lua_rawset(L, -3); #define LUA_PUSH_ARRAY_INT(n, v) \ lua_pushinteger(L, v); \ lua_rawseti(L, -2, n); \ n++; #define LUA_PUSH_ARRAY_FLOAT(n, v) \ lua_pushnumber(L, v); \ lua_rawseti(L, -2, n); \ n++; #define LUA_PUSH_ARRAY_STRING(n, v) \ lua_pushstring(L, v); \ lua_rawseti(L, -2, n); \ n++; #define LUA_PUSH_ARRAY_BOOL(n, v) \ lua_pushboolean(L, v); \ lua_rawseti(L, -2, n); \ n++; #define LUA_PUSH_ARRAY_NIL(n) \ lua_pushnil(L); \ lua_rawseti(L, -2, n); \ n++; /* * * Describes SQL to Lua API conversions * */ typedef enum lua_push_type { LUA_PUSH_NIL = 0, LUA_PUSH_INTEGER, LUA_PUSH_NUMBER, LUA_PUSH_STRING, LUA_PUSH_BOOLEAN, LUA_PUSH_MAX } lua_push_type_t;