Update the tokeniser to differentiate between unquoted strings and function names #640
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.
Currently, when the tokeniser hits a function call like
lookup('foo')
, it splits it into a series of tokens like:NAME
,:LPAREN
,:SSTRING
,:RPAREN
. While this is technically correct, it makes it harder for us to differentiate between an unquoted string and a function name when examining the tokenised file.My proposed change introduces a new
:FUNCTION_NAME
token type, which is evaluated before:NAME
token regex and simply checks if this value is followed immediately by an:LPAREN
.As a result of this change, we can fix issues like #634 without having add any corner cases to the check logic.
Fixes #634