Lines Matching refs:L

79 static int ucl_object_lua_push_array (lua_State *L, const ucl_object_t *obj, int flags);
80 static int ucl_object_lua_push_scalar (lua_State *L, const ucl_object_t *obj, int flags);
81 static int ucl_object_push_lua_common (lua_State *L, const ucl_object_t *obj, int flags);
82 static ucl_object_t* ucl_object_lua_fromtable (lua_State *L, int idx, ucl_string_flags_t flags);
83 static ucl_object_t* ucl_object_lua_fromelt (lua_State *L, int idx, ucl_string_flags_t flags);
106 ucl_object_lua_push_element (lua_State *L, const char *key, in ucl_object_lua_push_element() argument
109 lua_pushstring (L, key); in ucl_object_lua_push_element()
110 ucl_object_push_lua_common (L, obj, flags|LUA_UCL_ALLOW_ARRAY); in ucl_object_lua_push_element()
111 lua_settable (L, -3); in ucl_object_lua_push_element()
119 luaL_unref (fd->L, LUA_REGISTRYINDEX, fd->idx); in lua_ucl_userdata_dtor()
132 lua_rawgeti (fd->L, LUA_REGISTRYINDEX, fd->idx); in lua_ucl_userdata_emitter()
134 lua_pcall (fd->L, 0, 1, 0); in lua_ucl_userdata_emitter()
135 out = lua_tostring (fd->L, -1); in lua_ucl_userdata_emitter()
145 lua_settop (fd->L, 0); in lua_ucl_userdata_emitter()
157 ucl_object_lua_push_object (lua_State *L, const ucl_object_t *obj, in ucl_object_lua_push_object() argument
165 return ucl_object_lua_push_array (L, obj, flags); in ucl_object_lua_push_object()
168 lua_createtable (L, 0, obj->len); in ucl_object_lua_push_object()
172 ucl_object_lua_push_element (L, ucl_object_key (cur), cur, flags); in ucl_object_lua_push_object()
175 luaL_getmetatable (L, UCL_OBJECT_TYPE_META); in ucl_object_lua_push_object()
176 lua_setmetatable (L, -2); in ucl_object_lua_push_object()
188 ucl_object_lua_push_array (lua_State *L, const ucl_object_t *obj, int flags) in ucl_object_lua_push_array() argument
197 lua_createtable (L, nelt, 0); in ucl_object_lua_push_array()
200 ucl_object_push_lua (L, cur, (flags & ~LUA_UCL_ALLOW_ARRAY)); in ucl_object_lua_push_array()
201 lua_rawseti (L, -2, i); in ucl_object_lua_push_array()
205 luaL_getmetatable (L, UCL_ARRAY_TYPE_META); in ucl_object_lua_push_array()
206 lua_setmetatable (L, -2); in ucl_object_lua_push_array()
216 lua_createtable (L, nelt, 0); in ucl_object_lua_push_array()
219 ucl_object_push_lua (L, cur, (flags & ~LUA_UCL_ALLOW_ARRAY)); in ucl_object_lua_push_array()
220 lua_rawseti (L, -2, i); in ucl_object_lua_push_array()
224 luaL_getmetatable (L, UCL_IMPL_ARRAY_TYPE_META); in ucl_object_lua_push_array()
225 lua_setmetatable (L, -2); in ucl_object_lua_push_array()
235 ucl_object_lua_push_scalar (lua_State *L, const ucl_object_t *obj, in ucl_object_lua_push_scalar() argument
242 return ucl_object_lua_push_array (L, obj, flags); in ucl_object_lua_push_scalar()
247 lua_pushboolean (L, ucl_obj_toboolean (obj)); in ucl_object_lua_push_scalar()
250 lua_pushlstring (L, ucl_obj_tostring (obj), obj->len); in ucl_object_lua_push_scalar()
254 lua_pushinteger (L, ucl_obj_toint (obj)); in ucl_object_lua_push_scalar()
256 lua_pushnumber (L, ucl_obj_toint (obj)); in ucl_object_lua_push_scalar()
261 lua_pushnumber (L, ucl_obj_todouble (obj)); in ucl_object_lua_push_scalar()
265 lua_pushboolean (L, false); in ucl_object_lua_push_scalar()
268 lua_getfield (L, LUA_REGISTRYINDEX, "ucl.null"); in ucl_object_lua_push_scalar()
273 lua_rawgeti (L, LUA_REGISTRYINDEX, fd->idx); in ucl_object_lua_push_scalar()
276 lua_pushnil (L); in ucl_object_lua_push_scalar()
284 ucl_object_push_lua_common (lua_State *L, const ucl_object_t *obj, int flags) in ucl_object_push_lua_common() argument
288 return ucl_object_lua_push_object (L, obj, flags); in ucl_object_push_lua_common()
290 return ucl_object_lua_push_array (L, obj, flags); in ucl_object_push_lua_common()
292 return ucl_object_lua_push_scalar (L, obj, flags); in ucl_object_push_lua_common()
312 ucl_object_push_lua (lua_State *L, const ucl_object_t *obj, bool allow_array) in ucl_object_push_lua() argument
314 return ucl_object_push_lua_common (L, obj, in ucl_object_push_lua()
319 ucl_object_push_lua_filter_nil (lua_State *L, const ucl_object_t *obj, bool allow_array) in ucl_object_push_lua_filter_nil() argument
321 return ucl_object_push_lua_common (L, obj, in ucl_object_push_lua_filter_nil()
333 ucl_object_lua_fromtable (lua_State *L, int idx, ucl_string_flags_t flags) in ucl_object_lua_fromtable() argument
343 idx = lua_gettop (L) + idx + 1; in ucl_object_lua_fromtable()
347 if (luaL_getmetafield (L, idx, "class") != 0) { in ucl_object_lua_fromtable()
349 if (lua_type (L, -1) == LUA_TSTRING) { in ucl_object_lua_fromtable()
350 const char *classname = lua_tostring (L, -1); in ucl_object_lua_fromtable()
359 max = lua_rawlen (L, idx); in ucl_object_lua_fromtable()
361 max = lua_objlen (L, idx); in ucl_object_lua_fromtable()
369 max = lua_rawlen (L, idx); in ucl_object_lua_fromtable()
371 max = lua_objlen (L, idx); in ucl_object_lua_fromtable()
377 lua_pop (L, 1); in ucl_object_lua_fromtable()
382 lua_pushnil (L); in ucl_object_lua_fromtable()
384 while (lua_next (L, idx) != 0) { in ucl_object_lua_fromtable()
385 lua_pushvalue (L, -2); in ucl_object_lua_fromtable()
387 if (lua_type (L, -1) == LUA_TNUMBER) { in ucl_object_lua_fromtable()
388 double num = lua_tonumber (L, -1); in ucl_object_lua_fromtable()
404 lua_pop (L, 2); in ucl_object_lua_fromtable()
421 lua_pushinteger (L, i); in ucl_object_lua_fromtable()
422 lua_gettable (L, idx); in ucl_object_lua_fromtable()
424 obj = ucl_object_lua_fromelt (L, lua_gettop (L), flags); in ucl_object_lua_fromtable()
434 lua_pop (L, 1); in ucl_object_lua_fromtable()
438 lua_pushnil (L); in ucl_object_lua_fromtable()
442 while (lua_next (L, idx) != 0) { in ucl_object_lua_fromtable()
444 lua_pushvalue (L, -2); in ucl_object_lua_fromtable()
445 k = lua_tolstring (L, -1, &keylen); in ucl_object_lua_fromtable()
446 obj = ucl_object_lua_fromelt (L, lua_gettop (L) - 1, flags); in ucl_object_lua_fromtable()
458 lua_pop (L, 2); in ucl_object_lua_fromtable()
472 ucl_object_lua_fromelt (lua_State *L, int idx, ucl_string_flags_t flags) in ucl_object_lua_fromelt() argument
481 type = lua_type (L, idx); in ucl_object_lua_fromelt()
485 str = lua_tolstring (L, idx, &sz); in ucl_object_lua_fromelt()
504 num = lua_tonumber (L, idx); in ucl_object_lua_fromelt()
513 obj = ucl_object_frombool (lua_toboolean (L, idx)); in ucl_object_lua_fromelt()
516 if (lua_topointer (L, idx) == ucl_null) { in ucl_object_lua_fromelt()
521 struct _rspamd_lua_text *t = lua_touserdata (L, idx); in ucl_object_lua_fromelt()
541 if (luaL_getmetafield (L, idx, "__gen_ucl")) { in ucl_object_lua_fromelt()
542 if (lua_isfunction (L, -1)) { in ucl_object_lua_fromelt()
543 lua_settop (L, 3); /* gen, obj, func */ in ucl_object_lua_fromelt()
544 lua_insert (L, 1); /* func, gen, obj */ in ucl_object_lua_fromelt()
545 lua_insert (L, 2); /* func, obj, gen */ in ucl_object_lua_fromelt()
546 lua_call(L, 2, 1); in ucl_object_lua_fromelt()
547 obj = ucl_object_lua_fromelt (L, 1, flags); in ucl_object_lua_fromelt()
549 lua_pop (L, 2); in ucl_object_lua_fromelt()
553 obj = ucl_object_lua_fromtable (L, idx, flags); in ucl_object_lua_fromelt()
558 lua_pushvalue (L, idx); in ucl_object_lua_fromelt()
559 fd->L = L; in ucl_object_lua_fromelt()
561 fd->idx = luaL_ref (L, LUA_REGISTRYINDEX); in ucl_object_lua_fromelt()
584 ucl_object_lua_import (lua_State *L, int idx) in ucl_object_lua_import() argument
589 t = lua_type (L, idx); in ucl_object_lua_import()
592 obj = ucl_object_lua_fromtable (L, idx, UCL_STRING_RAW); in ucl_object_lua_import()
595 obj = ucl_object_lua_fromelt (L, idx, UCL_STRING_RAW); in ucl_object_lua_import()
612 ucl_object_lua_import_escape (lua_State *L, int idx) in ucl_object_lua_import_escape() argument
617 t = lua_type (L, idx); in ucl_object_lua_import_escape()
620 obj = ucl_object_lua_fromtable (L, idx, UCL_STRING_ESCAPE); in ucl_object_lua_import_escape()
623 obj = ucl_object_lua_fromelt (L, idx, UCL_STRING_ESCAPE); in ucl_object_lua_import_escape()
631 lua_ucl_to_string (lua_State *L, const ucl_object_t *obj, enum ucl_emitter type) in lua_ucl_to_string() argument
639 lua_pushlstring (L, (const char *)result, outlen); in lua_ucl_to_string()
643 lua_pushnil (L); in lua_ucl_to_string()
650 lua_ucl_parser_init (lua_State *L) in lua_ucl_parser_init() argument
661 if (lua_gettop (L) >= 1) { in lua_ucl_parser_init()
662 flags = lua_tonumber (L, 1); in lua_ucl_parser_init()
667 lua_pushnil (L); in lua_ucl_parser_init()
670 pparser = lua_newuserdata (L, sizeof (parser)); in lua_ucl_parser_init()
672 luaL_getmetatable (L, PARSER_META); in lua_ucl_parser_init()
673 lua_setmetatable (L, -2); in lua_ucl_parser_init()
679 lua_ucl_parser_get (lua_State *L, int index) in lua_ucl_parser_get() argument
681 return *((struct ucl_parser **) luaL_checkudata(L, index, PARSER_META)); in lua_ucl_parser_get()
685 lua_ucl_object_get (lua_State *L, int index) in lua_ucl_object_get() argument
687 return *((ucl_object_t **) luaL_checkudata(L, index, OBJECT_META)); in lua_ucl_object_get()
691 lua_ucl_push_opaque (lua_State *L, ucl_object_t *obj) in lua_ucl_push_opaque() argument
695 pobj = lua_newuserdata (L, sizeof (*pobj)); in lua_ucl_push_opaque()
697 luaL_getmetatable (L, OBJECT_META); in lua_ucl_push_opaque()
698 lua_setmetatable (L, -2); in lua_ucl_push_opaque()
738 lua_ucl_parser_parse_file (lua_State *L) in lua_ucl_parser_parse_file() argument
744 parser = lua_ucl_parser_get (L, 1); in lua_ucl_parser_parse_file()
745 file = luaL_checkstring (L, 2); in lua_ucl_parser_parse_file()
749 lua_pushboolean (L, true); in lua_ucl_parser_parse_file()
753 lua_pushboolean (L, false); in lua_ucl_parser_parse_file()
754 lua_pushstring (L, ucl_parser_get_error (parser)); in lua_ucl_parser_parse_file()
758 lua_pushboolean (L, false); in lua_ucl_parser_parse_file()
759 lua_pushstring (L, "invalid arguments"); in lua_ucl_parser_parse_file()
776 lua_ucl_parser_register_variable (lua_State *L) in lua_ucl_parser_register_variable() argument
782 parser = lua_ucl_parser_get (L, 1); in lua_ucl_parser_register_variable()
783 name = luaL_checkstring (L, 2); in lua_ucl_parser_register_variable()
784 value = luaL_checkstring (L, 3); in lua_ucl_parser_register_variable()
788 lua_pushboolean (L, true); in lua_ucl_parser_register_variable()
792 return luaL_error (L, "invalid arguments"); in lua_ucl_parser_register_variable()
808 lua_ucl_parser_register_variables (lua_State *L) in lua_ucl_parser_register_variables() argument
814 parser = lua_ucl_parser_get (L, 1); in lua_ucl_parser_register_variables()
816 if (parser != NULL && lua_type (L, 2) == LUA_TTABLE) { in lua_ucl_parser_register_variables()
817 for (lua_pushnil (L); lua_next (L, 2); lua_pop (L, 1)) { in lua_ucl_parser_register_variables()
818 lua_pushvalue (L, -2); in lua_ucl_parser_register_variables()
819 name = luaL_checkstring (L, -1); in lua_ucl_parser_register_variables()
820 value = luaL_checkstring (L, -2); in lua_ucl_parser_register_variables()
822 lua_pop (L, 1); in lua_ucl_parser_register_variables()
825 lua_pushboolean (L, true); in lua_ucl_parser_register_variables()
829 return luaL_error (L, "invalid arguments"); in lua_ucl_parser_register_variables()
842 lua_ucl_parser_parse_string (lua_State *L) in lua_ucl_parser_parse_string() argument
850 parser = lua_ucl_parser_get (L, 1); in lua_ucl_parser_parse_string()
851 string = luaL_checklstring (L, 2, &llen); in lua_ucl_parser_parse_string()
853 if (lua_type (L, 3) == LUA_TSTRING) { in lua_ucl_parser_parse_string()
854 type = lua_ucl_str_to_parse_type (lua_tostring (L, 3)); in lua_ucl_parser_parse_string()
860 lua_pushboolean (L, true); in lua_ucl_parser_parse_string()
864 lua_pushboolean (L, false); in lua_ucl_parser_parse_string()
865 lua_pushstring (L, ucl_parser_get_error (parser)); in lua_ucl_parser_parse_string()
869 lua_pushboolean (L, false); in lua_ucl_parser_parse_string()
870 lua_pushstring (L, "invalid arguments"); in lua_ucl_parser_parse_string()
883 lua_ucl_parser_parse_text (lua_State *L) in lua_ucl_parser_parse_text() argument
890 parser = lua_ucl_parser_get (L, 1); in lua_ucl_parser_parse_text()
892 if (lua_type (L, 2) == LUA_TUSERDATA) { in lua_ucl_parser_parse_text()
893 t = lua_touserdata (L, 2); in lua_ucl_parser_parse_text()
895 else if (lua_type (L, 2) == LUA_TSTRING) { in lua_ucl_parser_parse_text()
900 s = lua_tolstring (L, 2, &len); in lua_ucl_parser_parse_text()
907 return luaL_error(L, "invalid argument as input, expected userdata or a string"); in lua_ucl_parser_parse_text()
910 if (lua_type (L, 3) == LUA_TSTRING) { in lua_ucl_parser_parse_text()
911 type = lua_ucl_str_to_parse_type (lua_tostring (L, 3)); in lua_ucl_parser_parse_text()
917 lua_pushboolean (L, true); in lua_ucl_parser_parse_text()
921 lua_pushboolean (L, false); in lua_ucl_parser_parse_text()
922 lua_pushstring (L, ucl_parser_get_error (parser)); in lua_ucl_parser_parse_text()
926 lua_pushboolean (L, false); in lua_ucl_parser_parse_text()
927 lua_pushstring (L, "invalid arguments"); in lua_ucl_parser_parse_text()
939 lua_ucl_parser_get_object (lua_State *L) in lua_ucl_parser_get_object() argument
945 parser = lua_ucl_parser_get (L, 1); in lua_ucl_parser_get_object()
949 ret = ucl_object_push_lua (L, obj, false); in lua_ucl_parser_get_object()
954 lua_pushnil (L); in lua_ucl_parser_get_object()
967 lua_ucl_parser_get_object_wrapped (lua_State *L) in lua_ucl_parser_get_object_wrapped() argument
973 parser = lua_ucl_parser_get (L, 1); in lua_ucl_parser_get_object_wrapped()
977 lua_ucl_push_opaque (L, obj); in lua_ucl_parser_get_object_wrapped()
980 lua_pushnil (L); in lua_ucl_parser_get_object_wrapped()
996 lua_ucl_parser_validate (lua_State *L) in lua_ucl_parser_validate() argument
1003 parser = lua_ucl_parser_get (L, 1); in lua_ucl_parser_validate()
1006 if (lua_type (L, 2) == LUA_TTABLE) { in lua_ucl_parser_validate()
1007 schema = ucl_object_lua_import (L, 2); in lua_ucl_parser_validate()
1010 lua_pushboolean (L, false); in lua_ucl_parser_validate()
1011 lua_pushstring (L, "cannot load schema from lua table"); in lua_ucl_parser_validate()
1016 else if (lua_type (L, 2) == LUA_TSTRING) { in lua_ucl_parser_validate()
1018 schema_file = luaL_checkstring (L, 2); in lua_ucl_parser_validate()
1021 lua_pushboolean (L, false); in lua_ucl_parser_validate()
1022 lua_pushfstring (L, "cannot parse schema file \"%s\": " in lua_ucl_parser_validate()
1033 lua_pushboolean (L, false); in lua_ucl_parser_validate()
1034 lua_pushstring (L, "invalid schema argument"); in lua_ucl_parser_validate()
1040 lua_pushboolean (L, false); in lua_ucl_parser_validate()
1041 lua_pushfstring (L, "validation error: " in lua_ucl_parser_validate()
1045 lua_pushboolean (L, true); in lua_ucl_parser_validate()
1046 lua_pushnil (L); in lua_ucl_parser_validate()
1052 lua_pushboolean (L, false); in lua_ucl_parser_validate()
1053 lua_pushstring (L, "invalid parser or empty top object"); in lua_ucl_parser_validate()
1060 lua_ucl_parser_gc (lua_State *L) in lua_ucl_parser_gc() argument
1064 parser = lua_ucl_parser_get (L, 1); in lua_ucl_parser_gc()
1076 lua_ucl_object_unwrap (lua_State *L) in lua_ucl_object_unwrap() argument
1080 obj = lua_ucl_object_get (L, 1); in lua_ucl_object_unwrap()
1083 ucl_object_push_lua (L, obj, true); in lua_ucl_object_unwrap()
1086 lua_pushnil (L); in lua_ucl_object_unwrap()
1128 lua_ucl_object_tostring (lua_State *L) in lua_ucl_object_tostring() argument
1133 obj = lua_ucl_object_get (L, 1); in lua_ucl_object_tostring()
1136 if (lua_gettop (L) > 1) { in lua_ucl_object_tostring()
1137 if (lua_type (L, 2) == LUA_TSTRING) { in lua_ucl_object_tostring()
1138 const char *strtype = lua_tostring (L, 2); in lua_ucl_object_tostring()
1144 return lua_ucl_to_string (L, obj, format); in lua_ucl_object_tostring()
1147 lua_pushnil (L); in lua_ucl_object_tostring()
1166 lua_ucl_object_validate (lua_State *L) in lua_ucl_object_validate() argument
1174 obj = lua_ucl_object_get (L, 1); in lua_ucl_object_validate()
1175 schema = lua_ucl_object_get (L, 2); in lua_ucl_object_validate()
1178 if (lua_gettop (L) > 2) { in lua_ucl_object_validate()
1179 if (lua_type (L, 3) == LUA_TSTRING) { in lua_ucl_object_validate()
1180 path = lua_tostring (L, 3); in lua_ucl_object_validate()
1185 else if (lua_type (L, 3) == LUA_TUSERDATA || lua_type (L, 3) == in lua_ucl_object_validate()
1188 ext_refs = lua_ucl_object_get (L, 3); in lua_ucl_object_validate()
1191 if (lua_gettop (L) > 3) { in lua_ucl_object_validate()
1192 if (lua_type (L, 4) == LUA_TUSERDATA || lua_type (L, 4) == in lua_ucl_object_validate()
1195 ext_refs = lua_ucl_object_get (L, 4); in lua_ucl_object_validate()
1213 lua_pushboolean (L, res); in lua_ucl_object_validate()
1214 lua_pushnil (L); in lua_ucl_object_validate()
1217 lua_ucl_push_opaque (L, ext_refs); in lua_ucl_object_validate()
1221 lua_pushboolean (L, res); in lua_ucl_object_validate()
1222 lua_pushfstring (L, "validation error: %s", err.msg); in lua_ucl_object_validate()
1225 lua_ucl_push_opaque (L, ext_refs); in lua_ucl_object_validate()
1230 lua_pushboolean (L, res); in lua_ucl_object_validate()
1232 lua_pushfstring (L, "cannot find the requested path: %s", path); in lua_ucl_object_validate()
1235 lua_ucl_push_opaque (L, ext_refs); in lua_ucl_object_validate()
1240 lua_pushboolean (L, res); in lua_ucl_object_validate()
1241 lua_pushstring (L, "invalid object or schema"); in lua_ucl_object_validate()
1252 lua_ucl_object_gc (lua_State *L) in lua_ucl_object_gc() argument
1256 obj = lua_ucl_object_get (L, 1); in lua_ucl_object_gc()
1264 lua_ucl_parser_mt (lua_State *L) in lua_ucl_parser_mt() argument
1266 luaL_newmetatable (L, PARSER_META); in lua_ucl_parser_mt()
1268 lua_pushvalue(L, -1); in lua_ucl_parser_mt()
1269 lua_setfield(L, -2, "__index"); in lua_ucl_parser_mt()
1271 lua_pushcfunction (L, lua_ucl_parser_gc); in lua_ucl_parser_mt()
1272 lua_setfield (L, -2, "__gc"); in lua_ucl_parser_mt()
1274 lua_pushcfunction (L, lua_ucl_parser_parse_file); in lua_ucl_parser_mt()
1275 lua_setfield (L, -2, "parse_file"); in lua_ucl_parser_mt()
1277 lua_pushcfunction (L, lua_ucl_parser_parse_string); in lua_ucl_parser_mt()
1278 lua_setfield (L, -2, "parse_string"); in lua_ucl_parser_mt()
1280 lua_pushcfunction (L, lua_ucl_parser_parse_text); in lua_ucl_parser_mt()
1281 lua_setfield (L, -2, "parse_text"); in lua_ucl_parser_mt()
1283 lua_pushcfunction (L, lua_ucl_parser_register_variable); in lua_ucl_parser_mt()
1284 lua_setfield (L, -2, "register_variable"); in lua_ucl_parser_mt()
1286 lua_pushcfunction (L, lua_ucl_parser_register_variables); in lua_ucl_parser_mt()
1287 lua_setfield (L, -2, "register_variables"); in lua_ucl_parser_mt()
1289 lua_pushcfunction (L, lua_ucl_parser_get_object); in lua_ucl_parser_mt()
1290 lua_setfield (L, -2, "get_object"); in lua_ucl_parser_mt()
1292 lua_pushcfunction (L, lua_ucl_parser_get_object_wrapped); in lua_ucl_parser_mt()
1293 lua_setfield (L, -2, "get_object_wrapped"); in lua_ucl_parser_mt()
1295 lua_pushcfunction (L, lua_ucl_parser_validate); in lua_ucl_parser_mt()
1296 lua_setfield (L, -2, "validate"); in lua_ucl_parser_mt()
1298 lua_pop (L, 1); in lua_ucl_parser_mt()
1302 lua_ucl_object_mt (lua_State *L) in lua_ucl_object_mt() argument
1304 luaL_newmetatable (L, OBJECT_META); in lua_ucl_object_mt()
1306 lua_pushvalue(L, -1); in lua_ucl_object_mt()
1307 lua_setfield(L, -2, "__index"); in lua_ucl_object_mt()
1309 lua_pushcfunction (L, lua_ucl_object_gc); in lua_ucl_object_mt()
1310 lua_setfield (L, -2, "__gc"); in lua_ucl_object_mt()
1312 lua_pushcfunction (L, lua_ucl_object_tostring); in lua_ucl_object_mt()
1313 lua_setfield (L, -2, "__tostring"); in lua_ucl_object_mt()
1315 lua_pushcfunction (L, lua_ucl_object_tostring); in lua_ucl_object_mt()
1316 lua_setfield (L, -2, "tostring"); in lua_ucl_object_mt()
1318 lua_pushcfunction (L, lua_ucl_object_unwrap); in lua_ucl_object_mt()
1319 lua_setfield (L, -2, "unwrap"); in lua_ucl_object_mt()
1321 lua_pushcfunction (L, lua_ucl_object_unwrap); in lua_ucl_object_mt()
1322 lua_setfield (L, -2, "tolua"); in lua_ucl_object_mt()
1324 lua_pushcfunction (L, lua_ucl_object_validate); in lua_ucl_object_mt()
1325 lua_setfield (L, -2, "validate"); in lua_ucl_object_mt()
1327 lua_pushstring (L, OBJECT_META); in lua_ucl_object_mt()
1328 lua_setfield (L, -2, "class"); in lua_ucl_object_mt()
1330 lua_pop (L, 1); in lua_ucl_object_mt()
1334 lua_ucl_types_mt (lua_State *L) in lua_ucl_types_mt() argument
1336 luaL_newmetatable (L, UCL_OBJECT_TYPE_META); in lua_ucl_types_mt()
1338 lua_pushcfunction (L, lua_ucl_object_tostring); in lua_ucl_types_mt()
1339 lua_setfield (L, -2, "__tostring"); in lua_ucl_types_mt()
1341 lua_pushcfunction (L, lua_ucl_object_tostring); in lua_ucl_types_mt()
1342 lua_setfield (L, -2, "tostring"); in lua_ucl_types_mt()
1344 lua_pushstring (L, UCL_OBJECT_TYPE_META); in lua_ucl_types_mt()
1345 lua_setfield (L, -2, "class"); in lua_ucl_types_mt()
1347 lua_pop (L, 1); in lua_ucl_types_mt()
1349 luaL_newmetatable (L, UCL_ARRAY_TYPE_META); in lua_ucl_types_mt()
1351 lua_pushcfunction (L, lua_ucl_object_tostring); in lua_ucl_types_mt()
1352 lua_setfield (L, -2, "__tostring"); in lua_ucl_types_mt()
1354 lua_pushcfunction (L, lua_ucl_object_tostring); in lua_ucl_types_mt()
1355 lua_setfield (L, -2, "tostring"); in lua_ucl_types_mt()
1357 lua_pushstring (L, UCL_ARRAY_TYPE_META); in lua_ucl_types_mt()
1358 lua_setfield (L, -2, "class"); in lua_ucl_types_mt()
1360 lua_pop (L, 1); in lua_ucl_types_mt()
1362 luaL_newmetatable (L, UCL_IMPL_ARRAY_TYPE_META); in lua_ucl_types_mt()
1364 lua_pushcfunction (L, lua_ucl_object_tostring); in lua_ucl_types_mt()
1365 lua_setfield (L, -2, "__tostring"); in lua_ucl_types_mt()
1367 lua_pushcfunction (L, lua_ucl_object_tostring); in lua_ucl_types_mt()
1368 lua_setfield (L, -2, "tostring"); in lua_ucl_types_mt()
1370 lua_pushstring (L, UCL_IMPL_ARRAY_TYPE_META); in lua_ucl_types_mt()
1371 lua_setfield (L, -2, "class"); in lua_ucl_types_mt()
1373 lua_pop (L, 1); in lua_ucl_types_mt()
1377 lua_ucl_to_json (lua_State *L) in lua_ucl_to_json() argument
1382 if (lua_gettop (L) > 1) { in lua_ucl_to_json()
1383 if (lua_toboolean (L, 2)) { in lua_ucl_to_json()
1388 obj = ucl_object_lua_import (L, 1); in lua_ucl_to_json()
1390 lua_ucl_to_string (L, obj, format); in lua_ucl_to_json()
1394 lua_pushnil (L); in lua_ucl_to_json()
1401 lua_ucl_to_config (lua_State *L) in lua_ucl_to_config() argument
1405 obj = ucl_object_lua_import (L, 1); in lua_ucl_to_config()
1407 lua_ucl_to_string (L, obj, UCL_EMIT_CONFIG); in lua_ucl_to_config()
1411 lua_pushnil (L); in lua_ucl_to_config()
1452 lua_ucl_to_format (lua_State *L) in lua_ucl_to_format() argument
1458 if (lua_gettop (L) > 1) { in lua_ucl_to_format()
1459 if (lua_type (L, 2) == LUA_TNUMBER) { in lua_ucl_to_format()
1460 format = lua_tonumber (L, 2); in lua_ucl_to_format()
1462 lua_pushnil (L); in lua_ucl_to_format()
1466 else if (lua_type (L, 2) == LUA_TSTRING) { in lua_ucl_to_format()
1467 const char *strtype = lua_tostring (L, 2); in lua_ucl_to_format()
1488 if (lua_isboolean (L, 3)) { in lua_ucl_to_format()
1489 sort = lua_toboolean (L, 3); in lua_ucl_to_format()
1493 obj = ucl_object_lua_import (L, 1); in lua_ucl_to_format()
1503 lua_ucl_to_string (L, obj, format); in lua_ucl_to_format()
1507 lua_pushnil (L); in lua_ucl_to_format()
1514 lua_ucl_null_tostring (lua_State* L) in lua_ucl_null_tostring() argument
1516 lua_pushstring (L, "null"); in lua_ucl_null_tostring()
1521 lua_ucl_null_mt (lua_State *L) in lua_ucl_null_mt() argument
1523 luaL_newmetatable (L, NULL_META); in lua_ucl_null_mt()
1525 lua_pushcfunction (L, lua_ucl_null_tostring); in lua_ucl_null_mt()
1526 lua_setfield (L, -2, "__tostring"); in lua_ucl_null_mt()
1528 lua_pop (L, 1); in lua_ucl_null_mt()
1532 luaopen_ucl (lua_State *L) in luaopen_ucl() argument
1534 lua_ucl_parser_mt (L); in luaopen_ucl()
1535 lua_ucl_null_mt (L); in luaopen_ucl()
1536 lua_ucl_object_mt (L); in luaopen_ucl()
1537 lua_ucl_types_mt (L); in luaopen_ucl()
1540 lua_createtable (L, 0, 2); in luaopen_ucl()
1541 lua_pushliteral (L, "v"); /* tbl, "v" */ in luaopen_ucl()
1542 lua_setfield (L, -2, "__mode"); in luaopen_ucl()
1543 lua_pushvalue (L, -1); /* tbl, tbl */ in luaopen_ucl()
1544 lua_setmetatable (L, -2); /* tbl */ in luaopen_ucl()
1545 lua_setfield (L, LUA_REGISTRYINDEX, "ucl.refs"); in luaopen_ucl()
1547 lua_newtable (L); in luaopen_ucl()
1549 lua_pushcfunction (L, lua_ucl_parser_init); in luaopen_ucl()
1550 lua_setfield (L, -2, "parser"); in luaopen_ucl()
1552 lua_pushcfunction (L, lua_ucl_to_json); in luaopen_ucl()
1553 lua_setfield (L, -2, "to_json"); in luaopen_ucl()
1555 lua_pushcfunction (L, lua_ucl_to_config); in luaopen_ucl()
1556 lua_setfield (L, -2, "to_config"); in luaopen_ucl()
1558 lua_pushcfunction (L, lua_ucl_to_format); in luaopen_ucl()
1559 lua_setfield (L, -2, "to_format"); in luaopen_ucl()
1561 ucl_null = lua_newuserdata (L, 0); in luaopen_ucl()
1562 luaL_getmetatable (L, NULL_META); in luaopen_ucl()
1563 lua_setmetatable (L, -2); in luaopen_ucl()
1565 lua_pushvalue (L, -1); in luaopen_ucl()
1566 lua_setfield (L, LUA_REGISTRYINDEX, "ucl.null"); in luaopen_ucl()
1568 lua_setfield (L, -2, "null"); in luaopen_ucl()