D issues are now tracked on GitHub. This Bugzilla instance remains as a read-only archive.
Issue 601 - statement.html - Formatting/markup errors in BNF
Summary: statement.html - Formatting/markup errors in BNF
Status: RESOLVED FIXED
Alias: None
Product: D
Classification: Unclassified
Component: dlang.org (show other issues)
Version: D1 (retired)
Hardware: All All
: P2 minor
Assignee: Walter Bright
URL: http://www.digitalmars.com/d/1.0/stat...
Keywords: patch
Depends on:
Blocks: 677
  Show dependency treegraph
 
Reported: 2006-11-26 03:26 UTC by Stewart Gordon
Modified: 2014-02-15 13:28 UTC (History)
0 users

See Also:


Attachments
Patch to fix points 1-4 (1.62 KB, patch)
2007-04-20 20:47 UTC, Stewart Gordon
Details | Diff

Note You need to log in before you can comment on or make changes to this issue.
Description Stewart Gordon 2006-11-26 03:26:51 UTC
There are a few errors and inconsistencies in how the BNF in the spec is formatted, which are noticeable on the Statements page.

1. British and American spellings are mixed, even in multiple occurrences of the same syntactic element.  This instance should suffice to illustrate:

NonEmptyStatement:
    LabeledStatement
    [...]

LabelledStatement:
    Identifier ':' NoScopeStatement


2. While still on the subject of Label(l)edStatement, no other bit of BNF in the D spec (that I've found) has a token delimited by single quotes.  They shouldn't be here either.


3.
DefaultStatement:
    default: Statement

There should be a space between "default" and ":" to reflect that they are two separate tokens.  More trivial are instances in ForStatement, where the omitted spaces separate a token from a nonterminal:

ForStatement:
    for (Initialize Test; Increment) ScopeStatement

versus

    for ( Initialize Test ; Increment ) ScopeStatement


4.
ForeachStatement:
    Foreach (ForeachTypeList; Aggregate) NoScopeNonEmptyStatement

has, in addition to the same imperfection as the above, the open parenthesis in italics instead of bold.


5. Many of the link targets are malformed, for example:

<pre class="bnf"><a name=#Statement><i>Statement</i></a>:

Firstly, this is syntactically invalid HTML - '#' isn't one of the characters that may be included in an attribute value without quotes.  But that's an aside - target names shouldn't have the '#' at all.  The '#' comes into play only in URLs and hrefs.  Consequently, several of the links between parts of the page don't work.
Comment 1 Stewart Gordon 2007-04-20 20:47:46 UTC
Created attachment 141 [details]
Patch to fix points 1-4

Point 5 has been fixed (either that or gone away by itself).  This patch fixes what remains.

(There may be a discrepancy in the file sizes - this is because TextPad removed whitespace from blank lines, which hasn't been included in the patch.)
Comment 2 Stewart Gordon 2009-07-16 08:23:20 UTC
Why is it taking forever to fold in this fix???
Comment 3 Walter Bright 2009-07-16 15:18:12 UTC
Because it was overlooked. Sorry about that.
Comment 4 Walter Bright 2009-09-03 13:22:10 UTC
Fixed dmd 1.047 and 2.032