Message326639
Especially since the dynamic flexibility of ExitStack comes at a genuine runtime cost when unwinding the resource stack.
I also (very!) belatedly noticed that I never answered Julian's request for clarification about the potential grammar ambiguity, so going into detail about that now:
The first item in the grammar after the 'with' keyword is a 'test' node, which can already start with a parenthesis, which means a naive attempt at allowing grouping parentheses will likely fail to generate a valid LL(1) parser.
That doesn't mean a more sophisticated change isn't possible (and Pablo has apparently implemented one) - it just means that the required grammar update is going to be more complicated than just changing:
with_stmt: 'with' with_item (',' with_item)* ':' suite
to be:
with_stmt: 'with' (with_items | '(' with_items ')') ':' suite
with_items: with_item (',' with_item)*
(That would need too much lookahead to decide whether an opening parenthesis belongs to the first 'with_item' in 'with_items' or if it's starting the alternative multi-line grouping construct) |
|
Date |
User |
Action |
Args |
2018-09-28 14:48:19 | ncoghlan | set | recipients:
+ ncoghlan, barry, georg.brandl, ishimoto, benjamin.peterson, ezio.melotti, eric.araujo, steven.daprano, r.david.murray, lukasz.langa, Julian, serhiy.storchaka, ulope, pablogsal |
2018-09-28 14:48:19 | ncoghlan | set | messageid: <1538146099.41.0.545547206417.issue12782@psf.upfronthosting.co.za> |
2018-09-28 14:48:19 | ncoghlan | link | issue12782 messages |
2018-09-28 14:48:19 | ncoghlan | create | |
|