MCPcopy Create free account
hub / github.com/Moddable-OpenSource/moddable / yaml_parser_register_anchor

Function yaml_parser_register_anchor

xs/tools/yaml/loader.c:246–275  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

244 */
245
246static int
247yaml_parser_register_anchor(yaml_parser_t *parser,
248 int index, yaml_char_t *anchor)
249{
250 yaml_alias_data_t data;
251 yaml_alias_data_t *alias_data;
252
253 if (!anchor) return 1;
254
255 data.anchor = anchor;
256 data.index = index;
257 data.mark = parser->document->nodes.start[index-1].start_mark;
258
259 for (alias_data = parser->aliases.start;
260 alias_data != parser->aliases.top; alias_data ++) {
261 if (strcmp((char *)alias_data->anchor, (char *)anchor) == 0) {
262 yaml_free(anchor);
263 return yaml_parser_set_composer_error_context(parser,
264 "found duplicate anchor; first occurence",
265 alias_data->mark, "second occurence", data.mark);
266 }
267 }
268
269 if (!PUSH(parser, parser->aliases, data)) {
270 yaml_free(anchor);
271 return 0;
272 }
273
274 return 1;
275}
276
277/*
278 * Compose a node corresponding to an alias.

Callers 3

yaml_parser_load_scalarFunction · 0.85
yaml_parser_load_mappingFunction · 0.85

Calls 2

yaml_freeFunction · 0.85

Tested by

no test coverage detected