Lines Matching refs:chunk

47 #define ucl_chunk_skipc(chunk, p)    do{					\  argument
49 (chunk)->line ++; \
50 (chunk)->column = 0; \
52 else (chunk)->column ++; \
54 (chunk)->pos ++; \
55 (chunk)->remain --; \
62 struct ucl_chunk *chunk = parser->chunks; in ucl_set_err() local
71 if (chunk->pos < chunk->end) { in ucl_set_err()
72 if (isgraph (*chunk->pos)) { in ucl_set_err()
81 filename, chunk->line, chunk->column, in ucl_set_err()
82 str, *chunk->pos); in ucl_set_err()
133 struct ucl_chunk *chunk = parser->chunks; in ucl_skip_comments() local
138 p = chunk->pos; in ucl_skip_comments()
141 if (chunk->remain > 0 && *p == '#') { in ucl_skip_comments()
146 while (p < chunk->end) { in ucl_skip_comments()
153 ucl_chunk_skipc (chunk, p); in ucl_skip_comments()
157 ucl_chunk_skipc (chunk, p); in ucl_skip_comments()
161 else if (chunk->remain >= 2 && *p == '/') { in ucl_skip_comments()
164 ucl_chunk_skipc (chunk, p); in ucl_skip_comments()
166 ucl_chunk_skipc (chunk, p); in ucl_skip_comments()
168 while (p < chunk->end) { in ucl_skip_comments()
175 ucl_chunk_skipc (chunk, p); in ucl_skip_comments()
184 ucl_chunk_skipc (chunk, p); in ucl_skip_comments()
188 ucl_chunk_skipc (chunk, p); in ucl_skip_comments()
190 else if (p[0] == '/' && chunk->remain >= 2 && p[1] == '*') { in ucl_skip_comments()
192 ucl_chunk_skipc (chunk, p); in ucl_skip_comments()
193 ucl_chunk_skipc (chunk, p); in ucl_skip_comments()
198 ucl_chunk_skipc (chunk, p); in ucl_skip_comments()
939 struct ucl_chunk *chunk, ucl_object_t *obj) in ucl_lex_number() argument
944 ret = ucl_maybe_parse_number (obj, chunk->pos, chunk->end, (const char **)&pos, in ucl_lex_number()
948 chunk->remain -= pos - chunk->pos; in ucl_lex_number()
949 chunk->column += pos - chunk->pos; in ucl_lex_number()
950 chunk->pos = pos; in ucl_lex_number()
972 struct ucl_chunk *chunk, bool *need_unescape, bool *ucl_escape, bool *var_expand) in ucl_lex_json_string() argument
974 const unsigned char *p = chunk->pos; in ucl_lex_json_string()
978 while (p < chunk->end) { in ucl_lex_json_string()
993 ucl_chunk_skipc (chunk, p); in ucl_lex_json_string()
995 if (p >= chunk->end) { in ucl_lex_json_string()
1002 ucl_chunk_skipc (chunk, p); in ucl_lex_json_string()
1003 for (i = 0; i < 4 && p < chunk->end; i ++) { in ucl_lex_json_string()
1009 ucl_chunk_skipc (chunk, p); in ucl_lex_json_string()
1011 if (p >= chunk->end) { in ucl_lex_json_string()
1018 ucl_chunk_skipc (chunk, p); in ucl_lex_json_string()
1026 ucl_chunk_skipc (chunk, p); in ucl_lex_json_string()
1035 ucl_chunk_skipc (chunk, p); in ucl_lex_json_string()
1188 ucl_parse_key (struct ucl_parser *parser, struct ucl_chunk *chunk, in ucl_parse_key() argument
1199 p = chunk->pos; in ucl_parse_key()
1204 ucl_chunk_skipc (chunk, p); in ucl_parse_key()
1212 while (p < chunk->end) { in ucl_parse_key()
1217 if (chunk->remain >= 2 && ucl_lex_is_comment (p[0], p[1])) { in ucl_parse_key()
1221 p = chunk->pos; in ucl_parse_key()
1224 ucl_chunk_skipc (chunk, p); in ucl_parse_key()
1229 ucl_chunk_skipc (chunk, p); in ucl_parse_key()
1237 ucl_chunk_skipc (chunk, p); in ucl_parse_key()
1245 ucl_chunk_skipc (chunk, p); in ucl_parse_key()
1262 ucl_chunk_skipc (chunk, p); in ucl_parse_key()
1276 if (!ucl_lex_json_string (parser, chunk, &need_unescape, &ucl_escape, &var_expand)) { in ucl_parse_key()
1280 end = chunk->pos - 1; in ucl_parse_key()
1281 p = chunk->pos; in ucl_parse_key()
1287 if (p >= chunk->end && got_content) { in ucl_parse_key()
1296 while (p < chunk->end) { in ucl_parse_key()
1298 ucl_chunk_skipc (chunk, p); in ucl_parse_key()
1302 ucl_chunk_skipc (chunk, p); in ucl_parse_key()
1313 ucl_chunk_skipc (chunk, p); in ucl_parse_key()
1322 else if (chunk->remain >= 2 && ucl_lex_is_comment (p[0], p[1])) { in ucl_parse_key()
1327 p = chunk->pos; in ucl_parse_key()
1335 if (p >= chunk->end && got_content) { in ucl_parse_key()
1357 while (t < chunk->end) { in ucl_parse_key()
1409 struct ucl_chunk *chunk, bool *var_expand, bool *need_unescape) in ucl_parse_string_value() argument
1419 p = chunk->pos; in ucl_parse_string_value()
1421 while (p < chunk->end) { in ucl_parse_string_value()
1431 ucl_chunk_skipc (chunk, p); in ucl_parse_string_value()
1443 ucl_chunk_skipc (chunk, p); in ucl_parse_string_value()
1452 ucl_chunk_skipc (chunk, p); in ucl_parse_string_value()
1453 if (p < chunk->end) { in ucl_parse_string_value()
1454 ucl_chunk_skipc (chunk, p); in ucl_parse_string_value()
1459 if (ucl_lex_is_atom_end (*p) || (chunk->remain >= 2 && ucl_lex_is_comment (p[0], p[1]))) { in ucl_parse_string_value()
1462 ucl_chunk_skipc (chunk, p); in ucl_parse_string_value()
1480 struct ucl_chunk *chunk, const unsigned char *term, in ucl_parse_multiline_string() argument
1488 p = chunk->pos; in ucl_parse_multiline_string()
1492 while (p < chunk->end) { in ucl_parse_multiline_string()
1494 if (chunk->end - p < term_len) { in ucl_parse_multiline_string()
1501 ucl_chunk_skipc (chunk, p); in ucl_parse_multiline_string()
1505 chunk->remain -= term_len; in ucl_parse_multiline_string()
1506 chunk->pos = p + term_len; in ucl_parse_multiline_string()
1507 chunk->column = term_len; in ucl_parse_multiline_string()
1521 ucl_chunk_skipc (chunk, p); in ucl_parse_multiline_string()
1564 ucl_parse_value (struct ucl_parser *parser, struct ucl_chunk *chunk) in ucl_parse_value() argument
1572 p = chunk->pos; in ucl_parse_value()
1576 (chunk->remain >= 2 && ucl_lex_is_comment (p[0], p[1]))) { in ucl_parse_value()
1577 while (p < chunk->end && ucl_test_character (*p, UCL_CHARACTER_WHITESPACE_UNSAFE)) { in ucl_parse_value()
1578 ucl_chunk_skipc (chunk, p); in ucl_parse_value()
1583 p = chunk->pos; in ucl_parse_value()
1586 while (p < chunk->end) { in ucl_parse_value()
1590 ucl_chunk_skipc (chunk, p); in ucl_parse_value()
1592 if (!ucl_lex_json_string (parser, chunk, &need_unescape, &ucl_escape, in ucl_parse_value()
1602 str_len = chunk->pos - c - 2; in ucl_parse_value()
1613 p = chunk->pos; in ucl_parse_value()
1625 ucl_chunk_skipc (chunk, p); in ucl_parse_value()
1637 ucl_chunk_skipc (chunk, p); in ucl_parse_value()
1654 if (chunk->end - p > 3) { in ucl_parse_value()
1658 while (p < chunk->end && *p >= 'A' && *p <= 'Z') { in ucl_parse_value()
1664 chunk->remain -= p - c; in ucl_parse_value()
1665 chunk->pos = p + 1; in ucl_parse_value()
1666 chunk->column = 0; in ucl_parse_value()
1667 chunk->line ++; in ucl_parse_value()
1668 if ((str_len = ucl_parse_multiline_string (parser, chunk, c, in ucl_parse_value()
1700 if (!ucl_lex_number (parser, chunk, obj)) { in ucl_parse_value()
1712 if (!ucl_parse_string_value (parser, chunk, &var_expand, in ucl_parse_value()
1718 while (ucl_test_character (*(chunk->pos - 1 - stripped_spaces), in ucl_parse_value()
1722 str_len = chunk->pos - c - stripped_spaces; in ucl_parse_value()
1743 p = chunk->pos; in ucl_parse_value()
1760 ucl_parse_after_value (struct ucl_parser *parser, struct ucl_chunk *chunk) in ucl_parse_after_value() argument
1766 p = chunk->pos; in ucl_parse_after_value()
1768 while (p < chunk->end) { in ucl_parse_after_value()
1771 ucl_chunk_skipc (chunk, p); in ucl_parse_after_value()
1773 else if (chunk->remain >= 2 && ucl_lex_is_comment (p[0], p[1])) { in ucl_parse_after_value()
1780 p = chunk->pos; in ucl_parse_after_value()
1826 ucl_chunk_skipc (chunk, p); in ucl_parse_after_value()
1833 ucl_chunk_skipc (chunk, p); in ucl_parse_after_value()
1852 struct ucl_chunk *chunk) in ucl_skip_macro_as_comment() argument
1865 p = chunk->pos; in ucl_skip_macro_as_comment()
1866 c = chunk->pos; in ucl_skip_macro_as_comment()
1868 while (p < chunk->end) { in ucl_skip_macro_as_comment()
1879 ucl_chunk_skipc (chunk, p); in ucl_skip_macro_as_comment()
1897 ucl_chunk_skipc (chunk, p); in ucl_skip_macro_as_comment()
1909 ucl_chunk_skipc (chunk, p); in ucl_skip_macro_as_comment()
1921 ucl_chunk_skipc (chunk, p); in ucl_skip_macro_as_comment()
1933 ucl_chunk_skipc (chunk, p); in ucl_skip_macro_as_comment()
1938 ucl_chunk_skipc (chunk, p); in ucl_skip_macro_as_comment()
1964 struct ucl_chunk *chunk, struct ucl_macro *macro, in ucl_parse_macro_value() argument
1970 p = chunk->pos; in ucl_parse_macro_value()
1976 ucl_chunk_skipc (chunk, p); in ucl_parse_macro_value()
1977 if (!ucl_lex_json_string (parser, chunk, &need_unescape, &ucl_escape, &var_expand)) { in ucl_parse_macro_value()
1982 *macro_len = chunk->pos - c - 2; in ucl_parse_macro_value()
1983 p = chunk->pos; in ucl_parse_macro_value()
1987 ucl_chunk_skipc (chunk, p); in ucl_parse_macro_value()
1989 while (p < chunk->end) { in ucl_parse_macro_value()
1991 ucl_chunk_skipc (chunk, p); in ucl_parse_macro_value()
1998 while (p < chunk->end) { in ucl_parse_macro_value()
2002 ucl_chunk_skipc (chunk, p); in ucl_parse_macro_value()
2006 ucl_chunk_skipc (chunk, p); in ucl_parse_macro_value()
2011 while (p < chunk->end) { in ucl_parse_macro_value()
2015 ucl_chunk_skipc (chunk, p); in ucl_parse_macro_value()
2024 while (p < chunk->end) { in ucl_parse_macro_value()
2028 ucl_chunk_skipc (chunk, p); in ucl_parse_macro_value()
2041 struct ucl_chunk *chunk) in ucl_parse_macro_arguments() argument
2050 saved.column = chunk->column; in ucl_parse_macro_arguments()
2051 saved.line = chunk->line; in ucl_parse_macro_arguments()
2052 saved.pos = chunk->pos; in ucl_parse_macro_arguments()
2053 saved.remain = chunk->remain; in ucl_parse_macro_arguments()
2054 p = chunk->pos; in ucl_parse_macro_arguments()
2056 if (*p != '(' || chunk->remain < 2) { in ucl_parse_macro_arguments()
2061 ucl_chunk_skipc (chunk, p); in ucl_parse_macro_arguments()
2064 while ((p) < (chunk)->end) { in ucl_parse_macro_arguments()
2085 if (chunk->remain == 0) { in ucl_parse_macro_arguments()
2088 ucl_chunk_skipc (chunk, p); in ucl_parse_macro_arguments()
2095 if (chunk->remain == 0) { in ucl_parse_macro_arguments()
2099 ucl_chunk_skipc (chunk, p); in ucl_parse_macro_arguments()
2125 chunk->column = saved.column; in ucl_parse_macro_arguments()
2126 chunk->line = saved.line; in ucl_parse_macro_arguments()
2127 chunk->pos = saved.pos; in ucl_parse_macro_arguments()
2128 chunk->remain = saved.remain; in ucl_parse_macro_arguments()
2133 #define SKIP_SPACES_COMMENTS(parser, chunk, p) do { \ argument
2134 while ((p) < (chunk)->end) { \
2136 if ((chunk)->remain >= 2 && ucl_lex_is_comment ((p)[0], (p)[1])) { \
2140 p = (chunk)->pos; \
2144 ucl_chunk_skipc (chunk, p); \
2157 struct ucl_chunk *chunk = parser->chunks; in ucl_state_machine() local
2168 p = chunk->pos; in ucl_state_machine()
2169 while (chunk->pos < chunk->end) { in ucl_state_machine()
2184 while (p < chunk->end && ucl_test_character (*p, in ucl_state_machine()
2186 ucl_chunk_skipc (chunk, p); in ucl_state_machine()
2189 p = chunk->pos; in ucl_state_machine()
2193 ucl_chunk_skipc (chunk, p); in ucl_state_machine()
2198 ucl_chunk_skipc (chunk, p); in ucl_state_machine()
2222 while (p < chunk->end && ucl_test_character (*p, UCL_CHARACTER_WHITESPACE_UNSAFE)) { in ucl_state_machine()
2223 ucl_chunk_skipc (chunk, p); in ucl_state_machine()
2225 if (p == chunk->end || *p == '}') { in ucl_state_machine()
2238 if (!ucl_parse_key (parser, chunk, &next_key, &end_of_object)) { in ucl_state_machine()
2244 p = chunk->pos; in ucl_state_machine()
2262 c = chunk->pos; in ucl_state_machine()
2264 p = chunk->pos; in ucl_state_machine()
2268 if (!parser->cur_obj || !ucl_parse_value (parser, chunk)) { in ucl_state_machine()
2274 p = chunk->pos; in ucl_state_machine()
2277 if (!ucl_parse_after_value (parser, chunk)) { in ucl_state_machine()
2297 p = chunk->pos; in ucl_state_machine()
2301 if (!ucl_skip_macro_as_comment (parser, chunk)) { in ucl_state_machine()
2305 chunk->line, in ucl_state_machine()
2306 chunk->column); in ucl_state_machine()
2311 p = chunk->pos; in ucl_state_machine()
2318 ucl_chunk_skipc (chunk, p); in ucl_state_machine()
2329 chunk->line, in ucl_state_machine()
2330 chunk->column, in ucl_state_machine()
2333 *chunk->pos); in ucl_state_machine()
2338 SKIP_SPACES_COMMENTS(parser, chunk, p); in ucl_state_machine()
2345 chunk->line, in ucl_state_machine()
2346 chunk->column); in ucl_state_machine()
2354 if (*chunk->pos == '(') { in ucl_state_machine()
2355 macro_args = ucl_parse_macro_arguments (parser, chunk); in ucl_state_machine()
2356 p = chunk->pos; in ucl_state_machine()
2358 SKIP_SPACES_COMMENTS(parser, chunk, p); in ucl_state_machine()
2364 if (!ucl_parse_macro_value (parser, chunk, macro, in ucl_state_machine()
2409 chunk = parser->chunks; in ucl_state_machine()
2410 p = chunk->pos; in ucl_state_machine()
2604 struct ucl_chunk *chunk; in ucl_parser_add_chunk_full() local
2616 chunk = UCL_ALLOC (sizeof (struct ucl_chunk)); in ucl_parser_add_chunk_full()
2617 if (chunk == NULL) { in ucl_parser_add_chunk_full()
2635 chunk->begin = data; in ucl_parser_add_chunk_full()
2636 chunk->remain = len; in ucl_parser_add_chunk_full()
2637 chunk->pos = chunk->begin; in ucl_parser_add_chunk_full()
2638 chunk->end = chunk->begin + len; in ucl_parser_add_chunk_full()
2639 chunk->line = 1; in ucl_parser_add_chunk_full()
2640 chunk->column = 0; in ucl_parser_add_chunk_full()
2641 chunk->priority = priority; in ucl_parser_add_chunk_full()
2642 chunk->strategy = strat; in ucl_parser_add_chunk_full()
2643 chunk->parse_type = parse_type; in ucl_parser_add_chunk_full()
2644 LL_PREPEND (parser->chunks, chunk); in ucl_parser_add_chunk_full()