diff options
author | Guido van Rossum <guido@python.org> | 2001-10-15 15:44:05 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 2001-10-15 15:44:05 (GMT) |
commit | 1c917072ca2895a196de7f397d4e96bcc577e13d (patch) | |
tree | 866e2babdb9b21e5869012c583a191898ac68a92 /Include | |
parent | 69c0ff38362dff3b0a90828b8d787dfb3eb14bc3 (diff) | |
download | cpython-1c917072ca2895a196de7f397d4e96bcc577e13d.zip cpython-1c917072ca2895a196de7f397d4e96bcc577e13d.tar.gz cpython-1c917072ca2895a196de7f397d4e96bcc577e13d.tar.bz2 |
Very subtle syntax change: in a list comprehension, the testlist in
"for <var> in <testlist> may no longer be a single test followed by
a comma. This solves SF bug #431886. Note that if the testlist
contains more than one test, a trailing comma is still allowed, for
maximum backward compatibility; but this example is not:
[(x, y) for x in range(10), for y in range(10)]
^
The fix involved creating a new nonterminal 'testlist_safe' whose
definition doesn't allow the trailing comma if there's only one test:
testlist_safe: test [(',' test)+ [',']]
Diffstat (limited to 'Include')
-rw-r--r-- | Include/graminit.h | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/Include/graminit.h b/Include/graminit.h index 219be94..e3afb93 100644 --- a/Include/graminit.h +++ b/Include/graminit.h @@ -56,10 +56,11 @@ #define sliceop 311 #define exprlist 312 #define testlist 313 -#define dictmaker 314 -#define classdef 315 -#define arglist 316 -#define argument 317 -#define list_iter 318 -#define list_for 319 -#define list_if 320 +#define testlist_safe 314 +#define dictmaker 315 +#define classdef 316 +#define arglist 317 +#define argument 318 +#define list_iter 319 +#define list_for 320 +#define list_if 321 |