Remove begin/end spec as part of the common prefix - #44
Open
kstrafe wants to merge 1 commit into
Open
Conversation
When we define our own --markers='x-begin x-middle x-end', and our code contains as a first
character `x`, then that character will be considered part of the common prefix
and be removed from the code. Here's an example.
// cog-begin
// cog.outl('hello world')
// cog-middle
// cog-end
The common prefix for this code is `// cog`, which makes the code generator fail
because python will receive the code `.outl('hello world')`, which makes no
sense.
This issue is especially cumbersome to work with if you're invoking a module,
for instance:
// cog-begin
// codegen.generate_some_code()
// cog-middle
// cog-end
Here the python interpeter will receive `degen.generate_some_code()`.
This patch removes the begin and end specs from the marker line to avoid this
issue.
Owner
|
Help me understand: why not choose markers that are more unique? |
Author
For aesthetics. As a bonus, this will make cog support languages where no marker can satisfy the guarantee of uniqueness to prevent common prefix issues. I also think it makes intuitive sense to start looking for the common prefix right before the begin/end spec substrings. These will never actually be part of a common prefix because you cannot have two begin specs in a row as |
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.
When we define our own --markers='x-begin x-middle x-end', and our code contains as a first character
x, then that character will be considered part of the common prefix and be removed from the code. Here's an example.The common prefix for this code is
// cog, which makes the code generator fail because python will receive the code.outl('hello world'), which makes no sense.This issue is especially noticable if you're only invoking a module, for instance:
Here the python interpeter will receive
degen.generate_some_code()and fail.This patch removes the begin and end specs from the marker line to avoid this issue.