1#ifndef C4_YML_SCALAR_STYLE_HPP_
4#ifndef C4_YML_SCALAR_CHARCONV_HPP_
7#ifndef C4_YML_ERROR_HPP_
19 for(
size_t i = 0; i < scalar.len; ++i)
21 if(scalar.str[i] ==
'\n' && i + 1 < scalar.len)
23 char next = scalar.str[i + 1];
24 if(next ==
' ' || next ==
'\t')
33bool is_wsnl_(
char c)
noexcept
35 return c ==
' ' || c ==
'\n' || c ==
'\t' || c ==
'\r';
37bool is_valid_bulk_(
csubstr s,
size_t i)
39 C4_ASSERT(i >= 1 && i+1 < s.len);
40 C4_ASSERT(s.str[i] ==
':' || s.str[i] ==
'#');
43 case ':':
return !is_wsnl_(s.str[i+1]);
44 case '#':
return !is_wsnl_(s.str[i-1]);
59 case ' ':
case '\n':
case '\t':
case '\r':
60 case '!':
case '&':
case '*':
case ',':
61 case '"':
case '\'':
case '|':
case '>':
62 case '{':
case '}':
case '[':
case ']':
63 case '#':
case '`':
case '%':
case '@':
65 case '-':
case ':':
case '?':
66 if(scalar.len == 1 || (scalar.str[1] ==
' ' || scalar.str[1] ==
'\t'))
71 for(
size_t i = 1; i + 1 < scalar.len; ++i)
75 case ',':
case '{':
case '}':
case '[':
case ']':
78 if(!is_valid_bulk_(scalar, i))
88 case ' ':
case '\n':
case '\t':
case '\r':
107 switch(scalar.str[0])
109 case ' ':
case '\n':
case '\t':
case '\r':
110 case '!':
case '&':
case '*':
case ',':
111 case '"':
case '\'':
case '|':
case '>':
112 case '{':
case '}':
case '[':
case ']':
113 case '#':
case '`':
case '%':
case '@':
115 case '-':
case ':':
case '?':
116 if (scalar.len == 1 || (scalar.str[1] ==
' ' || scalar.str[1] ==
'\t'))
121 for(
size_t i = 1; i + 1 < scalar.len; ++i)
123 switch(scalar.str[i])
126 if(!is_valid_bulk_(scalar, i))
134 switch(scalar.back())
136 case ' ':
case '\n':
case '\t':
case '\r':
153 &&
"if this assertion fires, please submit an issue!");
Error utilities used by ryml.
@ SCALAR_SQUO
mask of KEY_SQUO|VAL_SQUO,
@ SCALAR_DQUO
mask of KEY_DQUO|VAL_DQUO,
@ SCALAR_PLAIN
mask of KEY_PLAIN|VAL_PLAIN,
bool scalar_is_special_json(csubstr s) noexcept
Query if a scalar is plain, eg, true, false, null, +-.inf or .nan.
bool scalar_is_plain_number_json(csubstr s) noexcept
JSON-sense query of plain number.
bool scalar_style_query_plain_block(csubstr scalar) noexcept
query whether a scalar can be encoded using plain style while in block mode.
NodeType scalar_style_choose_json(csubstr scalar) noexcept
choose a json scalar style based on the scalar's contents
bool scalar_style_query_squo(csubstr scalar) noexcept
query whether a scalar can be encoded using single quotes.
bool scalar_style_query_plain_flow(csubstr scalar) noexcept
query whether a scalar can be encoded using plain style while in flow mode.
NodeType scalar_style_choose_block(csubstr scalar) noexcept
choose a YAML scalar style based on the scalar's contents, while in block mode.
basic_substring< const char > csubstr
an immutable string view
Wraps a type_bits mask of NodeTypeBits flags with some syntactic sugar and predicates.