diff --git a/lib/src/lexer.c b/lib/src/lexer.c index 3049c012..76cdc7f3 100644 --- a/lib/src/lexer.c +++ b/lib/src/lexer.c @@ -367,7 +367,10 @@ void ts_lexer_finish(Lexer *self, uint32_t *lookahead_end_byte) { // If the token ended at an included range boundary, then its end position // will have been reset to the end of the preceding range. Reset the start // position to match. - if (self->token_end_position.bytes < self->token_start_position.bytes) { + if ( + self->token_end_position.bytes < self->token_start_position.bytes || + point_lt(self->token_end_position.extent, self->token_start_position.extent) + ) { self->token_start_position = self->token_end_position; }