dub 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (142) hide show
  1. data/.gitignore +8 -0
  2. data/History.txt +5 -0
  3. data/LICENSE +20 -0
  4. data/README.rdoc +53 -0
  5. data/Rakefile +58 -0
  6. data/dub.gemspec +194 -0
  7. data/lib/dub/argument.rb +261 -0
  8. data/lib/dub/entities_unescape.rb +16 -0
  9. data/lib/dub/function.rb +111 -0
  10. data/lib/dub/function_group.rb +74 -0
  11. data/lib/dub/generator.rb +15 -0
  12. data/lib/dub/group.rb +10 -0
  13. data/lib/dub/klass.rb +231 -0
  14. data/lib/dub/lua/class.cpp.erb +75 -0
  15. data/lib/dub/lua/class_gen.rb +78 -0
  16. data/lib/dub/lua/function.cpp.erb +4 -0
  17. data/lib/dub/lua/function_gen.rb +223 -0
  18. data/lib/dub/lua/group.cpp.erb +10 -0
  19. data/lib/dub/lua/lua_cpp_helper.h +141 -0
  20. data/lib/dub/lua/namespace.cpp.erb +35 -0
  21. data/lib/dub/lua/namespace_gen.rb +86 -0
  22. data/lib/dub/lua.rb +24 -0
  23. data/lib/dub/member_extraction.rb +88 -0
  24. data/lib/dub/namespace.rb +276 -0
  25. data/lib/dub/parser.rb +46 -0
  26. data/lib/dub/templates/lua_template.erb +21 -0
  27. data/lib/dub/version.rb +3 -0
  28. data/lib/dub.rb +26 -0
  29. data/test/argument_test.rb +423 -0
  30. data/test/fixtures/app/CMakeLists.txt +54 -0
  31. data/test/fixtures/app/Doxyfile +1600 -0
  32. data/test/fixtures/app/bindings/all_lua.cpp +299 -0
  33. data/test/fixtures/app/include/matrix.h +123 -0
  34. data/test/fixtures/app/make_lua_bindings.rb +13 -0
  35. data/test/fixtures/app/vendor/lua/CMakeLists.txt +25 -0
  36. data/test/fixtures/app/vendor/lua/COPYRIGHT +34 -0
  37. data/test/fixtures/app/vendor/lua/HISTORY +183 -0
  38. data/test/fixtures/app/vendor/lua/INSTALL +99 -0
  39. data/test/fixtures/app/vendor/lua/Makefile +183 -0
  40. data/test/fixtures/app/vendor/lua/README +37 -0
  41. data/test/fixtures/app/vendor/lua/lapi.c +1080 -0
  42. data/test/fixtures/app/vendor/lua/lapi.h +16 -0
  43. data/test/fixtures/app/vendor/lua/lauxlib.c +653 -0
  44. data/test/fixtures/app/vendor/lua/lauxlib.h +174 -0
  45. data/test/fixtures/app/vendor/lua/lbaselib.c +643 -0
  46. data/test/fixtures/app/vendor/lua/lcode.c +839 -0
  47. data/test/fixtures/app/vendor/lua/lcode.h +76 -0
  48. data/test/fixtures/app/vendor/lua/ldblib.c +397 -0
  49. data/test/fixtures/app/vendor/lua/ldebug.c +622 -0
  50. data/test/fixtures/app/vendor/lua/ldebug.h +33 -0
  51. data/test/fixtures/app/vendor/lua/ldo.c +516 -0
  52. data/test/fixtures/app/vendor/lua/ldo.h +57 -0
  53. data/test/fixtures/app/vendor/lua/ldump.c +164 -0
  54. data/test/fixtures/app/vendor/lua/lfunc.c +174 -0
  55. data/test/fixtures/app/vendor/lua/lfunc.h +34 -0
  56. data/test/fixtures/app/vendor/lua/lgc.c +711 -0
  57. data/test/fixtures/app/vendor/lua/lgc.h +110 -0
  58. data/test/fixtures/app/vendor/lua/liblua.a +0 -0
  59. data/test/fixtures/app/vendor/lua/linit.c +38 -0
  60. data/test/fixtures/app/vendor/lua/liolib.c +532 -0
  61. data/test/fixtures/app/vendor/lua/llex.c +461 -0
  62. data/test/fixtures/app/vendor/lua/llex.h +81 -0
  63. data/test/fixtures/app/vendor/lua/llimits.h +128 -0
  64. data/test/fixtures/app/vendor/lua/lmathlib.c +263 -0
  65. data/test/fixtures/app/vendor/lua/lmem.c +86 -0
  66. data/test/fixtures/app/vendor/lua/lmem.h +49 -0
  67. data/test/fixtures/app/vendor/lua/loadlib.c +664 -0
  68. data/test/fixtures/app/vendor/lua/lobject.c +214 -0
  69. data/test/fixtures/app/vendor/lua/lobject.h +381 -0
  70. data/test/fixtures/app/vendor/lua/lopcodes.c +102 -0
  71. data/test/fixtures/app/vendor/lua/lopcodes.h +268 -0
  72. data/test/fixtures/app/vendor/lua/loslib.c +244 -0
  73. data/test/fixtures/app/vendor/lua/lparser.c +1337 -0
  74. data/test/fixtures/app/vendor/lua/lparser.h +82 -0
  75. data/test/fixtures/app/vendor/lua/lstate.c +214 -0
  76. data/test/fixtures/app/vendor/lua/lstate.h +168 -0
  77. data/test/fixtures/app/vendor/lua/lstring.c +111 -0
  78. data/test/fixtures/app/vendor/lua/lstring.h +31 -0
  79. data/test/fixtures/app/vendor/lua/lstrlib.c +868 -0
  80. data/test/fixtures/app/vendor/lua/ltable.c +588 -0
  81. data/test/fixtures/app/vendor/lua/ltable.h +40 -0
  82. data/test/fixtures/app/vendor/lua/ltablib.c +278 -0
  83. data/test/fixtures/app/vendor/lua/ltm.c +75 -0
  84. data/test/fixtures/app/vendor/lua/ltm.h +54 -0
  85. data/test/fixtures/app/vendor/lua/lua.c +695 -0
  86. data/test/fixtures/app/vendor/lua/lua.h +385 -0
  87. data/test/fixtures/app/vendor/lua/lua_dub_helper.h +77 -0
  88. data/test/fixtures/app/vendor/lua/luac +0 -0
  89. data/test/fixtures/app/vendor/lua/luac.c +200 -0
  90. data/test/fixtures/app/vendor/lua/luaconf.h +762 -0
  91. data/test/fixtures/app/vendor/lua/lualib.h +53 -0
  92. data/test/fixtures/app/vendor/lua/lundump.c +223 -0
  93. data/test/fixtures/app/vendor/lua/lundump.h +36 -0
  94. data/test/fixtures/app/vendor/lua/lvm.c +765 -0
  95. data/test/fixtures/app/vendor/lua/lvm.h +36 -0
  96. data/test/fixtures/app/vendor/lua/lzio.c +82 -0
  97. data/test/fixtures/app/vendor/lua/lzio.h +67 -0
  98. data/test/fixtures/app/vendor/lua/matrix.h +102 -0
  99. data/test/fixtures/app/vendor/lua/print.c +227 -0
  100. data/test/fixtures/app/vendor/lua/test/README +26 -0
  101. data/test/fixtures/app/vendor/lua/test/bisect.lua +27 -0
  102. data/test/fixtures/app/vendor/lua/test/cf.lua +16 -0
  103. data/test/fixtures/app/vendor/lua/test/echo.lua +5 -0
  104. data/test/fixtures/app/vendor/lua/test/env.lua +7 -0
  105. data/test/fixtures/app/vendor/lua/test/factorial.lua +32 -0
  106. data/test/fixtures/app/vendor/lua/test/fib.lua +40 -0
  107. data/test/fixtures/app/vendor/lua/test/fibfor.lua +13 -0
  108. data/test/fixtures/app/vendor/lua/test/globals.lua +13 -0
  109. data/test/fixtures/app/vendor/lua/test/hello.lua +3 -0
  110. data/test/fixtures/app/vendor/lua/test/life.lua +111 -0
  111. data/test/fixtures/app/vendor/lua/test/luac.lua +7 -0
  112. data/test/fixtures/app/vendor/lua/test/printf.lua +7 -0
  113. data/test/fixtures/app/vendor/lua/test/readonly.lua +12 -0
  114. data/test/fixtures/app/vendor/lua/test/sieve.lua +29 -0
  115. data/test/fixtures/app/vendor/lua/test/sort.lua +66 -0
  116. data/test/fixtures/app/vendor/lua/test/table.lua +12 -0
  117. data/test/fixtures/app/vendor/lua/test/trace-calls.lua +32 -0
  118. data/test/fixtures/app/vendor/lua/test/trace-globals.lua +38 -0
  119. data/test/fixtures/app/vendor/lua/test/xd.lua +14 -0
  120. data/test/fixtures/app/xml/classdub_1_1_matrix.xml +239 -0
  121. data/test/fixtures/app/xml/classdub_1_1_t_mat.xml +233 -0
  122. data/test/fixtures/app/xml/combine.xslt +15 -0
  123. data/test/fixtures/app/xml/compound.xsd +814 -0
  124. data/test/fixtures/app/xml/dir_53661a2bdeb1d55e60581a7e15deb763.xml +12 -0
  125. data/test/fixtures/app/xml/index.xml +42 -0
  126. data/test/fixtures/app/xml/index.xsd +66 -0
  127. data/test/fixtures/app/xml/matrix_8h.xml +149 -0
  128. data/test/fixtures/app/xml/namespacedub.xml +41 -0
  129. data/test/fixtures/classcv_1_1_mat.xml +1996 -0
  130. data/test/fixtures/classcv_1_1_point__.xml +341 -0
  131. data/test/fixtures/classcv_1_1_size__.xml +270 -0
  132. data/test/fixtures/group___magic_type.xml +406 -0
  133. data/test/fixtures/namespacecv.xml +12659 -0
  134. data/test/function_group_test.rb +15 -0
  135. data/test/function_test.rb +252 -0
  136. data/test/group_test.rb +155 -0
  137. data/test/helper.rb +34 -0
  138. data/test/klass_test.rb +297 -0
  139. data/test/lua_function_gen_test.rb +179 -0
  140. data/test/namespace_test.rb +220 -0
  141. data/test/parser_test.rb +36 -0
  142. metadata +216 -0
@@ -0,0 +1,174 @@
1
+ /*
2
+ ** $Id: lauxlib.h,v 1.88 2006/04/12 20:31:15 roberto Exp $
3
+ ** Auxiliary functions for building Lua libraries
4
+ ** See Copyright Notice in lua.h
5
+ */
6
+
7
+
8
+ #ifndef lauxlib_h
9
+ #define lauxlib_h
10
+
11
+
12
+ #include <stddef.h>
13
+ #include <stdio.h>
14
+
15
+ #include "lua.h"
16
+
17
+
18
+ #if defined(LUA_COMPAT_GETN)
19
+ LUALIB_API int (luaL_getn) (lua_State *L, int t);
20
+ LUALIB_API void (luaL_setn) (lua_State *L, int t, int n);
21
+ #else
22
+ #define luaL_getn(L,i) ((int)lua_objlen(L, i))
23
+ #define luaL_setn(L,i,j) ((void)0) /* no op! */
24
+ #endif
25
+
26
+ #if defined(LUA_COMPAT_OPENLIB)
27
+ #define luaI_openlib luaL_openlib
28
+ #endif
29
+
30
+
31
+ /* extra error code for `luaL_load' */
32
+ #define LUA_ERRFILE (LUA_ERRERR+1)
33
+
34
+
35
+ typedef struct luaL_Reg {
36
+ const char *name;
37
+ lua_CFunction func;
38
+ } luaL_Reg;
39
+
40
+
41
+
42
+ LUALIB_API void (luaI_openlib) (lua_State *L, const char *libname,
43
+ const luaL_Reg *l, int nup);
44
+ LUALIB_API void (luaL_register) (lua_State *L, const char *libname,
45
+ const luaL_Reg *l);
46
+ LUALIB_API int (luaL_getmetafield) (lua_State *L, int obj, const char *e);
47
+ LUALIB_API int (luaL_callmeta) (lua_State *L, int obj, const char *e);
48
+ LUALIB_API int (luaL_typerror) (lua_State *L, int narg, const char *tname);
49
+ LUALIB_API int (luaL_argerror) (lua_State *L, int numarg, const char *extramsg);
50
+ LUALIB_API const char *(luaL_checklstring) (lua_State *L, int numArg,
51
+ size_t *l);
52
+ LUALIB_API const char *(luaL_optlstring) (lua_State *L, int numArg,
53
+ const char *def, size_t *l);
54
+ LUALIB_API lua_Number (luaL_checknumber) (lua_State *L, int numArg);
55
+ LUALIB_API lua_Number (luaL_optnumber) (lua_State *L, int nArg, lua_Number def);
56
+
57
+ LUALIB_API lua_Integer (luaL_checkinteger) (lua_State *L, int numArg);
58
+ LUALIB_API lua_Integer (luaL_optinteger) (lua_State *L, int nArg,
59
+ lua_Integer def);
60
+
61
+ LUALIB_API void (luaL_checkstack) (lua_State *L, int sz, const char *msg);
62
+ LUALIB_API void (luaL_checktype) (lua_State *L, int narg, int t);
63
+ LUALIB_API void (luaL_checkany) (lua_State *L, int narg);
64
+
65
+ LUALIB_API int (luaL_newmetatable) (lua_State *L, const char *tname);
66
+ LUALIB_API void *(luaL_checkudata) (lua_State *L, int ud, const char *tname);
67
+
68
+ LUALIB_API void (luaL_where) (lua_State *L, int lvl);
69
+ LUALIB_API int (luaL_error) (lua_State *L, const char *fmt, ...);
70
+
71
+ LUALIB_API int (luaL_checkoption) (lua_State *L, int narg, const char *def,
72
+ const char *const lst[]);
73
+
74
+ LUALIB_API int (luaL_ref) (lua_State *L, int t);
75
+ LUALIB_API void (luaL_unref) (lua_State *L, int t, int ref);
76
+
77
+ LUALIB_API int (luaL_loadfile) (lua_State *L, const char *filename);
78
+ LUALIB_API int (luaL_loadbuffer) (lua_State *L, const char *buff, size_t sz,
79
+ const char *name);
80
+ LUALIB_API int (luaL_loadstring) (lua_State *L, const char *s);
81
+
82
+ LUALIB_API lua_State *(luaL_newstate) (void);
83
+
84
+
85
+ LUALIB_API const char *(luaL_gsub) (lua_State *L, const char *s, const char *p,
86
+ const char *r);
87
+
88
+ LUALIB_API const char *(luaL_findtable) (lua_State *L, int idx,
89
+ const char *fname, int szhint);
90
+
91
+
92
+
93
+
94
+ /*
95
+ ** ===============================================================
96
+ ** some useful macros
97
+ ** ===============================================================
98
+ */
99
+
100
+ #define luaL_argcheck(L, cond,numarg,extramsg) \
101
+ ((void)((cond) || luaL_argerror(L, (numarg), (extramsg))))
102
+ #define luaL_checkstring(L,n) (luaL_checklstring(L, (n), NULL))
103
+ #define luaL_optstring(L,n,d) (luaL_optlstring(L, (n), (d), NULL))
104
+ #define luaL_checkint(L,n) ((int)luaL_checkinteger(L, (n)))
105
+ #define luaL_optint(L,n,d) ((int)luaL_optinteger(L, (n), (d)))
106
+ #define luaL_checklong(L,n) ((long)luaL_checkinteger(L, (n)))
107
+ #define luaL_optlong(L,n,d) ((long)luaL_optinteger(L, (n), (d)))
108
+
109
+ #define luaL_typename(L,i) lua_typename(L, lua_type(L,(i)))
110
+
111
+ #define luaL_dofile(L, fn) \
112
+ (luaL_loadfile(L, fn) || lua_pcall(L, 0, LUA_MULTRET, 0))
113
+
114
+ #define luaL_dostring(L, s) \
115
+ (luaL_loadstring(L, s) || lua_pcall(L, 0, LUA_MULTRET, 0))
116
+
117
+ #define luaL_getmetatable(L,n) (lua_getfield(L, LUA_REGISTRYINDEX, (n)))
118
+
119
+ #define luaL_opt(L,f,n,d) (lua_isnoneornil(L,(n)) ? (d) : f(L,(n)))
120
+
121
+ /*
122
+ ** {======================================================
123
+ ** Generic Buffer manipulation
124
+ ** =======================================================
125
+ */
126
+
127
+
128
+
129
+ typedef struct luaL_Buffer {
130
+ char *p; /* current position in buffer */
131
+ int lvl; /* number of strings in the stack (level) */
132
+ lua_State *L;
133
+ char buffer[LUAL_BUFFERSIZE];
134
+ } luaL_Buffer;
135
+
136
+ #define luaL_addchar(B,c) \
137
+ ((void)((B)->p < ((B)->buffer+LUAL_BUFFERSIZE) || luaL_prepbuffer(B)), \
138
+ (*(B)->p++ = (char)(c)))
139
+
140
+ /* compatibility only */
141
+ #define luaL_putchar(B,c) luaL_addchar(B,c)
142
+
143
+ #define luaL_addsize(B,n) ((B)->p += (n))
144
+
145
+ LUALIB_API void (luaL_buffinit) (lua_State *L, luaL_Buffer *B);
146
+ LUALIB_API char *(luaL_prepbuffer) (luaL_Buffer *B);
147
+ LUALIB_API void (luaL_addlstring) (luaL_Buffer *B, const char *s, size_t l);
148
+ LUALIB_API void (luaL_addstring) (luaL_Buffer *B, const char *s);
149
+ LUALIB_API void (luaL_addvalue) (luaL_Buffer *B);
150
+ LUALIB_API void (luaL_pushresult) (luaL_Buffer *B);
151
+
152
+
153
+ /* }====================================================== */
154
+
155
+
156
+ /* compatibility with ref system */
157
+
158
+ /* pre-defined references */
159
+ #define LUA_NOREF (-2)
160
+ #define LUA_REFNIL (-1)
161
+
162
+ #define lua_ref(L,lock) ((lock) ? luaL_ref(L, LUA_REGISTRYINDEX) : \
163
+ (lua_pushstring(L, "unlocked references are obsolete"), lua_error(L), 0))
164
+
165
+ #define lua_unref(L,ref) luaL_unref(L, LUA_REGISTRYINDEX, (ref))
166
+
167
+ #define lua_getref(L,ref) lua_rawgeti(L, LUA_REGISTRYINDEX, (ref))
168
+
169
+
170
+ #define luaL_reg luaL_Reg
171
+
172
+ #endif
173
+
174
+