[Python-Dev] PEP 492 vs. PEP 3152, new round (original) (raw)

Guido van Rossum guido at python.org
Wed Apr 29 04:00:55 CEST 2015


I don't care for await await x. On Apr 28, 2015 6:53 PM, "Yury Selivanov" <yselivanov.ml at gmail.com> wrote:

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: atomexpr ['**' factor] atomexpr: [AWAIT] atomexpr | atomtrailer atomtrailer: 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 Python-Dev at python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/guido%40python.org -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20150428/894400a3/attachment.html>



More information about the Python-Dev mailing list