[Python-Dev] problem with genexp
seojiwon at gmail.com
Tue Feb 21 00:55:19 CET 2006
Regarding this Grammar change; (last October)
from argument: [test '=' ] test [gen_for]
to argument: test [gen_for] | test '=' test ['(' gen_for ')']
- to raise error for "bar(a = i for i in range(10)) )"
I think we should change it to
argument: test [gen_for] | test '=' test
argument: test [gen_for] | test '=' test ['(' gen_for ')']
that is, without ['(' gen_for ')'] . We don't need that extra term,
because "test" itself includes generator expressions - with all those
Actually with that extra ['(' gen_for ')'] , foo(a= 10 (for y in
'a')) is grammartically correct ; although that error seems to be
I tested without ['(' gen_for ')'] , and worked fine passing
On 10/20/05, Neal Norwitz <nnorwitz at gmail.com> wrote:
> On 10/16/05, Neal Norwitz <nnorwitz at gmail.com> wrote:
> > On 10/10/05, Neal Norwitz <nnorwitz at gmail.com> wrote:
> > > There's a problem with genexp's that I think really needs to get
> > > fixed. See http://python.org/sf/1167751 the details are below. This
> > > code:
> > >
> > > >>> foo(a = i for i in range(10))
> > >
> > > I agree with the bug report that the code should either raise a
> > > SyntaxError or do the right thing.
> > The change to Grammar/Grammar below seems to fix the problem and all
> > the tests pass. Can anyone comment on whether this fix is
> > correct/appropriate? Is there a better way to fix the problem?
> Since no one responded other than Jiwon, I checked in this change. I
> did *not* backport it since what was syntactically correct in 2.4.2
> would raise an error in 2.4.3. I'm not sure which is worse. I'll
> leave it up to Anthony whether this should be backported.
> BTW, the change was the same regardless of old code vs. new AST code.
> Python-Dev mailing list
> Python-Dev at python.org
> Unsubscribe: http://mail.python.org/mailman/options/python-dev/seojiwon%40gmail.com
More information about the Python-Dev