Re: [Python-Dev] PEP 492 vs. PEP 3152, new round

2015年4月28日 18:53:37 -0700

Looking at the grammar -- the only downside of the current approach is that
you can't do 'await await fut'. I still think that it reads better with
parens. If we put 'await' to 'factor' terminal we would allow
 await -fut # await (-fut)
I think I something like
 power: atom_expr ['**' factor]
 atom_expr: [AWAIT] atom_expr | atom_trailer
 atom_trailer: atom trailer*
will fix 'await await' situation, but does it really need to be fixed?
Yury
On 2015年04月27日 9:44 AM, Yury Selivanov wrote:
Hi Greg,
I don't want this: "await a() * b()" to be parsed, it's not meaningful.
Likely you'll see "await await a()" only once in your life, so I'm fine to use parens for it (moreover, I think it reads better with parens)
Yury
On 2015年04月27日 8:52 AM, Greg Ewing wrote:
Yury Selivanov wrote:
I've done some experiments with grammar, and it looks like
we indeed can parse await quite differently from yield. Three
different options:
You don't seem to have tried what I suggested, which is
to make 'await' a unary operator with the same precedence
as '-', i.e. replace
 factor: ('+'|'-'|'~') factor | power
with
 factor: ('+'|'-'|'~'|'await') factor | power
That would allow
 await a()
 res = await a() + await b()
 res = await await a()
 if await a(): pass
 return await a()
 print(await a())
 func(arg=await a())
 await a() * b()
_______________________________________________
Python-Dev mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to