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)
| 383 | // explicit_document ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END* |
| 384 | // |
| 385 | func 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 | |
| 418 | func yaml_parser_set_event_comments(parser *yaml_parser_t, event *yaml_event_t) { |
| 419 | event.head_comment = parser.head_comment |
no test coverage detected