mirror of
https://github.com/biojppm/rapidyaml.git
synced 2026-01-18 21:41:18 +01:00
comments comments wip [ci skip]: block seqs wip
This commit is contained in:
@@ -38,6 +38,7 @@ Checks:
|
||||
- -google-build-namespaces # do not use unnamed namespaces in header files
|
||||
- -google-build-using-namespace # do not use namespace using-directives; use using-declarations instead
|
||||
- -google-explicit-constructor # single-argument constructors must be marked explicit to avoid unintentional implicit conversions
|
||||
- -google-readability-avoid-underscore-in-googletest-name
|
||||
- -google-readability-braces-around-statements # statement should be inside braces
|
||||
- -google-readability-casting # C-style casts are discouraged; use static_cast
|
||||
- -google-readability-function-size # function '_handle_map_block' exceeds recommended size/complexity thresholds
|
||||
|
||||
@@ -1796,7 +1796,10 @@ CommentData const* Emitter<Writer>::_write_comm_trailing(id_type node, CommentTy
|
||||
{
|
||||
CommentData const* comm = _comm_get(node, type, indent_extra);
|
||||
if(comm)
|
||||
_write_comm_trailing(comm, (m_opts.comments_sep() && _comm_needs_sep(node, type)));
|
||||
{
|
||||
bool with_sep = (m_opts.comments_sep() && _comm_needs_sep(node, type));
|
||||
_write_comm_trailing(comm, with_sep);
|
||||
}
|
||||
return comm;
|
||||
}
|
||||
|
||||
@@ -1805,7 +1808,10 @@ CommentData const* Emitter<Writer>::_write_comm_leading(id_type node, CommentTyp
|
||||
{
|
||||
CommentData const* comm = _comm_get(node, type, indent_extra);
|
||||
if(comm)
|
||||
_write_comm_leading(comm, (m_opts.comments_sep() && _comm_needs_sep(node, type)));
|
||||
{
|
||||
bool with_sep = (m_opts.comments_sep() && _comm_needs_sep(node, type));
|
||||
_write_comm_leading(comm, with_sep);
|
||||
}
|
||||
return comm;
|
||||
}
|
||||
#endif // RYML_WITH_COMMENTS
|
||||
|
||||
@@ -10,38 +10,6 @@
|
||||
#include "c4/yml/filter_processor.hpp"
|
||||
|
||||
|
||||
#ifdef RYML_DBG
|
||||
#include <c4/dump.hpp>
|
||||
#include "c4/yml/detail/print.hpp"
|
||||
#define _c4err(...) \
|
||||
do { RYML_DEBUG_BREAK(); this->_err(RYML_LOC_HERE(), __VA_ARGS__); } while(0)
|
||||
#else
|
||||
#define _c4err(...) \
|
||||
this->_err(RYML_LOC_HERE(), __VA_ARGS__)
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(RYML_WITH_TAB_TOKENS)
|
||||
#define _RYML_WITH_TAB_TOKENS(...) __VA_ARGS__
|
||||
#define _RYML_WITHOUT_TAB_TOKENS(...)
|
||||
#define _RYML_WITH_OR_WITHOUT_TAB_TOKENS(with, without) with
|
||||
#else
|
||||
#define _RYML_WITH_TAB_TOKENS(...)
|
||||
#define _RYML_WITHOUT_TAB_TOKENS(...) __VA_ARGS__
|
||||
#define _RYML_WITH_OR_WITHOUT_TAB_TOKENS(with, without) without
|
||||
#endif
|
||||
|
||||
|
||||
// scaffold:
|
||||
#define _c4dbgnextline() \
|
||||
do { \
|
||||
_c4dbgq("\n-----------"); \
|
||||
_c4dbgt("handling line={}, offset={}B", \
|
||||
m_evt_handler->m_curr->pos.line, \
|
||||
m_evt_handler->m_curr->pos.offset); \
|
||||
} while(0)
|
||||
|
||||
|
||||
#if defined(_MSC_VER)
|
||||
# pragma warning(push)
|
||||
# pragma warning(disable: 4296/*expression is always 'boolean_value'*/)
|
||||
@@ -63,6 +31,37 @@
|
||||
|
||||
// NOLINTBEGIN(hicpp-signed-bitwise,cppcoreguidelines-avoid-goto,hicpp-avoid-goto,hicpp-multiway-paths-covered)
|
||||
|
||||
|
||||
#if defined(RYML_WITH_TAB_TOKENS)
|
||||
#define _RYML_WITH_TAB_TOKENS(...) __VA_ARGS__
|
||||
#define _RYML_WITHOUT_TAB_TOKENS(...)
|
||||
#define _RYML_WITH_OR_WITHOUT_TAB_TOKENS(with, without) with
|
||||
#else
|
||||
#define _RYML_WITH_TAB_TOKENS(...)
|
||||
#define _RYML_WITHOUT_TAB_TOKENS(...) __VA_ARGS__
|
||||
#define _RYML_WITH_OR_WITHOUT_TAB_TOKENS(with, without) without
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef RYML_DBG
|
||||
#define _c4err(...) \
|
||||
this->_err(RYML_LOC_HERE(), __VA_ARGS__)
|
||||
#define _c4dbgnextline()
|
||||
#else
|
||||
#include <c4/dump.hpp>
|
||||
#include "c4/yml/detail/print.hpp"
|
||||
#define _c4err(...) \
|
||||
do { RYML_DEBUG_BREAK(); this->_err(RYML_LOC_HERE(), __VA_ARGS__); } while(0)
|
||||
#define _c4dbgnextline() \
|
||||
do { \
|
||||
_c4dbgq("\n-----------"); \
|
||||
_c4dbgt("handling line={}, offset={}B", \
|
||||
m_evt_handler->m_curr->pos.line, \
|
||||
m_evt_handler->m_curr->pos.offset); \
|
||||
} while(0)
|
||||
#endif
|
||||
|
||||
|
||||
namespace c4 {
|
||||
namespace yml {
|
||||
|
||||
@@ -1701,6 +1700,18 @@ void ParseEngine<EventHandler>::_end_map_blck()
|
||||
template<class EventHandler>
|
||||
void ParseEngine<EventHandler>::_end_seq_blck()
|
||||
{
|
||||
#ifdef RYML_WITH_COMMENTS
|
||||
if(m_pending_comments.num_entries == 3)
|
||||
{
|
||||
_c4err("not implemented");
|
||||
}
|
||||
else if(m_pending_comments.num_entries == 2)
|
||||
{
|
||||
m_evt_handler->add_comment(m_pending_comments.entries[0].txt, COMM_FOOTER);
|
||||
m_pending_comments.entries[0] = m_pending_comments.entries[1];
|
||||
--m_pending_comments.num_entries;
|
||||
}
|
||||
#endif
|
||||
if(has_any(RVAL))
|
||||
{
|
||||
_c4dbgp("seqblck: set missing val");
|
||||
@@ -1708,6 +1719,7 @@ void ParseEngine<EventHandler>::_end_seq_blck()
|
||||
m_evt_handler->set_val_scalar_plain_empty();
|
||||
}
|
||||
m_evt_handler->end_seq_block();
|
||||
_RYML_WITH_COMMENTS(_maybe_apply_pending_comment(COMM_LEADING, COMM_FOOTER);)
|
||||
}
|
||||
|
||||
template<class EventHandler>
|
||||
@@ -4096,7 +4108,7 @@ inline C4_NO_INLINE csubstr detail::_parser_flags_to_str(substr buf, ParserFlag_
|
||||
bool gotone = false;
|
||||
|
||||
#define _prflag(fl) \
|
||||
if((flags & fl) == (fl)) \
|
||||
if((flags & (fl)) == (fl)) \
|
||||
{ \
|
||||
if(gotone) \
|
||||
{ \
|
||||
@@ -4996,6 +5008,50 @@ void ParseEngine<EventHandler>::_maybe_handle_leading_comment_flow_val_map(Comme
|
||||
}
|
||||
}
|
||||
|
||||
template<class EventHandler>
|
||||
void ParseEngine<EventHandler>::_maybe_handle_leading_comment_blck_seq_dash(CommentType_e current)
|
||||
{
|
||||
if(m_pending_comments.num_entries == 1)
|
||||
{
|
||||
auto const& entry = m_pending_comments.entries[0];
|
||||
bool leading_exists = (m_evt_handler->m_curr->leading_comments & COMM_LEADING);
|
||||
_RYML_ASSERT_PARSE_(m_evt_handler->m_stack.m_callbacks, entry.type != COMM_NONE, m_evt_handler->m_curr->pos);
|
||||
_RYML_ASSERT_PARSE_(m_evt_handler->m_stack.m_callbacks, entry.type == COMM_LEADING || entry.type == COMM_VAL_LEADING || entry.type == COMM_FOOTER, m_evt_handler->m_curr->pos);
|
||||
CommentType_e actual = leading_exists ? current : COMM_LEADING;
|
||||
_c4dbgpf("pending leading comment! context={}({}) leading_exists={} actual={}({})", comment_type_str(current), current, leading_exists, comment_type_str(actual), actual);
|
||||
m_evt_handler->add_comment(entry.txt, actual);
|
||||
m_evt_handler->m_curr->leading_comments |= actual;
|
||||
m_pending_comments.num_entries = 0;
|
||||
}
|
||||
else if(m_pending_comments.num_entries == 2)
|
||||
{
|
||||
_RYML_ASSERT_PARSE_(m_evt_handler->m_stack.m_callbacks, current != COMM_VAL_LEADING, m_evt_handler->m_curr->pos);
|
||||
_c4dbgpf("pending leading comment [0]! type={}({})", comment_type_str(m_pending_comments.entries[0].type), m_pending_comments.entries[0].type);
|
||||
m_evt_handler->add_comment(m_pending_comments.entries[0].txt, COMM_FOOTER);
|
||||
_c4dbgpf("pending leading comment [1]! type={}({})", comment_type_str(current), current);
|
||||
m_evt_handler->add_comment(m_pending_comments.entries[1].txt, current);
|
||||
m_evt_handler->m_curr->leading_comments |= COMM_VAL_LEADING|current;
|
||||
m_pending_comments.num_entries = 0;
|
||||
}
|
||||
else if(m_pending_comments.num_entries == 3)
|
||||
{
|
||||
_RYML_ASSERT_PARSE_(m_evt_handler->m_stack.m_callbacks, current != COMM_VAL_LEADING, m_evt_handler->m_curr->pos);
|
||||
_c4dbgpf("pending leading comment [0]! type={}({}) -> {}({})", comment_type_str(m_pending_comments.entries[0].type), m_pending_comments.entries[0].type, comment_type_str(COMM_LEADING), COMM_LEADING);
|
||||
m_evt_handler->add_comment(m_pending_comments.entries[0].txt, COMM_LEADING);
|
||||
_c4dbgpf("pending leading comment [1]! type={}({}) -> {}({})", comment_type_str(m_pending_comments.entries[1].type), m_pending_comments.entries[1].type, comment_type_str(COMM_VAL_LEADING), COMM_VAL_LEADING);
|
||||
m_evt_handler->add_comment(m_pending_comments.entries[1].txt, COMM_VAL_LEADING);
|
||||
_c4dbgpf("pending leading comment [2]! type={}({})", comment_type_str(current), current);
|
||||
m_evt_handler->add_comment(m_pending_comments.entries[2].txt, current);
|
||||
m_evt_handler->m_curr->leading_comments |= COMM_LEADING|COMM_VAL_LEADING|current;
|
||||
m_pending_comments.num_entries = 0;
|
||||
}
|
||||
else if(current & (COMM_VAL_LEADING2|COMM_VAL_ANCHOR_LEADING))
|
||||
{
|
||||
_RYML_ASSERT_PARSE_(m_evt_handler->m_stack.m_callbacks, m_pending_comments.num_entries == 0, m_evt_handler->m_curr->pos);
|
||||
m_evt_handler->m_curr->leading_comments |= COMM_VAL_LEADING;
|
||||
}
|
||||
}
|
||||
|
||||
template<class EventHandler>
|
||||
void ParseEngine<EventHandler>::_maybe_handle_leading_comment_flow_comma_map()
|
||||
{
|
||||
@@ -6901,8 +6957,22 @@ seqblck_start:
|
||||
{
|
||||
_c4dbgp("seqblck[RNXT]: expect next val");
|
||||
addrem_flags(RVAL, RNXT);
|
||||
#ifdef RYML_WITH_COMMENTS
|
||||
if(m_pending_comments.num_entries == 2)
|
||||
{
|
||||
auto const& entry0 = m_pending_comments.entries[0];
|
||||
_RYML_ASSERT_PARSE_(m_evt_handler->m_stack.m_callbacks, entry0.type == COMM_LEADING, m_evt_handler->m_curr->pos);
|
||||
m_evt_handler->add_comment(entry0.txt, COMM_FOOTER);
|
||||
m_pending_comments.entries[0] = m_pending_comments.entries[1];
|
||||
--m_pending_comments.num_entries;
|
||||
}
|
||||
else if(m_pending_comments.num_entries == 3)
|
||||
{
|
||||
_c4err("not implemented");
|
||||
}
|
||||
#endif
|
||||
m_evt_handler->add_sibling();
|
||||
_RYML_WITH_COMMENTS(_maybe_handle_leading_comment_flow_val_map(COMM_LEADING);)
|
||||
_RYML_WITH_COMMENTS(_maybe_apply_pending_comment();)
|
||||
_line_progressed(1);
|
||||
_maybe_skip_whitespace_tokens();
|
||||
#ifdef RYML_WITH_COMMENTS
|
||||
@@ -7012,8 +7082,7 @@ seqblck_start:
|
||||
_scan_line();
|
||||
if(_finished_file())
|
||||
{
|
||||
_c4dbgp("seqblck: finish!");
|
||||
_RYML_WITH_COMMENTS(_maybe_handle_leading_comment_flow_val(COMM_FOOTER);)
|
||||
_c4dbgp("seqblck: finish file!");
|
||||
_end_seq_blck();
|
||||
goto seqblck_finish;
|
||||
}
|
||||
|
||||
@@ -753,6 +753,7 @@ private:
|
||||
void _maybe_handle_leading_comment_flow_key(CommentType_e current);
|
||||
void _maybe_handle_leading_comment_flow_val(CommentType_e current);
|
||||
void _maybe_handle_leading_comment_flow_val_map(CommentType_e current);
|
||||
void _maybe_handle_leading_comment_blck_seq_dash(CommentType_e current);
|
||||
void _maybe_handle_leading_comment_flow_comma_map();
|
||||
#endif
|
||||
|
||||
|
||||
@@ -7,6 +7,8 @@
|
||||
#error this test requires RYML_WITH_COMMENTS to be defined
|
||||
#endif
|
||||
|
||||
// NOLINTBEGIN(google-readability-avoid-underscore-in-googletest-name)
|
||||
|
||||
namespace c4 {
|
||||
namespace yml {
|
||||
|
||||
@@ -490,6 +492,412 @@ COMMENT_TEST(BlockSeqNested1WithSep,
|
||||
___(ps.end_stream());
|
||||
}
|
||||
|
||||
COMMENT_TEST(BlockSeqNested2WithSep,
|
||||
"- - - - a # 1 ~" "\n"
|
||||
" # 2 ~" "\n"
|
||||
" # 3" "\n"
|
||||
" - b # 4 ~" "\n"
|
||||
" # 5 ~" "\n"
|
||||
" # 6" "\n"
|
||||
" - c # 7 ~" "\n"
|
||||
" # 8 ~" "\n"
|
||||
"# 9" "\n"
|
||||
,
|
||||
"+STR" "\n"
|
||||
"+DOC" "\n"
|
||||
"+SEQ" "\n"
|
||||
"+SEQ" "\n"
|
||||
"+SEQ" "\n"
|
||||
"+SEQ" "\n"
|
||||
"=VAL :a" "\n"
|
||||
"=COMM #[TRAILING] 1" "\n"
|
||||
"-SEQ" "\n"
|
||||
"=COMM #[FOOTER] 2" "\n"
|
||||
"=COMM #[LEADING] 3" "\n"
|
||||
"=VAL :b" "\n"
|
||||
"=COMM #[TRAILING] 4" "\n"
|
||||
"-SEQ" "\n"
|
||||
"=COMM #[FOOTER] 5" "\n"
|
||||
"=COMM #[LEADING] 6" "\n"
|
||||
"=VAL :c" "\n"
|
||||
"=COMM #[TRAILING] 7" "\n"
|
||||
"-SEQ" "\n"
|
||||
"=COMM #[FOOTER] 8" "\n"
|
||||
"-SEQ" "\n"
|
||||
"=COMM #[FOOTER] 9" "\n"
|
||||
"-DOC" "\n"
|
||||
"-STR" "\n"
|
||||
)
|
||||
{
|
||||
___(ps.begin_stream());
|
||||
___(ps.begin_doc());
|
||||
___(ps.begin_seq_val_block());
|
||||
___(ps.begin_seq_val_block());
|
||||
___(ps.begin_seq_val_block());
|
||||
___(ps.begin_seq_val_block());
|
||||
___(ps.set_val_scalar_plain("a"));
|
||||
___(ps.add_comment(" 1", COMM_TRAILING));
|
||||
___(ps.end_seq_block());
|
||||
___(ps.add_comment(" 2", COMM_FOOTER));
|
||||
___(ps.add_sibling());
|
||||
___(ps.add_comment(" 3", COMM_LEADING));
|
||||
___(ps.set_val_scalar_plain("b"));
|
||||
___(ps.add_comment(" 4", COMM_TRAILING));
|
||||
___(ps.end_seq_block());
|
||||
___(ps.add_comment(" 5", COMM_FOOTER));
|
||||
___(ps.add_sibling());
|
||||
___(ps.add_comment(" 6", COMM_LEADING));
|
||||
___(ps.set_val_scalar_plain("c"));
|
||||
___(ps.add_comment(" 7", COMM_TRAILING));
|
||||
___(ps.end_seq_block());
|
||||
___(ps.add_comment(" 8", COMM_FOOTER));
|
||||
___(ps.end_seq_block());
|
||||
___(ps.add_comment(" 9", COMM_FOOTER));
|
||||
___(ps.end_doc());
|
||||
___(ps.end_stream());
|
||||
}
|
||||
|
||||
COMMENT_TEST(BlockSeqNested3WithSep,
|
||||
"- - - - a # 1 ~" "\n"
|
||||
" # 1.1 ~" "\n"
|
||||
" # 3" "\n"
|
||||
" - b # 4 ~" "\n"
|
||||
" # 4.1 ~" "\n"
|
||||
" # 6" "\n"
|
||||
" - c # 7 ~" "\n"
|
||||
" # 7.1 ~" "\n"
|
||||
"# 9" "\n"
|
||||
,
|
||||
"+STR" "\n"
|
||||
"+DOC" "\n"
|
||||
"+SEQ" "\n"
|
||||
"+SEQ" "\n"
|
||||
"+SEQ" "\n"
|
||||
"+SEQ" "\n"
|
||||
"=VAL :a" "\n"
|
||||
"=COMM #[TRAILING] 1" "\n"
|
||||
"=COMM #[FOOTER] 1.1" "\n"
|
||||
"-SEQ" "\n"
|
||||
"=COMM #[LEADING] 3" "\n"
|
||||
"=VAL :b" "\n"
|
||||
"=COMM #[TRAILING] 4" "\n"
|
||||
"=COMM #[FOOTER] 4.1" "\n"
|
||||
"-SEQ" "\n"
|
||||
"=COMM #[LEADING] 6" "\n"
|
||||
"=VAL :c" "\n"
|
||||
"=COMM #[TRAILING] 7" "\n"
|
||||
"=COMM #[FOOTER] 7.1" "\n"
|
||||
"-SEQ" "\n"
|
||||
"-SEQ" "\n"
|
||||
"=COMM #[FOOTER] 9" "\n"
|
||||
"-DOC" "\n"
|
||||
"-STR" "\n"
|
||||
)
|
||||
{
|
||||
___(ps.begin_stream());
|
||||
___(ps.begin_doc());
|
||||
___(ps.begin_seq_val_block());
|
||||
___(ps.begin_seq_val_block());
|
||||
___(ps.begin_seq_val_block());
|
||||
___(ps.begin_seq_val_block());
|
||||
___(ps.set_val_scalar_plain("a"));
|
||||
___(ps.add_comment(" 1", COMM_TRAILING));
|
||||
___(ps.add_comment(" 1.1", COMM_FOOTER));
|
||||
___(ps.end_seq_block());
|
||||
___(ps.add_sibling());
|
||||
___(ps.add_comment(" 3", COMM_LEADING));
|
||||
___(ps.set_val_scalar_plain("b"));
|
||||
___(ps.add_comment(" 4", COMM_TRAILING));
|
||||
___(ps.add_comment(" 4.1", COMM_FOOTER));
|
||||
___(ps.end_seq_block());
|
||||
___(ps.add_sibling());
|
||||
___(ps.add_comment(" 6", COMM_LEADING));
|
||||
___(ps.set_val_scalar_plain("c"));
|
||||
___(ps.add_comment(" 7", COMM_TRAILING));
|
||||
___(ps.add_comment(" 7.1", COMM_FOOTER));
|
||||
___(ps.end_seq_block());
|
||||
___(ps.end_seq_block());
|
||||
___(ps.add_comment(" 9", COMM_FOOTER));
|
||||
___(ps.end_doc());
|
||||
___(ps.end_stream());
|
||||
}
|
||||
|
||||
COMMENT_TEST(BlockSeqNested4WithSep,
|
||||
"- - - - a # 1 ~" "\n"
|
||||
" # 3" "\n"
|
||||
" - b # 4 ~" "\n"
|
||||
" # 6" "\n"
|
||||
" - c # 7 ~" "\n"
|
||||
"# 9" "\n"
|
||||
,
|
||||
"+STR" "\n"
|
||||
"+DOC" "\n"
|
||||
"+SEQ" "\n"
|
||||
"+SEQ" "\n"
|
||||
"+SEQ" "\n"
|
||||
"+SEQ" "\n"
|
||||
"=VAL :a" "\n"
|
||||
"=COMM #[TRAILING] 1" "\n"
|
||||
"-SEQ" "\n"
|
||||
"=COMM #[LEADING] 3" "\n"
|
||||
"=VAL :b" "\n"
|
||||
"=COMM #[TRAILING] 4" "\n"
|
||||
"-SEQ" "\n"
|
||||
"=COMM #[LEADING] 6" "\n"
|
||||
"=VAL :c" "\n"
|
||||
"=COMM #[TRAILING] 7" "\n"
|
||||
"-SEQ" "\n"
|
||||
"-SEQ" "\n"
|
||||
"=COMM #[FOOTER] 9" "\n"
|
||||
"-DOC" "\n"
|
||||
"-STR" "\n"
|
||||
)
|
||||
{
|
||||
___(ps.begin_stream());
|
||||
___(ps.begin_doc());
|
||||
___(ps.begin_seq_val_block());
|
||||
___(ps.begin_seq_val_block());
|
||||
___(ps.begin_seq_val_block());
|
||||
___(ps.begin_seq_val_block());
|
||||
___(ps.set_val_scalar_plain("a"));
|
||||
___(ps.add_comment(" 1", COMM_TRAILING));
|
||||
___(ps.end_seq_block());
|
||||
___(ps.add_sibling());
|
||||
___(ps.add_comment(" 3", COMM_LEADING));
|
||||
___(ps.set_val_scalar_plain("b"));
|
||||
___(ps.add_comment(" 4", COMM_TRAILING));
|
||||
___(ps.end_seq_block());
|
||||
___(ps.add_sibling());
|
||||
___(ps.add_comment(" 6", COMM_LEADING));
|
||||
___(ps.set_val_scalar_plain("c"));
|
||||
___(ps.add_comment(" 7", COMM_TRAILING));
|
||||
___(ps.end_seq_block());
|
||||
___(ps.end_seq_block());
|
||||
___(ps.add_comment(" 9", COMM_FOOTER));
|
||||
___(ps.end_doc());
|
||||
___(ps.end_stream());
|
||||
}
|
||||
|
||||
COMMENT_TEST(BlockSeqNested5WithSep,
|
||||
"- - - - a # 1 ~" "\n"
|
||||
" # 2 ~" "\n"
|
||||
" # 3 ~" "\n"
|
||||
" # 4 ~" "\n"
|
||||
" # 6 ~" "\n"
|
||||
"# 9" "\n"
|
||||
,
|
||||
"+STR" "\n"
|
||||
"+DOC" "\n"
|
||||
"+SEQ" "\n"
|
||||
"+SEQ" "\n"
|
||||
"+SEQ" "\n"
|
||||
"+SEQ" "\n"
|
||||
"=VAL :a" "\n"
|
||||
"=COMM #[TRAILING] 1" "\n"
|
||||
"=COMM #[FOOTER] 2" "\n"
|
||||
"-SEQ" "\n"
|
||||
"=COMM #[FOOTER] 3" "\n"
|
||||
"-SEQ" "\n"
|
||||
"=COMM #[FOOTER] 4" "\n"
|
||||
"-SEQ" "\n"
|
||||
"=COMM #[FOOTER] 6" "\n"
|
||||
"-SEQ" "\n"
|
||||
"=COMM #[FOOTER] 9" "\n"
|
||||
"-DOC" "\n"
|
||||
"-STR" "\n"
|
||||
)
|
||||
{
|
||||
___(ps.begin_stream());
|
||||
___(ps.begin_doc());
|
||||
___(ps.begin_seq_val_block());
|
||||
___(ps.begin_seq_val_block());
|
||||
___(ps.begin_seq_val_block());
|
||||
___(ps.begin_seq_val_block());
|
||||
___(ps.set_val_scalar_plain("a"));
|
||||
___(ps.add_comment(" 1", COMM_TRAILING));
|
||||
___(ps.add_comment(" 2", COMM_FOOTER));
|
||||
___(ps.end_seq_block());
|
||||
___(ps.add_comment(" 3", COMM_FOOTER));
|
||||
___(ps.end_seq_block());
|
||||
___(ps.add_comment(" 4", COMM_FOOTER));
|
||||
___(ps.end_seq_block());
|
||||
___(ps.add_comment(" 6", COMM_FOOTER));
|
||||
___(ps.end_seq_block());
|
||||
___(ps.add_comment(" 9", COMM_FOOTER));
|
||||
___(ps.end_doc());
|
||||
___(ps.end_stream());
|
||||
}
|
||||
|
||||
COMMENT_TEST(BlockSeqNested6WithSep,
|
||||
"- - - - a # 1 ~" "\n"
|
||||
" # 3 ~" "\n"
|
||||
" # 4 ~" "\n"
|
||||
" # 6 ~" "\n"
|
||||
"# 9" "\n"
|
||||
,
|
||||
"+STR" "\n"
|
||||
"+DOC" "\n"
|
||||
"+SEQ" "\n"
|
||||
"+SEQ" "\n"
|
||||
"+SEQ" "\n"
|
||||
"+SEQ" "\n"
|
||||
"=VAL :a" "\n"
|
||||
"=COMM #[TRAILING] 1" "\n"
|
||||
"-SEQ" "\n"
|
||||
"=COMM #[FOOTER] 3" "\n"
|
||||
"-SEQ" "\n"
|
||||
"=COMM #[FOOTER] 4" "\n"
|
||||
"-SEQ" "\n"
|
||||
"=COMM #[FOOTER] 6" "\n"
|
||||
"-SEQ" "\n"
|
||||
"=COMM #[FOOTER] 9" "\n"
|
||||
"-DOC" "\n"
|
||||
"-STR" "\n"
|
||||
)
|
||||
{
|
||||
___(ps.begin_stream());
|
||||
___(ps.begin_doc());
|
||||
___(ps.begin_seq_val_block());
|
||||
___(ps.begin_seq_val_block());
|
||||
___(ps.begin_seq_val_block());
|
||||
___(ps.begin_seq_val_block());
|
||||
___(ps.set_val_scalar_plain("a"));
|
||||
___(ps.add_comment(" 1", COMM_TRAILING));
|
||||
___(ps.end_seq_block());
|
||||
___(ps.add_comment(" 3", COMM_FOOTER));
|
||||
___(ps.end_seq_block());
|
||||
___(ps.add_comment(" 4", COMM_FOOTER));
|
||||
___(ps.end_seq_block());
|
||||
___(ps.add_comment(" 6", COMM_FOOTER));
|
||||
___(ps.end_seq_block());
|
||||
___(ps.add_comment(" 9", COMM_FOOTER));
|
||||
___(ps.end_doc());
|
||||
___(ps.end_stream());
|
||||
}
|
||||
|
||||
COMMENT_TEST(BlockSeqNested7WithSep,
|
||||
"- - - - a # 1 ~" "\n"
|
||||
" # 4 ~" "\n"
|
||||
" # 6 ~" "\n"
|
||||
"# 9" "\n"
|
||||
,
|
||||
"+STR" "\n"
|
||||
"+DOC" "\n"
|
||||
"+SEQ" "\n"
|
||||
"+SEQ" "\n"
|
||||
"+SEQ" "\n"
|
||||
"+SEQ" "\n"
|
||||
"=VAL :a" "\n"
|
||||
"=COMM #[TRAILING] 1" "\n"
|
||||
"-SEQ" "\n"
|
||||
"-SEQ" "\n"
|
||||
"=COMM #[FOOTER] 4" "\n"
|
||||
"-SEQ" "\n"
|
||||
"=COMM #[FOOTER] 6" "\n"
|
||||
"-SEQ" "\n"
|
||||
"=COMM #[FOOTER] 9" "\n"
|
||||
"-DOC" "\n"
|
||||
"-STR" "\n"
|
||||
)
|
||||
{
|
||||
___(ps.begin_stream());
|
||||
___(ps.begin_doc());
|
||||
___(ps.begin_seq_val_block());
|
||||
___(ps.begin_seq_val_block());
|
||||
___(ps.begin_seq_val_block());
|
||||
___(ps.begin_seq_val_block());
|
||||
___(ps.set_val_scalar_plain("a"));
|
||||
___(ps.add_comment(" 1", COMM_TRAILING));
|
||||
___(ps.end_seq_block());
|
||||
___(ps.end_seq_block());
|
||||
___(ps.add_comment(" 4", COMM_FOOTER));
|
||||
___(ps.end_seq_block());
|
||||
___(ps.add_comment(" 6", COMM_FOOTER));
|
||||
___(ps.end_seq_block());
|
||||
___(ps.add_comment(" 9", COMM_FOOTER));
|
||||
___(ps.end_doc());
|
||||
___(ps.end_stream());
|
||||
}
|
||||
|
||||
COMMENT_TEST(BlockSeqNested8WithSep,
|
||||
"- - - - a # 1 ~" "\n"
|
||||
" # 6 ~" "\n"
|
||||
"# 9" "\n"
|
||||
,
|
||||
"+STR" "\n"
|
||||
"+DOC" "\n"
|
||||
"+SEQ" "\n"
|
||||
"+SEQ" "\n"
|
||||
"+SEQ" "\n"
|
||||
"+SEQ" "\n"
|
||||
"=VAL :a" "\n"
|
||||
"=COMM #[TRAILING] 1" "\n"
|
||||
"-SEQ" "\n"
|
||||
"-SEQ" "\n"
|
||||
"-SEQ" "\n"
|
||||
"=COMM #[FOOTER] 6" "\n"
|
||||
"-SEQ" "\n"
|
||||
"=COMM #[FOOTER] 9" "\n"
|
||||
"-DOC" "\n"
|
||||
"-STR" "\n"
|
||||
)
|
||||
{
|
||||
___(ps.begin_stream());
|
||||
___(ps.begin_doc());
|
||||
___(ps.begin_seq_val_block());
|
||||
___(ps.begin_seq_val_block());
|
||||
___(ps.begin_seq_val_block());
|
||||
___(ps.begin_seq_val_block());
|
||||
___(ps.set_val_scalar_plain("a"));
|
||||
___(ps.add_comment(" 1", COMM_TRAILING));
|
||||
___(ps.end_seq_block());
|
||||
___(ps.end_seq_block());
|
||||
___(ps.end_seq_block());
|
||||
___(ps.add_comment(" 6", COMM_FOOTER));
|
||||
___(ps.end_seq_block());
|
||||
___(ps.add_comment(" 9", COMM_FOOTER));
|
||||
___(ps.end_doc());
|
||||
___(ps.end_stream());
|
||||
}
|
||||
|
||||
COMMENT_TEST(BlockSeqNested9WithSep,
|
||||
"- - - - a # 1 ~" "\n"
|
||||
"# 9" "\n"
|
||||
,
|
||||
"+STR" "\n"
|
||||
"+DOC" "\n"
|
||||
"+SEQ" "\n"
|
||||
"+SEQ" "\n"
|
||||
"+SEQ" "\n"
|
||||
"+SEQ" "\n"
|
||||
"=VAL :a" "\n"
|
||||
"=COMM #[TRAILING] 1" "\n"
|
||||
"-SEQ" "\n"
|
||||
"-SEQ" "\n"
|
||||
"-SEQ" "\n"
|
||||
"-SEQ" "\n"
|
||||
"=COMM #[FOOTER] 9" "\n"
|
||||
"-DOC" "\n"
|
||||
"-STR" "\n"
|
||||
)
|
||||
{
|
||||
___(ps.begin_stream());
|
||||
___(ps.begin_doc());
|
||||
___(ps.begin_seq_val_block());
|
||||
___(ps.begin_seq_val_block());
|
||||
___(ps.begin_seq_val_block());
|
||||
___(ps.begin_seq_val_block());
|
||||
___(ps.set_val_scalar_plain("a"));
|
||||
___(ps.add_comment(" 1", COMM_TRAILING));
|
||||
___(ps.end_seq_block());
|
||||
___(ps.end_seq_block());
|
||||
___(ps.end_seq_block());
|
||||
___(ps.end_seq_block());
|
||||
___(ps.add_comment(" 9", COMM_FOOTER));
|
||||
___(ps.end_doc());
|
||||
___(ps.end_stream());
|
||||
}
|
||||
|
||||
COMMENT_TEST(BlockSeqBasicWithTagAndAnchor1,
|
||||
"# 1" "\n"
|
||||
"- # 2" "\n"
|
||||
@@ -764,5 +1172,7 @@ Case const* get_case(csubstr)
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
// NOLINTEND(google-readability-avoid-underscore-in-googletest-name)
|
||||
|
||||
} // namespace yml
|
||||
} // namespace c4
|
||||
|
||||
Reference in New Issue
Block a user