Thread overview
exercise - find invalid D tokens (Impossible ?)
Oct 28, 2016
Basile B.
Oct 28, 2016
Johan Engelen
Oct 28, 2016
Basile B.
October 28, 2016
Here are the specifications of token strings:

"Token strings open with the characters q{ and close with the token }. In between must be valid D tokens. The { and }"

So we can deduce that any invalid D token inside a token string will lead to a compilation error. Indeed:

void main()
{
    enum s = q{#}; // malformed special token sequence
}

produces an error.

So are you able to find more invalid token ?
October 28, 2016
On Friday, 28 October 2016 at 05:16:45 UTC, Basile B. wrote:
> Here are the specifications of token strings:
>
> "Token strings open with the characters q{ and close with the token }. In between must be valid D tokens. The { and }"
>
> So we can deduce that any invalid D token inside a token string will lead to a compilation error. Indeed:
>
> void main()
> {
>     enum s = q{#}; // malformed special token sequence
> }
>
> produces an error.
>
> So are you able to find more invalid token ?

Try  '}'
October 28, 2016
On Friday, 28 October 2016 at 06:21:38 UTC, Johan Engelen wrote:
> On Friday, 28 October 2016 at 05:16:45 UTC, Basile B. wrote:
>> Here are the specifications of token strings:
>>
>> "Token strings open with the characters q{ and close with the token }. In between must be valid D tokens. The { and }"
>>
>> So we can deduce that any invalid D token inside a token string will lead to a compilation error. Indeed:
>>
>> void main()
>> {
>>     enum s = q{#}; // malformed special token sequence
>> }
>>
>> produces an error.
>>
>> So are you able to find more invalid token ?
>
> Try  '}'

Yes and many others. Since I've posted this message I've realized that actually there are much invalid tokens. Any character that's not an Universal Alpha and that's not in a string prevents compilation.

A complete list is at page 451 in http://www.open-std.org/JTC1/SC22/WG14/www/docs/n1124.pdf