Just say "NO" Re: raw string tail escape revisited

Jeff Epler jepler at unpythonic.net
Sat Aug 9 12:51:16 EDT 2003


Well, one problem is that this is incompatible with all existing
R-strings, which have been in Python for comparative ages.  So we'd be
forced to implement then as B'' strings (For Bengt).  16 ways to declare
string literals (single and triple, ' and ", standard, r, u, and ur)
are bad enough, I don't want to add another 8 (single and triple, ' and
", b and ub) to the mix.
	 $ python -c 'import this' | grep "only one"

Secondly, the price in the tokenizer for an R-string vs a regular string is
essentially zero, since after the leading r, u or ur is parsed, the
regular rule for parsing any string is used.  Your rule will require
near-duplication of a 60-line segment of Parser/tokenizer.c and a new
function similar to PyString_DecodeEscape, probably another 60 lines of
C.

Finally, I'm not convinced that your description that triple-quotes and
quote-stuffing work well together.  RIght now, if the parser sees
	R''''  # dumb way to do "'"
it'll still be in the midst of parsing a triple-quoted raw string.  How
will you be able to write a B''' string that begins with a ' if this
rule is followed?  So there must be strings that you can't write with
B-quoting, just like there are strings you can't write with R-quoting
(but this time the problem is with strings that start with quotes
instead of ending with backslashes).

Jeff





More information about the Python-list mailing list