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"
24C4_SUPPRESS_WARNING_GCC_WITH_PUSH(
"-Wold-style-cast")
25C4_SUPPRESS_WARNING_CLANG_WITH_PUSH(
"-Wold-style-cast")
31c4::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);
130C4_SUPPRESS_WARNING_CLANG_POP
131C4_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.
size_t to_chars(ryml::substr buf, vec2< T > v)
basic_substring< char > substr
a mutable string view
basic_substring< const char > csubstr
an immutable string view
(Undefined by default) Use shorter error message from checks/asserts: do not show the check condition...
size_t len
the length of the substring
basic_substring first(size_t num) const noexcept
return the first num elements: [0,num[
C * str
a restricted pointer to the first character of the substring