summaryrefslogtreecommitdiffstats
path: root/Include
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>2001-10-15 15:44:05 (GMT)
committerGuido van Rossum <guido@python.org>2001-10-15 15:44:05 (GMT)
commit1c917072ca2895a196de7f397d4e96bcc577e13d (patch)
tree866e2babdb9b21e5869012c583a191898ac68a92 /Include
parent69c0ff38362dff3b0a90828b8d787dfb3eb14bc3 (diff)
downloadcpython-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.h15
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