Skip to content

Commit

Permalink
Merge pull request #501 from biojppm/ysfixes
Browse files Browse the repository at this point in the history
fix missing tag for flow seqs
  • Loading branch information
biojppm authored Feb 22, 2025
2 parents a84cdf5 + ab4f686 commit 8c37616
Show file tree
Hide file tree
Showing 3 changed files with 109 additions and 0 deletions.
4 changes: 4 additions & 0 deletions changelog/current.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@

## Fixes

- [PR#501](https://github.com/biojppm/rapidyaml/pull/501): fix missing tag in `- !!seq []`
1 change: 1 addition & 0 deletions src/c4/yml/parse_engine.def.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -5801,6 +5801,7 @@ void ParseEngine<EventHandler>::_handle_seq_block()
{
_c4dbgp("seqblck[RVAL]: start child seqflow");
addrem_flags(RNXT, RVAL);
_handle_annotations_before_blck_val_scalar();
m_evt_handler->begin_seq_val_flow();
addrem_flags(FLOW|RVAL, BLCK|RNXT);
_line_progressed(1);
Expand Down
104 changes: 104 additions & 0 deletions test/test_parse_engine_5_tag.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -517,6 +517,110 @@ ENGINE_TEST_ERR(DirectiveMultipleYAML_3,
"---\n"
"bar")


//-----------------------------------------------------------------------------

ENGINE_TEST(TagEmptySeq0,
("!!seq []\n", "!!seq []"),
"+STR\n+DOC\n+SEQ [] <tag:yaml.org,2002:seq>\n-SEQ\n-DOC\n-STR\n")
{
___(ps.begin_stream());
___(ps.begin_doc());
___(ps.set_val_tag("!!seq"));
___(ps.begin_seq_val_flow());
___(ps.end_seq());
___(ps.end_doc());
___(ps.end_stream());
}

ENGINE_TEST(TagEmptySeq1,
(""
"- !!seq []\n"
""),
"+STR\n+DOC\n+SEQ\n+SEQ [] <tag:yaml.org,2002:seq>\n-SEQ\n-SEQ\n-DOC\n-STR\n")
{
___(ps.begin_stream());
___(ps.begin_doc());
___(ps.begin_seq_val_block());
___(ps.set_val_tag("!!seq"));
___(ps.begin_seq_val_flow());
___(ps.end_seq());
___(ps.end_seq());
___(ps.end_doc());
___(ps.end_stream());
}

ENGINE_TEST(TagEmptySeq2,
(""
"!!seq\n"
"- !!seq []\n"
""),
"+STR\n+DOC\n+SEQ <tag:yaml.org,2002:seq>\n+SEQ [] <tag:yaml.org,2002:seq>\n-SEQ\n-SEQ\n-DOC\n-STR\n")
{
___(ps.begin_stream());
___(ps.begin_doc());
___(ps.set_val_tag("!!seq"));
___(ps.begin_seq_val_block());
___(ps.set_val_tag("!!seq"));
___(ps.begin_seq_val_flow());
___(ps.end_seq());
___(ps.end_seq());
___(ps.end_doc());
___(ps.end_stream());
}


//-----------------------------------------------------------------------------

ENGINE_TEST(TagEmptyMap0,
("!!map {}\n", "!!map {}"),
"+STR\n+DOC\n+MAP {} <tag:yaml.org,2002:map>\n-MAP\n-DOC\n-STR\n")
{
___(ps.begin_stream());
___(ps.begin_doc());
___(ps.set_val_tag("!!map"));
___(ps.begin_map_val_flow());
___(ps.end_map());
___(ps.end_doc());
___(ps.end_stream());
}

ENGINE_TEST(TagEmptyMap1,
(""
"- !!map {}\n"
""),
"+STR\n+DOC\n+SEQ\n+MAP {} <tag:yaml.org,2002:map>\n-MAP\n-SEQ\n-DOC\n-STR\n")
{
___(ps.begin_stream());
___(ps.begin_doc());
___(ps.begin_seq_val_block());
___(ps.set_val_tag("!!map"));
___(ps.begin_map_val_flow());
___(ps.end_map());
___(ps.end_seq());
___(ps.end_doc());
___(ps.end_stream());
}

ENGINE_TEST(TagEmptyMap2,
(""
"!!seq\n"
"- !!map {}\n"
""),
"+STR\n+DOC\n+SEQ <tag:yaml.org,2002:seq>\n+MAP {} <tag:yaml.org,2002:map>\n-MAP\n-SEQ\n-DOC\n-STR\n")
{
___(ps.begin_stream());
___(ps.begin_doc());
___(ps.set_val_tag("!!seq"));
___(ps.begin_seq_val_block());
___(ps.set_val_tag("!!map"));
___(ps.begin_map_val_flow());
___(ps.end_map());
___(ps.end_seq());
___(ps.end_doc());
___(ps.end_stream());
}

} // namespace yml
} // namespace c4

Expand Down

0 comments on commit 8c37616

Please sign in to comment.