Avoid creating external tokens that start after they end
This commit is contained in:
parent
90629bd45a
commit
fbcefe25f7
5 changed files with 140 additions and 0 deletions
|
|
@ -418,6 +418,10 @@ static Tree *parser__lex(Parser *self, StackVersion version, TSStateId parse_sta
|
|||
symbol = self->language->external_scanner.symbol_map[symbol];
|
||||
}
|
||||
|
||||
if (self->lexer.token_end_position.bytes < self->lexer.token_start_position.bytes) {
|
||||
self->lexer.token_start_position = self->lexer.token_end_position;
|
||||
}
|
||||
|
||||
Length padding = length_sub(self->lexer.token_start_position, start_position);
|
||||
Length size = length_sub(self->lexer.token_end_position, self->lexer.token_start_position);
|
||||
result = ts_tree_make_leaf(symbol, padding, size, self->language);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue