Support escaping of interpolation sequences in RefValue strings #68
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.
RefValue string interpolation is now being done with a simplified lexer/parser and supports escaping, to avoid unwanted string interpolation. The new string interpolation mechanism does not break backwards compatibility (except [escape sequence][interpolation sequence], which will now be solely printed as [interpolation sequence]) to the existing solution, by falling back to a literal escape character when there is nothing to escape.
This pull request is meant to close issue #55, which requested the ability to escape string interpolation sequences. The new escape character, which is defined as a backslash ('\') per default, could also be used as an escape character for the application list, to solve issue #63 - but this should be probably put into a separate PR.
Happy to accept all kinds of feedback - tried to keep the code clean by eliminating all PyLint errors in the RefValue module, except the one stating that there is no module docstring (as this project does not seem to have them anywhere either). Also added some tests for backwards compatibility and the escaping feature itself.