How I added C-style for-loops to Python
https://tushar.lol/post/cursed-for/
Or alternatively: How I made the most cursed Python package of all time.
https://tushar.lol/post/cursed-for/
Or alternatively: How I made the most cursed Python package of all time.
The with
approach would work if you use the debugger to change the current line I think.
I don't understand why this stop using ASTs in favor of buggy regexes - you're allowed to do whatever you want during the codec ...
Don't forget to handle increment before continue
.
The main time I miss C-style for loops is dealing with linked lists and when manipulating the current iteration.
The former should be easy enough - make the advancement provide __getattr__
expressions.
The latter already works since it is in fact being transformed into a while
. It's impossible if you try to use for
though.
If it's valid syntax you can technically do pretty much whatever you want at runtime with enough hacks. I know pytest does some pretty crazy stuff to get nicer error messages from asserts (e.g. so it can display the value of a and b for assert a == b
)
As soon as it's invalid syntax it becomes harder. You can't parse it into an ast, which I assume is why they used regex.
Why do I have to click three times to reach the actual article at https://tushar.lol/post/cursed-for/ ?