Skip to content

Commit

Permalink
Redo PR #24811 properly
Browse files Browse the repository at this point in the history
Transplant the grammar-related changes to grammar.md,
and remove all grammar talk from reference.md
  • Loading branch information
Robin Kruppe committed Apr 25, 2015
1 parent 0d8309e commit 85ee89a
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 21 deletions.
12 changes: 7 additions & 5 deletions src/doc/grammar.md
Expand Up @@ -96,12 +96,16 @@ explicit codepoint lists. [^inputformat]
## Special Unicode Productions

The following productions in the Rust grammar are defined in terms of Unicode
properties: `ident`, `non_null`, `non_star`, `non_eol`, `non_slash_or_star`,
`non_single_quote` and `non_double_quote`.
properties: `ident`, `non_null`, `non_eol`, `non_single_quote` and
`non_double_quote`.

### Identifiers

The `ident` production is any nonempty Unicode string of the following form:
The `ident` production is any nonempty Unicode[^non_ascii_idents] string of
the following form:

[^non_ascii_idents]: Non-ASCII characters in identifiers are currently feature
gated. This is expected to improve soon.

- The first character has property `XID_start`
- The remaining characters have property `XID_continue`
Expand All @@ -118,8 +122,6 @@ Some productions are defined by exclusion of particular Unicode characters:

- `non_null` is any single Unicode character aside from `U+0000` (null)
- `non_eol` is `non_null` restricted to exclude `U+000A` (`'\n'`)
- `non_star` is `non_null` restricted to exclude `U+002A` (`*`)
- `non_slash_or_star` is `non_null` restricted to exclude `U+002F` (`/`) and `U+002A` (`*`)
- `non_single_quote` is `non_null` restricted to exclude `U+0027` (`'`)
- `non_double_quote` is `non_null` restricted to exclude `U+0022` (`"`)

Expand Down
18 changes: 2 additions & 16 deletions src/doc/reference.md
Expand Up @@ -65,14 +65,9 @@ explicit code point lists. [^inputformat]
provided to the grammar verifier, restricted to ASCII range, when verifying the
grammar in this document.

## Special Unicode Productions
## Identifiers

The following productions in the Rust grammar are defined in terms of Unicode
properties: `ident`, `non_null`, `non_eol`, `non_single_quote` and `non_double_quote`.

### Identifiers

The `ident` production is any nonempty Unicode[^non_ascii_idents] string of the following form:
An identifier is any nonempty Unicode[^non_ascii_idents] string of the following form:

[^non_ascii_idents]: Non-ASCII characters in identifiers are currently feature
gated. This is expected to improve soon.
Expand All @@ -86,15 +81,6 @@ that does _not_ occur in the set of [keywords](#keywords).
> character ranges used to form the more familiar C and Java language-family
> identifiers.
### Delimiter-restricted productions

Some productions are defined by exclusion of particular Unicode characters:

- `non_null` is any single Unicode character aside from `U+0000` (null)
- `non_eol` is `non_null` restricted to exclude `U+000A` (`'\n'`)
- `non_single_quote` is `non_null` restricted to exclude `U+0027` (`'`)
- `non_double_quote` is `non_null` restricted to exclude `U+0022` (`"`)

## Comments

Comments in Rust code follow the general C++ style of line and block-comment
Expand Down

0 comments on commit 85ee89a

Please sign in to comment.