Call non-data callbacks

This commit is contained in:
2025-05-18 11:43:05 -04:00
parent dd8b316e29
commit e06b0d0cf6

View File

@@ -135,12 +135,14 @@ inline Status n_value(Parser3 *self) {
switch (*self->buf) {
case '{':
self->pop();
self->callbacks->on_begin_object(self->data);
if (auto s = self->push({N_OBJECT})) {
return s;
}
break;
case '[':
self->pop();
self->callbacks->on_begin_array(self->data);
if (auto s = self->push({N_ARRAY})) {
return s;
}
@@ -163,6 +165,7 @@ inline Status n_value(Parser3 *self) {
case '9':
case '-':
self->pop();
self->callbacks->on_begin_number(self->data);
if (auto s = self->push({N_NUMBER})) {
return s;
}
@@ -217,6 +220,7 @@ inline Status n_object2(Parser3 *self) {
case '}':
++self->buf;
self->pop();
self->callbacks->on_end_object(self->data);
MUSTTAIL return Parser3::keepGoing(self);
case '"':
self->pop();
@@ -238,6 +242,7 @@ inline Status n_object3(Parser3 *self) {
case '}':
++self->buf;
self->pop();
self->callbacks->on_end_object(self->data);
MUSTTAIL return Parser3::keepGoing(self);
case ',':
++self->buf;
@@ -275,6 +280,7 @@ inline Status n_array2(Parser3 *self) {
case ']':
++self->buf;
self->pop();
self->callbacks->on_end_array(self->data);
MUSTTAIL return Parser3::keepGoing(self);
default:
self->pop();
@@ -293,6 +299,7 @@ inline Status n_array3(Parser3 *self) {
case ']':
++self->buf;
self->pop();
self->callbacks->on_end_array(self->data);
MUSTTAIL return Parser3::keepGoing(self);
case ',':
++self->buf;
@@ -321,6 +328,7 @@ inline Status n_string(Parser3 *self) {
if (*self->buf != '"') {
return S_REJECT;
}
self->callbacks->on_begin_string(self->data);
++self->buf;
self->pop();
if (auto s = self->push({N_STRING2})) {
@@ -343,6 +351,7 @@ inline Status n_string2(Parser3 *self) {
case '"':
++self->buf;
self->pop();
self->callbacks->on_end_string(self->data);
MUSTTAIL return Parser3::keepGoing(self);
case '\\':
++self->buf;
@@ -663,6 +672,7 @@ inline Status n_true(Parser3 *self) {
if (*self->buf == 'e') {
++self->buf;
self->pop();
self->callbacks->on_true_literal(self->data);
MUSTTAIL return Parser3::keepGoing(self);
}
return S_REJECT;
@@ -672,6 +682,7 @@ inline Status n_false(Parser3 *self) {
if (*self->buf == 'e') {
++self->buf;
self->pop();
self->callbacks->on_false_literal(self->data);
MUSTTAIL return Parser3::keepGoing(self);
}
return S_REJECT;
@@ -681,6 +692,7 @@ inline Status n_null(Parser3 *self) {
if (*self->buf == 'l') {
++self->buf;
self->pop();
self->callbacks->on_null_literal(self->data);
MUSTTAIL return Parser3::keepGoing(self);
}
return S_REJECT;