[close #32] Improve trailing end results #37
Merged
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.
[close #32] Improve trailing end results
When the last keyword in a given logical "block" is missing the
endthen it's unclear if the missing end came from the surrounding block, or from the last keyword. Example:Before this patch the output of this code will be:
With this patch the output of this code will be:
There's some key realizations to get to this point. First, while the output of the "before" case only looks like it's one line, it's actually a much larger block that holds down to line 4 but everything else is hidden. Second: We can detect for this scenario using lexing but starting at the last end of the problem block and working backwards to find a mismatched keyword.