On 06/22/2010 04:14 PM, Jonathan M Davis wrote:
Andrei Alexandrescu wrote:

On 06/21/2010 03:32 PM, Ellery Newcomer wrote:
I was biting my tongue on the subject, but on page 73 the grammar for
the do while loop has a semicolon at the end. AAHHHHHHHHHHHHH!!!!!!!!
THERE IS NOOOOOOO SEMICOLON AT THE END.

Wow. Sorry. This is a pet peeve of mine.

Can't help that, sorry...

Andrei

Well, while I, personally, would put a semicolon there (it feels naked to me
without one), dmd doesn't actually seem to require it. But TDPL says that
the semicolon is required. So, it does appear to be an error in the text. Of
course, there's no helping his pet peeve regardless, but the semicolon
doesn't appear to be required.

- Jonathan M Davis

Walter, was that intentional? The grammar has no semicolon but the example does. That makes the example wrong because you agreed there is no solitary semicolon statement in D, and TDPL does mention that.

IMHO the semicolon makes for more robust code. Consider:

do
{
    ... lotsa code ...
}
while (fun(i))
++i;

A maintainer might see the while and conclude that ++i; was meant to be the loop, indent it, and call it a day. The absence of the semicolon thus created a contextual dependency on the presence of the "do" keyword upstream.

Walter, can we require a semicolon please?


Andrei

Reply via email to