summaryrefslogtreecommitdiffstatshomepage
path: root/py/lexer.c
diff options
context:
space:
mode:
authorDamien George <damien@micropython.org>2024-06-06 17:31:19 +1000
committerDamien George <damien@micropython.org>2024-06-06 17:34:28 +1000
commit3c8089d1b10683ee31ddbaeebd0b18c47bf6d09d (patch)
tree4a4ff4cd7d0591cf45e8fe34273903cb1fe3e4bc /py/lexer.c
parenta066f2308f7b0d872352073cec0a945dca3a7a9c (diff)
downloadmicropython-3c8089d1b10683ee31ddbaeebd0b18c47bf6d09d.tar.gz
micropython-3c8089d1b10683ee31ddbaeebd0b18c47bf6d09d.zip
py/lexer: Support raw f-strings.
Support for raw str/bytes already exists, and extending that to raw f-strings is easy. It also reduces code size because it eliminates an error message. Signed-off-by: Damien George <damien@micropython.org>
Diffstat (limited to 'py/lexer.c')
-rw-r--r--py/lexer.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/py/lexer.c b/py/lexer.c
index 2774759a15..48497663c5 100644
--- a/py/lexer.c
+++ b/py/lexer.c
@@ -661,21 +661,19 @@ void mp_lexer_to_next(mp_lexer_t *lex) {
}
#if MICROPY_PY_FSTRINGS
if (is_char_following(lex, 'f')) {
- // raw-f-strings unsupported, immediately return (invalid) token.
- lex->tok_kind = MP_TOKEN_FSTRING_RAW;
- break;
+ is_fstring = true;
+ n_char = 2;
}
#endif
}
#if MICROPY_PY_FSTRINGS
else if (is_char(lex, 'f')) {
+ is_fstring = true;
+ n_char = 1;
if (is_char_following(lex, 'r')) {
- // raw-f-strings unsupported, immediately return (invalid) token.
- lex->tok_kind = MP_TOKEN_FSTRING_RAW;
- break;
+ is_raw = true;
+ n_char = 2;
}
- n_char = 1;
- is_fstring = true;
}
#endif