-
Notifications
You must be signed in to change notification settings - Fork 40
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Feature/parent operator #84
Open
mattmart3
wants to merge
8
commits into
freestrings:master
Choose a base branch
from
mattmart3:feature/parent-operator
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains 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
Such hashmap needs to be propagated across the whole tree visit. For each node Value, its parent is saved in the hashmap where the key is the node Value pointer. When the parent operator is later evalutaed, all the parent nodes of the current result vector are retrieved.
This issue is about to be added to the |
Thank you for the feedback @freestrings. If I understand correctly you are considering to enable this feature based on a setting parameter, right? |
cccfcee
to
d6413f0
Compare
freestrings
added a commit
that referenced
this pull request
Jan 10, 2022
# for free
to join this conversation on GitHub.
Already have an account?
# 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.
This PR is to introduce the parent operator
'^'
(issue #80). The implementation is quite simple: it uses a HashMap to store the parent nodes of every visited Value in the tree. When the parent token is later evaluated, all the parent nodes of the current result vector are retrieved. An alternative approach could have been to introduce a newstruct
(e.g.struct Node
) composed of theValue
element reference and its parent node reference. Whilst this latter approach would likely have been performed better it would have been way more destructive for the current code base.I hope you can find this useful and consider I am Rust beginner, so feel free to make any suggestion in order to improve the PR.