Sun, 23 Nov 2008 01:29:09 +0000
Initial import.
1 | 1 | #include <string.h> |
2 | #include <stdio.h> | |
3 | #include <stdlib.h> | |
4 | ||
5 | #include <lua.h> | |
6 | #include <lauxlib.h> | |
7 | #include <lualib.h> | |
8 | ||
9 | #if !defined(LUA_VERSION_NUM) || (LUA_VERSION_NUM < 501) | |
10 | #include <compat-5.1.h> | |
11 | #endif | |
12 | ||
13 | ||
14 | ||
15 | #define LUA_PUSH_ATTRIB_INT(n, v) \ | |
16 | lua_pushstring(L, n); \ | |
17 | lua_pushinteger(L, v); \ | |
18 | lua_rawset(L, -3); | |
19 | ||
20 | #define LUA_PUSH_ATTRIB_FLOAT(n, v) \ | |
21 | lua_pushstring(L, n); \ | |
22 | lua_pushnumber(L, v); \ | |
23 | lua_rawset(L, -3); | |
24 | ||
25 | #define LUA_PUSH_ATTRIB_STRING(n, v) \ | |
26 | lua_pushstring(L, n); \ | |
27 | lua_pushstring(L, v); \ | |
28 | lua_rawset(L, -3); | |
29 | ||
30 | #define LUA_PUSH_ATTRIB_BOOL(n, v) \ | |
31 | lua_pushstring(L, n); \ | |
32 | lua_pushboolean(L, v); \ | |
33 | lua_rawset(L, -3); | |
34 | ||
35 | #define LUA_PUSH_ATTRIB_NIL(n) \ | |
36 | lua_pushstring(L, n); \ | |
37 | lua_pushnil(L); \ | |
38 | lua_rawset(L, -3); | |
39 | ||
40 | ||
41 | ||
42 | #define LUA_PUSH_ARRAY_INT(n, v) \ | |
43 | lua_pushinteger(L, v); \ | |
44 | lua_rawseti(L, -2, n); \ | |
45 | n++; | |
46 | ||
47 | #define LUA_PUSH_ARRAY_FLOAT(n, v) \ | |
48 | lua_pushnumber(L, v); \ | |
49 | lua_rawseti(L, -2, n); \ | |
50 | n++; | |
51 | ||
52 | #define LUA_PUSH_ARRAY_STRING(n, v) \ | |
53 | lua_pushstring(L, v); \ | |
54 | lua_rawseti(L, -2, n); \ | |
55 | n++; | |
56 | ||
57 | #define LUA_PUSH_ARRAY_BOOL(n, v) \ | |
58 | lua_pushboolean(L, v); \ | |
59 | lua_rawseti(L, -2, n); \ | |
60 | n++; | |
61 | ||
62 | #define LUA_PUSH_ARRAY_NIL(n) \ | |
63 | lua_pushnil(L); \ | |
64 | lua_rawseti(L, -2, n); \ | |
65 | n++; | |
66 | ||
67 | ||
68 | ||
69 | typedef enum lua_push_type { | |
70 | LUA_PUSH_NIL = 0, | |
71 | LUA_PUSH_INTEGER, | |
72 | LUA_PUSH_NUMBER, | |
73 | LUA_PUSH_STRING, | |
74 | LUA_PUSH_BOOLEAN, | |
75 | ||
76 | LUA_PUSH_MAX | |
77 | } lua_push_type_t; | |
78 |