From 1c917072ca2895a196de7f397d4e96bcc577e13d Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Mon, 15 Oct 2001 15:44:05 +0000 Subject: Very subtle syntax change: in a list comprehension, the testlist in "for in 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)+ [',']] --- Include/graminit.h | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'Include') diff --git a/Include/graminit.h b/Include/graminit.h index 219be9445c..e3afb93955 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 -- cgit v1.2.1