Lines Matching refs:parser

9 yaml_parser_load(yaml_parser_t *parser, yaml_document_t *document);
16 yaml_parser_set_composer_error(yaml_parser_t *parser,
20 yaml_parser_set_composer_error_context(yaml_parser_t *parser,
30 yaml_parser_register_anchor(yaml_parser_t *parser,
38 yaml_parser_delete_aliases(yaml_parser_t *parser);
53 yaml_parser_load_nodes(yaml_parser_t *parser, struct loader_ctx *ctx);
56 yaml_parser_load_document(yaml_parser_t *parser, yaml_event_t *event);
59 yaml_parser_load_alias(yaml_parser_t *parser, yaml_event_t *event,
63 yaml_parser_load_scalar(yaml_parser_t *parser, yaml_event_t *event,
67 yaml_parser_load_sequence(yaml_parser_t *parser, yaml_event_t *event,
71 yaml_parser_load_mapping(yaml_parser_t *parser, yaml_event_t *event,
75 yaml_parser_load_sequence_end(yaml_parser_t *parser, yaml_event_t *event,
79 yaml_parser_load_mapping_end(yaml_parser_t *parser, yaml_event_t *event,
87 yaml_parser_load(yaml_parser_t *parser, yaml_document_t *document) in yaml_parser_load() argument
91 assert(parser); /* Non-NULL parser object is expected. */ in yaml_parser_load()
95 if (!STACK_INIT(parser, document->nodes, yaml_node_t*)) in yaml_parser_load()
98 if (!parser->stream_start_produced) { in yaml_parser_load()
99 if (!yaml_parser_parse(parser, &event)) goto error; in yaml_parser_load()
104 if (parser->stream_end_produced) { in yaml_parser_load()
108 if (!yaml_parser_parse(parser, &event)) goto error; in yaml_parser_load()
113 if (!STACK_INIT(parser, parser->aliases, yaml_alias_data_t*)) in yaml_parser_load()
116 parser->document = document; in yaml_parser_load()
118 if (!yaml_parser_load_document(parser, &event)) goto error; in yaml_parser_load()
120 yaml_parser_delete_aliases(parser); in yaml_parser_load()
121 parser->document = NULL; in yaml_parser_load()
127 yaml_parser_delete_aliases(parser); in yaml_parser_load()
129 parser->document = NULL; in yaml_parser_load()
139 yaml_parser_set_composer_error(yaml_parser_t *parser, in yaml_parser_set_composer_error() argument
142 parser->error = YAML_COMPOSER_ERROR; in yaml_parser_set_composer_error()
143 parser->problem = problem; in yaml_parser_set_composer_error()
144 parser->problem_mark = problem_mark; in yaml_parser_set_composer_error()
154 yaml_parser_set_composer_error_context(yaml_parser_t *parser, in yaml_parser_set_composer_error_context() argument
158 parser->error = YAML_COMPOSER_ERROR; in yaml_parser_set_composer_error_context()
159 parser->context = context; in yaml_parser_set_composer_error_context()
160 parser->context_mark = context_mark; in yaml_parser_set_composer_error_context()
161 parser->problem = problem; in yaml_parser_set_composer_error_context()
162 parser->problem_mark = problem_mark; in yaml_parser_set_composer_error_context()
172 yaml_parser_delete_aliases(yaml_parser_t *parser) in yaml_parser_delete_aliases() argument
174 while (!STACK_EMPTY(parser, parser->aliases)) { in yaml_parser_delete_aliases()
175 yaml_free(POP(parser, parser->aliases).anchor); in yaml_parser_delete_aliases()
177 STACK_DEL(parser, parser->aliases); in yaml_parser_delete_aliases()
185 yaml_parser_load_document(yaml_parser_t *parser, yaml_event_t *event) in yaml_parser_load_document() argument
192 parser->document->version_directive in yaml_parser_load_document()
194 parser->document->tag_directives.start in yaml_parser_load_document()
196 parser->document->tag_directives.end in yaml_parser_load_document()
198 parser->document->start_implicit in yaml_parser_load_document()
200 parser->document->start_mark = event->start_mark; in yaml_parser_load_document()
202 if (!STACK_INIT(parser, ctx, int*)) return 0; in yaml_parser_load_document()
203 if (!yaml_parser_load_nodes(parser, &ctx)) { in yaml_parser_load_document()
204 STACK_DEL(parser, ctx); in yaml_parser_load_document()
207 STACK_DEL(parser, ctx); in yaml_parser_load_document()
217 yaml_parser_load_nodes(yaml_parser_t *parser, struct loader_ctx *ctx) in yaml_parser_load_nodes() argument
222 if (!yaml_parser_parse(parser, &event)) return 0; in yaml_parser_load_nodes()
226 if (!yaml_parser_load_alias(parser, &event, ctx)) return 0; in yaml_parser_load_nodes()
229 if (!yaml_parser_load_scalar(parser, &event, ctx)) return 0; in yaml_parser_load_nodes()
232 if (!yaml_parser_load_sequence(parser, &event, ctx)) return 0; in yaml_parser_load_nodes()
235 if (!yaml_parser_load_sequence_end(parser, &event, ctx)) in yaml_parser_load_nodes()
239 if (!yaml_parser_load_mapping(parser, &event, ctx)) return 0; in yaml_parser_load_nodes()
242 if (!yaml_parser_load_mapping_end(parser, &event, ctx)) in yaml_parser_load_nodes()
253 parser->document->end_implicit = event.data.document_end.implicit; in yaml_parser_load_nodes()
254 parser->document->end_mark = event.end_mark; in yaml_parser_load_nodes()
264 yaml_parser_register_anchor(yaml_parser_t *parser, in yaml_parser_register_anchor() argument
274 data.mark = parser->document->nodes.start[index-1].start_mark; in yaml_parser_register_anchor()
276 for (alias_data = parser->aliases.start; in yaml_parser_register_anchor()
277 alias_data != parser->aliases.top; alias_data ++) { in yaml_parser_register_anchor()
280 return yaml_parser_set_composer_error_context(parser, in yaml_parser_register_anchor()
286 if (!PUSH(parser, parser->aliases, data)) { in yaml_parser_register_anchor()
299 yaml_parser_load_node_add(yaml_parser_t *parser, struct loader_ctx *ctx, in yaml_parser_load_node_add() argument
305 if (STACK_EMPTY(parser, *ctx)) { in yaml_parser_load_node_add()
311 parent = &parser->document->nodes.start[parent_index-1]; in yaml_parser_load_node_add()
315 if (!STACK_LIMIT(parser, parent->data.sequence.items, INT_MAX-1)) in yaml_parser_load_node_add()
317 if (!PUSH(parser, parent->data.sequence.items, index)) in yaml_parser_load_node_add()
322 if (!STACK_EMPTY(parser, parent->data.mapping.pairs)) { in yaml_parser_load_node_add()
332 if (!STACK_LIMIT(parser, parent->data.mapping.pairs, INT_MAX-1)) in yaml_parser_load_node_add()
334 if (!PUSH(parser, parent->data.mapping.pairs, pair)) in yaml_parser_load_node_add()
351 yaml_parser_load_alias(yaml_parser_t *parser, yaml_event_t *event, in yaml_parser_load_alias() argument
357 for (alias_data = parser->aliases.start; in yaml_parser_load_alias()
358 alias_data != parser->aliases.top; alias_data ++) { in yaml_parser_load_alias()
361 return yaml_parser_load_node_add(parser, ctx, alias_data->index); in yaml_parser_load_alias()
366 return yaml_parser_set_composer_error(parser, "found undefined alias", in yaml_parser_load_alias()
375 yaml_parser_load_scalar(yaml_parser_t *parser, yaml_event_t *event, in yaml_parser_load_scalar() argument
382 if (!STACK_LIMIT(parser, parser->document->nodes, INT_MAX-1)) goto error; in yaml_parser_load_scalar()
394 if (!PUSH(parser, parser->document->nodes, node)) goto error; in yaml_parser_load_scalar()
396 index = parser->document->nodes.top - parser->document->nodes.start; in yaml_parser_load_scalar()
398 if (!yaml_parser_register_anchor(parser, index, in yaml_parser_load_scalar()
401 return yaml_parser_load_node_add(parser, ctx, index); in yaml_parser_load_scalar()
415 yaml_parser_load_sequence(yaml_parser_t *parser, yaml_event_t *event, in yaml_parser_load_sequence() argument
427 if (!STACK_LIMIT(parser, parser->document->nodes, INT_MAX-1)) goto error; in yaml_parser_load_sequence()
435 if (!STACK_INIT(parser, items, yaml_node_item_t*)) goto error; in yaml_parser_load_sequence()
441 if (!PUSH(parser, parser->document->nodes, node)) goto error; in yaml_parser_load_sequence()
443 index = parser->document->nodes.top - parser->document->nodes.start; in yaml_parser_load_sequence()
445 if (!yaml_parser_register_anchor(parser, index, in yaml_parser_load_sequence()
448 if (!yaml_parser_load_node_add(parser, ctx, index)) return 0; in yaml_parser_load_sequence()
450 if (!STACK_LIMIT(parser, *ctx, INT_MAX-1)) return 0; in yaml_parser_load_sequence()
451 if (!PUSH(parser, *ctx, index)) return 0; in yaml_parser_load_sequence()
462 yaml_parser_load_sequence_end(yaml_parser_t *parser, yaml_event_t *event, in yaml_parser_load_sequence_end() argument
470 assert(parser->document->nodes.start[index-1].type == YAML_SEQUENCE_NODE); in yaml_parser_load_sequence_end()
471 parser->document->nodes.start[index-1].end_mark = event->end_mark; in yaml_parser_load_sequence_end()
473 (void)POP(parser, *ctx); in yaml_parser_load_sequence_end()
483 yaml_parser_load_mapping(yaml_parser_t *parser, yaml_event_t *event, in yaml_parser_load_mapping() argument
495 if (!STACK_LIMIT(parser, parser->document->nodes, INT_MAX-1)) goto error; in yaml_parser_load_mapping()
503 if (!STACK_INIT(parser, pairs, yaml_node_pair_t*)) goto error; in yaml_parser_load_mapping()
509 if (!PUSH(parser, parser->document->nodes, node)) goto error; in yaml_parser_load_mapping()
511 index = parser->document->nodes.top - parser->document->nodes.start; in yaml_parser_load_mapping()
513 if (!yaml_parser_register_anchor(parser, index, in yaml_parser_load_mapping()
516 if (!yaml_parser_load_node_add(parser, ctx, index)) return 0; in yaml_parser_load_mapping()
518 if (!STACK_LIMIT(parser, *ctx, INT_MAX-1)) return 0; in yaml_parser_load_mapping()
519 if (!PUSH(parser, *ctx, index)) return 0; in yaml_parser_load_mapping()
530 yaml_parser_load_mapping_end(yaml_parser_t *parser, yaml_event_t *event, in yaml_parser_load_mapping_end() argument
538 assert(parser->document->nodes.start[index-1].type == YAML_MAPPING_NODE); in yaml_parser_load_mapping_end()
539 parser->document->nodes.start[index-1].end_mark = event->end_mark; in yaml_parser_load_mapping_end()
541 (void)POP(parser, *ctx); in yaml_parser_load_mapping_end()