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() >> >
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4