From: "hurricup (Alexandr Evstigneev) via ruby-core" Date: 2023-03-24T05:05:30+00:00 Subject: [ruby-core:112992] [Ruby master Bug#19544] Custom quotes inconsistency 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/ ______________________________________________ ruby-core mailing list -- ruby-core@ml.ruby-lang.org To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org ruby-core info -- https://ml.ruby-lang.org/mailman3/postorius/lists/ruby-core.ml.ruby-lang.org/