Date: Wed, 3 Nov 2021 19:29:04 +0100
Just a few random things I ran across.
translation set -> translation character set
(appears more than once)
The wording doesn't work, because it ignores lex.phases p1.7:
"Each preprocessing token is converted into a token (5.6)."
The "token" grammar non-terminal cannot represent
an "unevaluated-string", because the latter is not a literal.
Also, as shown in the prose part, we don't know until phase 7
whether the context needs an object-producing string-literal
or an unevaluated-string. Thus, unevaluated-string is not
a phase 3-6 concept, but a phase 7 concept, and thus should
not appear in [lex].
Note that phases 1-6 do not convert string-literals to
objects and thus don't interpret escape sequences just yet,
so it seems safe to assume this is postponed to phase 7.
Suggestion:
- Introduce unevaluated-string in [dcl.pre]
"An unevaluated-string is never evaluated and its interpretation
depends on the context in which it appears."
->
"An unevaluated-string is never evaluated.
[ Note: Thus, a string literal object is never created for an
unevaluated-string ([lex.string]). ]"
And add a note with cross-references to all places where
unevaluated-string appears.
Jens
translation set -> translation character set
(appears more than once)
The wording doesn't work, because it ignores lex.phases p1.7:
"Each preprocessing token is converted into a token (5.6)."
The "token" grammar non-terminal cannot represent
an "unevaluated-string", because the latter is not a literal.
Also, as shown in the prose part, we don't know until phase 7
whether the context needs an object-producing string-literal
or an unevaluated-string. Thus, unevaluated-string is not
a phase 3-6 concept, but a phase 7 concept, and thus should
not appear in [lex].
Note that phases 1-6 do not convert string-literals to
objects and thus don't interpret escape sequences just yet,
so it seems safe to assume this is postponed to phase 7.
Suggestion:
- Introduce unevaluated-string in [dcl.pre]
"An unevaluated-string is never evaluated and its interpretation
depends on the context in which it appears."
->
"An unevaluated-string is never evaluated.
[ Note: Thus, a string literal object is never created for an
unevaluated-string ([lex.string]). ]"
And add a note with cross-references to all places where
unevaluated-string appears.
Jens
Received on 2021-11-03 13:29:09