Skip to content

Commit 6871305

Browse files
committed
Editorial
1 parent cfce61e commit 6871305

File tree

1 file changed

+52
-53
lines changed

1 file changed

+52
-53
lines changed

spec/Section 2 -- Language.md

Lines changed: 52 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ Unicode scalar values may appear within {StringValue} and {Comment}.
5959

6060
Note: An implementation which uses _UTF-16_ to represent GraphQL documents in
6161
memory (for example, JavaScript or Java) may encounter a _surrogate pair_. This
62-
encodes a _supplementary code point_ and is a single valid source character,
62+
encodes one _supplementary code point_ and is a single valid source character,
6363
however an unpaired _surrogate code point_ is not a valid source character.
6464

6565
### White Space
@@ -105,10 +105,9 @@ CommentChar :: SourceCharacter but not LineTerminator
105105
GraphQL source documents may contain single-line comments, starting with the
106106
{`#`} marker.
107107

108-
A comment can contain any Unicode code point in {SourceCharacter} except
109-
{LineTerminator} so a comment always consists of all code points starting with
110-
the {`#`} character up to but not including the {LineTerminator} (or end of the
111-
source).
108+
A comment may contain any {SourceCharacter} except {LineTerminator} so a comment
109+
always consists of all {SourceCharacter} starting with the {`#`} character up to
110+
but not including the {LineTerminator} (or end of the source).
112111

113112
Comments are {Ignored} like white space and may appear after any token, or
114113
before a {LineTerminator}, and have no significance to the semantic meaning of a
@@ -171,10 +170,9 @@ UnicodeBOM :: "Byte Order Mark (U+FEFF)"
171170

172171
The _Byte Order Mark_ is a special Unicode code point which may appear at the
173172
beginning of a file which programs may use to determine the fact that the text
174-
stream is Unicode, and what specific encoding has been used.
175-
176-
As files are often concatenated, a _Byte Order Mark_ may appear anywhere within
177-
a GraphQL document and is {Ignored}.
173+
stream is Unicode, and what specific encoding has been used. As files are often
174+
concatenated, a _Byte Order Mark_ may appear before or after any lexical token
175+
and is {Ignored}.
178176

179177
### Punctuators
180178

@@ -831,13 +829,10 @@ BlockStringCharacter ::
831829
- SourceCharacter but not `"""` or `\"""`
832830
- `\"""`
833831

834-
{StringValue} is a sequence of characters wrapped in quotation marks (U+0022).
835-
(ex. {`"Hello World"`}). White space and other characters ignored in other parts
836-
of a GraphQL document are significant within a string value.
837-
838-
A {StringValue} is evaluated to a Unicode text value, a sequence of Unicode
839-
scalar values, by interpreting all escape sequences using the static semantics
840-
defined below.
832+
A {StringValue} is evaluated to a _Unicode text_ value, a sequence of _Unicode
833+
scalar value_, by interpreting all escape sequences using the static semantics
834+
defined below. White space and other characters ignored between lexical tokens
835+
are significant within a string value.
841836

842837
The empty string {`""`} must not be followed by another {`"`} otherwise it would
843838
be interpreted as the beginning of a block string. As an example, the source
@@ -846,43 +841,45 @@ empty strings.
846841

847842
**Escape Sequences**
848843

849-
In a single-quoted {StringValue}, any Unicode scalar value may be expressed
844+
In a single-quoted {StringValue}, any _Unicode scalar value_ may be expressed
850845
using an escape sequence. GraphQL strings allow both C-style escape sequences
851846
(for example `\n`) and two forms of Unicode escape sequences: one with a
852847
fixed-width of 4 hexadecimal digits (for example `\u000A`) and one with a
853848
variable-width most useful for representing a _supplementary character_ such as
854849
an Emoji (for example `\u{1F4A9}`).
855850

856851
The hexadecimal number encoded by a Unicode escape sequence must describe a
857-
Unicode scalar value, otherwise parsing should stop with an early error. For
858-
example both sources `"\uDEAD"` and `"\u{110000}"` should not be considered
859-
valid {StringValue}.
852+
_Unicode scalar value_, otherwise must result in a parse error. For example both
853+
sources `"\uDEAD"` and `"\u{110000}"` should not be considered valid
854+
{StringValue}.
860855

861856
Escape sequences are only meaningful within a single-quoted string. Within a
862857
block string, they are simply that sequence of characters (for example
863-
`"""\n"""` represents the Unicode text [U+005C, U+006E]). Within a comment an
858+
`"""\n"""` represents the _Unicode text_ [U+005C, U+006E]). Within a comment an
864859
escape sequence is not a significant sequence of characters. They may not appear
865860
elsewhere in a GraphQL document.
866861

867-
Since {StringCharacter} must not contain some characters, escape sequences must
868-
be used to represent these characters. All other escape sequences are optional
869-
and unescaped non-ASCII Unicode characters are allowed within strings. If using
870-
GraphQL within a system which only supports ASCII, then escape sequences may be
871-
used to represent all Unicode characters outside of the ASCII range.
862+
Since {StringCharacter} must not contain some code points directly (for example,
863+
a {LineTerminator}), escape sequences must be used to represent them. All other
864+
escape sequences are optional and unescaped non-ASCII Unicode characters are
865+
allowed within strings. If using GraphQL within a system which only supports
866+
ASCII, then escape sequences may be used to represent all Unicode characters
867+
outside of the ASCII range.
872868

873869
For legacy reasons, a _supplementary character_ may be escaped by two
874870
fixed-width unicode escape sequences forming a _surrogate pair_. For example the
875871
input `"\uD83D\uDCA9"` is a valid {StringValue} which represents the same
876-
Unicode text as `"\u{1F4A9}"`. While this legacy form is allowed, it should be
872+
_Unicode text_ as `"\u{1F4A9}"`. While this legacy form is allowed, it should be
877873
avoided as a variable-width unicode escape sequence is a clearer way to encode
878874
such code points.
879875

880876
When producing a {StringValue}, implementations should use escape sequences to
881877
represent non-printable control characters (U+0000 to U+001F and U+007F to
882878
U+009F). Other escape sequences are not necessary, however an implementation may
883-
use escape sequences to represent any other range of code points. If an
884-
implementation chooses to escape a _supplementary character_, it should not use
885-
a fixed-width surrogate pair unicode escape sequence.
879+
use escape sequences to represent any other range of code points (for example,
880+
when producing ASCII-only output). If an implementation chooses to escape a
881+
_supplementary character_, it should only use a variable-width unicode escape
882+
sequence.
886883

887884
**Block Strings**
888885

@@ -940,19 +937,21 @@ string.
940937

941938
**Static Semantics**
942939

943-
A {StringValue} describes a Unicode text value, a sequence of *Unicode scalar
944-
value*s. These semantics describe how to apply the {StringValue} grammar to a
945-
source text to evaluate a Unicode text. Errors encountered during this
946-
evaluation are considered a failure to apply the {StringValue} grammar to a
947-
source and result in a parsing error.
940+
:: A {StringValue} describes a _Unicode text_ value, which is a sequence of
941+
_Unicode scalar value_.
942+
943+
These semantics describe how to apply the {StringValue} grammar to a source text
944+
to evaluate a _Unicode text_. Errors encountered during this evaluation are
945+
considered a failure to apply the {StringValue} grammar to a source and must
946+
result in a parsing error.
948947

949948
StringValue :: `""`
950949

951950
- Return an empty sequence.
952951

953952
StringValue :: `"` StringCharacter+ `"`
954953

955-
- Return the concatenated sequence of _Unicode scalar value_ by evaluating all
954+
- Return the _Unicode text_ by concatenating the evaluation of all
956955
{StringCharacter}.
957956

958957
StringCharacter :: SourceCharacter but not `"` or `\` or LineTerminator
@@ -965,7 +964,7 @@ StringCharacter :: `\u` EscapedUnicode
965964
within {EscapedUnicode}.
966965
- Assert {value} is a within the _Unicode scalar value_ range (>= 0x0000 and <=
967966
0xD7FF or >= 0xE000 and <= 0x10FFFF).
968-
- Return the code point {value}.
967+
- Return the _Unicode scalar value_ {value}.
969968

970969
StringCharacter :: `\u` HexDigit HexDigit HexDigit HexDigit `\u` HexDigit
971970
HexDigit HexDigit HexDigit
@@ -981,8 +980,8 @@ HexDigit HexDigit HexDigit
981980
- Otherwise:
982981
- Assert {leadingValue} is within the _Unicode scalar value_ range.
983982
- Assert {trailingValue} is within the _Unicode scalar value_ range.
984-
- Return the sequence of the code point {leadingValue} followed by the code
985-
point {trailingValue}.
983+
- Return the sequence of the _Unicode scalar value_ {leadingValue} followed by
984+
the _Unicode scalar value_ {trailingValue}.
986985

987986
Note: If both escape sequences encode a _Unicode scalar value_, then this
988987
semantic is identical to applying the prior semantic on each fixed-width escape
@@ -991,24 +990,24 @@ value_.
991990

992991
StringCharacter :: `\` EscapedCharacter
993992

994-
- Return the code point represented by {EscapedCharacter} according to the table
995-
below.
993+
- Return the _Unicode scalar value_ represented by {EscapedCharacter} according
994+
to the table below.
996995

997-
| Escaped Character | Code Point | Character Name |
998-
| ----------------- | ---------- | ---------------------------- |
999-
| {`"`} | U+0022 | double quote |
1000-
| {`\`} | U+005C | reverse solidus (back slash) |
1001-
| {`/`} | U+002F | solidus (forward slash) |
1002-
| {`b`} | U+0008 | backspace |
1003-
| {`f`} | U+000C | form feed |
1004-
| {`n`} | U+000A | line feed (new line) |
1005-
| {`r`} | U+000D | carriage return |
1006-
| {`t`} | U+0009 | horizontal tab |
996+
| Escaped Character | Scalar Value | Character Name |
997+
| ----------------- | ------------ | ---------------------------- |
998+
| {`"`} | U+0022 | double quote |
999+
| {`\`} | U+005C | reverse solidus (back slash) |
1000+
| {`/`} | U+002F | solidus (forward slash) |
1001+
| {`b`} | U+0008 | backspace |
1002+
| {`f`} | U+000C | form feed |
1003+
| {`n`} | U+000A | line feed (new line) |
1004+
| {`r`} | U+000D | carriage return |
1005+
| {`t`} | U+0009 | horizontal tab |
10071006

10081007
StringValue :: `"""` BlockStringCharacter\* `"""`
10091008

1010-
- Let {rawValue} be the concatenated sequence of _Unicode scalar value_ by
1011-
evaluating all {BlockStringCharacter} (which may be an empty sequence).
1009+
- Let {rawValue} be the _Unicode text_ by concatenating the evaluation of all
1010+
{BlockStringCharacter} (which may be an empty sequence).
10121011
- Return the result of {BlockStringValue(rawValue)}.
10131012

10141013
BlockStringCharacter :: SourceCharacter but not `"""` or `\"""`

0 commit comments

Comments
 (0)