-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Maintain line and character number after parsing #86
Comments
This is a little finicky right now unless we want to store (invalid) line number information on all objects because the AST structures are objects themselves. Perhaps we should separate them out (ehhhh) or find another way to do a mixin or something. |
the reasoning is a little weird but i think we can calculate the line/col from the byte position easily and it's only one number to store |
I saw/skimmed part of a cool talk that did this for Circle, I think. Perhaps this talk https://www.youtube.com/watch?v=1m_5SVmGA4k They have some cool tricks |
Oh, no, lmao, it was Carbon: https://www.youtube.com/watch?v=ZI198eFghJk |
cc @neuroevolutus maybe this is also interesting I think we want to keep line/col on all AST objects but not on interstitial/value objects. This probably means setting them dynamically after construction and having helper functions Maybe we can one day even emit |
Neat, I'll have to take a look at the referenced article and video. |
@tekknolagi I started working on a pull request for this, and I realised that adding additional fields to the |
Sure! Please split that out into a separate commit (same PR) onto which you stack your lineno commit. |
In general, tests are as mutable as the rest of the code, and I like your philosophy of having stable tests. Some tests should check end-to-end string stuff though so that we have tests for stuff users see. |
Evaluation has many failure cases, many of which have pretty reasonable error messages. However we do not maintain the line and character numbers associated with nodes in the AST. The interpreter can't point to the part of the code associated with a failure that occurs during evaluation.
This feature request is to make code index information available in the evaluation stage.
The text was updated successfully, but these errors were encountered: