22class ORCUS_PSR_DLLPUBLIC parser_base
25 using numeric_parser_type = std::function<
const char*(
const char*,
const char*,
double&)>;
27 const char*
const mp_begin;
32 numeric_parser_type m_func_parse_numeric;
35 parser_base(
const char* p,
size_t n);
37 void set_numeric_parser(
const numeric_parser_type& func)
39 m_func_parse_numeric = func;
44 assert(mp_char <= mp_end);
45 return mp_char != mp_end;
50 assert((mp_char+1) <= mp_end);
51 return (mp_char+1) != mp_end;
54 void next(
size_t inc=1) { mp_char += inc; }
56 void prev(
size_t dec=1);
58 char cur_char()
const {
return *mp_char; }
96 void skip(std::string_view chars_to_skip);
140 return std::distance(mp_char, mp_end);