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.
This is an experimental (yet surprisingly full-featured) new datatype
which uses backslashes to provide escaping for any datatype. Rebol
historically only allowed escaping for WORD! and PATH!, but with this
new mechanism you can escape any datatype...and escape the escape.
Each level of evaluation will peel off one backslash...similar to how
it would remove the lit marks from words or paths.
This implementation is exploratory and focuses more on figuring out
what these literals should behave like than on efficiency. However,
the design is intended to permit optimizations so that bits in the
datatype can be used to compress one or two levels of escaping into
a cell directly without needing to allocate an extra node.
The literals do not have any of their own path dispatch, so picking
or pathing them should return answers that their underlying content
would give. There is a thin layer for testing over GENERIC dispatch
(e.g. actions like APPEND or COPY) which lets the literal decide if
it wants to give the plain result as-is for the action, or if it wants
to have the result add on its layers of quoting. e.g.:
These literals are incorporated into COMPOSE, which is sensitive to
them and will knock one level of escaping of off groups:
They've also been added to PARSE:
Optimization will be revisited once the broader system impacts have
been understood. One of the areas that is affected is parameter type
checking in functions, where TYPESET! is only 64 bits in size, and
not sufficient to store an infinite number of literal possibilities of
the basic types.