@@ -85,7 +85,7 @@ static inline void set_end_character(Delimiter *delimiter, int32_t character) {
85
85
typedef struct {
86
86
Array (uint16_t ) indents ;
87
87
Array (Delimiter ) delimiters ;
88
- bool inside_f_string ;
88
+ bool inside_interpolated_string ;
89
89
} Scanner ;
90
90
91
91
static inline void advance (TSLexer * lexer ) { lexer -> advance (lexer , false); }
@@ -177,7 +177,7 @@ bool tree_sitter_python_external_scanner_scan(void *payload, TSLexer *lexer, con
177
177
lexer -> mark_end (lexer );
178
178
array_pop (& scanner -> delimiters );
179
179
lexer -> result_symbol = STRING_END ;
180
- scanner -> inside_f_string = false;
180
+ scanner -> inside_interpolated_string = false;
181
181
}
182
182
return true;
183
183
}
@@ -195,7 +195,7 @@ bool tree_sitter_python_external_scanner_scan(void *payload, TSLexer *lexer, con
195
195
advance (lexer );
196
196
array_pop (& scanner -> delimiters );
197
197
lexer -> result_symbol = STRING_END ;
198
- scanner -> inside_f_string = false;
198
+ scanner -> inside_interpolated_string = false;
199
199
}
200
200
lexer -> mark_end (lexer );
201
201
return true;
@@ -280,7 +280,7 @@ bool tree_sitter_python_external_scanner_scan(void *payload, TSLexer *lexer, con
280
280
if ((valid_symbols [DEDENT ] ||
281
281
(!valid_symbols [NEWLINE ] && !(valid_symbols [STRING_START ] && next_tok_is_string_start ) &&
282
282
!within_brackets )) &&
283
- indent_length < current_indent_length && !scanner -> inside_f_string &&
283
+ indent_length < current_indent_length && !scanner -> inside_interpolated_string &&
284
284
285
285
// Wait to create a dedent token until we've consumed any
286
286
// comments
@@ -303,7 +303,8 @@ bool tree_sitter_python_external_scanner_scan(void *payload, TSLexer *lexer, con
303
303
304
304
bool has_flags = false;
305
305
while (lexer -> lookahead ) {
306
- if (lexer -> lookahead == 'f' || lexer -> lookahead == 'F' ) {
306
+ if (lexer -> lookahead == 'f' || lexer -> lookahead == 'F' || lexer -> lookahead == 't' ||
307
+ lexer -> lookahead == 'T' ) {
307
308
set_format (& delimiter );
308
309
} else if (lexer -> lookahead == 'r' || lexer -> lookahead == 'R' ) {
309
310
set_raw (& delimiter );
@@ -349,7 +350,7 @@ bool tree_sitter_python_external_scanner_scan(void *payload, TSLexer *lexer, con
349
350
if (end_character (& delimiter )) {
350
351
array_push (& scanner -> delimiters , delimiter );
351
352
lexer -> result_symbol = STRING_START ;
352
- scanner -> inside_f_string = is_format (& delimiter );
353
+ scanner -> inside_interpolated_string = is_format (& delimiter );
353
354
return true;
354
355
}
355
356
if (has_flags ) {
@@ -365,7 +366,7 @@ unsigned tree_sitter_python_external_scanner_serialize(void *payload, char *buff
365
366
366
367
size_t size = 0 ;
367
368
368
- buffer [size ++ ] = (char )scanner -> inside_f_string ;
369
+ buffer [size ++ ] = (char )scanner -> inside_interpolated_string ;
369
370
370
371
size_t delimiter_count = scanner -> delimiters .size ;
371
372
if (delimiter_count > UINT8_MAX ) {
@@ -398,7 +399,7 @@ void tree_sitter_python_external_scanner_deserialize(void *payload, const char *
398
399
if (length > 0 ) {
399
400
size_t size = 0 ;
400
401
401
- scanner -> inside_f_string = (bool )buffer [size ++ ];
402
+ scanner -> inside_interpolated_string = (bool )buffer [size ++ ];
402
403
403
404
size_t delimiter_count = (uint8_t )buffer [size ++ ];
404
405
if (delimiter_count > 0 ) {
0 commit comments