Return selector after consuming combinator#115
Merged
Conversation
Since [the change to parse all tokens a selector is returned when encountering a `:comma` token](https://github.com/philss/floki/pull/106/files#diff-7f26dd84090995cad0112f38a801b18bR32). However, when we `consume_combinators`, that calls `do_parse` which gets a selector and continues on parsing tokens. However, the selector is returned as a result of matching `:comma` token and removes it from the remaining tokens. So when parsing continues after `consume_combinator`, it continues parsing the previous selector instead of starting a new one. This changes so `consume_combinator` functions return a selector tuple since they will get a fully completed selector after parsing.
Contributor
|
Good catch. Your changes should be correct. In the code that #106 is based on I append a comma onto the tokens returned from consuming a combinator, forcing a return of the selector when I try to continue to parse the selector (because reasons). The behavior of appending a comma to the tokens was overkill in Floki so I removed it, but I (clearly) forgot to change the code to return the |
mischov
approved these changes
May 25, 2017
Owner
|
I think this is correct! Thank you again, @jjcarstens! |
Owner
|
This fix was released in version |
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.
Since the change to parse all tokens, a selector is returned when encountering a
:commatoken.When we
consume_combinators, that callsdo_parsewhich gets a selector and continues on parsing tokens. However, the selector is returned as a result of matching:commatoken and removes it from the remaining tokens. So when parsing continues afterconsume_combinator, it continues parsing the previous selector instead of starting a new one.This changes so
consume_combinatorfunctions return a selector tuple since they will get a fully completed selector after parsing.I think this covers all the missing cases, but would definitely love close 👀 and any suggestions you believe may still need to be tested.