[RFC] Executors - the SimpleEval equivalent of exec() #66
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Note: This PR includes the changes in #62, #63, and #64.
I'd like to hear any comments on the idea of extending SimpleEval to execute a full body of statements, akin to py3's
exec()
function! This draft PR includes an implementation (starting on L746) that builds off of my changes in #63 ofSimpleExecutor.execute(expression)
.Additionally, I implemented multi-line statements and control flow (
if
,for
,while
,break
, etc) inExecutorWithControl
.Let me know if this sounds like something that's out of this library's scope, or if I should write up some test cases for executors!
Here's some examples of executors in action:
If-else
For
Nested control
Keyword control