/// Parse the input stream and produce the next YAML document. /// /// Call this function subsequently to produce a sequence of documents /// constituting the input stream. /// /// If the produced document has no root node, it means that the document end /// has been reached. /// /// An application is responsible for freeing any data associated with the /// produced document object using the yaml_document_delete() function. /// /// An application must not alternate the calls of yaml_parser_load() with the /// calls of yaml_parser_scan() or yaml_parser_parse(). Doing this will break /// the parser. pubunsafefn yaml_parser_load(
parser: *mut yaml_parser_t,
document: *mut yaml_document_t,
) -> Success { let current_block: u64; letmut event = MaybeUninit::<yaml_event_t>::uninit(); let event = event.as_mut_ptr();
__assert!(!parser.is_null());
__assert!(!document.is_null());
memset(
document as *mut libc::c_void, 0,
size_of::<yaml_document_t>() as libc::c_ulong,
);
STACK_INIT!((*document).nodes, yaml_node_t); if !(*parser).stream_start_produced { if yaml_parser_parse(parser, event).fail {
current_block = 6234624449317607669;
} else {
__assert!((*event).type_ == YAML_STREAM_START_EVENT);
current_block = 7815301370352969686;
}
} else {
current_block = 7815301370352969686;
} if current_block != 6234624449317607669 { if (*parser).stream_end_produced { return OK;
} if yaml_parser_parse(parser, event).ok { if (*event).type_ == YAML_STREAM_END_EVENT { return OK;
}
STACK_INIT!((*parser).aliases, yaml_alias_data_t); let fresh6 = addr_of_mut!((*parser).document);
*fresh6 = document; if yaml_parser_load_document(parser, event).ok {
yaml_parser_delete_aliases(parser); let fresh7 = addr_of_mut!((*parser).document);
*fresh7 = ptr::null_mut::<yaml_document_t>(); return OK;
}
}
}
yaml_parser_delete_aliases(parser);
yaml_document_delete(document); let fresh8 = addr_of_mut!((*parser).document);
*fresh8 = ptr::null_mut::<yaml_document_t>();
FAIL
}
unsafefn yaml_parser_register_anchor(
parser: *mut yaml_parser_t,
index: libc::c_int,
anchor: *mut yaml_char_t,
) -> Success { letmut data = MaybeUninit::<yaml_alias_data_t>::uninit(); let data = data.as_mut_ptr(); letmut alias_data: *mut yaml_alias_data_t; if anchor.is_null() { return OK;
}
(*data).anchor = anchor;
(*data).index = index;
(*data).mark = (*(*(*parser).document)
.nodes
.start
.wrapping_offset((index - 1) as isize))
.start_mark;
alias_data = (*parser).aliases.start; while alias_data != (*parser).aliases.top { if strcmp(
(*alias_data).anchor as *mut libc::c_char,
anchor as *mut libc::c_char,
) == 0
{
yaml_free(anchor as *mut libc::c_void); return yaml_parser_set_composer_error_context(
parser,
b"found duplicate anchor; first occurrence\0"as *const u8 as *const libc::c_char,
(*alias_data).mark,
b"second occurrence\0"as *const u8 as *const libc::c_char,
(*data).mark,
);
}
alias_data = alias_data.wrapping_offset(1);
}
PUSH!((*parser).aliases, *data);
OK
}
unsafefn yaml_parser_load_node_add(
parser: *mut yaml_parser_t,
ctx: *mut loader_ctx,
index: libc::c_int,
) -> Success { if STACK_EMPTY!(*ctx) { return OK;
} let parent_index: libc::c_int = *(*ctx).top.wrapping_offset(-1_isize); let parent: *mut yaml_node_t = addr_of_mut!(
*((*(*parser).document).nodes.start).wrapping_offset((parent_index - 1) as isize)
); let current_block_17: u64; match (*parent).type_ {
YAML_SEQUENCE_NODE => { if STACK_LIMIT!(parser, (*parent).data.sequence.items).fail { return FAIL;
}
PUSH!((*parent).data.sequence.items, index);
}
YAML_MAPPING_NODE => { letmut pair = MaybeUninit::<yaml_node_pair_t>::uninit(); let pair = pair.as_mut_ptr(); if !STACK_EMPTY!((*parent).data.mapping.pairs) { let p: *mut yaml_node_pair_t =
(*parent).data.mapping.pairs.top.wrapping_offset(-1_isize); if (*p).key != 0 && (*p).value == 0 {
(*p).value = index;
current_block_17 = 11307063007268554308;
} else {
current_block_17 = 17407779659766490442;
}
} else {
current_block_17 = 17407779659766490442;
} match current_block_17 { 11307063007268554308 => {}
_ => {
(*pair).key = index;
(*pair).value = 0; if STACK_LIMIT!(parser, (*parent).data.mapping.pairs).fail { return FAIL;
}
PUSH!((*parent).data.mapping.pairs, *pair);
}
}
}
_ => {
__assert!(false);
}
}
OK
}
unsafefn yaml_parser_load_alias(
parser: *mut yaml_parser_t,
event: *mut yaml_event_t,
ctx: *mut loader_ctx,
) -> Success { let anchor: *mut yaml_char_t = (*event).data.alias.anchor; letmut alias_data: *mut yaml_alias_data_t;
alias_data = (*parser).aliases.start; while alias_data != (*parser).aliases.top { if strcmp(
(*alias_data).anchor as *mut libc::c_char,
anchor as *mut libc::c_char,
) == 0
{
yaml_free(anchor as *mut libc::c_void); return yaml_parser_load_node_add(parser, ctx, (*alias_data).index);
}
alias_data = alias_data.wrapping_offset(1);
}
yaml_free(anchor as *mut libc::c_void);
yaml_parser_set_composer_error(
parser,
b"found undefined alias\0"as *const u8 as *const libc::c_char,
(*event).start_mark,
)
}
unsafefn yaml_parser_load_scalar(
parser: *mut yaml_parser_t,
event: *mut yaml_event_t,
ctx: *mut loader_ctx,
) -> Success { let current_block: u64; letmut node = MaybeUninit::<yaml_node_t>::uninit(); let node = node.as_mut_ptr(); let index: libc::c_int; letmut tag: *mut yaml_char_t = (*event).data.scalar.tag; if STACK_LIMIT!(parser, (*(*parser).document).nodes).ok { if tag.is_null()
|| strcmp(
tag as *mut libc::c_char,
b"!\0"as *const u8 as *const libc::c_char,
) == 0
{
yaml_free(tag as *mut libc::c_void);
tag = yaml_strdup(
b"tag:yaml.org,2002:str\0"as *const u8 as *const libc::c_char as *mut yaml_char_t,
); if tag.is_null() {
current_block = 10579931339944277179;
} else {
current_block = 11006700562992250127;
}
} else {
current_block = 11006700562992250127;
} if current_block != 10579931339944277179 {
memset(
node as *mut libc::c_void, 0,
size_of::<yaml_node_t>() as libc::c_ulong,
);
(*node).type_ = YAML_SCALAR_NODE;
(*node).tag = tag;
(*node).start_mark = (*event).start_mark;
(*node).end_mark = (*event).end_mark;
(*node).data.scalar.value = (*event).data.scalar.value;
(*node).data.scalar.length = (*event).data.scalar.length;
(*node).data.scalar.style = (*event).data.scalar.style;
PUSH!((*(*parser).document).nodes, *node);
index = (*(*parser).document)
.nodes
.top
.c_offset_from((*(*parser).document).nodes.start) as libc::c_int; if yaml_parser_register_anchor(parser, index, (*event).data.scalar.anchor).fail { return FAIL;
} return yaml_parser_load_node_add(parser, ctx, index);
}
}
yaml_free(tag as *mut libc::c_void);
yaml_free((*event).data.scalar.anchor as *mut libc::c_void);
yaml_free((*event).data.scalar.value as *mut libc::c_void);
FAIL
}
unsafefn yaml_parser_load_sequence(
parser: *mut yaml_parser_t,
event: *mut yaml_event_t,
ctx: *mut loader_ctx,
) -> Success { let current_block: u64; letmut node = MaybeUninit::<yaml_node_t>::uninit(); let node = node.as_mut_ptr(); struct Items {
start: *mut yaml_node_item_t,
end: *mut yaml_node_item_t,
top: *mut yaml_node_item_t,
} letmut items = Items {
start: ptr::null_mut::<yaml_node_item_t>(),
end: ptr::null_mut::<yaml_node_item_t>(),
top: ptr::null_mut::<yaml_node_item_t>(),
}; let index: libc::c_int; letmut tag: *mut yaml_char_t = (*event).data.sequence_start.tag; if STACK_LIMIT!(parser, (*(*parser).document).nodes).ok { if tag.is_null()
|| strcmp(
tag as *mut libc::c_char,
b"!\0"as *const u8 as *const libc::c_char,
) == 0
{
yaml_free(tag as *mut libc::c_void);
tag = yaml_strdup(
b"tag:yaml.org,2002:seq\0"as *const u8 as *const libc::c_char as *mut yaml_char_t,
); if tag.is_null() {
current_block = 13474536459355229096;
} else {
current_block = 6937071982253665452;
}
} else {
current_block = 6937071982253665452;
} if current_block != 13474536459355229096 {
STACK_INIT!(items, yaml_node_item_t);
memset(
node as *mut libc::c_void, 0,
size_of::<yaml_node_t>() as libc::c_ulong,
);
(*node).type_ = YAML_SEQUENCE_NODE;
(*node).tag = tag;
(*node).start_mark = (*event).start_mark;
(*node).end_mark = (*event).end_mark;
(*node).data.sequence.items.start = items.start;
(*node).data.sequence.items.end = items.end;
(*node).data.sequence.items.top = items.start;
(*node).data.sequence.style = (*event).data.sequence_start.style;
PUSH!((*(*parser).document).nodes, *node);
index = (*(*parser).document)
.nodes
.top
.c_offset_from((*(*parser).document).nodes.start) as libc::c_int; if yaml_parser_register_anchor(parser, index, (*event).data.sequence_start.anchor).fail
{ return FAIL;
} if yaml_parser_load_node_add(parser, ctx, index).fail { return FAIL;
} if STACK_LIMIT!(parser, *ctx).fail { return FAIL;
}
PUSH!(*ctx, index); return OK;
}
}
yaml_free(tag as *mut libc::c_void);
yaml_free((*event).data.sequence_start.anchor as *mut libc::c_void);
FAIL
}
unsafefn yaml_parser_load_sequence_end(
parser: *mut yaml_parser_t,
event: *mut yaml_event_t,
ctx: *mut loader_ctx,
) -> Success {
__assert!(((*ctx).top).c_offset_from((*ctx).start) as libc::c_long > 0_i64); let index: libc::c_int = *(*ctx).top.wrapping_offset(-1_isize);
__assert!(
(*((*(*parser).document).nodes.start).wrapping_offset((index - 1) as isize)).type_
== YAML_SEQUENCE_NODE
);
(*(*(*parser).document)
.nodes
.start
.wrapping_offset((index - 1) as isize))
.end_mark = (*event).end_mark; let _ = POP!(*ctx);
OK
}
unsafefn yaml_parser_load_mapping(
parser: *mut yaml_parser_t,
event: *mut yaml_event_t,
ctx: *mut loader_ctx,
) -> Success { let current_block: u64; letmut node = MaybeUninit::<yaml_node_t>::uninit(); let node = node.as_mut_ptr(); struct Pairs {
start: *mut yaml_node_pair_t,
end: *mut yaml_node_pair_t,
top: *mut yaml_node_pair_t,
} letmut pairs = Pairs {
start: ptr::null_mut::<yaml_node_pair_t>(),
end: ptr::null_mut::<yaml_node_pair_t>(),
top: ptr::null_mut::<yaml_node_pair_t>(),
}; let index: libc::c_int; letmut tag: *mut yaml_char_t = (*event).data.mapping_start.tag; if STACK_LIMIT!(parser, (*(*parser).document).nodes).ok { if tag.is_null()
|| strcmp(
tag as *mut libc::c_char,
b"!\0"as *const u8 as *const libc::c_char,
) == 0
{
yaml_free(tag as *mut libc::c_void);
tag = yaml_strdup(
b"tag:yaml.org,2002:map\0"as *const u8 as *const libc::c_char as *mut yaml_char_t,
); if tag.is_null() {
current_block = 13635467803606088781;
} else {
current_block = 6937071982253665452;
}
} else {
current_block = 6937071982253665452;
} if current_block != 13635467803606088781 {
STACK_INIT!(pairs, yaml_node_pair_t);
memset(
node as *mut libc::c_void, 0,
size_of::<yaml_node_t>() as libc::c_ulong,
);
(*node).type_ = YAML_MAPPING_NODE;
(*node).tag = tag;
(*node).start_mark = (*event).start_mark;
(*node).end_mark = (*event).end_mark;
(*node).data.mapping.pairs.start = pairs.start;
(*node).data.mapping.pairs.end = pairs.end;
(*node).data.mapping.pairs.top = pairs.start;
(*node).data.mapping.style = (*event).data.mapping_start.style;
PUSH!((*(*parser).document).nodes, *node);
index = (*(*parser).document)
.nodes
.top
.c_offset_from((*(*parser).document).nodes.start) as libc::c_int; if yaml_parser_register_anchor(parser, index, (*event).data.mapping_start.anchor).fail { return FAIL;
} if yaml_parser_load_node_add(parser, ctx, index).fail { return FAIL;
} if STACK_LIMIT!(parser, *ctx).fail { return FAIL;
}
PUSH!(*ctx, index); return OK;
}
}
yaml_free(tag as *mut libc::c_void);
yaml_free((*event).data.mapping_start.anchor as *mut libc::c_void);
FAIL
}
unsafefn yaml_parser_load_mapping_end(
parser: *mut yaml_parser_t,
event: *mut yaml_event_t,
ctx: *mut loader_ctx,
) -> Success {
__assert!(((*ctx).top).c_offset_from((*ctx).start) as libc::c_long > 0_i64); let index: libc::c_int = *(*ctx).top.wrapping_offset(-1_isize);
__assert!(
(*((*(*parser).document).nodes.start).wrapping_offset((index - 1) as isize)).type_
== YAML_MAPPING_NODE
);
(*(*(*parser).document)
.nodes
.start
.wrapping_offset((index - 1) as isize))
.end_mark = (*event).end_mark; let _ = POP!(*ctx);
OK
}
Messung V0.5 in Prozent
¤ Diese beiden folgenden Angebotsgruppen bietet das Unternehmen0.12Angebot
(Wie Sie bei der Firma Beratungs- und Dienstleistungen beauftragen können 2026-09-28)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.