Lines Matching refs:chunk
48 #define ucl_chunk_skipc(chunk, p) \ argument
51 (chunk)->line ++; \
52 (chunk)->column = 0; \
54 else (chunk)->column ++; \
56 (chunk)->pos ++; \
57 (chunk)->remain --; \
64 struct ucl_chunk *chunk = parser->chunks; in ucl_set_err() local
73 if (chunk->pos < chunk->end) { in ucl_set_err()
74 if (isgraph (*chunk->pos)) { in ucl_set_err()
83 filename, chunk->line, chunk->column, in ucl_set_err()
84 str, *chunk->pos); in ucl_set_err()
136 struct ucl_chunk *chunk = parser->chunks; in ucl_skip_comments() local
141 p = chunk->pos; in ucl_skip_comments()
144 if (chunk->remain > 0 && *p == '#') { in ucl_skip_comments()
149 while (p < chunk->end) { in ucl_skip_comments()
156 ucl_chunk_skipc (chunk, p); in ucl_skip_comments()
160 ucl_chunk_skipc (chunk, p); in ucl_skip_comments()
164 else if (chunk->remain >= 2 && *p == '/') { in ucl_skip_comments()
167 ucl_chunk_skipc (chunk, p); in ucl_skip_comments()
169 ucl_chunk_skipc (chunk, p); in ucl_skip_comments()
171 while (p < chunk->end) { in ucl_skip_comments()
178 ucl_chunk_skipc (chunk, p); in ucl_skip_comments()
187 ucl_chunk_skipc (chunk, p); in ucl_skip_comments()
191 ucl_chunk_skipc (chunk, p); in ucl_skip_comments()
193 else if (p[0] == '/' && chunk->remain >= 2 && p[1] == '*') { in ucl_skip_comments()
195 ucl_chunk_skipc (chunk, p); in ucl_skip_comments()
196 ucl_chunk_skipc (chunk, p); in ucl_skip_comments()
201 ucl_chunk_skipc (chunk, p); in ucl_skip_comments()
695 st->chunk = parser->chunks; in ucl_parser_add_container()
982 struct ucl_chunk *chunk, ucl_object_t *obj) in ucl_lex_number() argument
987 ret = ucl_maybe_parse_number (obj, chunk->pos, chunk->end, (const char **)&pos, in ucl_lex_number()
991 chunk->remain -= pos - chunk->pos; in ucl_lex_number()
992 chunk->column += pos - chunk->pos; in ucl_lex_number()
993 chunk->pos = pos; in ucl_lex_number()
1015 struct ucl_chunk *chunk, in ucl_lex_json_string() argument
1020 const unsigned char *p = chunk->pos; in ucl_lex_json_string()
1024 while (p < chunk->end) { in ucl_lex_json_string()
1039 ucl_chunk_skipc (chunk, p); in ucl_lex_json_string()
1041 if (p >= chunk->end) { in ucl_lex_json_string()
1048 ucl_chunk_skipc (chunk, p); in ucl_lex_json_string()
1049 for (i = 0; i < 4 && p < chunk->end; i ++) { in ucl_lex_json_string()
1055 ucl_chunk_skipc (chunk, p); in ucl_lex_json_string()
1057 if (p >= chunk->end) { in ucl_lex_json_string()
1065 ucl_chunk_skipc (chunk, p); in ucl_lex_json_string()
1073 ucl_chunk_skipc (chunk, p); in ucl_lex_json_string()
1082 ucl_chunk_skipc (chunk, p); in ucl_lex_json_string()
1100 struct ucl_chunk *chunk, bool *need_unescape) in ucl_lex_squoted_string() argument
1102 const unsigned char *p = chunk->pos; in ucl_lex_squoted_string()
1105 while (p < chunk->end) { in ucl_lex_squoted_string()
1108 ucl_chunk_skipc (chunk, p); in ucl_lex_squoted_string()
1110 if (p >= chunk->end) { in ucl_lex_squoted_string()
1117 ucl_chunk_skipc (chunk, p); in ucl_lex_squoted_string()
1124 ucl_chunk_skipc (chunk, p); in ucl_lex_squoted_string()
1128 ucl_chunk_skipc (chunk, p); in ucl_lex_squoted_string()
1291 ucl_parse_key (struct ucl_parser *parser, struct ucl_chunk *chunk, in ucl_parse_key() argument
1302 p = chunk->pos; in ucl_parse_key()
1307 ucl_chunk_skipc (chunk, p); in ucl_parse_key()
1315 while (p < chunk->end) { in ucl_parse_key()
1320 if (chunk->remain >= 2 && ucl_lex_is_comment (p[0], p[1])) { in ucl_parse_key()
1324 p = chunk->pos; in ucl_parse_key()
1327 ucl_chunk_skipc (chunk, p); in ucl_parse_key()
1332 ucl_chunk_skipc (chunk, p); in ucl_parse_key()
1340 ucl_chunk_skipc (chunk, p); in ucl_parse_key()
1348 ucl_chunk_skipc (chunk, p); in ucl_parse_key()
1365 ucl_chunk_skipc (chunk, p); in ucl_parse_key()
1379 if (!ucl_lex_json_string (parser, chunk, &need_unescape, &ucl_escape, &var_expand)) { in ucl_parse_key()
1383 end = chunk->pos - 1; in ucl_parse_key()
1384 p = chunk->pos; in ucl_parse_key()
1390 if (p >= chunk->end && got_content) { in ucl_parse_key()
1399 while (p < chunk->end) { in ucl_parse_key()
1401 ucl_chunk_skipc (chunk, p); in ucl_parse_key()
1405 ucl_chunk_skipc (chunk, p); in ucl_parse_key()
1416 ucl_chunk_skipc (chunk, p); in ucl_parse_key()
1425 else if (chunk->remain >= 2 && ucl_lex_is_comment (p[0], p[1])) { in ucl_parse_key()
1430 p = chunk->pos; in ucl_parse_key()
1438 if (p >= chunk->end && got_content) { in ucl_parse_key()
1460 while (t < chunk->end) { in ucl_parse_key()
1516 struct ucl_chunk *chunk, bool *var_expand, bool *need_unescape) in ucl_parse_string_value() argument
1526 p = chunk->pos; in ucl_parse_string_value()
1528 while (p < chunk->end) { in ucl_parse_string_value()
1538 ucl_chunk_skipc (chunk, p); in ucl_parse_string_value()
1550 ucl_chunk_skipc (chunk, p); in ucl_parse_string_value()
1559 ucl_chunk_skipc (chunk, p); in ucl_parse_string_value()
1560 if (p < chunk->end) { in ucl_parse_string_value()
1561 ucl_chunk_skipc (chunk, p); in ucl_parse_string_value()
1566 if (ucl_lex_is_atom_end (*p) || (chunk->remain >= 2 && ucl_lex_is_comment (p[0], p[1]))) { in ucl_parse_string_value()
1569 ucl_chunk_skipc (chunk, p); in ucl_parse_string_value()
1587 struct ucl_chunk *chunk, const unsigned char *term, in ucl_parse_multiline_string() argument
1595 p = chunk->pos; in ucl_parse_multiline_string()
1599 while (p < chunk->end) { in ucl_parse_multiline_string()
1601 if (chunk->end - p < term_len) { in ucl_parse_multiline_string()
1608 ucl_chunk_skipc (chunk, p); in ucl_parse_multiline_string()
1612 chunk->remain -= term_len; in ucl_parse_multiline_string()
1613 chunk->pos = p + term_len; in ucl_parse_multiline_string()
1614 chunk->column = term_len; in ucl_parse_multiline_string()
1628 ucl_chunk_skipc (chunk, p); in ucl_parse_multiline_string()
1671 ucl_parse_value (struct ucl_parser *parser, struct ucl_chunk *chunk) in ucl_parse_value() argument
1679 p = chunk->pos; in ucl_parse_value()
1683 (chunk->remain >= 2 && ucl_lex_is_comment (p[0], p[1]))) { in ucl_parse_value()
1684 while (p < chunk->end && ucl_test_character (*p, UCL_CHARACTER_WHITESPACE_UNSAFE)) { in ucl_parse_value()
1685 ucl_chunk_skipc (chunk, p); in ucl_parse_value()
1690 p = chunk->pos; in ucl_parse_value()
1693 while (p < chunk->end) { in ucl_parse_value()
1697 ucl_chunk_skipc (chunk, p); in ucl_parse_value()
1699 if (!ucl_lex_json_string (parser, chunk, &need_unescape, &ucl_escape, in ucl_parse_value()
1709 str_len = chunk->pos - c - 2; in ucl_parse_value()
1724 ucl_chunk_skipc (chunk, p); in ucl_parse_value()
1726 if (!ucl_lex_squoted_string (parser, chunk, &need_unescape)) { in ucl_parse_value()
1735 str_len = chunk->pos - c - 2; in ucl_parse_value()
1769 ucl_chunk_skipc (chunk, p); in ucl_parse_value()
1791 ucl_chunk_skipc (chunk, p); in ucl_parse_value()
1808 if (chunk->end - p > 3) { in ucl_parse_value()
1812 while (p < chunk->end && *p >= 'A' && *p <= 'Z') { in ucl_parse_value()
1817 chunk->remain -= p - c + 1; in ucl_parse_value()
1819 chunk->pos = p + 1; in ucl_parse_value()
1820 chunk->column = 0; in ucl_parse_value()
1821 chunk->line ++; in ucl_parse_value()
1822 if ((str_len = ucl_parse_multiline_string (parser, chunk, c, in ucl_parse_value()
1855 if (!ucl_lex_number (parser, chunk, obj)) { in ucl_parse_value()
1867 if (!ucl_parse_string_value (parser, chunk, &var_expand, in ucl_parse_value()
1873 while (ucl_test_character (*(chunk->pos - 1 - stripped_spaces), in ucl_parse_value()
1877 str_len = chunk->pos - c - stripped_spaces; in ucl_parse_value()
1925 ucl_parse_after_value (struct ucl_parser *parser, struct ucl_chunk *chunk) in ucl_parse_after_value() argument
1931 p = chunk->pos; in ucl_parse_after_value()
1933 while (p < chunk->end) { in ucl_parse_after_value()
1936 ucl_chunk_skipc (chunk, p); in ucl_parse_after_value()
1938 else if (chunk->remain >= 2 && ucl_lex_is_comment (p[0], p[1])) { in ucl_parse_after_value()
1945 p = chunk->pos; in ucl_parse_after_value()
1965 chunk->fname ? chunk->fname : "memory", in ucl_parse_after_value()
2006 ucl_chunk_skipc (chunk, p); in ucl_parse_after_value()
2013 ucl_chunk_skipc (chunk, p); in ucl_parse_after_value()
2032 struct ucl_chunk *chunk) in ucl_skip_macro_as_comment() argument
2045 p = chunk->pos; in ucl_skip_macro_as_comment()
2046 c = chunk->pos; in ucl_skip_macro_as_comment()
2048 while (p < chunk->end) { in ucl_skip_macro_as_comment()
2059 ucl_chunk_skipc (chunk, p); in ucl_skip_macro_as_comment()
2077 ucl_chunk_skipc (chunk, p); in ucl_skip_macro_as_comment()
2089 ucl_chunk_skipc (chunk, p); in ucl_skip_macro_as_comment()
2101 ucl_chunk_skipc (chunk, p); in ucl_skip_macro_as_comment()
2113 ucl_chunk_skipc (chunk, p); in ucl_skip_macro_as_comment()
2118 ucl_chunk_skipc (chunk, p); in ucl_skip_macro_as_comment()
2144 struct ucl_chunk *chunk, struct ucl_macro *macro, in ucl_parse_macro_value() argument
2150 p = chunk->pos; in ucl_parse_macro_value()
2156 ucl_chunk_skipc (chunk, p); in ucl_parse_macro_value()
2157 if (!ucl_lex_json_string (parser, chunk, &need_unescape, &ucl_escape, &var_expand)) { in ucl_parse_macro_value()
2162 *macro_len = chunk->pos - c - 2; in ucl_parse_macro_value()
2163 p = chunk->pos; in ucl_parse_macro_value()
2167 ucl_chunk_skipc (chunk, p); in ucl_parse_macro_value()
2169 while (p < chunk->end) { in ucl_parse_macro_value()
2171 ucl_chunk_skipc (chunk, p); in ucl_parse_macro_value()
2178 while (p < chunk->end) { in ucl_parse_macro_value()
2182 ucl_chunk_skipc (chunk, p); in ucl_parse_macro_value()
2186 ucl_chunk_skipc (chunk, p); in ucl_parse_macro_value()
2191 while (p < chunk->end) { in ucl_parse_macro_value()
2195 ucl_chunk_skipc (chunk, p); in ucl_parse_macro_value()
2204 while (p < chunk->end) { in ucl_parse_macro_value()
2208 ucl_chunk_skipc (chunk, p); in ucl_parse_macro_value()
2221 struct ucl_chunk *chunk) in ucl_parse_macro_arguments() argument
2230 saved.column = chunk->column; in ucl_parse_macro_arguments()
2231 saved.line = chunk->line; in ucl_parse_macro_arguments()
2232 saved.pos = chunk->pos; in ucl_parse_macro_arguments()
2233 saved.remain = chunk->remain; in ucl_parse_macro_arguments()
2234 p = chunk->pos; in ucl_parse_macro_arguments()
2236 if (*p != '(' || chunk->remain < 2) { in ucl_parse_macro_arguments()
2241 ucl_chunk_skipc (chunk, p); in ucl_parse_macro_arguments()
2244 while ((p) < (chunk)->end) { in ucl_parse_macro_arguments()
2265 if (chunk->remain == 0) { in ucl_parse_macro_arguments()
2268 ucl_chunk_skipc (chunk, p); in ucl_parse_macro_arguments()
2275 if (chunk->remain == 0) { in ucl_parse_macro_arguments()
2279 ucl_chunk_skipc (chunk, p); in ucl_parse_macro_arguments()
2305 chunk->column = saved.column; in ucl_parse_macro_arguments()
2306 chunk->line = saved.line; in ucl_parse_macro_arguments()
2307 chunk->pos = saved.pos; in ucl_parse_macro_arguments()
2308 chunk->remain = saved.remain; in ucl_parse_macro_arguments()
2313 #define SKIP_SPACES_COMMENTS(parser, chunk, p) do { \ argument
2314 while ((p) < (chunk)->end) { \
2316 if ((chunk)->remain >= 2 && ucl_lex_is_comment ((p)[0], (p)[1])) { \
2320 p = (chunk)->pos; \
2324 ucl_chunk_skipc (chunk, p); \
2337 struct ucl_chunk *chunk = parser->chunks; in ucl_state_machine() local
2348 p = chunk->pos; in ucl_state_machine()
2349 while (chunk->pos < chunk->end) { in ucl_state_machine()
2366 while (p < chunk->end && ucl_test_character (*p, in ucl_state_machine()
2368 ucl_chunk_skipc (chunk, p); in ucl_state_machine()
2371 p = chunk->pos; in ucl_state_machine()
2373 if (p < chunk->end) { in ucl_state_machine()
2376 ucl_chunk_skipc (chunk, p); in ucl_state_machine()
2382 ucl_chunk_skipc (chunk, p); in ucl_state_machine()
2415 while (p < chunk->end && ucl_test_character (*p, UCL_CHARACTER_WHITESPACE_UNSAFE)) { in ucl_state_machine()
2416 ucl_chunk_skipc (chunk, p); in ucl_state_machine()
2418 if (p == chunk->end || *p == '}') { in ucl_state_machine()
2431 if (!ucl_parse_key (parser, chunk, &next_key, &end_of_object)) { in ucl_state_machine()
2438 p = chunk->pos; in ucl_state_machine()
2459 c = chunk->pos; in ucl_state_machine()
2461 p = chunk->pos; in ucl_state_machine()
2465 if (!parser->cur_obj || !ucl_parse_value (parser, chunk)) { in ucl_state_machine()
2471 p = chunk->pos; in ucl_state_machine()
2474 if (!ucl_parse_after_value (parser, chunk)) { in ucl_state_machine()
2494 p = chunk->pos; in ucl_state_machine()
2498 if (!ucl_skip_macro_as_comment (parser, chunk)) { in ucl_state_machine()
2502 chunk->fname ? chunk->fname : "memory", in ucl_state_machine()
2503 chunk->line, in ucl_state_machine()
2504 chunk->column); in ucl_state_machine()
2509 p = chunk->pos; in ucl_state_machine()
2516 ucl_chunk_skipc (chunk, p); in ucl_state_machine()
2527 chunk->fname ? chunk->fname : "memory", in ucl_state_machine()
2528 chunk->line, in ucl_state_machine()
2529 chunk->column, in ucl_state_machine()
2532 *chunk->pos); in ucl_state_machine()
2537 SKIP_SPACES_COMMENTS(parser, chunk, p); in ucl_state_machine()
2544 chunk->fname ? chunk->fname : "memory", in ucl_state_machine()
2545 chunk->line, in ucl_state_machine()
2546 chunk->column); in ucl_state_machine()
2554 if (*chunk->pos == '(') { in ucl_state_machine()
2555 macro_args = ucl_parse_macro_arguments (parser, chunk); in ucl_state_machine()
2556 p = chunk->pos; in ucl_state_machine()
2558 SKIP_SPACES_COMMENTS(parser, chunk, p); in ucl_state_machine()
2564 if (!ucl_parse_macro_value (parser, chunk, macro, in ucl_state_machine()
2609 chunk = parser->chunks; in ucl_state_machine()
2610 p = chunk->pos; in ucl_state_machine()
2648 if (st->chunk != parser->chunks) { in ucl_state_machine()
2657 chunk->fname ? chunk->fname : "memory", in ucl_state_machine()
2861 struct ucl_chunk *chunk; in ucl_parser_add_chunk_full() local
2874 chunk = UCL_ALLOC (sizeof (struct ucl_chunk)); in ucl_parser_add_chunk_full()
2875 if (chunk == NULL) { in ucl_parser_add_chunk_full()
2880 memset (chunk, 0, sizeof (*chunk)); in ucl_parser_add_chunk_full()
2903 LL_PREPEND (chunk->special_handlers, nchain); in ucl_parser_add_chunk_full()
2923 chunk->begin = data; in ucl_parser_add_chunk_full()
2924 chunk->remain = len; in ucl_parser_add_chunk_full()
2925 chunk->pos = chunk->begin; in ucl_parser_add_chunk_full()
2926 chunk->end = chunk->begin + len; in ucl_parser_add_chunk_full()
2927 chunk->line = 1; in ucl_parser_add_chunk_full()
2928 chunk->column = 0; in ucl_parser_add_chunk_full()
2929 chunk->priority = priority; in ucl_parser_add_chunk_full()
2930 chunk->strategy = strat; in ucl_parser_add_chunk_full()
2931 chunk->parse_type = parse_type; in ucl_parser_add_chunk_full()
2934 chunk->fname = strdup (parser->cur_file); in ucl_parser_add_chunk_full()
2937 LL_PREPEND (parser->chunks, chunk); in ucl_parser_add_chunk_full()
3011 struct ucl_chunk *chunk; in ucl_parser_insert_chunk() local
3025 chunk = parser->chunks; in ucl_parser_insert_chunk()
3026 if (chunk != NULL) { in ucl_parser_insert_chunk()
3027 parser->chunks = chunk->next; in ucl_parser_insert_chunk()
3028 ucl_chunk_free (chunk); in ucl_parser_insert_chunk()