[Python-ideas] Let’s make escaping in f-literals impossible
Eric V. Smith
eric at trueblade.com
Fri Aug 19 04:27:16 EDT 2016
On 8/19/2016 1:16 AM, Terry Reedy wrote:
> On 8/18/2016 8:27 PM, Eric V. Smith wrote:
>> So something that parses or scans a Python file and currently
>> understands u, b, and r to be string prefixes, just needs to add f to
>> the prefixes it uses, and it can now at least understand f-strings (and
>> fr-strings). It doesn't need to implement a full-blown expression parser
>> just to find out where the end of a f-string is.
>
> Indeed, IDLE has one prefix re, which has changed occasionally and which
> I need to change for 3.6, and 4 res for the 4 unprefixed strings, which
> have been the same, AFAIK, for decades. It that prefixes all 4 string
> res with the prefix re and o or's the results together to get the
> 'string' re.
For something else that would become significantly more complicated to
implement, you need look no further than the stdlib's own tokenizer
module. So Python itself would require changes to parsers/lexers in
Python/ast.c, IDLE, and Lib/tokenizer.py. In addition it would require
adding tokens to Include/tokens.h and the generated Lib/token.py, and
everyone using those files would need to adapt.
Not that it's impossible, of course. But don't underestimate the amount
of work this proposal would cause to the many places in and outside of
Python that examine Python code.
Eric.
More information about the Python-ideas
mailing list