Lines Matching full:l

77 static int ucl_object_lua_push_array (lua_State *L, const ucl_object_t *obj, int flags);
78 static int ucl_object_lua_push_scalar (lua_State *L, const ucl_object_t *obj, int flags);
79 static int ucl_object_push_lua_common (lua_State *L, const ucl_object_t *obj, int flags);
80 static ucl_object_t* ucl_object_lua_fromtable (lua_State *L, int idx, ucl_string_flags_t flags);
81 static ucl_object_t* ucl_object_lua_fromelt (lua_State *L, int idx, ucl_string_flags_t flags);
94 * @param L
99 ucl_object_lua_push_element (lua_State *L, const char *key, in ucl_object_lua_push_element() argument
102 lua_pushstring (L, key); in ucl_object_lua_push_element()
103 ucl_object_push_lua_common (L, obj, flags|LUA_UCL_ALLOW_ARRAY); in ucl_object_lua_push_element()
104 lua_settable (L, -3); in ucl_object_lua_push_element()
112 luaL_unref (fd->L, LUA_REGISTRYINDEX, fd->idx); in lua_ucl_userdata_dtor()
125 lua_rawgeti (fd->L, LUA_REGISTRYINDEX, fd->idx); in lua_ucl_userdata_emitter()
127 lua_pcall (fd->L, 0, 1, 0); in lua_ucl_userdata_emitter()
128 out = lua_tostring (fd->L, -1); in lua_ucl_userdata_emitter()
138 lua_settop (fd->L, 0); in lua_ucl_userdata_emitter()
145 * @param L
150 ucl_object_lua_push_object (lua_State *L, const ucl_object_t *obj, in ucl_object_lua_push_object() argument
158 return ucl_object_lua_push_array (L, obj, flags); in ucl_object_lua_push_object()
161 lua_createtable (L, 0, obj->len); in ucl_object_lua_push_object()
165 ucl_object_lua_push_element (L, ucl_object_key (cur), cur, flags); in ucl_object_lua_push_object()
168 luaL_getmetatable (L, UCL_OBJECT_TYPE_META); in ucl_object_lua_push_object()
169 lua_setmetatable (L, -2); in ucl_object_lua_push_object()
176 * @param L
181 ucl_object_lua_push_array (lua_State *L, const ucl_object_t *obj, int flags) in ucl_object_lua_push_array() argument
190 lua_createtable (L, nelt, 0); in ucl_object_lua_push_array()
193 ucl_object_push_lua (L, cur, (flags & ~LUA_UCL_ALLOW_ARRAY)); in ucl_object_lua_push_array()
194 lua_rawseti (L, -2, i); in ucl_object_lua_push_array()
198 luaL_getmetatable (L, UCL_ARRAY_TYPE_META); in ucl_object_lua_push_array()
199 lua_setmetatable (L, -2); in ucl_object_lua_push_array()
209 lua_createtable (L, nelt, 0); in ucl_object_lua_push_array()
212 ucl_object_push_lua (L, cur, (flags & ~LUA_UCL_ALLOW_ARRAY)); in ucl_object_lua_push_array()
213 lua_rawseti (L, -2, i); in ucl_object_lua_push_array()
217 luaL_getmetatable (L, UCL_IMPL_ARRAY_TYPE_META); in ucl_object_lua_push_array()
218 lua_setmetatable (L, -2); in ucl_object_lua_push_array()
228 ucl_object_lua_push_scalar (lua_State *L, const ucl_object_t *obj, in ucl_object_lua_push_scalar() argument
235 return ucl_object_lua_push_array (L, obj, flags); in ucl_object_lua_push_scalar()
240 lua_pushboolean (L, ucl_obj_toboolean (obj)); in ucl_object_lua_push_scalar()
243 lua_pushstring (L, ucl_obj_tostring (obj)); in ucl_object_lua_push_scalar()
247 lua_pushinteger (L, ucl_obj_toint (obj)); in ucl_object_lua_push_scalar()
249 lua_pushnumber (L, ucl_obj_toint (obj)); in ucl_object_lua_push_scalar()
254 lua_pushnumber (L, ucl_obj_todouble (obj)); in ucl_object_lua_push_scalar()
258 lua_pushboolean (L, false); in ucl_object_lua_push_scalar()
261 lua_getfield (L, LUA_REGISTRYINDEX, "ucl.null"); in ucl_object_lua_push_scalar()
266 lua_rawgeti (L, LUA_REGISTRYINDEX, fd->idx); in ucl_object_lua_push_scalar()
269 lua_pushnil (L); in ucl_object_lua_push_scalar()
277 ucl_object_push_lua_common (lua_State *L, const ucl_object_t *obj, int flags) in ucl_object_push_lua_common() argument
281 return ucl_object_lua_push_object (L, obj, flags); in ucl_object_push_lua_common()
283 return ucl_object_lua_push_array (L, obj, flags); in ucl_object_push_lua_common()
285 return ucl_object_lua_push_scalar (L, obj, flags); in ucl_object_push_lua_common()
290 * @function ucl_object_push_lua(L, obj, allow_array)
299 * @param {lua_State} L lua state pointer
305 ucl_object_push_lua (lua_State *L, const ucl_object_t *obj, bool allow_array) in ucl_object_push_lua() argument
307 return ucl_object_push_lua_common (L, obj, in ucl_object_push_lua()
312 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
314 return ucl_object_push_lua_common (L, obj, in ucl_object_push_lua_filter_nil()
321 * @param L
326 ucl_object_lua_fromtable (lua_State *L, int idx, ucl_string_flags_t flags) in ucl_object_lua_fromtable() argument
336 idx = lua_gettop (L) + idx + 1; in ucl_object_lua_fromtable()
340 if (luaL_getmetafield (L, idx, "class") != 0) { in ucl_object_lua_fromtable()
342 if (lua_type (L, -1) == LUA_TSTRING) { in ucl_object_lua_fromtable()
343 const char *classname = lua_tostring (L, -1); in ucl_object_lua_fromtable()
352 max = lua_rawlen (L, idx); in ucl_object_lua_fromtable()
354 max = lua_objlen (L, idx); in ucl_object_lua_fromtable()
362 max = lua_rawlen (L, idx); in ucl_object_lua_fromtable()
364 max = lua_objlen (L, idx); in ucl_object_lua_fromtable()
370 lua_pop (L, 1); in ucl_object_lua_fromtable()
375 lua_pushnil (L); in ucl_object_lua_fromtable()
377 while (lua_next (L, idx) != 0) { in ucl_object_lua_fromtable()
378 lua_pushvalue (L, -2); in ucl_object_lua_fromtable()
380 if (lua_type (L, -1) == LUA_TNUMBER) { in ucl_object_lua_fromtable()
381 double num = lua_tonumber (L, -1); in ucl_object_lua_fromtable()
397 lua_pop (L, 2); in ucl_object_lua_fromtable()
415 lua_pushinteger (L, i); in ucl_object_lua_fromtable()
416 lua_gettable (L, idx); in ucl_object_lua_fromtable()
418 obj = ucl_object_lua_fromelt (L, lua_gettop (L), flags); in ucl_object_lua_fromtable()
428 lua_pop (L, 1); in ucl_object_lua_fromtable()
432 lua_pushnil (L); in ucl_object_lua_fromtable()
436 while (lua_next (L, idx) != 0) { in ucl_object_lua_fromtable()
438 lua_pushvalue (L, -2); in ucl_object_lua_fromtable()
439 k = lua_tolstring (L, -1, &keylen); in ucl_object_lua_fromtable()
440 obj = ucl_object_lua_fromelt (L, lua_gettop (L) - 1, flags); in ucl_object_lua_fromtable()
452 lua_pop (L, 2); in ucl_object_lua_fromtable()
461 * @param L
466 ucl_object_lua_fromelt (lua_State *L, int idx, ucl_string_flags_t flags) in ucl_object_lua_fromelt() argument
475 type = lua_type (L, idx); in ucl_object_lua_fromelt()
479 str = lua_tolstring (L, idx, &sz); in ucl_object_lua_fromelt()
489 num = lua_tonumber (L, idx); in ucl_object_lua_fromelt()
498 obj = ucl_object_frombool (lua_toboolean (L, idx)); in ucl_object_lua_fromelt()
501 if (lua_topointer (L, idx) == ucl_null) { in ucl_object_lua_fromelt()
508 if (luaL_getmetafield (L, idx, "__gen_ucl")) { in ucl_object_lua_fromelt()
509 if (lua_isfunction (L, -1)) { in ucl_object_lua_fromelt()
510 lua_settop (L, 3); /* gen, obj, func */ in ucl_object_lua_fromelt()
511 lua_insert (L, 1); /* func, gen, obj */ in ucl_object_lua_fromelt()
512 lua_insert (L, 2); /* func, obj, gen */ in ucl_object_lua_fromelt()
513 lua_call(L, 2, 1); in ucl_object_lua_fromelt()
514 obj = ucl_object_lua_fromelt (L, 1, flags); in ucl_object_lua_fromelt()
516 lua_pop (L, 2); in ucl_object_lua_fromelt()
520 obj = ucl_object_lua_fromtable (L, idx, flags); in ucl_object_lua_fromelt()
525 lua_pushvalue (L, idx); in ucl_object_lua_fromelt()
526 fd->L = L; in ucl_object_lua_fromelt()
528 fd->idx = luaL_ref (L, LUA_REGISTRYINDEX); in ucl_object_lua_fromelt()
542 * @function ucl_object_lua_import(L, idx)
545 * @param {lua_state} L lua state machine pointer
551 ucl_object_lua_import (lua_State *L, int idx) in ucl_object_lua_import() argument
556 t = lua_type (L, idx); in ucl_object_lua_import()
559 obj = ucl_object_lua_fromtable (L, idx, 0); in ucl_object_lua_import()
562 obj = ucl_object_lua_fromelt (L, idx, 0); in ucl_object_lua_import()
570 * @function ucl_object_lua_import_escape(L, idx)
573 * @param {lua_state} L lua state machine pointer
579 ucl_object_lua_import_escape (lua_State *L, int idx) in ucl_object_lua_import_escape() argument
584 t = lua_type (L, idx); in ucl_object_lua_import_escape()
587 obj = ucl_object_lua_fromtable (L, idx, UCL_STRING_RAW); in ucl_object_lua_import_escape()
590 obj = ucl_object_lua_fromelt (L, idx, UCL_STRING_RAW); in ucl_object_lua_import_escape()
598 lua_ucl_to_string (lua_State *L, const ucl_object_t *obj, enum ucl_emitter type) in lua_ucl_to_string() argument
605 lua_pushstring (L, (const char *)result); in lua_ucl_to_string()
609 lua_pushnil (L); in lua_ucl_to_string()
616 lua_ucl_parser_init (lua_State *L) in lua_ucl_parser_init() argument
621 if (lua_gettop (L) >= 1) { in lua_ucl_parser_init()
622 flags = lua_tonumber (L, 1); in lua_ucl_parser_init()
627 lua_pushnil (L); in lua_ucl_parser_init()
631 pparser = lua_newuserdata (L, sizeof (parser)); in lua_ucl_parser_init()
633 luaL_getmetatable (L, PARSER_META); in lua_ucl_parser_init()
634 lua_setmetatable (L, -2); in lua_ucl_parser_init()
640 lua_ucl_parser_get (lua_State *L, int index) in lua_ucl_parser_get() argument
642 return *((struct ucl_parser **) luaL_checkudata(L, index, PARSER_META)); in lua_ucl_parser_get()
646 lua_ucl_object_get (lua_State *L, int index) in lua_ucl_object_get() argument
648 return *((ucl_object_t **) luaL_checkudata(L, index, OBJECT_META)); in lua_ucl_object_get()
652 lua_ucl_push_opaque (lua_State *L, ucl_object_t *obj) in lua_ucl_push_opaque() argument
656 pobj = lua_newuserdata (L, sizeof (*pobj)); in lua_ucl_push_opaque()
658 luaL_getmetatable (L, OBJECT_META); in lua_ucl_push_opaque()
659 lua_setmetatable (L, -2); in lua_ucl_push_opaque()
699 lua_ucl_parser_parse_file (lua_State *L) in lua_ucl_parser_parse_file() argument
705 parser = lua_ucl_parser_get (L, 1); in lua_ucl_parser_parse_file()
706 file = luaL_checkstring (L, 2); in lua_ucl_parser_parse_file()
710 lua_pushboolean (L, true); in lua_ucl_parser_parse_file()
714 lua_pushboolean (L, false); in lua_ucl_parser_parse_file()
715 lua_pushstring (L, ucl_parser_get_error (parser)); in lua_ucl_parser_parse_file()
719 lua_pushboolean (L, false); in lua_ucl_parser_parse_file()
720 lua_pushstring (L, "invalid arguments"); in lua_ucl_parser_parse_file()
737 lua_ucl_parser_register_variable (lua_State *L) in lua_ucl_parser_register_variable() argument
743 parser = lua_ucl_parser_get (L, 1); in lua_ucl_parser_register_variable()
744 name = luaL_checkstring (L, 2); in lua_ucl_parser_register_variable()
745 value = luaL_checkstring (L, 3); in lua_ucl_parser_register_variable()
749 lua_pushboolean (L, true); in lua_ucl_parser_register_variable()
753 return luaL_error (L, "invalid arguments"); in lua_ucl_parser_register_variable()
769 lua_ucl_parser_register_variables (lua_State *L) in lua_ucl_parser_register_variables() argument
775 parser = lua_ucl_parser_get (L, 1); in lua_ucl_parser_register_variables()
777 if (parser != NULL && lua_type (L, 2) == LUA_TTABLE) { in lua_ucl_parser_register_variables()
778 for (lua_pushnil (L); lua_next (L, 2); lua_pop (L, 1)) { in lua_ucl_parser_register_variables()
779 lua_pushvalue (L, -2); in lua_ucl_parser_register_variables()
780 name = luaL_checkstring (L, -1); in lua_ucl_parser_register_variables()
781 value = luaL_checkstring (L, -2); in lua_ucl_parser_register_variables()
783 lua_pop (L, 1); in lua_ucl_parser_register_variables()
786 lua_pushboolean (L, true); in lua_ucl_parser_register_variables()
790 return luaL_error (L, "invalid arguments"); in lua_ucl_parser_register_variables()
803 lua_ucl_parser_parse_string (lua_State *L) in lua_ucl_parser_parse_string() argument
811 parser = lua_ucl_parser_get (L, 1); in lua_ucl_parser_parse_string()
812 string = luaL_checklstring (L, 2, &llen); in lua_ucl_parser_parse_string()
814 if (lua_type (L, 3) == LUA_TSTRING) { in lua_ucl_parser_parse_string()
815 type = lua_ucl_str_to_parse_type (lua_tostring (L, 3)); in lua_ucl_parser_parse_string()
821 lua_pushboolean (L, true); in lua_ucl_parser_parse_string()
825 lua_pushboolean (L, false); in lua_ucl_parser_parse_string()
826 lua_pushstring (L, ucl_parser_get_error (parser)); in lua_ucl_parser_parse_string()
830 lua_pushboolean (L, false); in lua_ucl_parser_parse_string()
831 lua_pushstring (L, "invalid arguments"); in lua_ucl_parser_parse_string()
850 lua_ucl_parser_parse_text (lua_State *L) in lua_ucl_parser_parse_text() argument
857 parser = lua_ucl_parser_get (L, 1); in lua_ucl_parser_parse_text()
858 t = lua_touserdata (L, 2); in lua_ucl_parser_parse_text()
860 if (lua_type (L, 3) == LUA_TSTRING) { in lua_ucl_parser_parse_text()
861 type = lua_ucl_str_to_parse_type (lua_tostring (L, 3)); in lua_ucl_parser_parse_text()
867 lua_pushboolean (L, true); in lua_ucl_parser_parse_text()
871 lua_pushboolean (L, false); in lua_ucl_parser_parse_text()
872 lua_pushstring (L, ucl_parser_get_error (parser)); in lua_ucl_parser_parse_text()
876 lua_pushboolean (L, false); in lua_ucl_parser_parse_text()
877 lua_pushstring (L, "invalid arguments"); in lua_ucl_parser_parse_text()
889 lua_ucl_parser_get_object (lua_State *L) in lua_ucl_parser_get_object() argument
895 parser = lua_ucl_parser_get (L, 1); in lua_ucl_parser_get_object()
899 ret = ucl_object_push_lua (L, obj, false); in lua_ucl_parser_get_object()
904 lua_pushnil (L); in lua_ucl_parser_get_object()
917 lua_ucl_parser_get_object_wrapped (lua_State *L) in lua_ucl_parser_get_object_wrapped() argument
923 parser = lua_ucl_parser_get (L, 1); in lua_ucl_parser_get_object_wrapped()
927 lua_ucl_push_opaque (L, obj); in lua_ucl_parser_get_object_wrapped()
930 lua_pushnil (L); in lua_ucl_parser_get_object_wrapped()
946 lua_ucl_parser_validate (lua_State *L) in lua_ucl_parser_validate() argument
953 parser = lua_ucl_parser_get (L, 1); in lua_ucl_parser_validate()
956 if (lua_type (L, 2) == LUA_TTABLE) { in lua_ucl_parser_validate()
957 schema = ucl_object_lua_import (L, 2); in lua_ucl_parser_validate()
960 lua_pushboolean (L, false); in lua_ucl_parser_validate()
961 lua_pushstring (L, "cannot load schema from lua table"); in lua_ucl_parser_validate()
966 else if (lua_type (L, 2) == LUA_TSTRING) { in lua_ucl_parser_validate()
968 schema_file = luaL_checkstring (L, 2); in lua_ucl_parser_validate()
971 lua_pushboolean (L, false); in lua_ucl_parser_validate()
972 lua_pushfstring (L, "cannot parse schema file \"%s\": " in lua_ucl_parser_validate()
983 lua_pushboolean (L, false); in lua_ucl_parser_validate()
984 lua_pushstring (L, "invalid schema argument"); in lua_ucl_parser_validate()
990 lua_pushboolean (L, false); in lua_ucl_parser_validate()
991 lua_pushfstring (L, "validation error: " in lua_ucl_parser_validate()
995 lua_pushboolean (L, true); in lua_ucl_parser_validate()
996 lua_pushnil (L); in lua_ucl_parser_validate()
1002 lua_pushboolean (L, false); in lua_ucl_parser_validate()
1003 lua_pushstring (L, "invalid parser or empty top object"); in lua_ucl_parser_validate()
1010 lua_ucl_parser_gc (lua_State *L) in lua_ucl_parser_gc() argument
1014 parser = lua_ucl_parser_get (L, 1); in lua_ucl_parser_gc()
1026 lua_ucl_object_unwrap (lua_State *L) in lua_ucl_object_unwrap() argument
1030 obj = lua_ucl_object_get (L, 1); in lua_ucl_object_unwrap()
1033 ucl_object_push_lua (L, obj, true); in lua_ucl_object_unwrap()
1036 lua_pushnil (L); in lua_ucl_object_unwrap()
1078 lua_ucl_object_tostring (lua_State *L) in lua_ucl_object_tostring() argument
1083 obj = lua_ucl_object_get (L, 1); in lua_ucl_object_tostring()
1086 if (lua_gettop (L) > 1) { in lua_ucl_object_tostring()
1087 if (lua_type (L, 2) == LUA_TSTRING) { in lua_ucl_object_tostring()
1088 const char *strtype = lua_tostring (L, 2); in lua_ucl_object_tostring()
1094 return lua_ucl_to_string (L, obj, format); in lua_ucl_object_tostring()
1097 lua_pushnil (L); in lua_ucl_object_tostring()
1116 lua_ucl_object_validate (lua_State *L) in lua_ucl_object_validate() argument
1124 obj = lua_ucl_object_get (L, 1); in lua_ucl_object_validate()
1125 schema = lua_ucl_object_get (L, 2); in lua_ucl_object_validate()
1128 if (lua_gettop (L) > 2) { in lua_ucl_object_validate()
1129 if (lua_type (L, 3) == LUA_TSTRING) { in lua_ucl_object_validate()
1130 path = lua_tostring (L, 3); in lua_ucl_object_validate()
1135 else if (lua_type (L, 3) == LUA_TUSERDATA || lua_type (L, 3) == in lua_ucl_object_validate()
1138 ext_refs = lua_ucl_object_get (L, 3); in lua_ucl_object_validate()
1141 if (lua_gettop (L) > 3) { in lua_ucl_object_validate()
1142 if (lua_type (L, 4) == LUA_TUSERDATA || lua_type (L, 4) == in lua_ucl_object_validate()
1145 ext_refs = lua_ucl_object_get (L, 4); in lua_ucl_object_validate()
1163 lua_pushboolean (L, res); in lua_ucl_object_validate()
1164 lua_pushnil (L); in lua_ucl_object_validate()
1167 lua_ucl_push_opaque (L, ext_refs); in lua_ucl_object_validate()
1171 lua_pushboolean (L, res); in lua_ucl_object_validate()
1172 lua_pushfstring (L, "validation error: %s", err.msg); in lua_ucl_object_validate()
1175 lua_ucl_push_opaque (L, ext_refs); in lua_ucl_object_validate()
1180 lua_pushboolean (L, res); in lua_ucl_object_validate()
1182 lua_pushfstring (L, "cannot find the requested path: %s", path); in lua_ucl_object_validate()
1185 lua_ucl_push_opaque (L, ext_refs); in lua_ucl_object_validate()
1190 lua_pushboolean (L, res); in lua_ucl_object_validate()
1191 lua_pushstring (L, "invalid object or schema"); in lua_ucl_object_validate()
1202 lua_ucl_object_gc (lua_State *L) in lua_ucl_object_gc() argument
1206 obj = lua_ucl_object_get (L, 1); in lua_ucl_object_gc()
1214 lua_ucl_parser_mt (lua_State *L) in lua_ucl_parser_mt() argument
1216 luaL_newmetatable (L, PARSER_META); in lua_ucl_parser_mt()
1218 lua_pushvalue(L, -1); in lua_ucl_parser_mt()
1219 lua_setfield(L, -2, "__index"); in lua_ucl_parser_mt()
1221 lua_pushcfunction (L, lua_ucl_parser_gc); in lua_ucl_parser_mt()
1222 lua_setfield (L, -2, "__gc"); in lua_ucl_parser_mt()
1224 lua_pushcfunction (L, lua_ucl_parser_parse_file); in lua_ucl_parser_mt()
1225 lua_setfield (L, -2, "parse_file"); in lua_ucl_parser_mt()
1227 lua_pushcfunction (L, lua_ucl_parser_parse_string); in lua_ucl_parser_mt()
1228 lua_setfield (L, -2, "parse_string"); in lua_ucl_parser_mt()
1230 lua_pushcfunction (L, lua_ucl_parser_parse_text); in lua_ucl_parser_mt()
1231 lua_setfield (L, -2, "parse_text"); in lua_ucl_parser_mt()
1233 lua_pushcfunction (L, lua_ucl_parser_register_variable); in lua_ucl_parser_mt()
1234 lua_setfield (L, -2, "register_variable"); in lua_ucl_parser_mt()
1236 lua_pushcfunction (L, lua_ucl_parser_register_variables); in lua_ucl_parser_mt()
1237 lua_setfield (L, -2, "register_variables"); in lua_ucl_parser_mt()
1239 lua_pushcfunction (L, lua_ucl_parser_get_object); in lua_ucl_parser_mt()
1240 lua_setfield (L, -2, "get_object"); in lua_ucl_parser_mt()
1242 lua_pushcfunction (L, lua_ucl_parser_get_object_wrapped); in lua_ucl_parser_mt()
1243 lua_setfield (L, -2, "get_object_wrapped"); in lua_ucl_parser_mt()
1245 lua_pushcfunction (L, lua_ucl_parser_validate); in lua_ucl_parser_mt()
1246 lua_setfield (L, -2, "validate"); in lua_ucl_parser_mt()
1248 lua_pop (L, 1); in lua_ucl_parser_mt()
1252 lua_ucl_object_mt (lua_State *L) in lua_ucl_object_mt() argument
1254 luaL_newmetatable (L, OBJECT_META); in lua_ucl_object_mt()
1256 lua_pushvalue(L, -1); in lua_ucl_object_mt()
1257 lua_setfield(L, -2, "__index"); in lua_ucl_object_mt()
1259 lua_pushcfunction (L, lua_ucl_object_gc); in lua_ucl_object_mt()
1260 lua_setfield (L, -2, "__gc"); in lua_ucl_object_mt()
1262 lua_pushcfunction (L, lua_ucl_object_tostring); in lua_ucl_object_mt()
1263 lua_setfield (L, -2, "__tostring"); in lua_ucl_object_mt()
1265 lua_pushcfunction (L, lua_ucl_object_tostring); in lua_ucl_object_mt()
1266 lua_setfield (L, -2, "tostring"); in lua_ucl_object_mt()
1268 lua_pushcfunction (L, lua_ucl_object_unwrap); in lua_ucl_object_mt()
1269 lua_setfield (L, -2, "unwrap"); in lua_ucl_object_mt()
1271 lua_pushcfunction (L, lua_ucl_object_unwrap); in lua_ucl_object_mt()
1272 lua_setfield (L, -2, "tolua"); in lua_ucl_object_mt()
1274 lua_pushcfunction (L, lua_ucl_object_validate); in lua_ucl_object_mt()
1275 lua_setfield (L, -2, "validate"); in lua_ucl_object_mt()
1277 lua_pushstring (L, OBJECT_META); in lua_ucl_object_mt()
1278 lua_setfield (L, -2, "class"); in lua_ucl_object_mt()
1280 lua_pop (L, 1); in lua_ucl_object_mt()
1284 lua_ucl_types_mt (lua_State *L) in lua_ucl_types_mt() argument
1286 luaL_newmetatable (L, UCL_OBJECT_TYPE_META); in lua_ucl_types_mt()
1288 lua_pushcfunction (L, lua_ucl_object_tostring); in lua_ucl_types_mt()
1289 lua_setfield (L, -2, "__tostring"); in lua_ucl_types_mt()
1291 lua_pushcfunction (L, lua_ucl_object_tostring); in lua_ucl_types_mt()
1292 lua_setfield (L, -2, "tostring"); in lua_ucl_types_mt()
1294 lua_pushstring (L, UCL_OBJECT_TYPE_META); in lua_ucl_types_mt()
1295 lua_setfield (L, -2, "class"); in lua_ucl_types_mt()
1297 lua_pop (L, 1); in lua_ucl_types_mt()
1299 luaL_newmetatable (L, UCL_ARRAY_TYPE_META); in lua_ucl_types_mt()
1301 lua_pushcfunction (L, lua_ucl_object_tostring); in lua_ucl_types_mt()
1302 lua_setfield (L, -2, "__tostring"); in lua_ucl_types_mt()
1304 lua_pushcfunction (L, lua_ucl_object_tostring); in lua_ucl_types_mt()
1305 lua_setfield (L, -2, "tostring"); in lua_ucl_types_mt()
1307 lua_pushstring (L, UCL_ARRAY_TYPE_META); in lua_ucl_types_mt()
1308 lua_setfield (L, -2, "class"); in lua_ucl_types_mt()
1310 lua_pop (L, 1); in lua_ucl_types_mt()
1312 luaL_newmetatable (L, UCL_IMPL_ARRAY_TYPE_META); in lua_ucl_types_mt()
1314 lua_pushcfunction (L, lua_ucl_object_tostring); in lua_ucl_types_mt()
1315 lua_setfield (L, -2, "__tostring"); in lua_ucl_types_mt()
1317 lua_pushcfunction (L, lua_ucl_object_tostring); in lua_ucl_types_mt()
1318 lua_setfield (L, -2, "tostring"); in lua_ucl_types_mt()
1320 lua_pushstring (L, UCL_IMPL_ARRAY_TYPE_META); in lua_ucl_types_mt()
1321 lua_setfield (L, -2, "class"); in lua_ucl_types_mt()
1323 lua_pop (L, 1); in lua_ucl_types_mt()
1327 lua_ucl_to_json (lua_State *L) in lua_ucl_to_json() argument
1332 if (lua_gettop (L) > 1) { in lua_ucl_to_json()
1333 if (lua_toboolean (L, 2)) { in lua_ucl_to_json()
1338 obj = ucl_object_lua_import (L, 1); in lua_ucl_to_json()
1340 lua_ucl_to_string (L, obj, format); in lua_ucl_to_json()
1344 lua_pushnil (L); in lua_ucl_to_json()
1351 lua_ucl_to_config (lua_State *L) in lua_ucl_to_config() argument
1355 obj = ucl_object_lua_import (L, 1); in lua_ucl_to_config()
1357 lua_ucl_to_string (L, obj, UCL_EMIT_CONFIG); in lua_ucl_to_config()
1361 lua_pushnil (L); in lua_ucl_to_config()
1402 lua_ucl_to_format (lua_State *L) in lua_ucl_to_format() argument
1408 if (lua_gettop (L) > 1) { in lua_ucl_to_format()
1409 if (lua_type (L, 2) == LUA_TNUMBER) { in lua_ucl_to_format()
1410 format = lua_tonumber (L, 2); in lua_ucl_to_format()
1412 lua_pushnil (L); in lua_ucl_to_format()
1416 else if (lua_type (L, 2) == LUA_TSTRING) { in lua_ucl_to_format()
1417 const char *strtype = lua_tostring (L, 2); in lua_ucl_to_format()
1437 if (lua_isboolean (L, 3)) { in lua_ucl_to_format()
1438 sort = lua_toboolean (L, 3); in lua_ucl_to_format()
1442 obj = ucl_object_lua_import (L, 1); in lua_ucl_to_format()
1452 lua_ucl_to_string (L, obj, format); in lua_ucl_to_format()
1456 lua_pushnil (L); in lua_ucl_to_format()
1463 lua_ucl_null_tostring (lua_State* L) in lua_ucl_null_tostring() argument
1465 lua_pushstring (L, "null"); in lua_ucl_null_tostring()
1470 lua_ucl_null_mt (lua_State *L) in lua_ucl_null_mt() argument
1472 luaL_newmetatable (L, NULL_META); in lua_ucl_null_mt()
1474 lua_pushcfunction (L, lua_ucl_null_tostring); in lua_ucl_null_mt()
1475 lua_setfield (L, -2, "__tostring"); in lua_ucl_null_mt()
1477 lua_pop (L, 1); in lua_ucl_null_mt()
1481 luaopen_ucl (lua_State *L) in luaopen_ucl() argument
1483 lua_ucl_parser_mt (L); in luaopen_ucl()
1484 lua_ucl_null_mt (L); in luaopen_ucl()
1485 lua_ucl_object_mt (L); in luaopen_ucl()
1486 lua_ucl_types_mt (L); in luaopen_ucl()
1489 lua_createtable (L, 0, 2); in luaopen_ucl()
1490 lua_pushliteral (L, "v"); /* tbl, "v" */ in luaopen_ucl()
1491 lua_setfield (L, -2, "__mode"); in luaopen_ucl()
1492 lua_pushvalue (L, -1); /* tbl, tbl */ in luaopen_ucl()
1493 lua_setmetatable (L, -2); /* tbl */ in luaopen_ucl()
1494 lua_setfield (L, LUA_REGISTRYINDEX, "ucl.refs"); in luaopen_ucl()
1496 lua_newtable (L); in luaopen_ucl()
1498 lua_pushcfunction (L, lua_ucl_parser_init); in luaopen_ucl()
1499 lua_setfield (L, -2, "parser"); in luaopen_ucl()
1501 lua_pushcfunction (L, lua_ucl_to_json); in luaopen_ucl()
1502 lua_setfield (L, -2, "to_json"); in luaopen_ucl()
1504 lua_pushcfunction (L, lua_ucl_to_config); in luaopen_ucl()
1505 lua_setfield (L, -2, "to_config"); in luaopen_ucl()
1507 lua_pushcfunction (L, lua_ucl_to_format); in luaopen_ucl()
1508 lua_setfield (L, -2, "to_format"); in luaopen_ucl()
1510 ucl_null = lua_newuserdata (L, 0); in luaopen_ucl()
1511 luaL_getmetatable (L, NULL_META); in luaopen_ucl()
1512 lua_setmetatable (L, -2); in luaopen_ucl()
1514 lua_pushvalue (L, -1); in luaopen_ucl()
1515 lua_setfield (L, LUA_REGISTRYINDEX, "ucl.null"); in luaopen_ucl()
1517 lua_setfield (L, -2, "null"); in luaopen_ucl()