MCPcopy
hub / github.com/go-yaml/yaml / yaml_parser_parse_document_end

Function yaml_parser_parse_document_end

parserc.go:385–416  ·  view source on GitHub ↗

Parse the productions: implicit_document ::= block_node DOCUMENT-END* ************* explicit_document ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END*

(parser *yaml_parser_t, event *yaml_event_t)

Source from the content-addressed store, hash-verified

383// explicit_document ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END*
384//
385func yaml_parser_parse_document_end(parser *yaml_parser_t, event *yaml_event_t) bool {
386 token := peek_token(parser)
387 if token == nil {
388 return false
389 }
390
391 start_mark := token.start_mark
392 end_mark := token.start_mark
393
394 implicit := true
395 if token.typ == yaml_DOCUMENT_END_TOKEN {
396 end_mark = token.end_mark
397 skip_token(parser)
398 implicit = false
399 }
400
401 parser.tag_directives = parser.tag_directives[:0]
402
403 parser.state = yaml_PARSE_DOCUMENT_START_STATE
404 *event = yaml_event_t{
405 typ: yaml_DOCUMENT_END_EVENT,
406 start_mark: start_mark,
407 end_mark: end_mark,
408 implicit: implicit,
409 }
410 yaml_parser_set_event_comments(parser, event)
411 if len(event.head_comment) > 0 && len(event.foot_comment) == 0 {
412 event.foot_comment = event.head_comment
413 event.head_comment = nil
414 }
415 return true
416}
417
418func yaml_parser_set_event_comments(parser *yaml_parser_t, event *yaml_event_t) {
419 event.head_comment = parser.head_comment

Callers 1

Calls 3

peek_tokenFunction · 0.85
skip_tokenFunction · 0.85

Tested by

no test coverage detected