1 #ifdef RYML_SINGLE_HEADER_INTS
2 #ifndef _RYML_SINGLE_HEADER_AMALGAMATED_HPP_
3 #include <ryml_ints.hpp>
5 #elif defined(RYML_SINGLE_HEADER)
6 #ifndef _RYML_SINGLE_HEADER_AMALGAMATED_HPP_
7 #include <ryml_all.hpp>
11 #ifndef _C4_YML_EXTRA_INTS_UTILS_HPP_
15 #ifndef _C4_YML_ERROR_HPP_
19 #ifndef _C4_BITMASK_HPP_
20 #include "c4/bitmask.hpp"
24 C4_SUPPRESS_WARNING_GCC_WITH_PUSH(
"-Wold-style-cast")
25 C4_SUPPRESS_WARNING_CLANG_WITH_PUSH("-Wold-style-cast")
31 c4::EnumSymbols<yml::extra::ievt::EventFlags> esyms<yml::extra::ievt::EventFlags>()
33 static constexpr
const EnumSymbols<yml::extra::ievt::EventFlags>::Sym syms[] = {
63 return EnumSymbols<yml::extra::ievt::EventFlags>(syms);
71 return c4::bm2str<ievt::EventFlags>(flags, buf.str, buf.len);
76 _RYML_CHECK_BASIC(reqsize > 0u);
77 _RYML_CHECK_BASIC(reqsize < buf.len);
78 return buf.first(reqsize - 1u);
100 evtpos += ((evts[evtpos] &
ievt::WSTR) ? 3 : 1))
104 printf(
"[%d][%d] %.*s(0x%x)", evtnumber, evtpos, (
int)flags.len, flags.str, evt);
108 csubstr region = !in_arena ? parsed_yaml : arena;
109 bool safe = (evts[evtpos + 1] >= 0)
110 && (evts[evtpos + 2] >= 0)
111 && (evts[evtpos + 1] <= (int)region.len)
112 && (evts[evtpos + 2] <= ((int)region.len - evts[evtpos + 1]));
113 const char *str = safe ? (region.str + evts[evtpos + 1]) :
"ERR!!!";
114 int len = safe ? evts[evtpos + 2] : 6;
115 printf(
": %d [%d]~~~%.*s~~~", evts[evtpos+1], evts[evtpos+2], len, str);
117 printf(
" (arenasz=%zu)", arena.len);
119 printf(
" (srcsz=%zu)", parsed_yaml.len);
130 C4_SUPPRESS_WARNING_CLANG_POP
131 C4_SUPPRESS_WARNING_GCC_POP
Error utilities used by ryml.
void events_ints_print(csubstr parsed_yaml, csubstr arena, ievt::DataType const *evts, ievt::DataType evts_sz)
Print integer events to stdout.
(Undefined by default) Use shorter error message from checks/asserts: do not show the check condition...