Call non-data callbacks
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user