Issue #19544 has been updated by hurricup (Alexandr Evstigneev).
mame (Yusuke Endoh) wrote in #note-1:
Presumably
because of some look-ahead distincting % from percent-string starter
It depends on the lex state, not look-ahead. If you place `%` in a context where the
beginning of an expression is expected, you can write %-literal with spaces as
delimiters.
```
p(% foo ) #=> "foo"
p(% jim\ beam ) #=> "jim beam"
```
`%w` cannot be used with a space delimiter because it interprets all whitespace
characters as a word delimiter.
Thank you! This sounds reasonable. Then feels that list-like quotations ops `[WwIi]`
should error about `\s` term, not unterminated list, which may be confusing.
----------------------------------------
Bug #19544: Custom quotes inconsistency
https://bugs.ruby-lang.org/issues/19544#change-102521
* Author: hurricup (Alexandr Evstigneev)
* Status: Open
* Priority: Normal
* Backport: 2.7: UNKNOWN, 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN
----------------------------------------
According to `parse_percent` in `parse.y`:
For `%` we should be able use ascii non alphanumeric delimiters.
But, `p % jim beam ;` does not work. Presumably because of some look-ahead distincting `%`
from percent-string starter. Seems it is the same for any `\s` after `%`
For the explicit `%` construction, with type specifier `%[QqWwIisrx]` we should be able to
use non-alphanumeric ascii characters, which includes `\s`. But:
This works:
```
p %s
jim beam
```
And this does not:
```
p %w
jim\ beam
```
with unterminated list error.
First seems unavoidable, but second looks like obvious error of finding terminating `\n`
--
https://bugs.ruby-lang.org/