Remove most usages of T_END_NUMBER
This commit is contained in:
@@ -185,7 +185,7 @@ inline WeaselJsonStatus n_value(Parser3 *self) {
|
|||||||
break;
|
break;
|
||||||
case '0':
|
case '0':
|
||||||
self->pop();
|
self->pop();
|
||||||
if (auto s = self->push({N_FRACTION, N_EXPONENT, T_END_NUMBER})) {
|
if (auto s = self->push({N_FRACTION, N_EXPONENT})) {
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
self->callbacks->on_begin_number(self->data);
|
self->callbacks->on_begin_number(self->data);
|
||||||
@@ -205,8 +205,7 @@ inline WeaselJsonStatus n_value(Parser3 *self) {
|
|||||||
self->callbacks->on_begin_number(self->data);
|
self->callbacks->on_begin_number(self->data);
|
||||||
self->dataBegin = self->buf;
|
self->dataBegin = self->buf;
|
||||||
++self->buf;
|
++self->buf;
|
||||||
if (auto s =
|
if (auto s = self->push({N_DIGITS2, N_FRACTION, N_EXPONENT})) {
|
||||||
self->push({N_DIGITS2, N_FRACTION, N_EXPONENT, T_END_NUMBER})) {
|
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
MUSTTAIL return Parser3::keepGoing(self);
|
MUSTTAIL return Parser3::keepGoing(self);
|
||||||
@@ -215,8 +214,7 @@ inline WeaselJsonStatus n_value(Parser3 *self) {
|
|||||||
self->callbacks->on_begin_number(self->data);
|
self->callbacks->on_begin_number(self->data);
|
||||||
self->dataBegin = self->buf;
|
self->dataBegin = self->buf;
|
||||||
++self->buf;
|
++self->buf;
|
||||||
if (auto s =
|
if (auto s = self->push({N_INTEGER2, N_FRACTION, N_EXPONENT})) {
|
||||||
self->push({N_INTEGER2, N_FRACTION, N_EXPONENT, T_END_NUMBER})) {
|
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
MUSTTAIL return Parser3::keepGoing(self);
|
MUSTTAIL return Parser3::keepGoing(self);
|
||||||
@@ -808,6 +806,7 @@ inline WeaselJsonStatus n_fraction(Parser3 *self) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Responsible for ensuring that on_end_number gets called
|
||||||
inline WeaselJsonStatus n_exponent(Parser3 *self) {
|
inline WeaselJsonStatus n_exponent(Parser3 *self) {
|
||||||
if (self->len() == 0) {
|
if (self->len() == 0) {
|
||||||
self->pop();
|
self->pop();
|
||||||
@@ -818,12 +817,14 @@ inline WeaselJsonStatus n_exponent(Parser3 *self) {
|
|||||||
case 'E':
|
case 'E':
|
||||||
++self->buf;
|
++self->buf;
|
||||||
self->pop();
|
self->pop();
|
||||||
if (auto s = self->push({N_SIGN, N_DIGITS})) {
|
if (auto s = self->push({N_SIGN, N_DIGITS, T_END_NUMBER})) {
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
MUSTTAIL return Parser3::keepGoing(self);
|
MUSTTAIL return Parser3::keepGoing(self);
|
||||||
default:
|
default:
|
||||||
self->pop();
|
self->pop();
|
||||||
|
self->flushNumber();
|
||||||
|
self->callbacks->on_end_number(self->data);
|
||||||
MUSTTAIL return Parser3::keepGoing(self);
|
MUSTTAIL return Parser3::keepGoing(self);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user