From 30c9ad8690ae62a6c90d142781b6216c1a2232da Mon Sep 17 00:00:00 2001 From: Andrew Noyes Date: Tue, 13 May 2025 11:23:24 -0400 Subject: [PATCH] Call nextToken from keepGoing --- src/test.cpp | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/src/test.cpp b/src/test.cpp index da49b94..33ad8ed 100644 --- a/src/test.cpp +++ b/src/test.cpp @@ -431,7 +431,6 @@ struct Parser2 { if (!push({N_VALUE})) { return false; } - nextToken(); return keepGoing(this); } @@ -511,7 +510,6 @@ private: PRESERVE_NONE static bool tokenMatch(Parser2 *self) { self->pop(); - self->nextToken(); MUSTTAIL return keepGoing(self); } @@ -521,6 +519,7 @@ private: assert(self->currentToken == T_EOF); return true; } + self->nextToken(); MUSTTAIL return table[*(self->stackPtr - 1)][self->currentToken](self); } @@ -532,7 +531,6 @@ private: self->pop(); assert(self->currentToken == T_LBRACE); self->callbacks->on_begin_object(self->data); - self->nextToken(); if (!self->push({T_STRING, T_COLON, N_VALUE, N_OBJECT_MAYBE_CONTINUE})) { return false; } @@ -552,20 +550,17 @@ private: self->buf - self->bufBefore - 2); self->callbacks->on_end_number(self->data); } - self->nextToken(); MUSTTAIL return keepGoing(self); } PRESERVE_NONE static bool string(Parser2 *self) { self->pop(); assert(self->currentToken == T_STRING); - self->nextToken(); MUSTTAIL return keepGoing(self); } PRESERVE_NONE static bool array(Parser2 *self) { self->pop(); assert(self->currentToken == T_LBRACKET); self->callbacks->on_begin_array(self->data); - self->nextToken(); if (!self->push({N_VALUE, N_ARRAY_MAYBE_CONTINUE})) { return false; } @@ -574,7 +569,6 @@ private: PRESERVE_NONE static bool continueArray(Parser2 *self) { self->pop(); assert(self->currentToken == T_COMMA); - self->nextToken(); if (!self->push({N_VALUE, N_ARRAY_MAYBE_CONTINUE})) { return false; } @@ -583,7 +577,6 @@ private: PRESERVE_NONE static bool continueObject(Parser2 *self) { self->pop(); assert(self->currentToken == T_COMMA); - self->nextToken(); if (!self->push({T_STRING, T_COLON, N_VALUE, N_OBJECT_MAYBE_CONTINUE})) { return false; } @@ -593,14 +586,12 @@ private: self->pop(); assert(self->currentToken == T_RBRACKET); self->callbacks->on_end_array(self->data); - self->nextToken(); MUSTTAIL return keepGoing(self); } PRESERVE_NONE static bool finishObject(Parser2 *self) { self->pop(); assert(self->currentToken == T_RBRACE); self->callbacks->on_end_object(self->data); - self->nextToken(); MUSTTAIL return keepGoing(self); }