sweet-moon 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +2 -0
- data/.rspec +1 -0
- data/.rubocop.yml +40 -0
- data/Gemfile +12 -0
- data/Gemfile.lock +61 -0
- data/README.md +1149 -0
- data/components/api.rb +83 -0
- data/components/injections/injections_503.rb +21 -0
- data/components/injections/injections_514.rb +29 -0
- data/components/injections/injections_542.rb +49 -0
- data/components/injections.rb +11 -0
- data/components/interpreters/50/function.rb +52 -0
- data/components/interpreters/50/interpreter.rb +105 -0
- data/components/interpreters/50/reader.rb +65 -0
- data/components/interpreters/50/table.rb +99 -0
- data/components/interpreters/50/writer.rb +45 -0
- data/components/interpreters/51/function.rb +52 -0
- data/components/interpreters/51/interpreter.rb +104 -0
- data/components/interpreters/51/reader.rb +65 -0
- data/components/interpreters/51/table.rb +60 -0
- data/components/interpreters/51/writer.rb +45 -0
- data/components/interpreters/54/function.rb +52 -0
- data/components/interpreters/54/interpreter.rb +100 -0
- data/components/interpreters/54/reader.rb +65 -0
- data/components/interpreters/54/table.rb +60 -0
- data/components/interpreters/54/writer.rb +45 -0
- data/components/interpreters.rb +11 -0
- data/components/io.rb +11 -0
- data/config/tests.sample.yml +15 -0
- data/controllers/api.rb +143 -0
- data/controllers/cli/cli.rb +32 -0
- data/controllers/cli/help.rb +24 -0
- data/controllers/cli/signatures.rb +179 -0
- data/controllers/cli/version.rb +14 -0
- data/controllers/interpreter.rb +68 -0
- data/controllers/state.rb +74 -0
- data/dsl/api.rb +31 -0
- data/dsl/cache.rb +118 -0
- data/dsl/concerns/fennel.rb +13 -0
- data/dsl/concerns/packages.rb +37 -0
- data/dsl/errors.rb +28 -0
- data/dsl/fennel.rb +47 -0
- data/dsl/global.rb +42 -0
- data/dsl/state.rb +104 -0
- data/dsl/sweet_moon.rb +53 -0
- data/logic/api.rb +17 -0
- data/logic/interpreter.rb +84 -0
- data/logic/interpreters/interpreter_50.rb +34 -0
- data/logic/interpreters/interpreter_51.rb +37 -0
- data/logic/interpreters/interpreter_54.rb +41 -0
- data/logic/io.rb +6 -0
- data/logic/options.rb +14 -0
- data/logic/shared_object.rb +52 -0
- data/logic/signature.rb +258 -0
- data/logic/signatures/ffi_types.rb +27 -0
- data/logic/signatures/signatures_322.rb +418 -0
- data/logic/signatures/signatures_401.rb +243 -0
- data/logic/signatures/signatures_503.rb +575 -0
- data/logic/signatures/signatures_514.rb +460 -0
- data/logic/signatures/signatures_542.rb +591 -0
- data/logic/spec.rb +13 -0
- data/logic/tables.rb +32 -0
- data/ports/in/dsl/sweet-moon/errors.rb +3 -0
- data/ports/in/dsl/sweet-moon.rb +1 -0
- data/ports/in/shell/sweet-moon +5 -0
- data/ports/in/shell.rb +21 -0
- data/ports/out/shell.rb +9 -0
- data/sweet-moon.gemspec +35 -0
- metadata +137 -0
@@ -0,0 +1,243 @@
|
|
1
|
+
module Logic
|
2
|
+
module V401
|
3
|
+
Signatures = {
|
4
|
+
functions: [{ source: 'LUALIB_API char *luaL_prepbuffer (luaL_Buffer *B);',
|
5
|
+
ffi: [:luaL_prepbuffer, [:pointer], :pointer] },
|
6
|
+
{ source: 'LUALIB_API const char *luaL_check_lstr (lua_State *L, int numArg, size_t *len);',
|
7
|
+
ffi: [:luaL_check_lstr, %i[pointer int pointer], :pointer] },
|
8
|
+
{ source: 'LUALIB_API const char *luaL_opt_lstr (lua_State *L, int numArg, const char *def, size_t *len);',
|
9
|
+
ffi: [:luaL_opt_lstr, %i[pointer int pointer pointer], :pointer] },
|
10
|
+
{ source: 'LUALIB_API double luaL_check_number (lua_State *L, int numArg);',
|
11
|
+
ffi: [:luaL_check_number, %i[pointer int], :double] },
|
12
|
+
{ source: 'LUALIB_API double luaL_opt_number (lua_State *L, int numArg, double def);',
|
13
|
+
ffi: [:luaL_opt_number, %i[pointer int double], :double] },
|
14
|
+
{ source: 'LUALIB_API int luaL_findstring (const char *name, const char *const _list[]);',
|
15
|
+
ffi: [:luaL_findstring, %i[pointer pointer], :int] },
|
16
|
+
{ source: 'LUALIB_API void luaL_addlstring (luaL_Buffer *B, const char *s, size_t l);',
|
17
|
+
ffi: [:luaL_addlstring, %i[pointer pointer ulong], :void] },
|
18
|
+
{ source: 'LUALIB_API void luaL_addstring (luaL_Buffer *B, const char *s);',
|
19
|
+
ffi: [:luaL_addstring, %i[pointer pointer], :void] },
|
20
|
+
{ source: 'LUALIB_API void luaL_addvalue (luaL_Buffer *B);',
|
21
|
+
ffi: [:luaL_addvalue, [:pointer], :void] },
|
22
|
+
{ source: 'LUALIB_API void luaL_argerror (lua_State *L, int numarg, const char *extramsg);',
|
23
|
+
ffi: [:luaL_argerror, %i[pointer int pointer], :void] },
|
24
|
+
{ source: 'LUALIB_API void luaL_buffinit (lua_State *L, luaL_Buffer *B);',
|
25
|
+
ffi: [:luaL_buffinit, %i[pointer pointer], :void] },
|
26
|
+
{ source: 'LUALIB_API void luaL_checkany (lua_State *L, int narg);',
|
27
|
+
ffi: [:luaL_checkany, %i[pointer int], :void] },
|
28
|
+
{ source: 'LUALIB_API void luaL_checkstack (lua_State *L, int space, const char *msg);',
|
29
|
+
ffi: [:luaL_checkstack, %i[pointer int pointer], :void] },
|
30
|
+
{ source: 'LUALIB_API void luaL_checktype (lua_State *L, int narg, int t);',
|
31
|
+
ffi: [:luaL_checktype, %i[pointer int int], :void] },
|
32
|
+
{ source: 'LUALIB_API void luaL_openlib (lua_State *L, const struct luaL_reg *l, int n);',
|
33
|
+
ffi: [:luaL_openlib, %i[pointer pointer int], :void] },
|
34
|
+
{ source: 'LUALIB_API void luaL_pushresult (luaL_Buffer *B);',
|
35
|
+
ffi: [:luaL_pushresult, [:pointer], :void] },
|
36
|
+
{ source: 'LUALIB_API void luaL_verror (lua_State *L, const char *fmt, ...);',
|
37
|
+
ffi: [:luaL_verror, %i[pointer pointer varargs], :void] },
|
38
|
+
{ source: 'LUALIB_API void lua_baselibopen (lua_State *L);',
|
39
|
+
ffi: [:lua_baselibopen, [:pointer], :void] },
|
40
|
+
{ source: 'LUALIB_API void lua_dblibopen (lua_State *L);',
|
41
|
+
ffi: [:lua_dblibopen, [:pointer], :void] },
|
42
|
+
{ source: 'LUALIB_API void lua_iolibopen (lua_State *L);',
|
43
|
+
ffi: [:lua_iolibopen, [:pointer], :void] },
|
44
|
+
{ source: 'LUALIB_API void lua_mathlibopen (lua_State *L);',
|
45
|
+
ffi: [:lua_mathlibopen, [:pointer], :void] },
|
46
|
+
{ source: 'LUALIB_API void lua_strlibopen (lua_State *L);',
|
47
|
+
ffi: [:lua_strlibopen, [:pointer], :void] },
|
48
|
+
{ source: 'LUA_API const char *lua_getlocal (lua_State *L, const lua_Debug *ar, int n);',
|
49
|
+
ffi: [:lua_getlocal, %i[pointer pointer int], :pointer] },
|
50
|
+
{ source: 'LUA_API const char *lua_setlocal (lua_State *L, const lua_Debug *ar, int n);',
|
51
|
+
ffi: [:lua_setlocal, %i[pointer pointer int], :pointer] },
|
52
|
+
{ source: 'LUA_API const char *lua_tostring (lua_State *L, int index);',
|
53
|
+
ffi: [:lua_tostring, %i[pointer int], :pointer] },
|
54
|
+
{ source: 'LUA_API const char *lua_typename (lua_State *L, int t);',
|
55
|
+
ffi: [:lua_typename, %i[pointer int], :pointer] },
|
56
|
+
{ source: 'LUA_API const void *lua_topointer (lua_State *L, int index);',
|
57
|
+
ffi: [:lua_topointer, %i[pointer int], :pointer] },
|
58
|
+
{ source: 'LUA_API double lua_tonumber (lua_State *L, int index);',
|
59
|
+
ffi: [:lua_tonumber, %i[pointer int], :double] },
|
60
|
+
{ source: 'LUA_API int lua_call (lua_State *L, int nargs, int nresults);',
|
61
|
+
ffi: [:lua_call, %i[pointer int int], :int] },
|
62
|
+
{ source: 'LUA_API int lua_copytagmethods (lua_State *L, int tagto, int tagfrom);',
|
63
|
+
ffi: [:lua_copytagmethods, %i[pointer int int], :int] },
|
64
|
+
{ source: 'LUA_API int lua_dobuffer (lua_State *L, const char *buff, size_t size, const char *name);',
|
65
|
+
ffi: [:lua_dobuffer, %i[pointer pointer ulong pointer], :int] },
|
66
|
+
{ source: 'LUA_API int lua_dofile (lua_State *L, const char *filename);',
|
67
|
+
ffi: [:lua_dofile, %i[pointer pointer], :int] },
|
68
|
+
{ source: 'LUA_API int lua_dostring (lua_State *L, const char *str);',
|
69
|
+
ffi: [:lua_dostring, %i[pointer pointer], :int] },
|
70
|
+
{ source: 'LUA_API int lua_equal (lua_State *L, int index1, int index2);',
|
71
|
+
ffi: [:lua_equal, %i[pointer int int], :int] },
|
72
|
+
{ source: 'LUA_API int lua_getgccount (lua_State *L);',
|
73
|
+
ffi: [:lua_getgccount, [:pointer], :int] },
|
74
|
+
{ source: 'LUA_API int lua_getgcthreshold (lua_State *L);',
|
75
|
+
ffi: [:lua_getgcthreshold, [:pointer], :int] },
|
76
|
+
{ source: 'LUA_API int lua_getinfo (lua_State *L, const char *what, lua_Debug *ar);',
|
77
|
+
ffi: [:lua_getinfo, %i[pointer pointer pointer], :int] },
|
78
|
+
{ source: 'LUA_API int lua_getn (lua_State *L, int index);',
|
79
|
+
ffi: [:lua_getn, %i[pointer int], :int] },
|
80
|
+
{ source: 'LUA_API int lua_getref (lua_State *L, int ref);',
|
81
|
+
ffi: [:lua_getref, %i[pointer int], :int] },
|
82
|
+
{ source: 'LUA_API int lua_getstack (lua_State *L, int level, lua_Debug *ar);',
|
83
|
+
ffi: [:lua_getstack, %i[pointer int pointer], :int] },
|
84
|
+
{ source: 'LUA_API int lua_gettop (lua_State *L);',
|
85
|
+
ffi: [:lua_gettop, [:pointer], :int] },
|
86
|
+
{ source: 'LUA_API int lua_iscfunction (lua_State *L, int index);',
|
87
|
+
ffi: [:lua_iscfunction, %i[pointer int], :int] },
|
88
|
+
{ source: 'LUA_API int lua_isnumber (lua_State *L, int index);',
|
89
|
+
ffi: [:lua_isnumber, %i[pointer int], :int] },
|
90
|
+
{ source: 'LUA_API int lua_isstring (lua_State *L, int index);',
|
91
|
+
ffi: [:lua_isstring, %i[pointer int], :int] },
|
92
|
+
{ source: 'LUA_API int lua_lessthan (lua_State *L, int index1, int index2);',
|
93
|
+
ffi: [:lua_lessthan, %i[pointer int int], :int] },
|
94
|
+
{ source: 'LUA_API int lua_newtag (lua_State *L);',
|
95
|
+
ffi: [:lua_newtag, [:pointer], :int] },
|
96
|
+
{ source: 'LUA_API int lua_next (lua_State *L, int index);',
|
97
|
+
ffi: [:lua_next, %i[pointer int], :int] },
|
98
|
+
{ source: 'LUA_API int lua_ref (lua_State *L, int lock);',
|
99
|
+
ffi: [:lua_ref, %i[pointer int], :int] },
|
100
|
+
{ source: 'LUA_API int lua_stackspace (lua_State *L);',
|
101
|
+
ffi: [:lua_stackspace, [:pointer], :int] },
|
102
|
+
{ source: 'LUA_API int lua_tag (lua_State *L, int index);',
|
103
|
+
ffi: [:lua_tag, %i[pointer int], :int] },
|
104
|
+
{ source: 'LUA_API int lua_type (lua_State *L, int index);',
|
105
|
+
ffi: [:lua_type, %i[pointer int], :int] },
|
106
|
+
{ source: 'LUA_API lua_CFunction lua_tocfunction (lua_State *L, int index);',
|
107
|
+
ffi: [:lua_tocfunction, %i[pointer int], :int] },
|
108
|
+
{ source: 'LUA_API lua_Hook lua_setcallhook (lua_State *L, lua_Hook func);',
|
109
|
+
ffi: [:lua_setcallhook, [:pointer], :void] },
|
110
|
+
{ source: 'LUA_API lua_Hook lua_setlinehook (lua_State *L, lua_Hook func);',
|
111
|
+
ffi: [:lua_setlinehook, [:pointer], :void] },
|
112
|
+
{ source: 'LUA_API lua_State *lua_open (int stacksize);',
|
113
|
+
ffi: [:lua_open, [:int], :pointer] },
|
114
|
+
{ source: 'LUA_API size_t lua_strlen (lua_State *L, int index);',
|
115
|
+
ffi: [:lua_strlen, %i[pointer int], :ulong] },
|
116
|
+
{ source: 'LUA_API void *lua_newuserdata (lua_State *L, size_t size);',
|
117
|
+
ffi: [:lua_newuserdata, %i[pointer ulong], :pointer] },
|
118
|
+
{ source: 'LUA_API void *lua_touserdata (lua_State *L, int index);',
|
119
|
+
ffi: [:lua_touserdata, %i[pointer int], :pointer] },
|
120
|
+
{ source: 'LUA_API void lua_close (lua_State *L);',
|
121
|
+
ffi: [:lua_close, [:pointer], :void] },
|
122
|
+
{ source: 'LUA_API void lua_concat (lua_State *L, int n);',
|
123
|
+
ffi: [:lua_concat, %i[pointer int], :void] },
|
124
|
+
{ source: 'LUA_API void lua_error (lua_State *L, const char *s);',
|
125
|
+
ffi: [:lua_error, %i[pointer pointer], :void] },
|
126
|
+
{ source: 'LUA_API void lua_getglobal (lua_State *L, const char *name);',
|
127
|
+
ffi: [:lua_getglobal, %i[pointer pointer], :void] },
|
128
|
+
{ source: 'LUA_API void lua_getglobals (lua_State *L);',
|
129
|
+
ffi: [:lua_getglobals, [:pointer], :void] },
|
130
|
+
{ source: 'LUA_API void lua_gettable (lua_State *L, int index);',
|
131
|
+
ffi: [:lua_gettable, %i[pointer int], :void] },
|
132
|
+
{ source: 'LUA_API void lua_gettagmethod (lua_State *L, int tag, const char *event);',
|
133
|
+
ffi: [:lua_gettagmethod, %i[pointer int pointer], :void] },
|
134
|
+
{ source: 'LUA_API void lua_insert (lua_State *L, int index);',
|
135
|
+
ffi: [:lua_insert, %i[pointer int], :void] },
|
136
|
+
{ source: 'LUA_API void lua_newtable (lua_State *L);',
|
137
|
+
ffi: [:lua_newtable, [:pointer], :void] },
|
138
|
+
{ source: 'LUA_API void lua_pushcclosure (lua_State *L, lua_CFunction fn, int n);',
|
139
|
+
ffi: [:lua_pushcclosure, %i[pointer int int], :void] },
|
140
|
+
{ source: 'LUA_API void lua_pushlstring (lua_State *L, const char *s, size_t len);',
|
141
|
+
ffi: [:lua_pushlstring, %i[pointer pointer ulong], :void] },
|
142
|
+
{ source: 'LUA_API void lua_pushnil (lua_State *L);',
|
143
|
+
ffi: [:lua_pushnil, [:pointer], :void] },
|
144
|
+
{ source: 'LUA_API void lua_pushnumber (lua_State *L, double n);',
|
145
|
+
ffi: [:lua_pushnumber, %i[pointer double], :void] },
|
146
|
+
{ source: 'LUA_API void lua_pushstring (lua_State *L, const char *s);',
|
147
|
+
ffi: [:lua_pushstring, %i[pointer pointer], :void] },
|
148
|
+
{ source: 'LUA_API void lua_pushusertag (lua_State *L, void *u, int tag);',
|
149
|
+
ffi: [:lua_pushusertag, %i[pointer pointer int], :void] },
|
150
|
+
{ source: 'LUA_API void lua_pushvalue (lua_State *L, int index);',
|
151
|
+
ffi: [:lua_pushvalue, %i[pointer int], :void] },
|
152
|
+
{ source: 'LUA_API void lua_rawcall (lua_State *L, int nargs, int nresults);',
|
153
|
+
ffi: [:lua_rawcall, %i[pointer int int], :void] },
|
154
|
+
{ source: 'LUA_API void lua_rawget (lua_State *L, int index);',
|
155
|
+
ffi: [:lua_rawget, %i[pointer int], :void] },
|
156
|
+
{ source: 'LUA_API void lua_rawgeti (lua_State *L, int index, int n);',
|
157
|
+
ffi: [:lua_rawgeti, %i[pointer int int], :void] },
|
158
|
+
{ source: 'LUA_API void lua_rawset (lua_State *L, int index);',
|
159
|
+
ffi: [:lua_rawset, %i[pointer int], :void] },
|
160
|
+
{ source: 'LUA_API void lua_rawseti (lua_State *L, int index, int n);',
|
161
|
+
ffi: [:lua_rawseti, %i[pointer int int], :void] },
|
162
|
+
{ source: 'LUA_API void lua_remove (lua_State *L, int index);',
|
163
|
+
ffi: [:lua_remove, %i[pointer int], :void] },
|
164
|
+
{ source: 'LUA_API void lua_setgcthreshold (lua_State *L, int newthreshold);',
|
165
|
+
ffi: [:lua_setgcthreshold, %i[pointer int], :void] },
|
166
|
+
{ source: 'LUA_API void lua_setglobal (lua_State *L, const char *name);',
|
167
|
+
ffi: [:lua_setglobal, %i[pointer pointer], :void] },
|
168
|
+
{ source: 'LUA_API void lua_setglobals (lua_State *L);',
|
169
|
+
ffi: [:lua_setglobals, [:pointer], :void] },
|
170
|
+
{ source: 'LUA_API void lua_settable (lua_State *L, int index);',
|
171
|
+
ffi: [:lua_settable, %i[pointer int], :void] },
|
172
|
+
{ source: 'LUA_API void lua_settag (lua_State *L, int tag);',
|
173
|
+
ffi: [:lua_settag, %i[pointer int], :void] },
|
174
|
+
{ source: 'LUA_API void lua_settagmethod (lua_State *L, int tag, const char *event);',
|
175
|
+
ffi: [:lua_settagmethod, %i[pointer int pointer], :void] },
|
176
|
+
{ source: 'LUA_API void lua_settop (lua_State *L, int index);',
|
177
|
+
ffi: [:lua_settop, %i[pointer int], :void] },
|
178
|
+
{ source: 'LUA_API void lua_unref (lua_State *L, int ref);',
|
179
|
+
ffi: [:lua_unref, %i[pointer int], :void] },
|
180
|
+
{ source: 'const char *luaI_classend (lua_State *L, const char *p);',
|
181
|
+
ffi: [:luaI_classend, %i[pointer pointer], :pointer] },
|
182
|
+
{ source: 'int luaI_singlematch (int c, const char *p, const char *ep);',
|
183
|
+
ffi: [:luaI_singlematch, %i[int pointer pointer], :int] }],
|
184
|
+
macros: [{ source: '#define luaL_addsize(B,n) ((B)->p += (n))',
|
185
|
+
name: 'luaL_addsize',
|
186
|
+
input: %w[B n] },
|
187
|
+
{ source: '#define luaL_check_int(L,n) ((int)luaL_check_number(L, n))',
|
188
|
+
name: 'luaL_check_int',
|
189
|
+
input: %w[L n] },
|
190
|
+
{ source: '#define luaL_check_long(L,n) ((long)luaL_check_number(L, n))',
|
191
|
+
name: 'luaL_check_long',
|
192
|
+
input: %w[L n] },
|
193
|
+
{ source: '#define luaL_check_string(L,n) (luaL_check_lstr(L, (n), NULL))',
|
194
|
+
name: 'luaL_check_string',
|
195
|
+
input: %w[L n] },
|
196
|
+
{ source: '#define luaL_openl(L,a) luaL_openlib(L, a, (sizeof(a)/sizeof(a[0])))',
|
197
|
+
name: 'luaL_openl',
|
198
|
+
input: %w[L a] },
|
199
|
+
{ source: '#define luaL_opt_int(L,n,d) ((int)luaL_opt_number(L, n,d))',
|
200
|
+
name: 'luaL_opt_int',
|
201
|
+
input: %w[L n d] },
|
202
|
+
{ source: '#define luaL_opt_long(L,n,d) ((long)luaL_opt_number(L, n,d))',
|
203
|
+
name: 'luaL_opt_long',
|
204
|
+
input: %w[L n d] },
|
205
|
+
{ source: '#define luaL_opt_string(L,n,d) (luaL_opt_lstr(L, (n), (d), NULL))',
|
206
|
+
name: 'luaL_opt_string',
|
207
|
+
input: %w[L n d] },
|
208
|
+
{ source: '#define lua_clonetag(L,t) lua_copytagmethods(L, lua_newtag(L), (t))',
|
209
|
+
name: 'lua_clonetag',
|
210
|
+
input: %w[L t] },
|
211
|
+
{ source: '#define lua_getregistry(L) lua_getref(L, LUA_REFREGISTRY)',
|
212
|
+
name: 'lua_getregistry',
|
213
|
+
input: ['L'] },
|
214
|
+
{ source: '#define lua_isfunction(L,n) (lua_type(L,n) == LUA_TFUNCTION)',
|
215
|
+
name: 'lua_isfunction',
|
216
|
+
input: %w[L n] },
|
217
|
+
{ source: '#define lua_isnil(L,n) (lua_type(L,n) == LUA_TNIL)',
|
218
|
+
name: 'lua_isnil',
|
219
|
+
input: %w[L n] },
|
220
|
+
{ source: '#define lua_isnull(L,n) (lua_type(L,n) == LUA_TNONE)',
|
221
|
+
name: 'lua_isnull',
|
222
|
+
input: %w[L n] },
|
223
|
+
{ source: '#define lua_istable(L,n) (lua_type(L,n) == LUA_TTABLE)',
|
224
|
+
name: 'lua_istable',
|
225
|
+
input: %w[L n] },
|
226
|
+
{ source: '#define lua_isuserdata(L,n) (lua_type(L,n) == LUA_TUSERDATA)',
|
227
|
+
name: 'lua_isuserdata',
|
228
|
+
input: %w[L n] },
|
229
|
+
{ source: '#define lua_pop(L,n) lua_settop(L, -(n)-1)',
|
230
|
+
name: 'lua_pop',
|
231
|
+
input: %w[L n] },
|
232
|
+
{ source: '#define lua_pushcfunction(L,f) lua_pushcclosure(L, f, 0)',
|
233
|
+
name: 'lua_pushcfunction',
|
234
|
+
input: %w[L f] },
|
235
|
+
{ source: '#define lua_pushuserdata(L,u) lua_pushusertag(L, u, 0)',
|
236
|
+
name: 'lua_pushuserdata',
|
237
|
+
input: %w[L u] },
|
238
|
+
{ source: '#define lua_register(L,n,f) (lua_pushcfunction(L, f), lua_setglobal(L, n))',
|
239
|
+
name: 'lua_register',
|
240
|
+
input: %w[L n f] }]
|
241
|
+
}
|
242
|
+
end
|
243
|
+
end
|