Simplify magic_py_parse#540
Merged
Merged
Conversation
…x' and keep track of the 'varlocs' in a side table, replace it with 'var·x' (with the unicode MIDDLE DOT), which will be easy to detect later by the spy parser
Member
Author
|
@kanin-kearpimy this PR should make it much easier to implement /cc @JeffersGlass as he reviewed #496 . |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Greatly simplify
magic_py_parse. The ultimate goal is to be able to re-use the python parser also with this spy-specific syntax:The old way detected
var x, replaced with a singlexand kept a side table with info about whether this particular NAME was by chance avar/const, and the location info.The new approach is much simpler: the code above becomes:
The
·is "U+00B7 MIDDLE DOT", and Python considers it a valid char for an identifier. This means thatvar·xis seen as a single identifier, so the python parser parses it correctly, and then the SPy parser detect this special name.As usual, special care is needed to ensure that the source location of the rewritten file are kept the same as in the original. E.g.:
becomes: