Call data callbacks

This commit is contained in:
2025-05-18 11:50:16 -04:00
parent a47d791ff8
commit c65cf44cc8

View File

@@ -345,6 +345,9 @@ inline Status n_string2(Parser3 *self) {
if (uint8_t(*self->buf) < 0x20) {
return S_REJECT;
}
if (*self->buf != '"') {
self->callbacks->on_string_data(self->data, self->buf, 1);
}
if (int8_t(*self->buf) > 0) {
// one byte utf-8 encoding
switch (*self->buf) {
@@ -399,6 +402,7 @@ inline Status n_string_following_escape(Parser3 *self) {
if (self->len() == 0) {
return S_REJECT;
}
self->callbacks->on_string_data(self->data, self->buf, 1);
switch (*self->buf) {
case '"':
case '\\':
@@ -431,6 +435,7 @@ inline Status t_utf8_continuation_byte(Parser3 *self) {
return S_REJECT;
}
if ((*self->buf & 0b11000000) == 0b10000000) {
self->callbacks->on_string_data(self->data, self->buf, 1);
++self->buf;
self->pop();
MUSTTAIL return Parser3::keepGoing(self);
@@ -469,6 +474,7 @@ inline Status t_hex(Parser3 *self) {
if (('0' <= *self->buf && *self->buf <= '9') ||
('a' <= *self->buf && *self->buf <= 'f') ||
('A' <= *self->buf && *self->buf <= 'F')) {
self->callbacks->on_string_data(self->data, self->buf, 1);
++self->buf;
self->pop();
MUSTTAIL return Parser3::keepGoing(self);
@@ -490,6 +496,7 @@ inline Status n_integer(Parser3 *self) {
}
switch (*self->buf) {
case '0':
self->callbacks->on_number_data(self->data, self->buf, 1);
++self->buf;
self->pop();
MUSTTAIL return Parser3::keepGoing(self);
@@ -502,6 +509,7 @@ inline Status n_integer(Parser3 *self) {
case '7':
case '8':
case '9':
self->callbacks->on_number_data(self->data, self->buf, 1);
++self->buf;
self->pop();
if (auto s = self->push({N_DIGITS2})) {
@@ -509,6 +517,7 @@ inline Status n_integer(Parser3 *self) {
}
MUSTTAIL return Parser3::keepGoing(self);
case '-':
self->callbacks->on_number_data(self->data, self->buf, 1);
++self->buf;
self->pop();
if (auto s = self->push({N_INTEGER2})) {
@@ -526,6 +535,7 @@ inline Status n_integer2(Parser3 *self) {
}
switch (*self->buf) {
case '0':
self->callbacks->on_number_data(self->data, self->buf, 1);
++self->buf;
self->pop();
MUSTTAIL return Parser3::keepGoing(self);
@@ -538,6 +548,7 @@ inline Status n_integer2(Parser3 *self) {
case '7':
case '8':
case '9':
self->callbacks->on_number_data(self->data, self->buf, 1);
++self->buf;
self->pop();
if (auto s = self->push({N_DIGITS2})) {
@@ -564,6 +575,7 @@ inline Status n_digits(Parser3 *self) {
case '7':
case '8':
case '9':
self->callbacks->on_number_data(self->data, self->buf, 1);
++self->buf;
self->pop();
if (auto s = self->push({N_DIGITS2})) {
@@ -591,6 +603,7 @@ inline Status n_digits2(Parser3 *self) {
case '7':
case '8':
case '9':
self->callbacks->on_number_data(self->data, self->buf, 1);
++self->buf;
MUSTTAIL return Parser3::keepGoing(self);
default:
@@ -606,6 +619,7 @@ inline Status n_fraction(Parser3 *self) {
}
switch (*self->buf) {
case '.':
self->callbacks->on_number_data(self->data, self->buf, 1);
++self->buf;
self->pop();
if (auto s = self->push({N_DIGITS})) {
@@ -626,6 +640,7 @@ inline Status n_exponent(Parser3 *self) {
switch (*self->buf) {
case 'e':
case 'E':
self->callbacks->on_number_data(self->data, self->buf, 1);
++self->buf;
self->pop();
if (auto s = self->push({N_SIGN, N_DIGITS})) {
@@ -646,6 +661,7 @@ inline Status n_sign(Parser3 *self) {
switch (*self->buf) {
case '+':
case '-':
self->callbacks->on_number_data(self->data, self->buf, 1);
++self->buf;
self->pop();
MUSTTAIL return Parser3::keepGoing(self);