Lines Matching refs:parser

9 yaml_parser_set_reader_error(yaml_parser_t *parser, const char *problem,
13 yaml_parser_update_raw_buffer(yaml_parser_t *parser);
16 yaml_parser_determine_encoding(yaml_parser_t *parser);
19 yaml_parser_update_buffer(yaml_parser_t *parser, size_t length);
26 yaml_parser_set_reader_error(yaml_parser_t *parser, const char *problem, in yaml_parser_set_reader_error() argument
29 parser->error = YAML_READER_ERROR; in yaml_parser_set_reader_error()
30 parser->problem = problem; in yaml_parser_set_reader_error()
31 parser->problem_offset = offset; in yaml_parser_set_reader_error()
32 parser->problem_value = value; in yaml_parser_set_reader_error()
51 yaml_parser_determine_encoding(yaml_parser_t *parser) in yaml_parser_determine_encoding() argument
55 while (!parser->eof in yaml_parser_determine_encoding()
56 && parser->raw_buffer.last - parser->raw_buffer.pointer < 3) { in yaml_parser_determine_encoding()
57 if (!yaml_parser_update_raw_buffer(parser)) { in yaml_parser_determine_encoding()
64 if (parser->raw_buffer.last - parser->raw_buffer.pointer >= 2 in yaml_parser_determine_encoding()
65 && !memcmp(parser->raw_buffer.pointer, BOM_UTF16LE, 2)) { in yaml_parser_determine_encoding()
66 parser->encoding = YAML_UTF16LE_ENCODING; in yaml_parser_determine_encoding()
67 parser->raw_buffer.pointer += 2; in yaml_parser_determine_encoding()
68 parser->offset += 2; in yaml_parser_determine_encoding()
70 else if (parser->raw_buffer.last - parser->raw_buffer.pointer >= 2 in yaml_parser_determine_encoding()
71 && !memcmp(parser->raw_buffer.pointer, BOM_UTF16BE, 2)) { in yaml_parser_determine_encoding()
72 parser->encoding = YAML_UTF16BE_ENCODING; in yaml_parser_determine_encoding()
73 parser->raw_buffer.pointer += 2; in yaml_parser_determine_encoding()
74 parser->offset += 2; in yaml_parser_determine_encoding()
76 else if (parser->raw_buffer.last - parser->raw_buffer.pointer >= 3 in yaml_parser_determine_encoding()
77 && !memcmp(parser->raw_buffer.pointer, BOM_UTF8, 3)) { in yaml_parser_determine_encoding()
78 parser->encoding = YAML_UTF8_ENCODING; in yaml_parser_determine_encoding()
79 parser->raw_buffer.pointer += 3; in yaml_parser_determine_encoding()
80 parser->offset += 3; in yaml_parser_determine_encoding()
83 parser->encoding = YAML_UTF8_ENCODING; in yaml_parser_determine_encoding()
94 yaml_parser_update_raw_buffer(yaml_parser_t *parser) in yaml_parser_update_raw_buffer() argument
100 if (parser->raw_buffer.start == parser->raw_buffer.pointer in yaml_parser_update_raw_buffer()
101 && parser->raw_buffer.last == parser->raw_buffer.end) in yaml_parser_update_raw_buffer()
106 if (parser->eof) return 1; in yaml_parser_update_raw_buffer()
110 if (parser->raw_buffer.start < parser->raw_buffer.pointer in yaml_parser_update_raw_buffer()
111 && parser->raw_buffer.pointer < parser->raw_buffer.last) { in yaml_parser_update_raw_buffer()
112 memmove(parser->raw_buffer.start, parser->raw_buffer.pointer, in yaml_parser_update_raw_buffer()
113 parser->raw_buffer.last - parser->raw_buffer.pointer); in yaml_parser_update_raw_buffer()
115 parser->raw_buffer.last -= in yaml_parser_update_raw_buffer()
116 parser->raw_buffer.pointer - parser->raw_buffer.start; in yaml_parser_update_raw_buffer()
117 parser->raw_buffer.pointer = parser->raw_buffer.start; in yaml_parser_update_raw_buffer()
121 if (!parser->read_handler(parser->read_handler_data, parser->raw_buffer.last, in yaml_parser_update_raw_buffer()
122 parser->raw_buffer.end - parser->raw_buffer.last, &size_read)) { in yaml_parser_update_raw_buffer()
123 return yaml_parser_set_reader_error(parser, "input error", in yaml_parser_update_raw_buffer()
124 parser->offset, -1); in yaml_parser_update_raw_buffer()
126 parser->raw_buffer.last += size_read; in yaml_parser_update_raw_buffer()
128 parser->eof = 1; in yaml_parser_update_raw_buffer()
142 yaml_parser_update_buffer(yaml_parser_t *parser, size_t length) in yaml_parser_update_buffer() argument
146 assert(parser->read_handler); /* Read handler must be set. */ in yaml_parser_update_buffer()
150 if (parser->eof && parser->raw_buffer.pointer == parser->raw_buffer.last) in yaml_parser_update_buffer()
155 if (parser->unread >= length) in yaml_parser_update_buffer()
160 if (!parser->encoding) { in yaml_parser_update_buffer()
161 if (!yaml_parser_determine_encoding(parser)) in yaml_parser_update_buffer()
167 if (parser->buffer.start < parser->buffer.pointer in yaml_parser_update_buffer()
168 && parser->buffer.pointer < parser->buffer.last) { in yaml_parser_update_buffer()
169 size_t size = parser->buffer.last - parser->buffer.pointer; in yaml_parser_update_buffer()
170 memmove(parser->buffer.start, parser->buffer.pointer, size); in yaml_parser_update_buffer()
171 parser->buffer.pointer = parser->buffer.start; in yaml_parser_update_buffer()
172 parser->buffer.last = parser->buffer.start + size; in yaml_parser_update_buffer()
174 else if (parser->buffer.pointer == parser->buffer.last) { in yaml_parser_update_buffer()
175 parser->buffer.pointer = parser->buffer.start; in yaml_parser_update_buffer()
176 parser->buffer.last = parser->buffer.start; in yaml_parser_update_buffer()
181 while (parser->unread < length) in yaml_parser_update_buffer()
185 if (!first || parser->raw_buffer.pointer == parser->raw_buffer.last) { in yaml_parser_update_buffer()
186 if (!yaml_parser_update_raw_buffer(parser)) return 0; in yaml_parser_update_buffer()
192 while (parser->raw_buffer.pointer != parser->raw_buffer.last) in yaml_parser_update_buffer()
200 size_t raw_unread = parser->raw_buffer.last - parser->raw_buffer.pointer; in yaml_parser_update_buffer()
204 switch (parser->encoding) in yaml_parser_update_buffer()
230 octet = parser->raw_buffer.pointer[0]; in yaml_parser_update_buffer()
239 return yaml_parser_set_reader_error(parser, in yaml_parser_update_buffer()
241 parser->offset, octet); in yaml_parser_update_buffer()
246 if (parser->eof) { in yaml_parser_update_buffer()
247 return yaml_parser_set_reader_error(parser, in yaml_parser_update_buffer()
249 parser->offset, -1); in yaml_parser_update_buffer()
266 octet = parser->raw_buffer.pointer[k]; in yaml_parser_update_buffer()
271 return yaml_parser_set_reader_error(parser, in yaml_parser_update_buffer()
273 parser->offset+k, octet); in yaml_parser_update_buffer()
286 return yaml_parser_set_reader_error(parser, in yaml_parser_update_buffer()
288 parser->offset, -1); in yaml_parser_update_buffer()
293 return yaml_parser_set_reader_error(parser, in yaml_parser_update_buffer()
295 parser->offset, value); in yaml_parser_update_buffer()
302 low = (parser->encoding == YAML_UTF16LE_ENCODING ? 0 : 1); in yaml_parser_update_buffer()
303 high = (parser->encoding == YAML_UTF16LE_ENCODING ? 1 : 0); in yaml_parser_update_buffer()
334 if (parser->eof) { in yaml_parser_update_buffer()
335 return yaml_parser_set_reader_error(parser, in yaml_parser_update_buffer()
337 parser->offset, -1); in yaml_parser_update_buffer()
345 value = parser->raw_buffer.pointer[low] in yaml_parser_update_buffer()
346 + (parser->raw_buffer.pointer[high] << 8); in yaml_parser_update_buffer()
351 return yaml_parser_set_reader_error(parser, in yaml_parser_update_buffer()
353 parser->offset, value); in yaml_parser_update_buffer()
364 if (parser->eof) { in yaml_parser_update_buffer()
365 return yaml_parser_set_reader_error(parser, in yaml_parser_update_buffer()
367 parser->offset, -1); in yaml_parser_update_buffer()
375 value2 = parser->raw_buffer.pointer[low+2] in yaml_parser_update_buffer()
376 + (parser->raw_buffer.pointer[high+2] << 8); in yaml_parser_update_buffer()
381 return yaml_parser_set_reader_error(parser, in yaml_parser_update_buffer()
383 parser->offset+2, value2); in yaml_parser_update_buffer()
416 return yaml_parser_set_reader_error(parser, in yaml_parser_update_buffer()
418 parser->offset, value); in yaml_parser_update_buffer()
422 parser->raw_buffer.pointer += width; in yaml_parser_update_buffer()
423 parser->offset += width; in yaml_parser_update_buffer()
429 *(parser->buffer.last++) = value; in yaml_parser_update_buffer()
433 *(parser->buffer.last++) = 0xC0 + (value >> 6); in yaml_parser_update_buffer()
434 *(parser->buffer.last++) = 0x80 + (value & 0x3F); in yaml_parser_update_buffer()
438 *(parser->buffer.last++) = 0xE0 + (value >> 12); in yaml_parser_update_buffer()
439 *(parser->buffer.last++) = 0x80 + ((value >> 6) & 0x3F); in yaml_parser_update_buffer()
440 *(parser->buffer.last++) = 0x80 + (value & 0x3F); in yaml_parser_update_buffer()
444 *(parser->buffer.last++) = 0xF0 + (value >> 18); in yaml_parser_update_buffer()
445 *(parser->buffer.last++) = 0x80 + ((value >> 12) & 0x3F); in yaml_parser_update_buffer()
446 *(parser->buffer.last++) = 0x80 + ((value >> 6) & 0x3F); in yaml_parser_update_buffer()
447 *(parser->buffer.last++) = 0x80 + (value & 0x3F); in yaml_parser_update_buffer()
450 parser->unread ++; in yaml_parser_update_buffer()
455 if (parser->eof) { in yaml_parser_update_buffer()
456 *(parser->buffer.last++) = '\0'; in yaml_parser_update_buffer()
457 parser->unread ++; in yaml_parser_update_buffer()
463 if (parser->offset >= MAX_FILE_SIZE) { in yaml_parser_update_buffer()
464 return yaml_parser_set_reader_error(parser, "input is too long", in yaml_parser_update_buffer()
465 parser->offset, -1); in yaml_parser_update_buffer()