in parson.c [300:314]
static int is_decimal(const char* string : itype(_Nt_array_ptr<const char>) count(length), size_t length) {
if (length > 1 && string[0] == '0' && string[1] != '.') {
return 0;
}
// The following dynamic bounds cast should not be needed; length > 2 > 0
if (length > 2 && !strncmp(_Dynamic_bounds_cast<_Nt_array_ptr<const char>>(string, count(0)), "-0", 2) && string[2] != '.') {
return 0;
}
while (length--) {
if (strchr("xX", string[length])) {
return 0;
}
}
return 1;
}