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