[css-syntax] Terminology: use "code point" instead of "character".

Wed, 14 Aug 2013 18:26:25 +0100

author
Simon Sapin <simon.sapin@exyr.org>
date
Wed, 14 Aug 2013 18:26:25 +0100
changeset 8830
d945246d2184
parent 8829
d4507e490f39
child 8831
2ecd7a7d232c

[css-syntax] Terminology: use "code point" instead of "character".

css-syntax/Diagrams.src.html file | annotate | diff | comparison | revisions
css-syntax/Overview.html file | annotate | diff | comparison | revisions
css-syntax/Overview.src.html file | annotate | diff | comparison | revisions
     1.1 --- a/css-syntax/Diagrams.src.html	Wed Aug 14 11:35:33 2013 +0200
     1.2 +++ b/css-syntax/Diagrams.src.html	Wed Aug 14 18:26:25 2013 +0100
     1.3 @@ -60,7 +60,7 @@
     1.4  
     1.5  add('newline', Diagram(Choice(0, '\\n', '\\r\\n', '\\r', '\\f')));
     1.6  
     1.7 -add('whitespace character', Diagram(Choice(
     1.8 +add('whitespace', Diagram(Choice(
     1.9  	0, 'space', '\\t', NonTerminal('newline'))));
    1.10  
    1.11  add('escape', Diagram(
    1.12 @@ -68,9 +68,9 @@
    1.13  		NonTerminal('not newline or hex digit'),
    1.14  		Sequence(
    1.15  			OneOrMore(NonTerminal('hex digit'), Comment('1-6 times')),
    1.16 -			Optional(NonTerminal('whitespace character'), 'skip')))));
    1.17 +			Optional(NonTerminal('whitespace'), 'skip')))));
    1.18  
    1.19 -add('〈whitespace〉', Diagram(OneOrMore(NonTerminal('whitespace character'))));
    1.20 +add('〈whitespace〉', Diagram(OneOrMore(NonTerminal('whitespace'))));
    1.21  
    1.22  add('〈ident〉', Diagram(
    1.23  	Choice(0, Skip(), '-'),
     2.1 --- a/css-syntax/Overview.html	Wed Aug 14 11:35:33 2013 +0200
     2.2 +++ b/css-syntax/Overview.html	Wed Aug 14 18:26:25 2013 +0100
     2.3 @@ -12,7 +12,7 @@
     2.4  </a></p>
     2.5    <h1 class="p-name no-ref" id=title>CSS Syntax Module Level 3</h1>
     2.6    <h2 class="no-num no-toc no-ref" id=subtitle><span class=content>Editor's Draft,
     2.7 -    <span class=dt-updated><span class=value-title title=20130813>13 August 2013</span></span></span></h2>
     2.8 +    <span class=dt-updated><span class=value-title title=20130814>14 August 2013</span></span></span></h2>
     2.9    <div data-fill-with=spec-metadata><dl><dt>This version:<dd><a class=u-url href=http://dev.w3.org/csswg/css-syntax>http://dev.w3.org/csswg/css-syntax</a><dt>Editor's Draft:<dd><a href=http://dev.w3.org/csswg/css-syntax>http://dev.w3.org/csswg/css-syntax</a>
    2.10  <dt>Feedback:</dt>
    2.11      <dd><a href="mailto:www-style@w3.org?subject=%5Bcss-syntax%5D%20feedback">www-style@w3.org</a>
    2.12 @@ -82,11 +82,11 @@
    2.13  Consume an ident-like token</a><li><a href=#consume-a-string-token><span class=secno>4.3.4</span>
    2.14  Consume a string token</a><li><a href=#consume-a-url-token><span class=secno>4.3.5</span>
    2.15  Consume a url token</a><li><a href=#consume-a-unicode-range-token><span class=secno>4.3.6</span>
    2.16 -Consume a unicode-range token</a><li><a href=#consume-an-escaped-character><span class=secno>4.3.7</span>
    2.17 -Consume an escaped character</a><li><a href=#check-if-two-characters-are-a-valid-escape><span class=secno>4.3.8</span>
    2.18 -Check if two characters are a valid escape</a><li><a href=#check-if-three-characters-would-start-an-identifier><span class=secno>4.3.9</span>
    2.19 -Check if three characters would start an identifier</a><li><a href=#check-if-three-characters-would-start-a-number><span class=secno>4.3.10</span>
    2.20 -Check if three characters would start a number</a><li><a href=#consume-a-name><span class=secno>4.3.11</span>
    2.21 +Consume a unicode-range token</a><li><a href=#consume-an-escaped-code-point><span class=secno>4.3.7</span>
    2.22 +consume an escaped code point</a><li><a href=#check-if-two-code-points-are-a-valid-escape><span class=secno>4.3.8</span>
    2.23 +Check if two code points are a valid escape</a><li><a href=#check-if-three-code-points-would-start-an-identifier><span class=secno>4.3.9</span>
    2.24 +Check if three code points would start an identifier</a><li><a href=#check-if-three-code-points-would-start-a-number><span class=secno>4.3.10</span>
    2.25 +Check if three code points would start a number</a><li><a href=#consume-a-name><span class=secno>4.3.11</span>
    2.26  Consume a name</a><li><a href=#consume-a-number><span class=secno>4.3.12</span>
    2.27  Consume a number</a><li><a href=#convert-a-string-to-a-number><span class=secno>4.3.13</span>
    2.28  Convert a string to a number</a><li><a href=#consume-the-remnants-of-a-bad-url><span class=secno>4.3.14</span>
    2.29 @@ -148,7 +148,7 @@
    2.30  	and other things which use CSS syntax
    2.31  	(such as the HTML <code>style</code> attribute).
    2.32  
    2.33 -<p>	It defines algorithms for converting a stream of codepoints
    2.34 +<p>	It defines algorithms for converting a stream of Unicode <a href=#code-point>code points</a>
    2.35  	(in other words, text)
    2.36  	into a stream of CSS tokens,
    2.37  	and then further into CSS objects
    2.38 @@ -198,7 +198,7 @@
    2.39  	</div>
    2.40  
    2.41  <p>	At-rules are all different, but they have a basic structure in common.
    2.42 -	They start with an "@" character followed by their name.
    2.43 +	They start with an "@" <a href=#code-point>code point</a> followed by their name.
    2.44  	Some <a href=#at-rule>at-rules</a> are simple statements,
    2.45  	with their name followed by more CSS values to specify their behavior,
    2.46  	and finally ended by a semicolon.
    2.47 @@ -242,7 +242,7 @@
    2.48  <p>	Property names and <a href=#at-rule>at-rule</a> names are always <b>identifiers</b>,
    2.49  	which have to start with a letter or a hyphen followed by a letter,
    2.50  	and then can contain letters, numbers, hyphens, or underscores.
    2.51 -	You can include any character at all,
    2.52 +	You can include any <a href=#code-point>code point</a> at all,
    2.53  	even ones that CSS uses in its syntax,
    2.54  	by <a href=#escaping0>escaping</a> it.
    2.55  
    2.56 @@ -255,18 +255,18 @@
    2.57  
    2.58  <p>	<em>This section is not normative.</em>
    2.59  
    2.60 -<p>	Any Unicode character can be included in an identifier or quoted string
    2.61 +<p>	Any Unicode <a href=#code-point>code point</a> can be included in an identifier or quoted string
    2.62  	by <dfn data-dfn-type=dfn id=escaping0>escaping</dfn> it.
    2.63  	CSS escape sequences start with a backslash (\), and continue with:
    2.64  
    2.65  <p>	<ul>
    2.66  		<li>
    2.67 -			Any Unicode character that is not a <a href=#hex-digit>hex digits</a> or a <a href=#newline>newline</a>.
    2.68 -			The escape sequence is replaced by that character.
    2.69 +			Any Unicode <a href=#code-point>code point</a> that is not a <a href=#hex-digit>hex digits</a> or a <a href=#newline>newline</a>.
    2.70 +			The escape sequence is replaced by that <a href=#code-point>code point</a>.
    2.71  		<li>
    2.72  			Or one to six <a href=#hex-digit>hex digits</a>, followed by an optional <a href=#whitespace>whitespace</a>.
    2.73 -			The escape sequence is replaced by the Unicode character
    2.74 -			whose codepoint number is given by the hexadecimal digits.
    2.75 +			The escape sequence is replaced by the Unicode <a href=#code-point>code point</a>
    2.76 +			whose value is given by the hexadecimal digits.
    2.77  			This optional whitespace allow hexadecimal escape sequences
    2.78  			to be followed by "real" hex digits.
    2.79  
    2.80 @@ -363,7 +363,7 @@
    2.81  <h3 data-level=3.1 id=overview-of-the-parsing-model><span class=secno>3.1 </span><span class=content>
    2.82  Overview of the Parsing Model</span><a class=section-link href=#overview-of-the-parsing-model>§</a></h3>
    2.83  
    2.84 -<p>	The input to the CSS parsing process consists of a stream of Unicode code points,
    2.85 +<p>	The input to the CSS parsing process consists of a stream of Unicode <a href=#code-point>code points</a>,
    2.86  	which is passed through a tokenization stage followed by a tree construction stage.
    2.87  	The output is a CSSStyleSheet object.
    2.88  
    2.89 @@ -374,12 +374,13 @@
    2.90  The input byte stream</span><a class=section-link href=#the-input-byte-stream>§</a></h3>
    2.91  
    2.92  <p>	When parsing a stylesheet,
    2.93 -	the stream of Unicode code points that comprises the input to the tokenization stage may be initially seen by the user agent as a stream of bytes
    2.94 +	the stream of Unicode <a href=#code-point>code points</a> that comprises the input to the tokenization stage
    2.95 +	may be initially seen by the user agent as a stream of bytes
    2.96  	(typically coming over the network or from the local file system).
    2.97 -	The bytes encode the actual characters according to a particular character encoding,
    2.98 -	which the user agent must use to decode the bytes into characters.
    2.99 -
   2.100 -<p>	To decode the stream of bytes into a stream of characters,
   2.101 +	The bytes encode the <a href=#code-point>code points</a> according to a particular character encoding,
   2.102 +	which the user agent must use to decode the bytes into <a href=#code-point>code points</a>.
   2.103 +
   2.104 +<p>	To decode the stream of bytes into a stream of <a href=#code-point>code points</a>,
   2.105  	UAs must follow these steps.
   2.106  
   2.107  <p>	The algorithms to <a href=http://encoding.spec.whatwg.org/#concept-encoding-get><dfn data-dfn-type=dfn id=get-an-encoding>get an encoding</dfn></a>
   2.108 @@ -447,21 +448,21 @@
   2.109  <h3 data-level=3.3 id=preprocessing-the-input-stream><span class=secno>3.3 </span><span class=content>
   2.110  Preprocessing the input stream</span><a class=section-link href=#preprocessing-the-input-stream>§</a></h3>
   2.111  
   2.112 -<p>	The input stream consists of the characters (individual unicode code-points)
   2.113 +<p>	The input stream consists of the <a href=#code-point>code points</a>
   2.114  	pushed into it as the input byte stream is decoded.
   2.115  
   2.116  <p>	Before sending the input stream to the tokenizer,
   2.117 -	implementations must make the following character substitutions:
   2.118 +	implementations must make the following <a href=#code-point>code point</a> substitutions:
   2.119  
   2.120  <p>	<ul>
   2.121  		<li>
   2.122 -			Replace any U+000D CARRIAGE RETURN (CR) characters,
   2.123 -			U+000C FORM FEED (FF) characters,
   2.124 +			Replace any U+000D CARRIAGE RETURN (CR) <a href=#code-point>code point</a>,
   2.125 +			U+000C FORM FEED (FF) <a href=#code-point>code point</a>,
   2.126  			or pairs of U+000D CARRIAGE RETURN (CR) followed by U+000A LINE FEED (LF)
   2.127 -			by a single U+000A LINE FEED (LF) character.
   2.128 +			by a single U+000A LINE FEED (LF) <a href=#code-point>code point</a>.
   2.129  
   2.130  		<li>
   2.131 -			Replace any U+0000 NULL characters with U+FFFD REPLACEMENT CHARACTER (�).
   2.132 +			Replace any U+0000 NULL <a href=#code-point>code point</a> with U+FFFD REPLACEMENT CHARACTER (�).
   2.133  	</ul>
   2.134  
   2.135  
   2.136 @@ -469,13 +470,13 @@
   2.137  Tokenization</span><a class=section-link href=#tokenization>§</a></h2>
   2.138  
   2.139  <p>	Implementations must act as if they used the following algorithms to tokenize CSS.
   2.140 -	To transform a stream of characters into a stream of tokens,
   2.141 +	To transform a stream of <a href=#code-point>code points</a> into a stream of tokens,
   2.142  	repeatedly <a href=#consume-a-token0>consume a token</a>
   2.143  	until an <a data-link-type=token href=#tokendef-eof>〈EOF〉</a> is reached,
   2.144  	collecting the returned tokens into a stream.
   2.145  	Each call to the <a href=#consume-a-token0>consume a token</a> algorithm
   2.146  	returns a single token,
   2.147 -	so it can also be used "on-demand" to tokenize a stream of characters <em>during</em> parsing,
   2.148 +	so it can also be used "on-demand" to tokenize a stream of <a href=#code-point>code points</a> <em>during</em> parsing,
   2.149  	if so desired.
   2.150  
   2.151  <p>	The output of the tokenization step is a stream of zero or more of the following tokens:
   2.152 @@ -513,26 +514,26 @@
   2.153  
   2.154  <p>	<ul>
   2.155  		<li>
   2.156 -			<a data-link-type=token href=#tokendef-ident>〈ident〉</a>, <a data-link-type=token href=#tokendef-function>〈function〉</a>, <a data-link-type=token href=#tokendef-at-keyword>〈at-keyword〉</a>, <a data-link-type=token href=#tokendef-hash>〈hash〉</a>, <a data-link-type=token href=#tokendef-string>〈string〉</a>, and <a data-link-type=token href=#tokendef-url>〈url〉</a> tokens have a value composed of zero or more characters.
   2.157 +			<a data-link-type=token href=#tokendef-ident>〈ident〉</a>, <a data-link-type=token href=#tokendef-function>〈function〉</a>, <a data-link-type=token href=#tokendef-at-keyword>〈at-keyword〉</a>, <a data-link-type=token href=#tokendef-hash>〈hash〉</a>, <a data-link-type=token href=#tokendef-string>〈string〉</a>, and <a data-link-type=token href=#tokendef-url>〈url〉</a> tokens have a value composed of zero or more <a href=#code-point>code points</a>.
   2.158  			Additionally, hash tokens have a type flag set to either "id" or "unrestricted".  The type flag defaults to "unrestricted" if not otherwise set.
   2.159  
   2.160  		<li>
   2.161 -			<a data-link-type=token href=#tokendef-delim>〈delim〉</a> tokens have a value composed of a single character.
   2.162 +			<a data-link-type=token href=#tokendef-delim>〈delim〉</a> tokens have a value composed of a single <a href=#code-point>code point</a>.
   2.163  
   2.164  		<li>
   2.165 -			<a data-link-type=token href=#tokendef-number>〈number〉</a>, <a data-link-type=token href=#tokendef-percentage>〈percentage〉</a>, and <a data-link-type=token href=#tokendef-dimension>〈dimension〉</a> tokens have a representation composed of one or more character, and a numeric value.
   2.166 +			<a data-link-type=token href=#tokendef-number>〈number〉</a>, <a data-link-type=token href=#tokendef-percentage>〈percentage〉</a>, and <a data-link-type=token href=#tokendef-dimension>〈dimension〉</a> tokens have a representation composed of one or more <a href=#code-point>code points</a>, and a numeric value.
   2.167  			<a data-link-type=token href=#tokendef-number>〈number〉</a> and <a data-link-type=token href=#tokendef-dimension>〈dimension〉</a> tokens additionally have a type flag set to either "integer" or "number".  The type flag defaults to "integer" if not otherwise set.
   2.168 -			<a data-link-type=token href=#tokendef-dimension>〈dimension〉</a> tokens additionally have a unit composed of one or more characters.
   2.169 +			<a data-link-type=token href=#tokendef-dimension>〈dimension〉</a> tokens additionally have a unit composed of one or more <a href=#code-point>code points</a>.
   2.170  
   2.171  		<li>
   2.172 -			<a data-link-type=token href=#tokendef-unicode-range>〈unicode-range〉</a> tokens have a range of characters.
   2.173 +			<a data-link-type=token href=#tokendef-unicode-range>〈unicode-range〉</a> tokens have a range of <a href=#code-point>code points</a>.
   2.174  	</ul>
   2.175  
   2.176  <p class=note>	Note: The type flag of hash tokens is used in the Selectors syntax <a data-biblio-type=informative data-link-type=biblio href=#select title=SELECT>[SELECT]</a>.
   2.177  	Only hash tokens with the "id" type are valid <a href=http://www.w3.org/TR/selectors/#id-selectors>ID selectors</a>.
   2.178  
   2.179  <p class=note>	Note: As a technical note,
   2.180 -	the tokenizer defined here requires only three characters of look-ahead.
   2.181 +	the tokenizer defined here requires only three <a href=#code-point>code points</a> of look-ahead.
   2.182  	The tokens it produces are designed to allow Selectors to be parsed with one token of look-ahead,
   2.183  	and additional tokens may be added in the future to maintain this invariant.
   2.184  
   2.185 @@ -568,144 +569,151 @@
   2.186  		<dt id=newline-diagram>newline</dt>
   2.187  		<dd><svg class=railroad-diagram height=152 width=173><g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><g><path d="M40 31h0"></path><path d="M132 31h0"></path><path d="M40 31h20"></path><g><path d="M60 31h8"></path><path d="M104 31h8"></path><rect height=22 rx=10 ry=10 width=36 x=68 y=20></rect><text x=86 y=35>\n</text></g><path d="M112 31h20"></path><path d="M40 31a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10"></path><g><path d="M60 61h0"></path><path d="M112 61h0"></path><rect height=22 rx=10 ry=10 width=52 x=60 y=50></rect><text x=86 y=65>\r\n</text></g><path d="M112 61a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10"></path><path d="M40 31a10 10 0 0 1 10 10v40a10 10 0 0 0 10 10"></path><g><path d="M60 91h8"></path><path d="M104 91h8"></path><rect height=22 rx=10 ry=10 width=36 x=68 y=80></rect><text x=86 y=95>\r</text></g><path d="M112 91a10 10 0 0 0 10 -10v-40a10 10 0 0 1 10 -10"></path><path d="M40 31a10 10 0 0 1 10 10v70a10 10 0 0 0 10 10"></path><g><path d="M60 121h8"></path><path d="M104 121h8"></path><rect height=22 rx=10 ry=10 width=36 x=68 y=110></rect><text x=86 y=125>\f</text></g><path d="M112 121a10 10 0 0 0 10 -10v-70a10 10 0 0 1 10 -10"></path></g><path d="M 132 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
   2.188  
   2.189 -		<dt id=whitespace-character-diagram>whitespace character</dt>
   2.190 +		<dt id=whitespace-diagram>whitespace</dt>
   2.191  		<dd><svg class=railroad-diagram height=122 width=197><g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><g><path d="M40 31h0"></path><path d="M156 31h0"></path><path d="M40 31h20"></path><g><path d="M60 31h8"></path><path d="M128 31h8"></path><rect height=22 rx=10 ry=10 width=60 x=68 y=20></rect><text x=98 y=35>space</text></g><path d="M136 31h20"></path><path d="M40 31a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10"></path><g><path d="M60 61h20"></path><path d="M116 61h20"></path><rect height=22 rx=10 ry=10 width=36 x=80 y=50></rect><text x=98 y=65>\t</text></g><path d="M136 61a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10"></path><path d="M40 31a10 10 0 0 1 10 10v40a10 10 0 0 0 10 10"></path><g><path d="M60 91h0"></path><path d="M136 91h0"></path><rect height=22 width=76 x=60 y=80></rect><text x=98 y=95>newline</text></g><path d="M136 91a10 10 0 0 0 10 -10v-40a10 10 0 0 1 10 -10"></path></g><path d="M 156 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
   2.192  
   2.193  		<dt id=escape-diagram>escape</dt>
   2.194 -		<dd><svg class=railroad-diagram height=122 width=521><g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 31h10"></path><g><path d="M50 31h0"></path><path d="M78 31h0"></path><rect height=22 rx=10 ry=10 width=28 x=50 y=20></rect><text x=64 y=35>\</text></g><path d="M78 31h10"></path><g><path d="M88 31h0"></path><path d="M480 31h0"></path><path d="M88 31h20"></path><g><path d="M108 31h70"></path><path d="M390 31h70"></path><rect height=22 width=212 x=178 y=20></rect><text x=284 y=35>not newline or hex digit</text></g><path d="M460 31h20"></path><path d="M88 31a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10"></path><g><path d="M108 61h0"></path><path d="M460 61h0"></path><path d="M108 61h10"></path><g><path d="M118 61h0"></path><path d="M230 61h0"></path><path d="M118 61h10"></path><g><path d="M128 61h0"></path><path d="M220 61h0"></path><rect height=22 width=92 x=128 y=50></rect><text x=174 y=65>hex digit</text></g><path d="M220 61h10"></path><path d="M128 61a10 10 0 0 0 -10 10v10a10 10 0 0 0 10 10"></path><g><path d="M128 91h9.5"></path><path d="M210.5 91h9.5"></path><text class=comment x=174 y=96>1-6 times</text></g><path d="M220 91a10 10 0 0 0 10 -10v-10a10 10 0 0 0 -10 -10"></path></g><path d="M230 61h10"></path><g><path d="M240 61h0"></path><path d="M460 61h0"></path><path d="M240 61h20"></path><g><path d="M260 61h180"></path></g><path d="M440 61h20"></path><path d="M240 61a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><g><path d="M260 81h0"></path><path d="M440 81h0"></path><rect height=22 width=180 x=260 y=70></rect><text x=350 y=85>whitespace character</text></g><path d="M440 81a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path></g></g><path d="M460 61a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10"></path></g><path d="M 480 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
   2.195 -
   2.196 -		<dt id="<a data-link-type='token'>〈whitespace〉</a>-diagram"><a data-link-type=token href=#tokendef-whitespace>〈whitespace〉</a></dt>
   2.197 -		<dd><svg class=railroad-diagram height=71 width=301><g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 31h10"></path><g><path d="M50 31h0"></path><path d="M250 31h0"></path><path d="M50 31h10"></path><g><path d="M60 31h0"></path><path d="M240 31h0"></path><rect height=22 width=180 x=60 y=20></rect><text x=150 y=35>whitespace character</text></g><path d="M240 31h10"></path><path d="M60 31a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10"></path><g><path d="M60 51h180"></path></g><path d="M240 51a10 10 0 0 0 10 -10v0a10 10 0 0 0 -10 -10"></path></g><path d="M250 31h10"></path><path d="M 260 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
   2.198 -
   2.199 -		<dt id="<a data-link-type='token'>〈ident〉</a>-diagram"><a data-link-type=token href=#tokendef-ident>〈ident〉</a></dt>
   2.200 +		<dd><svg class=railroad-diagram height=122 width=441><g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 31h10"></path><g><path d="M50 31h0"></path><path d="M78 31h0"></path><rect height=22 rx=10 ry=10 width=28 x=50 y=20></rect><text x=64 y=35>\</text></g><path d="M78 31h10"></path><g><path d="M88 31h0"></path><path d="M400 31h0"></path><path d="M88 31h20"></path><g><path d="M108 31h30"></path><path d="M350 31h30"></path><rect height=22 width=212 x=138 y=20></rect><text x=244 y=35>not newline or hex digit</text></g><path d="M380 31h20"></path><path d="M88 31a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10"></path><g><path d="M108 61h0"></path><path d="M380 61h0"></path><path d="M108 61h10"></path><g><path d="M118 61h0"></path><path d="M230 61h0"></path><path d="M118 61h10"></path><g><path d="M128 61h0"></path><path d="M220 61h0"></path><rect height=22 width=92 x=128 y=50></rect><text x=174 y=65>hex digit</text></g><path d="M220 61h10"></path><path d="M128 61a10 10 0 0 0 -10 10v10a10 10 0 0 0 10 10"></path><g><path d="M128 91h9.5"></path><path d="M210.5 91h9.5"></path><text class=comment x=174 y=96>1-6 times</text></g><path d="M220 91a10 10 0 0 0 10 -10v-10a10 10 0 0 0 -10 -10"></path></g><path d="M230 61h10"></path><g><path d="M240 61h0"></path><path d="M380 61h0"></path><path d="M240 61h20"></path><g><path d="M260 61h100"></path></g><path d="M360 61h20"></path><path d="M240 61a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><g><path d="M260 81h0"></path><path d="M360 81h0"></path><rect height=22 width=100 x=260 y=70></rect><text x=310 y=85>whitespace</text></g><path d="M360 81a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path></g></g><path d="M380 61a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10"></path></g><path d="M 400 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
   2.201 +
   2.202 +		<dt id=〈whitespace〉-diagram>〈whitespace〉</dt>
   2.203 +		<dd><svg class=railroad-diagram height=71 width=221><g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 31h10"></path><g><path d="M50 31h0"></path><path d="M170 31h0"></path><path d="M50 31h10"></path><g><path d="M60 31h0"></path><path d="M160 31h0"></path><rect height=22 width=100 x=60 y=20></rect><text x=110 y=35>whitespace</text></g><path d="M160 31h10"></path><path d="M60 31a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10"></path><g><path d="M60 51h100"></path></g><path d="M160 51a10 10 0 0 0 10 -10v0a10 10 0 0 0 -10 -10"></path></g><path d="M170 31h10"></path><path d="M 180 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
   2.204 +
   2.205 +		<dt id=〈ident〉-diagram>〈ident〉</dt>
   2.206  		<dd><svg class=railroad-diagram height=110 width=729><g transform="translate(.5 .5)"><path d="M 20 31 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><g><path d="M40 41h0"></path><path d="M108 41h0"></path><path d="M40 41h20"></path><g><path d="M60 41h28"></path></g><path d="M88 41h20"></path><path d="M40 41a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><g><path d="M60 61h0"></path><path d="M88 61h0"></path><rect height=22 rx=10 ry=10 width=28 x=60 y=50></rect><text x=74 y=65>-</text></g><path d="M88 61a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path></g><g><path d="M108 41h0"></path><path d="M344 41h0"></path><path d="M108 41h20"></path><g><path d="M128 41h0"></path><path d="M324 41h0"></path><rect height=22 width=196 x=128 y=30></rect><text x=226 y=45>a-z A-Z _ or non-ASCII</text></g><path d="M324 41h20"></path><path d="M108 41a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10"></path><g><path d="M128 71h64"></path><path d="M260 71h64"></path><rect height=22 width=68 x=192 y=60></rect><text x=226 y=75>escape</text></g><path d="M324 71a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10"></path></g><g><path d="M344 41h0"></path><path d="M688 41h0"></path><path d="M344 41a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path><g><path d="M364 21h304"></path></g><path d="M668 21a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><path d="M344 41h20"></path><g><path d="M364 41h0"></path><path d="M668 41h0"></path><path d="M364 41h10"></path><g><path d="M374 41h0"></path><path d="M658 41h0"></path><path d="M374 41h20"></path><g><path d="M394 41h0"></path><path d="M638 41h0"></path><rect height=22 width=244 x=394 y=30></rect><text x=516 y=45>a-z A-Z 0-9 _ - or non-ASCII</text></g><path d="M638 41h20"></path><path d="M374 41a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10"></path><g><path d="M394 71h88"></path><path d="M550 71h88"></path><rect height=22 width=68 x=482 y=60></rect><text x=516 y=75>escape</text></g><path d="M638 71a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10"></path></g><path d="M658 41h10"></path><path d="M374 41a10 10 0 0 0 -10 10v29a10 10 0 0 0 10 10"></path><g><path d="M374 90h284"></path></g><path d="M658 90a10 10 0 0 0 10 -10v-29a10 10 0 0 0 -10 -10"></path></g><path d="M668 41h20"></path></g><path d="M 688 41 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
   2.207  
   2.208 -		<dt id="<a data-link-type='token'>〈function〉</a>-diagram"><a data-link-type=token href=#tokendef-function>〈function〉</a></dt>
   2.209 -		<dd><svg class=railroad-diagram height=62 width=225><g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 31h10"></path><g><path d="M50 31h0"></path><path d="M126 31h0"></path><rect height=22 width=76 x=50 y=20></rect><text x=88 y=35><a data-link-type=token>〈ident〉</a></text></g><path d="M126 31h10"></path><path d="M136 31h10"></path><g><path d="M146 31h0"></path><path d="M174 31h0"></path><rect height=22 rx=10 ry=10 width=28 x=146 y=20></rect><text x=160 y=35>(</text></g><path d="M174 31h10"></path><path d="M 184 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
   2.210 -
   2.211 -		<dt id="<a data-link-type='token'>〈at-keyword〉</a>-diagram"><a data-link-type=token href=#tokendef-at-keyword>〈at-keyword〉</a></dt>
   2.212 -		<dd><svg class=railroad-diagram height=62 width=225><g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 31h10"></path><g><path d="M50 31h0"></path><path d="M78 31h0"></path><rect height=22 rx=10 ry=10 width=28 x=50 y=20></rect><text x=64 y=35>@</text></g><path d="M78 31h10"></path><path d="M88 31h10"></path><g><path d="M98 31h0"></path><path d="M174 31h0"></path><rect height=22 width=76 x=98 y=20></rect><text x=136 y=35><a data-link-type=token>〈ident〉</a></text></g><path d="M174 31h10"></path><path d="M 184 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
   2.213 -
   2.214 -		<dt id="<a data-link-type='token'>〈hash〉</a>-diagram"><a data-link-type=token href=#tokendef-hash>〈hash〉</a></dt>
   2.215 +		<dt id=〈function〉-diagram>〈function〉</dt>
   2.216 +		<dd><svg class=railroad-diagram height=62 width=225><g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 31h10"></path><g><path d="M50 31h0"></path><path d="M126 31h0"></path><rect height=22 width=76 x=50 y=20></rect><text x=88 y=35>〈ident〉</text></g><path d="M126 31h10"></path><path d="M136 31h10"></path><g><path d="M146 31h0"></path><path d="M174 31h0"></path><rect height=22 rx=10 ry=10 width=28 x=146 y=20></rect><text x=160 y=35>(</text></g><path d="M174 31h10"></path><path d="M 184 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
   2.217 +
   2.218 +		<dt id=〈at-keyword〉-diagram>〈at-keyword〉</dt>
   2.219 +		<dd><svg class=railroad-diagram height=62 width=225><g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 31h10"></path><g><path d="M50 31h0"></path><path d="M78 31h0"></path><rect height=22 rx=10 ry=10 width=28 x=50 y=20></rect><text x=64 y=35>@</text></g><path d="M78 31h10"></path><path d="M88 31h10"></path><g><path d="M98 31h0"></path><path d="M174 31h0"></path><rect height=22 width=76 x=98 y=20></rect><text x=136 y=35>〈ident〉</text></g><path d="M174 31h10"></path><path d="M 184 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
   2.220 +
   2.221 +		<dt id=〈hash〉-diagram>〈hash〉</dt>
   2.222  		<dd><svg class=railroad-diagram height=100 width=453><g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 31h10"></path><g><path d="M50 31h0"></path><path d="M78 31h0"></path><rect height=22 rx=10 ry=10 width=28 x=50 y=20></rect><text x=64 y=35>#</text></g><path d="M78 31h10"></path><path d="M88 31h10"></path><g><path d="M98 31h0"></path><path d="M402 31h0"></path><path d="M98 31h10"></path><g><path d="M108 31h0"></path><path d="M392 31h0"></path><path d="M108 31h20"></path><g><path d="M128 31h0"></path><path d="M372 31h0"></path><rect height=22 width=244 x=128 y=20></rect><text x=250 y=35>a-z A-Z 0-9 _ - or non-ASCII</text></g><path d="M372 31h20"></path><path d="M108 31a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10"></path><g><path d="M128 61h88"></path><path d="M284 61h88"></path><rect height=22 width=68 x=216 y=50></rect><text x=250 y=65>escape</text></g><path d="M372 61a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10"></path></g><path d="M392 31h10"></path><path d="M108 31a10 10 0 0 0 -10 10v29a10 10 0 0 0 10 10"></path><g><path d="M108 80h284"></path></g><path d="M392 80a10 10 0 0 0 10 -10v-29a10 10 0 0 0 -10 -10"></path></g><path d="M402 31h10"></path><path d="M 412 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
   2.223  
   2.224 -		<dt id="<a data-link-type='token'>〈string〉</a>-diagram"><a data-link-type=token href=#tokendef-string>〈string〉</a></dt>
   2.225 +		<dt id=〈string〉-diagram>〈string〉</dt>
   2.226  		<dd><svg class=railroad-diagram height=248 width=481><g transform="translate(.5 .5)"><path d="M 20 31 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><g><path d="M40 41h0"></path><path d="M440 41h0"></path><path d="M40 41h20"></path><g><path d="M60 41h0"></path><path d="M420 41h0"></path><path d="M60 41h10"></path><g><path d="M70 41h0"></path><path d="M98 41h0"></path><rect height=22 rx=10 ry=10 width=28 x=70 y=30></rect><text x=84 y=45>"</text></g><path d="M98 41h10"></path><g><path d="M108 41h0"></path><path d="M372 41h0"></path><path d="M108 41a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path><g><path d="M128 21h224"></path></g><path d="M352 21a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><path d="M108 41h20"></path><g><path d="M128 41h0"></path><path d="M352 41h0"></path><path d="M128 41h10"></path><g><path d="M138 41h0"></path><path d="M342 41h0"></path><path d="M138 41h20"></path><g><path d="M158 41h0"></path><path d="M322 41h0"></path><rect height=22 width=164 x=158 y=30></rect><text x=240 y=45>not " \ or newline</text></g><path d="M322 41h20"></path><path d="M138 41a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10"></path><g><path d="M158 71h48"></path><path d="M274 71h48"></path><rect height=22 width=68 x=206 y=60></rect><text x=240 y=75>escape</text></g><path d="M322 71a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10"></path><path d="M138 41a10 10 0 0 1 10 10v40a10 10 0 0 0 10 10"></path><g><path d="M158 101h10"></path><path d="M312 101h10"></path><path d="M168 101h10"></path><g><path d="M178 101h0"></path><path d="M206 101h0"></path><rect height=22 rx=10 ry=10 width=28 x=178 y=90></rect><text x=192 y=105>\</text></g><path d="M206 101h10"></path><path d="M216 101h10"></path><g><path d="M226 101h0"></path><path d="M302 101h0"></path><rect height=22 width=76 x=226 y=90></rect><text x=264 y=105>newline</text></g><path d="M302 101h10"></path></g><path d="M322 101a10 10 0 0 0 10 -10v-40a10 10 0 0 1 10 -10"></path></g><path d="M342 41h10"></path><path d="M138 41a10 10 0 0 0 -10 10v59a10 10 0 0 0 10 10"></path><g><path d="M138 120h204"></path></g><path d="M342 120a10 10 0 0 0 10 -10v-59a10 10 0 0 0 -10 -10"></path></g><path d="M352 41h20"></path></g><path d="M372 41h10"></path><g><path d="M382 41h0"></path><path d="M410 41h0"></path><rect height=22 rx=10 ry=10 width=28 x=382 y=30></rect><text x=396 y=45>"</text></g><path d="M410 41h10"></path></g><path d="M420 41h20"></path><path d="M40 41a10 10 0 0 1 10 10v88a10 10 0 0 0 10 10"></path><g><path d="M60 149h0"></path><path d="M420 149h0"></path><path d="M60 149h10"></path><g><path d="M70 149h0"></path><path d="M98 149h0"></path><rect height=22 rx=10 ry=10 width=28 x=70 y=138></rect><text x=84 y=153>'</text></g><path d="M98 149h10"></path><g><path d="M108 149h0"></path><path d="M372 149h0"></path><path d="M108 149a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path><g><path d="M128 129h224"></path></g><path d="M352 129a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><path d="M108 149h20"></path><g><path d="M128 149h0"></path><path d="M352 149h0"></path><path d="M128 149h10"></path><g><path d="M138 149h0"></path><path d="M342 149h0"></path><path d="M138 149h20"></path><g><path d="M158 149h0"></path><path d="M322 149h0"></path><rect height=22 width=164 x=158 y=138></rect><text x=240 y=153>not ' \ or newline</text></g><path d="M322 149h20"></path><path d="M138 149a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10"></path><g><path d="M158 179h48"></path><path d="M274 179h48"></path><rect height=22 width=68 x=206 y=168></rect><text x=240 y=183>escape</text></g><path d="M322 179a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10"></path><path d="M138 149a10 10 0 0 1 10 10v40a10 10 0 0 0 10 10"></path><g><path d="M158 209h10"></path><path d="M312 209h10"></path><path d="M168 209h10"></path><g><path d="M178 209h0"></path><path d="M206 209h0"></path><rect height=22 rx=10 ry=10 width=28 x=178 y=198></rect><text x=192 y=213>\</text></g><path d="M206 209h10"></path><path d="M216 209h10"></path><g><path d="M226 209h0"></path><path d="M302 209h0"></path><rect height=22 width=76 x=226 y=198></rect><text x=264 y=213>newline</text></g><path d="M302 209h10"></path></g><path d="M322 209a10 10 0 0 0 10 -10v-40a10 10 0 0 1 10 -10"></path></g><path d="M342 149h10"></path><path d="M138 149a10 10 0 0 0 -10 10v59a10 10 0 0 0 10 10"></path><g><path d="M138 228h204"></path></g><path d="M342 228a10 10 0 0 0 10 -10v-59a10 10 0 0 0 -10 -10"></path></g><path d="M352 149h20"></path></g><path d="M372 149h10"></path><g><path d="M382 149h0"></path><path d="M410 149h0"></path><rect height=22 rx=10 ry=10 width=28 x=382 y=138></rect><text x=396 y=153>'</text></g><path d="M410 149h10"></path></g><path d="M420 149a10 10 0 0 0 10 -10v-88a10 10 0 0 1 10 -10"></path></g><path d="M 440 41 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
   2.227  
   2.228 -		<dt id="<a data-link-type='token'>〈url〉</a>-diagram"><a data-link-type=token href=#tokendef-url>〈url〉</a></dt>
   2.229 -		<dd><svg class=railroad-diagram height=102 width=829><g transform="translate(.5 .5)"><path d="M 20 31 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 41h10"></path><g><path d="M50 41h0"></path><path d="M174 41h0"></path><rect height=22 width=124 x=50 y=30></rect><text x=112 y=45><a data-link-type=token>〈ident "url"〉</a></text></g><path d="M174 41h10"></path><path d="M184 41h10"></path><g><path d="M194 41h0"></path><path d="M222 41h0"></path><rect height=22 rx=10 ry=10 width=28 x=194 y=30></rect><text x=208 y=45>(</text></g><path d="M222 41h10"></path><g><path d="M232 41h0"></path><path d="M388 41h0"></path><path d="M232 41h20"></path><g><path d="M252 41h116"></path></g><path d="M368 41h20"></path><path d="M232 41a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><g><path d="M252 61h0"></path><path d="M368 61h0"></path><rect height=22 width=116 x=252 y=50></rect><text x=310 y=65><a data-link-type=token>〈whitespace〉</a></text></g><path d="M368 61a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path></g><g><path d="M388 41h0"></path><path d="M740 41h0"></path><path d="M388 41a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path><g><path d="M408 21h312"></path></g><path d="M720 21a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><path d="M388 41h20"></path><g><path d="M408 41h0"></path><path d="M720 41h0"></path><g><path d="M408 41h0"></path><path d="M564 41h0"></path><path d="M408 41h20"></path><g><path d="M428 41h0"></path><path d="M544 41h0"></path><rect height=22 width=116 x=428 y=30></rect><text x=486 y=45>url-unquoted</text></g><path d="M544 41h20"></path><path d="M408 41a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10"></path><g><path d="M428 71h24"></path><path d="M520 71h24"></path><rect height=22 width=68 x=452 y=60></rect><text x=486 y=75>STRING</text></g><path d="M544 71a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10"></path></g><g><path d="M564 41h0"></path><path d="M720 41h0"></path><path d="M564 41h20"></path><g><path d="M584 41h116"></path></g><path d="M700 41h20"></path><path d="M564 41a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><g><path d="M584 61h0"></path><path d="M700 61h0"></path><rect height=22 width=116 x=584 y=50></rect><text x=642 y=65><a data-link-type=token>〈whitespace〉</a></text></g><path d="M700 61a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path></g></g><path d="M720 41h20"></path></g><path d="M740 41h10"></path><g><path d="M750 41h0"></path><path d="M778 41h0"></path><rect height=22 rx=10 ry=10 width=28 x=750 y=30></rect><text x=764 y=45>)</text></g><path d="M778 41h10"></path><path d="M 788 41 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
   2.230 +		<dt id=〈url〉-diagram>〈url〉</dt>
   2.231 +		<dd><svg class=railroad-diagram height=102 width=829><g transform="translate(.5 .5)"><path d="M 20 31 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 41h10"></path><g><path d="M50 41h0"></path><path d="M174 41h0"></path><rect height=22 width=124 x=50 y=30></rect><text x=112 y=45>〈ident "url"〉</text></g><path d="M174 41h10"></path><path d="M184 41h10"></path><g><path d="M194 41h0"></path><path d="M222 41h0"></path><rect height=22 rx=10 ry=10 width=28 x=194 y=30></rect><text x=208 y=45>(</text></g><path d="M222 41h10"></path><g><path d="M232 41h0"></path><path d="M388 41h0"></path><path d="M232 41h20"></path><g><path d="M252 41h116"></path></g><path d="M368 41h20"></path><path d="M232 41a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><g><path d="M252 61h0"></path><path d="M368 61h0"></path><rect height=22 width=116 x=252 y=50></rect><text x=310 y=65>〈whitespace〉</text></g><path d="M368 61a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path></g><g><path d="M388 41h0"></path><path d="M740 41h0"></path><path d="M388 41a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path><g><path d="M408 21h312"></path></g><path d="M720 21a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><path d="M388 41h20"></path><g><path d="M408 41h0"></path><path d="M720 41h0"></path><g><path d="M408 41h0"></path><path d="M564 41h0"></path><path d="M408 41h20"></path><g><path d="M428 41h0"></path><path d="M544 41h0"></path><rect height=22 width=116 x=428 y=30></rect><text x=486 y=45>url-unquoted</text></g><path d="M544 41h20"></path><path d="M408 41a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10"></path><g><path d="M428 71h24"></path><path d="M520 71h24"></path><rect height=22 width=68 x=452 y=60></rect><text x=486 y=75>STRING</text></g><path d="M544 71a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10"></path></g><g><path d="M564 41h0"></path><path d="M720 41h0"></path><path d="M564 41h20"></path><g><path d="M584 41h116"></path></g><path d="M700 41h20"></path><path d="M564 41a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><g><path d="M584 61h0"></path><path d="M700 61h0"></path><rect height=22 width=116 x=584 y=50></rect><text x=642 y=65>〈whitespace〉</text></g><path d="M700 61a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path></g></g><path d="M720 41h20"></path></g><path d="M740 41h10"></path><g><path d="M750 41h0"></path><path d="M778 41h0"></path><rect height=22 rx=10 ry=10 width=28 x=750 y=30></rect><text x=764 y=45>)</text></g><path d="M778 41h10"></path><path d="M 788 41 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
   2.232  
   2.233  		<dt id=url-unquoted-diagram>url-unquoted</dt>
   2.234  		<dd><svg class=railroad-diagram height=100 width=509><g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 31h10"></path><g><path d="M50 31h0"></path><path d="M458 31h0"></path><path d="M50 31h10"></path><g><path d="M60 31h0"></path><path d="M448 31h0"></path><path d="M60 31h20"></path><g><path d="M80 31h0"></path><path d="M428 31h0"></path><rect height=22 width=348 x=80 y=20></rect><text x=254 y=35>not " ' ( ) \ whitespace or non-printable</text></g><path d="M428 31h20"></path><path d="M60 31a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10"></path><g><path d="M80 61h140"></path><path d="M288 61h140"></path><rect height=22 width=68 x=220 y=50></rect><text x=254 y=65>escape</text></g><path d="M428 61a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10"></path></g><path d="M448 31h10"></path><path d="M60 31a10 10 0 0 0 -10 10v29a10 10 0 0 0 10 10"></path><g><path d="M60 80h388"></path></g><path d="M448 80a10 10 0 0 0 10 -10v-29a10 10 0 0 0 -10 -10"></path></g><path d="M458 31h10"></path><path d="M 468 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
   2.235  
   2.236 -		<dt id="<a data-link-type='token'>〈number〉</a>-diagram"><a data-link-type=token href=#tokendef-number>〈number〉</a></dt>
   2.237 +		<dt id=〈number〉-diagram>〈number〉</dt>
   2.238  		<dd><svg class=railroad-diagram height=179 width=713><g transform="translate(.5 .5)"><path d="M 20 50 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><g><path d="M40 60h0"></path><path d="M108 60h0"></path><path d="M40 60a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path><g><path d="M60 40h0"></path><path d="M88 40h0"></path><rect height=22 rx=10 ry=10 width=28 x=60 y=29></rect><text x=74 y=44>+</text></g><path d="M88 40a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><path d="M40 60h20"></path><g><path d="M60 60h28"></path></g><path d="M88 60h20"></path><path d="M40 60a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><g><path d="M60 80h0"></path><path d="M88 80h0"></path><rect height=22 rx=10 ry=10 width=28 x=60 y=69></rect><text x=74 y=84>-</text></g><path d="M88 80a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path></g><g><path d="M108 60h0"></path><path d="M396 60h0"></path><path d="M108 60h20"></path><g><path d="M128 60h0"></path><path d="M376 60h0"></path><path d="M128 60h10"></path><g><path d="M138 60h0"></path><path d="M218 60h0"></path><path d="M138 60h10"></path><g><path d="M148 60h0"></path><path d="M208 60h0"></path><rect height=22 width=60 x=148 y=49></rect><text x=178 y=64>digit</text></g><path d="M208 60h10"></path><path d="M148 60a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10"></path><g><path d="M148 80h60"></path></g><path d="M208 80a10 10 0 0 0 10 -10v0a10 10 0 0 0 -10 -10"></path></g><path d="M218 60h10"></path><path d="M228 60h10"></path><g><path d="M238 60h0"></path><path d="M266 60h0"></path><rect height=22 rx=10 ry=10 width=28 x=238 y=49></rect><text x=252 y=64>.</text></g><path d="M266 60h10"></path><path d="M276 60h10"></path><g><path d="M286 60h0"></path><path d="M366 60h0"></path><path d="M286 60h10"></path><g><path d="M296 60h0"></path><path d="M356 60h0"></path><rect height=22 width=60 x=296 y=49></rect><text x=326 y=64>digit</text></g><path d="M356 60h10"></path><path d="M296 60a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10"></path><g><path d="M296 80h60"></path></g><path d="M356 80a10 10 0 0 0 10 -10v0a10 10 0 0 0 -10 -10"></path></g><path d="M366 60h10"></path></g><path d="M376 60h20"></path><path d="M108 60a10 10 0 0 1 10 10v19a10 10 0 0 0 10 10"></path><g><path d="M128 99h84"></path><path d="M292 99h84"></path><path d="M212 99h10"></path><g><path d="M222 99h0"></path><path d="M282 99h0"></path><rect height=22 width=60 x=222 y=88></rect><text x=252 y=103>digit</text></g><path d="M282 99h10"></path><path d="M222 99a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10"></path><g><path d="M222 119h60"></path></g><path d="M282 119a10 10 0 0 0 10 -10v0a10 10 0 0 0 -10 -10"></path></g><path d="M376 99a10 10 0 0 0 10 -10v-19a10 10 0 0 1 10 -10"></path><path d="M108 60a10 10 0 0 1 10 10v58a10 10 0 0 0 10 10"></path><g><path d="M128 138h50"></path><path d="M326 138h50"></path><path d="M178 138h10"></path><g><path d="M188 138h0"></path><path d="M216 138h0"></path><rect height=22 rx=10 ry=10 width=28 x=188 y=127></rect><text x=202 y=142>.</text></g><path d="M216 138h10"></path><path d="M226 138h10"></path><g><path d="M236 138h0"></path><path d="M316 138h0"></path><path d="M236 138h10"></path><g><path d="M246 138h0"></path><path d="M306 138h0"></path><rect height=22 width=60 x=246 y=127></rect><text x=276 y=142>digit</text></g><path d="M306 138h10"></path><path d="M246 138a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10"></path><g><path d="M246 158h60"></path></g><path d="M306 158a10 10 0 0 0 10 -10v0a10 10 0 0 0 -10 -10"></path></g><path d="M316 138h10"></path></g><path d="M376 138a10 10 0 0 0 10 -10v-58a10 10 0 0 1 10 -10"></path></g><g><path d="M396 60h0"></path><path d="M672 60h0"></path><path d="M396 60h20"></path><g><path d="M416 60h236"></path></g><path d="M652 60h20"></path><path d="M396 60a10 10 0 0 1 10 10v28a10 10 0 0 0 10 10"></path><g><path d="M416 108h0"></path><path d="M652 108h0"></path><g><path d="M416 108h0"></path><path d="M484 108h0"></path><path d="M416 108h20"></path><g><path d="M436 108h0"></path><path d="M464 108h0"></path><rect height=22 rx=10 ry=10 width=28 x=436 y=97></rect><text x=450 y=112>e</text></g><path d="M464 108h20"></path><path d="M416 108a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10"></path><g><path d="M436 138h0"></path><path d="M464 138h0"></path><rect height=22 rx=10 ry=10 width=28 x=436 y=127></rect><text x=450 y=142>E</text></g><path d="M464 138a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10"></path></g><g><path d="M484 108h0"></path><path d="M552 108h0"></path><path d="M484 108a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path><g><path d="M504 88h0"></path><path d="M532 88h0"></path><rect height=22 rx=10 ry=10 width=28 x=504 y=77></rect><text x=518 y=92>+</text></g><path d="M532 88a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><path d="M484 108h20"></path><g><path d="M504 108h28"></path></g><path d="M532 108h20"></path><path d="M484 108a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><g><path d="M504 128h0"></path><path d="M532 128h0"></path><rect height=22 rx=10 ry=10 width=28 x=504 y=117></rect><text x=518 y=132>-</text></g><path d="M532 128a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path></g><path d="M552 108h10"></path><g><path d="M562 108h0"></path><path d="M642 108h0"></path><path d="M562 108h10"></path><g><path d="M572 108h0"></path><path d="M632 108h0"></path><rect height=22 width=60 x=572 y=97></rect><text x=602 y=112>digit</text></g><path d="M632 108h10"></path><path d="M572 108a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10"></path><g><path d="M572 128h60"></path></g><path d="M632 128a10 10 0 0 0 10 -10v0a10 10 0 0 0 -10 -10"></path></g><path d="M642 108h10"></path></g><path d="M652 108a10 10 0 0 0 10 -10v-28a10 10 0 0 1 10 -10"></path></g><path d="M 672 60 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
   2.239  
   2.240 -		<dt id="<a data-link-type='token'>〈dimension〉</a>-diagram"><a data-link-type=token href=#tokendef-dimension>〈dimension〉</a></dt>
   2.241 -		<dd><svg class=railroad-diagram height=62 width=281><g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 31h10"></path><g><path d="M50 31h0"></path><path d="M134 31h0"></path><rect height=22 width=84 x=50 y=20></rect><text x=92 y=35><a data-link-type=token>〈number〉</a></text></g><path d="M134 31h10"></path><path d="M144 31h10"></path><g><path d="M154 31h0"></path><path d="M230 31h0"></path><rect height=22 width=76 x=154 y=20></rect><text x=192 y=35><a data-link-type=token>〈ident〉</a></text></g><path d="M230 31h10"></path><path d="M 240 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
   2.242 -
   2.243 -		<dt id="<a data-link-type='token'>〈percentage〉</a>-diagram"><a data-link-type=token href=#tokendef-percentage>〈percentage〉</a></dt>
   2.244 -		<dd><svg class=railroad-diagram height=62 width=233><g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 31h10"></path><g><path d="M50 31h0"></path><path d="M134 31h0"></path><rect height=22 width=84 x=50 y=20></rect><text x=92 y=35><a data-link-type=token>〈number〉</a></text></g><path d="M134 31h10"></path><path d="M144 31h10"></path><g><path d="M154 31h0"></path><path d="M182 31h0"></path><rect height=22 rx=10 ry=10 width=28 x=154 y=20></rect><text x=168 y=35>%</text></g><path d="M182 31h10"></path><path d="M 192 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
   2.245 -
   2.246 -		<dt id="<a data-link-type='token'>〈unicode-range〉</a>-diagram"><a data-link-type=token href=#tokendef-unicode-range>〈unicode-range〉</a></dt>
   2.247 +		<dt id=〈dimension〉-diagram>〈dimension〉</dt>
   2.248 +		<dd><svg class=railroad-diagram height=62 width=281><g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 31h10"></path><g><path d="M50 31h0"></path><path d="M134 31h0"></path><rect height=22 width=84 x=50 y=20></rect><text x=92 y=35>〈number〉</text></g><path d="M134 31h10"></path><path d="M144 31h10"></path><g><path d="M154 31h0"></path><path d="M230 31h0"></path><rect height=22 width=76 x=154 y=20></rect><text x=192 y=35>〈ident〉</text></g><path d="M230 31h10"></path><path d="M 240 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
   2.249 +
   2.250 +		<dt id=〈percentage〉-diagram>〈percentage〉</dt>
   2.251 +		<dd><svg class=railroad-diagram height=62 width=233><g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 31h10"></path><g><path d="M50 31h0"></path><path d="M134 31h0"></path><rect height=22 width=84 x=50 y=20></rect><text x=92 y=35>〈number〉</text></g><path d="M134 31h10"></path><path d="M144 31h10"></path><g><path d="M154 31h0"></path><path d="M182 31h0"></path><rect height=22 rx=10 ry=10 width=28 x=154 y=20></rect><text x=168 y=35>%</text></g><path d="M182 31h10"></path><path d="M 192 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
   2.252 +
   2.253 +		<dt id=〈unicode-range〉-diagram>〈unicode-range〉</dt>
   2.254  		<dd><svg class=railroad-diagram height=222 width=600><g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><g><path d="M40 31h0"></path><path d="M108 31h0"></path><path d="M40 31h20"></path><g><path d="M60 31h0"></path><path d="M88 31h0"></path><rect height=22 rx=10 ry=10 width=28 x=60 y=20></rect><text x=74 y=35>U</text></g><path d="M88 31h20"></path><path d="M40 31a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10"></path><g><path d="M60 61h0"></path><path d="M88 61h0"></path><rect height=22 rx=10 ry=10 width=28 x=60 y=50></rect><text x=74 y=65>u</text></g><path d="M88 61a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10"></path></g><path d="M108 31h10"></path><g><path d="M118 31h0"></path><path d="M146 31h0"></path><rect height=22 rx=10 ry=10 width=28 x=118 y=20></rect><text x=132 y=35>+</text></g><path d="M146 31h10"></path><g><path d="M156 31h0"></path><path d="M559 31h0"></path><path d="M156 31h20"></path><g><path d="M176 31h115.5"></path><path d="M423.5 31h115.5"></path><path d="M291.5 31h10"></path><g><path d="M301.5 31h0"></path><path d="M413.5 31h0"></path><path d="M301.5 31h10"></path><g><path d="M311.5 31h0"></path><path d="M403.5 31h0"></path><rect height=22 width=92 x=311.5 y=20></rect><text x=357.5 y=35>hex digit</text></g><path d="M403.5 31h10"></path><path d="M311.5 31a10 10 0 0 0 -10 10v10a10 10 0 0 0 10 10"></path><g><path d="M311.5 61h9.5"></path><path d="M394 61h9.5"></path><text class=comment x=357.5 y=66>1-6 times</text></g><path d="M403.5 61a10 10 0 0 0 10 -10v-10a10 10 0 0 0 -10 -10"></path></g><path d="M413.5 31h10"></path></g><path d="M539 31h20"></path><path d="M156 31a10 10 0 0 1 10 10v50a10 10 0 0 0 10 10"></path><g><path d="M176 101h0"></path><path d="M539 101h0"></path><g><path d="M176 101h0"></path><path d="M328 101h0"></path><path d="M176 101a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path><g><path d="M196 81h112"></path></g><path d="M308 81a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><path d="M176 101h20"></path><g><path d="M196 101h0"></path><path d="M308 101h0"></path><path d="M196 101h10"></path><g><path d="M206 101h0"></path><path d="M298 101h0"></path><rect height=22 width=92 x=206 y=90></rect><text x=252 y=105>hex digit</text></g><path d="M298 101h10"></path><path d="M206 101a10 10 0 0 0 -10 10v10a10 10 0 0 0 10 10"></path><g><path d="M206 131h9.5"></path><path d="M288.5 131h9.5"></path><text class=comment x=252 y=136>1-5 times</text></g><path d="M298 131a10 10 0 0 0 10 -10v-10a10 10 0 0 0 -10 -10"></path></g><path d="M308 101h20"></path></g><path d="M328 101h10"></path><g><path d="M338 101h0"></path><path d="M529 101h0"></path><path d="M338 101h10"></path><g><path d="M348 101h71.5"></path><path d="M447.5 101h71.5"></path><rect height=22 rx=10 ry=10 width=28 x=419.5 y=90></rect><text x=433.5 y=105>?</text></g><path d="M519 101h10"></path><path d="M348 101a10 10 0 0 0 -10 10v10a10 10 0 0 0 10 10"></path><g><path d="M348 131h0"></path><path d="M519 131h0"></path><text class=comment x=433.5 y=136>1 to (6 - digits) times</text></g><path d="M519 131a10 10 0 0 0 10 -10v-10a10 10 0 0 0 -10 -10"></path></g><path d="M529 101h10"></path></g><path d="M539 101a10 10 0 0 0 10 -10v-50a10 10 0 0 1 10 -10"></path><path d="M156 31a10 10 0 0 1 10 10v110a10 10 0 0 0 10 10"></path><g><path d="M176 161h25.5"></path><path d="M513.5 161h25.5"></path><path d="M201.5 161h10"></path><g><path d="M211.5 161h0"></path><path d="M323.5 161h0"></path><path d="M211.5 161h10"></path><g><path d="M221.5 161h0"></path><path d="M313.5 161h0"></path><rect height=22 width=92 x=221.5 y=150></rect><text x=267.5 y=165>hex digit</text></g><path d="M313.5 161h10"></path><path d="M221.5 161a10 10 0 0 0 -10 10v10a10 10 0 0 0 10 10"></path><g><path d="M221.5 191h9.5"></path><path d="M304 191h9.5"></path><text class=comment x=267.5 y=196>1-6 times</text></g><path d="M313.5 191a10 10 0 0 0 10 -10v-10a10 10 0 0 0 -10 -10"></path></g><path d="M323.5 161h10"></path><path d="M333.5 161h10"></path><g><path d="M343.5 161h0"></path><path d="M371.5 161h0"></path><rect height=22 rx=10 ry=10 width=28 x=343.5 y=150></rect><text x=357.5 y=165>-</text></g><path d="M371.5 161h10"></path><path d="M381.5 161h10"></path><g><path d="M391.5 161h0"></path><path d="M503.5 161h0"></path><path d="M391.5 161h10"></path><g><path d="M401.5 161h0"></path><path d="M493.5 161h0"></path><rect height=22 width=92 x=401.5 y=150></rect><text x=447.5 y=165>hex digit</text></g><path d="M493.5 161h10"></path><path d="M401.5 161a10 10 0 0 0 -10 10v10a10 10 0 0 0 10 10"></path><g><path d="M401.5 191h9.5"></path><path d="M484 191h9.5"></path><text class=comment x=447.5 y=196>1-6 times</text></g><path d="M493.5 191a10 10 0 0 0 10 -10v-10a10 10 0 0 0 -10 -10"></path></g><path d="M503.5 161h10"></path></g><path d="M539 161a10 10 0 0 0 10 -10v-110a10 10 0 0 1 10 -10"></path></g><path d="M 559 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
   2.255  
   2.256 -		<dt id="<a data-link-type='token'>〈include-match〉</a>-diagram"><a data-link-type=token href=#tokendef-include-match>〈include-match〉</a></dt>
   2.257 +		<dt id=〈include-match〉-diagram>〈include-match〉</dt>
   2.258  		<dd><svg class=railroad-diagram height=62 width=137><g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 31h10"></path><g><path d="M50 31h0"></path><path d="M86 31h0"></path><rect height=22 rx=10 ry=10 width=36 x=50 y=20></rect><text x=68 y=35>~=</text></g><path d="M86 31h10"></path><path d="M 96 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
   2.259  
   2.260 -		<dt id="<a data-link-type='token'>〈dash-match〉</a>-diagram"><a data-link-type=token href=#tokendef-dash-match>〈dash-match〉</a></dt>
   2.261 +		<dt id=〈dash-match〉-diagram>〈dash-match〉</dt>
   2.262  		<dd><svg class=railroad-diagram height=62 width=137><g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 31h10"></path><g><path d="M50 31h0"></path><path d="M86 31h0"></path><rect height=22 rx=10 ry=10 width=36 x=50 y=20></rect><text x=68 y=35>|=</text></g><path d="M86 31h10"></path><path d="M 96 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
   2.263  
   2.264 -		<dt id="<a data-link-type='token'>〈prefix-match〉</a>-diagram"><a data-link-type=token href=#tokendef-prefix-match>〈prefix-match〉</a></dt>
   2.265 +		<dt id=〈prefix-match〉-diagram>〈prefix-match〉</dt>
   2.266  		<dd><svg class=railroad-diagram height=62 width=137><g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 31h10"></path><g><path d="M50 31h0"></path><path d="M86 31h0"></path><rect height=22 rx=10 ry=10 width=36 x=50 y=20></rect><text x=68 y=35>^=</text></g><path d="M86 31h10"></path><path d="M 96 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
   2.267  
   2.268 -		<dt id="<a data-link-type='token'>〈suffix-match〉</a>-diagram"><a data-link-type=token href=#tokendef-suffix-match>〈suffix-match〉</a></dt>
   2.269 +		<dt id=〈suffix-match〉-diagram>〈suffix-match〉</dt>
   2.270  		<dd><svg class=railroad-diagram height=62 width=137><g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 31h10"></path><g><path d="M50 31h0"></path><path d="M86 31h0"></path><rect height=22 rx=10 ry=10 width=36 x=50 y=20></rect><text x=68 y=35>$=</text></g><path d="M86 31h10"></path><path d="M 96 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
   2.271  
   2.272 -		<dt id="<a data-link-type='token'>〈substring-match〉</a>-diagram"><a data-link-type=token href=#tokendef-substring-match>〈substring-match〉</a></dt>
   2.273 +		<dt id=〈substring-match〉-diagram>〈substring-match〉</dt>
   2.274  		<dd><svg class=railroad-diagram height=62 width=137><g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 31h10"></path><g><path d="M50 31h0"></path><path d="M86 31h0"></path><rect height=22 rx=10 ry=10 width=36 x=50 y=20></rect><text x=68 y=35>*=</text></g><path d="M86 31h10"></path><path d="M 96 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
   2.275  
   2.276 -		<dt id="<a data-link-type='token'>〈column〉</a>-diagram"><a data-link-type=token href=#tokendef-column>〈column〉</a></dt>
   2.277 +		<dt id=〈column〉-diagram>〈column〉</dt>
   2.278  		<dd><svg class=railroad-diagram height=62 width=137><g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 31h10"></path><g><path d="M50 31h0"></path><path d="M86 31h0"></path><rect height=22 rx=10 ry=10 width=36 x=50 y=20></rect><text x=68 y=35>||</text></g><path d="M86 31h10"></path><path d="M 96 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
   2.279  
   2.280 -		<dt id="<a data-link-type='token'>〈CDO〉</a>-diagram"><a data-link-type=token href=#tokendef-cdo>〈CDO〉</a></dt>
   2.281 +		<dt id=〈cdo〉-diagram>〈CDO〉</dt>
   2.282  		<dd><svg class=railroad-diagram height=62 width=153><g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 31h10"></path><g><path d="M50 31h0"></path><path d="M102 31h0"></path><rect height=22 rx=10 ry=10 width=52 x=50 y=20></rect><text x=76 y=35>&lt;!--</text></g><path d="M102 31h10"></path><path d="M 112 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
   2.283  
   2.284 -		<dt id="<a data-link-type='token'>〈CDC〉</a>-diagram"><a data-link-type=token href=#tokendef-cdc>〈CDC〉</a></dt>
   2.285 +		<dt id=〈cdc〉-diagram>〈CDC〉</dt>
   2.286  		<dd><svg class=railroad-diagram height=62 width=145><g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 31h10"></path><g><path d="M50 31h0"></path><path d="M94 31h0"></path><rect height=22 rx=10 ry=10 width=44 x=50 y=20></rect><text x=72 y=35>--&gt;</text></g><path d="M94 31h10"></path><path d="M 104 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
   2.287  
   2.288  	</dl>
   2.289  
   2.290 +	
   2.291 +
   2.292  <h3 data-level=4.2 id=definitions0><span class=secno>4.2 </span><span class=content>
   2.293  Definitions</span><a class=section-link href=#definitions0>§</a></h3>
   2.294  
   2.295  <p>	This section defines several terms used during the tokenization phase.
   2.296  
   2.297  	<dl>
   2.298 -		<dt><dfn data-dfn-type=dfn id=next-input-character>next input character</dfn>
   2.299 +		<dt><dfn data-dfn-type=dfn id=code-point>code point</dfn>
   2.300  		<dd>
   2.301 -			The first character in the input stream that has not yet been consumed.
   2.302 -
   2.303 -		<dt><dfn data-dfn-type=dfn id=current-input-character>current input character</dfn>
   2.304 +			A <a href=http://unicode.org/glossary/#code_point>Unicode code point</a>.
   2.305 +			Any value in the Unicode codespace; that is, the range of integers from 0 to (hexadecimal) 10FFFF.
   2.306 +
   2.307 +		<dt><dfn data-dfn-type=dfn id=next-input-code-point>next input code point</dfn>
   2.308  		<dd>
   2.309 -			The last character to have been consumed.
   2.310 -
   2.311 -		<dt><dfn data-dfn-type=dfn id=reconsume-the-current-input-character>reconsume the current input character</dfn>
   2.312 +			The first <a href=#code-point>code point</a> in the input stream that has not yet been consumed.
   2.313 +
   2.314 +		<dt><dfn data-dfn-type=dfn id=current-input-code-point>current input code point</dfn>
   2.315  		<dd>
   2.316 -			Push the <a href=#current-input-character>current input character</a> back onto the front of the input stream,
   2.317 -			so that the next time you are instructed to consume the next input character,
   2.318 -			it will instead reconsume the <a href=#current-input-character>current input character</a>.
   2.319 -
   2.320 -		<dt><dfn data-dfn-type=dfn id=eof-character>EOF character</dfn>
   2.321 +			The last <a href=#code-point>code point</a> to have been consumed.
   2.322 +
   2.323 +		<dt><dfn data-dfn-type=dfn id=reconsume-the-current-input-code-point>reconsume the current input code point</dfn>
   2.324  		<dd>
   2.325 -			A conceptual character representing the end of the input stream.
   2.326 +			Push the <a href=#current-input-code-point>current input code point</a> back onto the front of the input stream,
   2.327 +			so that the next time you are instructed to consume the <a href=#next-input-code-point>next input code point</a>,
   2.328 +			it will instead reconsume the <a href=#current-input-code-point>current input code point</a>.
   2.329 +
   2.330 +		<dt><dfn data-dfn-type=dfn id=eof-code-point>EOF code point</dfn>
   2.331 +		<dd>
   2.332 +			A conceptual <a href=#code-point>code point</a> representing the end of the input stream.
   2.333  			Whenever the input stream is empty,
   2.334 -			the <a href=#next-input-character>next input character</a> is always an EOF character.
   2.335 +			the <a href=#next-input-code-point>next input code point</a> is always an EOF code point.
   2.336  
   2.337  		<dt><dfn data-dfn-type=dfn id=digit>digit</dfn>
   2.338  		<dd>
   2.339 -			A character between U+0030 DIGIT ZERO (0) and U+0039 DIGIT NINE (9).
   2.340 +			A <a href=#code-point>code point</a> between U+0030 DIGIT ZERO (0) and U+0039 DIGIT NINE (9).
   2.341  
   2.342  		<dt><dfn data-dfn-type=dfn id=hex-digit>hex digit</dfn>
   2.343  		<dd>
   2.344  			A <a href=#digit>digit</a>,
   2.345 -			or a character between U+0041 LATIN CAPITAL LETTER A (A) and U+0046 LATIN CAPITAL LETTER F (F),
   2.346 -			or a character between U+0061 LATIN SMALL LETTER A (a) and U+0066 LATIN SMALL LETTER F (f).
   2.347 +			or a <a href=#code-point>code point</a> between U+0041 LATIN CAPITAL LETTER A (A) and U+0046 LATIN CAPITAL LETTER F (F),
   2.348 +			or a <a href=#code-point>code point</a> between U+0061 LATIN SMALL LETTER A (a) and U+0066 LATIN SMALL LETTER F (f).
   2.349  
   2.350  		<dt><dfn data-dfn-type=dfn id=uppercase-letter>uppercase letter</dfn>
   2.351  		<dd>
   2.352 -			A character between U+0041 LATIN CAPITAL LETTER A (A) and U+005A LATIN CAPITAL LETTER Z (Z).
   2.353 +			A <a href=#code-point>code point</a> between U+0041 LATIN CAPITAL LETTER A (A) and U+005A LATIN CAPITAL LETTER Z (Z).
   2.354  
   2.355  		<dt><dfn data-dfn-type=dfn id=lowercase-letter>lowercase letter</dfn>
   2.356  		<dd>
   2.357 -			A character between U+0061 LATIN SMALL LETTER A (a) and U+007A LATIN SMALL LETTER Z (z).
   2.358 +			A <a href=#code-point>code point</a> between U+0061 LATIN SMALL LETTER A (a) and U+007A LATIN SMALL LETTER Z (z).
   2.359  
   2.360  		<dt><dfn data-dfn-type=dfn id=letter>letter</dfn>
   2.361  		<dd>
   2.362  			An <a href=#uppercase-letter>uppercase letter</a>
   2.363  			or a <a href=#lowercase-letter>lowercase letter</a>.
   2.364  
   2.365 -		<dt><dfn data-dfn-type=dfn id=non-ascii-character>non-ASCII character</dfn>
   2.366 +		<dt><dfn data-dfn-type=dfn id=non-ascii-code-point>non-ASCII code point</dfn>
   2.367  		<dd>
   2.368 -			A character with a codepoint equal to or greater than U+0080 &lt;control&gt;.
   2.369 -
   2.370 -		<dt><dfn data-dfn-type=dfn id=name-start-character>name-start character</dfn>
   2.371 +			A <a href=#code-point>code point</a> with a value equal to or greater than U+0080 &lt;control&gt;.
   2.372 +
   2.373 +		<dt><dfn data-dfn-type=dfn id=name-start-code-point>name-start code point</dfn>
   2.374  		<dd>
   2.375  			A <a href=#letter>letter</a>,
   2.376 -			a <a href=#non-ascii-character>non-ASCII character</a>,
   2.377 +			a <a href=#non-ascii-code-point>non-ASCII code point</a>,
   2.378  			or U+005F LOW LINE (_).
   2.379  
   2.380 -		<dt><dfn data-dfn-type=dfn id=name-character>name character</dfn>
   2.381 +		<dt><dfn data-dfn-type=dfn id=name-code-point>name code point</dfn>
   2.382  		<dd>
   2.383 -			A <a href=#name-start-character>name-start character</a>,
   2.384 +			A <a href=#name-start-code-point>name-start code point</a>,
   2.385  			A <a href=#digit>digit</a>,
   2.386  			or U+002D HYPHEN-MINUS (-).
   2.387  
   2.388 -		<dt><dfn data-dfn-type=dfn id=non-printable-character>non-printable character</dfn>
   2.389 +		<dt><dfn data-dfn-type=dfn id=non-printable-code-point>non-printable code point</dfn>
   2.390  		<dd>
   2.391 -			A character between U+0000 NULL and U+0008 BACKSPACE,
   2.392 +			A <a href=#code-point>code point</a> between U+0000 NULL and U+0008 BACKSPACE,
   2.393  			or U+000B LINE TABULATION,
   2.394 -			or a character between U+000E SHIFT OUT and U+001F INFORMATION SEPARATOR ONE,
   2.395 +			or a <a href=#code-point>code point</a> between U+000E SHIFT OUT and U+001F INFORMATION SEPARATOR ONE,
   2.396  			or U+007F DELETE.
   2.397  
   2.398  		<dt><dfn data-dfn-type=dfn id=newline>newline</dfn>
   2.399 @@ -719,23 +727,23 @@
   2.400  		<dt><dfn data-dfn-type=dfn id=whitespace>whitespace</dfn>
   2.401  		<dd>A <a href=#newline>newline</a>, U+0009 CHARACTER TABULATION, or U+0020 SPACE.
   2.402  
   2.403 -		<dt><dfn data-dfn-type=dfn id=maximum-allowed-codepoint>maximum allowed codepoint</dfn>
   2.404 -		<dd>The greatest codepoint defined by Unicode.  This is currently U+10FFFF.
   2.405 +		<dt><dfn data-dfn-type=dfn id=maximum-allowed-code-point>maximum allowed code point</dfn>
   2.406 +		<dd>The greatest <a href=#code-point>code point</a> defined by Unicode.  This is currently U+10FFFF.
   2.407  
   2.408  	</dl>
   2.409  
   2.410  <h3 data-level=4.3 id=tokenizer-algorithms><span class=secno>4.3 </span><span class=content>
   2.411  Tokenizer Algorithms</span><a class=section-link href=#tokenizer-algorithms>§</a></h3>
   2.412  
   2.413 -<p>	The algorithms defined in this section transform a stream of characters into a stream of tokens.
   2.414 +<p>	The algorithms defined in this section transform a stream of <a href=#code-point>code points</a> into a stream of tokens.
   2.415  
   2.416  <h4 data-level=4.3.1 id=consume-a-token><span class=secno>4.3.1 </span><span class=content>
   2.417  <dfn data-dfn-type=dfn id=consume-a-token0>Consume a token</dfn></span><a class=section-link href=#consume-a-token>§</a></h4>
   2.418  
   2.419 -<p>	This section describes how to <a href=#consume-a-token0>consume a token</a> from a stream of characters.
   2.420 +<p>	This section describes how to <a href=#consume-a-token0>consume a token</a> from a stream of <a href=#code-point>code points</a>.
   2.421  	It will return a single token of any type.
   2.422  
   2.423 -<p>	Consume the <a href=#next-input-character>next input character</a>.
   2.424 +<p>	Consume the <a href=#next-input-code-point>next input code point</a>.
   2.425  
   2.426  	<dl>
   2.427  		<dt><a href=#whitespace>whitespace</a>
   2.428 @@ -745,14 +753,14 @@
   2.429  
   2.430  		<dt>U+0022 QUOTATION MARK (")
   2.431  		<dd>
   2.432 -			<a href=#consume-a-string-token0>Consume a string token</a> with the ending character U+0022 QUOTATION MARK (")
   2.433 +			<a href=#consume-a-string-token0>Consume a string token</a> with the ending <a href=#code-point>code point</a> U+0022 QUOTATION MARK (")
   2.434  			and return it.
   2.435  
   2.436  		<dt>U+0023 NUMBER SIGN (#)
   2.437  		<dd>
   2.438 -			If the <a href=#next-input-character>next input character</a> is a <a href=#name-character>name character</a>
   2.439 -			or the <a href=#next-input-character title="next input character">next two input characters</a>
   2.440 -			<a href=#check-if-two-characters-are-a-valid-escape0>are a valid escape</a>,
   2.441 +			If the <a href=#next-input-code-point>next input code point</a> is a <a href=#name-code-point>name code point</a>
   2.442 +			or the <a href=#next-input-code-point title="next input code point">next two input code points</a>
   2.443 +			<a href=#check-if-two-code-points-are-a-valid-escape0>are a valid escape</a>,
   2.444  			then:
   2.445  
   2.446  			<ol>
   2.447 @@ -760,7 +768,7 @@
   2.448  					Create a <a data-link-type=token href=#tokendef-hash>〈hash〉</a>.
   2.449  
   2.450  				<li>
   2.451 -					If the <a href=#next-input-character title="next input character">next 3 input characters</a> <a href=#check-if-three-characters-would-start-an-identifier0>would start an identifier</a>,
   2.452 +					If the <a href=#next-input-code-point title="next input code point">next 3 input code points</a> <a href=#check-if-three-code-points-would-start-an-identifier0>would start an identifier</a>,
   2.453  					set the <a data-link-type=token href=#tokendef-hash>〈hash〉</a>’s type flag to "id".
   2.454  
   2.455  				<li>
   2.456 @@ -773,22 +781,22 @@
   2.457  
   2.458  <p>			Otherwise,
   2.459  			return a <a data-link-type=token href=#tokendef-delim>〈delim〉</a>
   2.460 -			with its value set to the <a href=#current-input-character>current input character</a>.
   2.461 +			with its value set to the <a href=#current-input-code-point>current input code point</a>.
   2.462  
   2.463  		<dt>U+0024 DOLLAR SIGN ($)
   2.464  		<dd>
   2.465 -			If the <a href=#next-input-character>next input character</a> is
   2.466 +			If the <a href=#next-input-code-point>next input code point</a> is
   2.467  			U+003D EQUALS SIGN (=),
   2.468  			consume it
   2.469  			and return a <a data-link-type=token href=#tokendef-suffix-match>〈suffix-match〉</a>.
   2.470  
   2.471  <p>			Otherwise,
   2.472  			emit a <a data-link-type=token href=#tokendef-delim>〈delim〉</a>
   2.473 -			with its value set to the <a href=#current-input-character>current input character</a>.
   2.474 +			with its value set to the <a href=#current-input-code-point>current input code point</a>.
   2.475  
   2.476  		<dt>U+0027 APOSTROPHE (')
   2.477  		<dd>
   2.478 -			<a href=#consume-a-string-token0>Consume a string token</a> with the ending character U+0027 APOSTROPHE (')
   2.479 +			<a href=#consume-a-string-token0>Consume a string token</a> with the ending <a href=#code-point>code point</a> U+0027 APOSTROPHE (')
   2.480  			and return it.
   2.481  
   2.482  		<dt>U+0028 LEFT PARENTHESIS (()
   2.483 @@ -801,25 +809,25 @@
   2.484  
   2.485  		<dt>U+002A ASTERISK (*)
   2.486  		<dd>
   2.487 -			If the <a href=#next-input-character>next input character</a> is
   2.488 +			If the <a href=#next-input-code-point>next input code point</a> is
   2.489  			U+003D EQUALS SIGN (=),
   2.490  			consume it
   2.491  			and return a <a data-link-type=token href=#tokendef-substring-match>〈substring-match〉</a>.
   2.492  
   2.493  <p>			Otherwise,
   2.494  			return a <a data-link-type=token href=#tokendef-delim>〈delim〉</a>
   2.495 -			with its value set to the <a href=#current-input-character>current input character</a>.
   2.496 +			with its value set to the <a href=#current-input-code-point>current input code point</a>.
   2.497  
   2.498  		<dt>U+002B PLUS SIGN (+)
   2.499  		<dd>
   2.500 -			If the input stream <a href=#check-if-three-characters-would-start-a-number0>starts with a number</a>,
   2.501 -			<a href=#reconsume-the-current-input-character>reconsume the current input character</a>,
   2.502 +			If the input stream <a href=#check-if-three-code-points-would-start-a-number0>starts with a number</a>,
   2.503 +			<a href=#reconsume-the-current-input-code-point>reconsume the current input code point</a>,
   2.504  			<a href=#consume-a-numeric-token0>consume a numeric token</a>
   2.505  			and return it.
   2.506  
   2.507  <p>			Otherwise,
   2.508  			return a <a data-link-type=token href=#tokendef-delim>〈delim〉</a>
   2.509 -			with its value set to the <a href=#current-input-character>current input character</a>.
   2.510 +			with its value set to the <a href=#current-input-code-point>current input code point</a>.
   2.511  
   2.512  		<dt>U+002C COMMA (,)
   2.513  		<dd>
   2.514 @@ -827,19 +835,19 @@
   2.515  
   2.516  		<dt>U+002D HYPHEN-MINUS (-)
   2.517  		<dd>
   2.518 -			If the input stream <a href=#check-if-three-characters-would-start-a-number0>starts with a number</a>,
   2.519 -			<a href=#reconsume-the-current-input-character>reconsume the current input character</a>,
   2.520 +			If the input stream <a href=#check-if-three-code-points-would-start-a-number0>starts with a number</a>,
   2.521 +			<a href=#reconsume-the-current-input-code-point>reconsume the current input code point</a>,
   2.522  			<a href=#consume-a-numeric-token0>consume a numeric token</a>,
   2.523  			and return it.
   2.524  
   2.525  <p>			Otherwise,
   2.526 -			if the input stream <a href=#check-if-three-characters-would-start-an-identifier0>starts with an identifier</a>,
   2.527 -			<a href=#reconsume-the-current-input-character>reconsume the current input character</a>,
   2.528 +			if the input stream <a href=#check-if-three-code-points-would-start-an-identifier0>starts with an identifier</a>,
   2.529 +			<a href=#reconsume-the-current-input-code-point>reconsume the current input code point</a>,
   2.530  			<a href=#consume-an-ident-like-token0>consume an ident-like token</a>,
   2.531  			and return it.
   2.532  
   2.533  <p>			Otherwise,
   2.534 -			if the <a href=#next-input-character title="next input character">next 2 input characters</a> are
   2.535 +			if the <a href=#next-input-code-point title="next input code point">next 2 input code points</a> are
   2.536  			U+002D HYPHEN-MINUS
   2.537  			U+003E GREATER-THAN SIGN
   2.538  			(-&gt;),
   2.539 @@ -848,32 +856,32 @@
   2.540  
   2.541  <p>			Otherwise,
   2.542  			return a <a data-link-type=token href=#tokendef-delim>〈delim〉</a>
   2.543 -			with its value set to the <a href=#current-input-character>current input character</a>.
   2.544 +			with its value set to the <a href=#current-input-code-point>current input code point</a>.
   2.545  
   2.546  		<dt>U+002E FULL STOP (.)
   2.547  		<dd>
   2.548 -			If the input stream <a href=#check-if-three-characters-would-start-a-number0>starts with a number</a>,
   2.549 -			<a href=#reconsume-the-current-input-character>reconsume the current input character</a>,
   2.550 +			If the input stream <a href=#check-if-three-code-points-would-start-a-number0>starts with a number</a>,
   2.551 +			<a href=#reconsume-the-current-input-code-point>reconsume the current input code point</a>,
   2.552  			<a href=#consume-a-numeric-token0>consume a numeric token</a>,
   2.553  			and return it.
   2.554  
   2.555  <p>			Otherwise,
   2.556  			return a <a data-link-type=token href=#tokendef-delim>〈delim〉</a>
   2.557 -			with its value set to the <a href=#current-input-character>current input character</a>.
   2.558 +			with its value set to the <a href=#current-input-code-point>current input code point</a>.
   2.559  
   2.560  		<dt>U+002F SOLIDUS (/)
   2.561  		<dd>
   2.562 -			If the <a href=#next-input-character>next input character</a> is U+002A ASTERISK (*),
   2.563 +			If the <a href=#next-input-code-point>next input code point</a> is U+002A ASTERISK (*),
   2.564  			consume it
   2.565 -			and all following characters up to and including
   2.566 +			and all following <a href=#code-point>code points</a> up to and including
   2.567  			the first U+002A ASTERISK (*) followed by a U+002F SOLIDUS (/),
   2.568 -			or up to an EOF character.
   2.569 +			or up to an EOF code point.
   2.570  			Then <a href=#consume-a-token0>consume a token</a>
   2.571  			and return it.
   2.572  
   2.573  <p>			Otherwise,
   2.574  			return a <a data-link-type=token href=#tokendef-delim>〈delim〉</a>
   2.575 -			with its value set to the <a href=#current-input-character>current input character</a>.
   2.576 +			with its value set to the <a href=#current-input-code-point>current input code point</a>.
   2.577  
   2.578  		<dt>U+003A COLON (:)
   2.579  		<dd>
   2.580 @@ -885,7 +893,7 @@
   2.581  
   2.582  		<dt>U+003C LESS-THAN SIGN (&lt;)
   2.583  		<dd>
   2.584 -			If the <a href=#next-input-character title="next input character">next 3 input characters</a> are
   2.585 +			If the <a href=#next-input-code-point title="next input code point">next 3 input code points</a> are
   2.586  			U+0021 EXCLAMATION MARK
   2.587  			U+002D HYPHEN-MINUS
   2.588  			U+002D HYPHEN-MINUS
   2.589 @@ -895,19 +903,19 @@
   2.590  
   2.591  <p>			Otherwise,
   2.592  			return a <a data-link-type=token href=#tokendef-delim>〈delim〉</a>
   2.593 -			with its value set to the <a href=#current-input-character>current input character</a>.
   2.594 +			with its value set to the <a href=#current-input-code-point>current input code point</a>.
   2.595  
   2.596  		<dt>U+0040 COMMERCIAL AT (@)
   2.597  		<dd>
   2.598 -			If the <a href=#next-input-character title="next input character">next 3 input characters</a>
   2.599 -			<a href=#check-if-three-characters-would-start-an-identifier0>would start an identifier</a>,
   2.600 +			If the <a href=#next-input-code-point title="next input code point">next 3 input code points</a>
   2.601 +			<a href=#check-if-three-code-points-would-start-an-identifier0>would start an identifier</a>,
   2.602  			<a href=#consume-a-name0>consume a name</a>,
   2.603  			create an <a data-link-type=token href=#tokendef-at-keyword>〈at-keyword〉</a> with its value set to the returned value,
   2.604  			and return it.
   2.605  
   2.606  <p>			Otherwise,
   2.607  			return a <a data-link-type=token href=#tokendef-delim>〈delim〉</a>
   2.608 -			with its value set to the <a href=#current-input-character>current input character</a>.
   2.609 +			with its value set to the <a href=#current-input-code-point>current input code point</a>.
   2.610  
   2.611  		<dt>U+005B LEFT SQUARE BRACKET ([)
   2.612  		<dd>
   2.613 @@ -915,15 +923,15 @@
   2.614  
   2.615  		<dt>U+005C REVERSE SOLIDUS (\)
   2.616  		<dd>
   2.617 -			If the input stream <a href=#check-if-two-characters-are-a-valid-escape0>starts with a valid escape</a>,
   2.618 -			<a href=#reconsume-the-current-input-character>reconsume the current input character</a>,
   2.619 +			If the input stream <a href=#check-if-two-code-points-are-a-valid-escape0>starts with a valid escape</a>,
   2.620 +			<a href=#reconsume-the-current-input-code-point>reconsume the current input code point</a>,
   2.621  			<a href=#consume-an-ident-like-token0>consume an ident-like token</a>,
   2.622  			and return it.
   2.623  
   2.624  <p>			Otherwise,
   2.625  			this is a <a href=#parse-errors>parse error</a>.
   2.626  			Return a <a data-link-type=token href=#tokendef-delim>〈delim〉</a>
   2.627 -			with its value set to the <a href=#current-input-character>current input character</a>.
   2.628 +			with its value set to the <a href=#current-input-code-point>current input code point</a>.
   2.629  
   2.630  		<dt>U+005D RIGHT SQUARE BRACKET (])
   2.631  		<dd>
   2.632 @@ -931,14 +939,14 @@
   2.633  
   2.634  		<dt>U+005E CIRCUMFLEX ACCENT (^)
   2.635  		<dd>
   2.636 -			If the <a href=#next-input-character>next input character</a> is
   2.637 +			If the <a href=#next-input-code-point>next input code point</a> is
   2.638  			U+003D EQUALS SIGN (=),
   2.639  			consume it
   2.640  			and return a <a data-link-type=token href=#tokendef-prefix-match>〈prefix-match〉</a>.
   2.641  
   2.642  <p>			Otherwise,
   2.643  			return a <a data-link-type=token href=#tokendef-delim>〈delim〉</a>
   2.644 -			with its value set to the <a href=#current-input-character>current input character</a>.
   2.645 +			with its value set to the <a href=#current-input-code-point>current input code point</a>.
   2.646  
   2.647  		<dt>U+007B LEFT CURLY BRACKET ({)
   2.648  		<dd>
   2.649 @@ -956,53 +964,53 @@
   2.650  		<dt>U+0055 LATIN CAPITAL LETTER U (U)
   2.651  		<dt>U+0075 LATIN SMALL LETTER U (u)
   2.652  		<dd>
   2.653 -			If the <a href=#next-input-character title="next input character">next 2 input character</a> are
   2.654 +			If the <a href=#next-input-code-point title="next input code point">next 2 input code points</a> are
   2.655  			U+002B PLUS SIGN (+)
   2.656  			followed by a <a href=#hex-digit>hex digit</a>
   2.657  			or U+003F QUESTION MARK (?),
   2.658 -			consume the <a href=#next-input-character>next input character</a>.
   2.659 +			consume the <a href=#next-input-code-point>next input code point</a>.
   2.660  			<span class=note>Note: don't consume both of them.</span>
   2.661  			<a href=#consume-a-unicode-range-token0>Consume a unicode-range token</a>
   2.662  			and return it.
   2.663  
   2.664  <p>			Otherwise,
   2.665 -			<a href=#reconsume-the-current-input-character>reconsume the current input character</a>,
   2.666 +			<a href=#reconsume-the-current-input-code-point>reconsume the current input code point</a>,
   2.667  			<a href=#consume-an-ident-like-token0>consume an ident-like token</a>,
   2.668  			and return it.
   2.669  
   2.670 -		<dt><a href=#name-start-character>name-start character</a>
   2.671 +		<dt><a href=#name-start-code-point>name-start code point</a>
   2.672  		<dd>
   2.673 -			<a href=#reconsume-the-current-input-character>Reconsume the current input character</a>,
   2.674 +			<a href=#reconsume-the-current-input-code-point>Reconsume the current input code point</a>,
   2.675  			<a href=#consume-an-ident-like-token0>consume an ident-like token</a>,
   2.676  			and return it.
   2.677  
   2.678  		<dt>U+007C VERTICAL LINE (|)
   2.679  		<dd>
   2.680 -			If the <a href=#next-input-character>next input character</a> is
   2.681 +			If the <a href=#next-input-code-point>next input code point</a> is
   2.682  			U+003D EQUALS SIGN (=),
   2.683  			consume it
   2.684  			and return a <a data-link-type=token href=#tokendef-dash-match>〈dash-match〉</a>.
   2.685  
   2.686  <p>			Otherwise,
   2.687 -			if the <a href=#next-input-character>next input character</a> is
   2.688 +			if the <a href=#next-input-code-point>next input code point</a> is
   2.689  			U+0073 VERTICAL LINE (|),
   2.690  			consume it
   2.691  			and return a <a data-link-type=token href=#tokendef-column>〈column〉</a>.
   2.692  
   2.693  <p>			Otherwise,
   2.694  			return a <a data-link-type=token href=#tokendef-delim>〈delim〉</a>
   2.695 -			with its value set to the <a href=#current-input-character>current input character</a>.
   2.696 +			with its value set to the <a href=#current-input-code-point>current input code point</a>.
   2.697  
   2.698  		<dt>U+007E TILDE (~)
   2.699  		<dd>
   2.700 -			If the <a href=#next-input-character>next input character</a> is
   2.701 +			If the <a href=#next-input-code-point>next input code point</a> is
   2.702  			U+003D EQUALS SIGN (=),
   2.703  			consume it
   2.704  			and return an <a data-link-type=token href=#tokendef-include-match>〈include-match〉</a>.
   2.705  
   2.706  <p>			Otherwise,
   2.707  			return a <a data-link-type=token href=#tokendef-delim>〈delim〉</a>
   2.708 -			with its value set to the <a href=#current-input-character>current input character</a>.
   2.709 +			with its value set to the <a href=#current-input-code-point>current input code point</a>.
   2.710  
   2.711  		<dt>EOF
   2.712  		<dd>
   2.713 @@ -1011,7 +1019,7 @@
   2.714  		<dt>anything else
   2.715  		<dd>
   2.716  			Return a <a data-link-type=token href=#tokendef-delim>〈delim〉</a>
   2.717 -			with its value set to the <a href=#current-input-character>current input character</a>.
   2.718 +			with its value set to the <a href=#current-input-code-point>current input code point</a>.
   2.719  	</dl>
   2.720  
   2.721  
   2.722 @@ -1020,12 +1028,12 @@
   2.723  <h4 data-level=4.3.2 id=consume-a-numeric-token><span class=secno>4.3.2 </span><span class=content>
   2.724  <dfn data-dfn-type=dfn id=consume-a-numeric-token0>Consume a numeric token</dfn></span><a class=section-link href=#consume-a-numeric-token>§</a></h4>
   2.725  
   2.726 -<p>	This section describes how to <a href=#consume-a-numeric-token0>consume a numeric token</a> from a stream of characters.
   2.727 +<p>	This section describes how to <a href=#consume-a-numeric-token0>consume a numeric token</a> from a stream of <a href=#code-point>code points</a>.
   2.728  	It returns either a <a data-link-type=token href=#tokendef-number>〈number〉</a>, <a data-link-type=token href=#tokendef-percentage>〈percentage〉</a>, or <a data-link-type=token href=#tokendef-dimension>〈dimension〉</a>.
   2.729  
   2.730  <p>	<a href=#consume-a-number0>Consume a number</a>.
   2.731  
   2.732 -<p>	If the <a href=#next-input-character title="next input character">next 3 input characters</a> <a href=#check-if-three-characters-would-start-an-identifier0>would start an identifier</a>,
   2.733 +<p>	If the <a href=#next-input-code-point title="next input code point">next 3 input code points</a> <a href=#check-if-three-code-points-would-start-an-identifier0>would start an identifier</a>,
   2.734  	then:
   2.735  
   2.736  	<ol>
   2.737 @@ -1039,7 +1047,7 @@
   2.738  	</ol>
   2.739  
   2.740  <p>	Otherwise,
   2.741 -	if the <a href=#next-input-character>next input character</a> is U+0025 PERCENTAGE SIGN (%),
   2.742 +	if the <a href=#next-input-code-point>next input code point</a> is U+0025 PERCENTAGE SIGN (%),
   2.743  	consume it.
   2.744  	Create a <a data-link-type=token href=#tokendef-percentage>〈percentage〉</a> with the same representation and value as the returned number,
   2.745  	and return it.
   2.746 @@ -1052,19 +1060,19 @@
   2.747  <h4 data-level=4.3.3 id=consume-an-ident-like-token><span class=secno>4.3.3 </span><span class=content>
   2.748  <dfn data-dfn-type=dfn id=consume-an-ident-like-token0>Consume an ident-like token</dfn></span><a class=section-link href=#consume-an-ident-like-token>§</a></h4>
   2.749  
   2.750 -<p>	This section describes how to <a href=#consume-an-ident-like-token0>consume an ident-like token</a> from a stream of characters.
   2.751 +<p>	This section describes how to <a href=#consume-an-ident-like-token0>consume an ident-like token</a> from a stream of <a href=#code-point>code points</a>.
   2.752  	It returns an <a data-link-type=token href=#tokendef-ident>〈ident〉</a>, <a data-link-type=token href=#tokendef-function>〈function〉</a>, <a data-link-type=token href=#tokendef-url>〈url〉</a>, or <a data-link-type=token href=#tokendef-bad-url>〈bad-url〉</a>.
   2.753  
   2.754  <p>	<a href=#consume-a-name0>Consume a name</a>.
   2.755  
   2.756  <p>	If the returned string's value is an <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for "url",
   2.757 -	and the <a href=#next-input-character>next input character</a> is U+0028 LEFT PARENTHESIS ((),
   2.758 +	and the <a href=#next-input-code-point>next input code point</a> is U+0028 LEFT PARENTHESIS ((),
   2.759  	consume it.
   2.760  	<a href=#consume-a-url-token0>Consume a url token</a>,
   2.761  	and return it.
   2.762  
   2.763  <p>	Otherwise,
   2.764 -	if the <a href=#next-input-character>next input character</a> is U+0028 LEFT PARENTHESIS ((),
   2.765 +	if the <a href=#next-input-code-point>next input code point</a> is U+0028 LEFT PARENTHESIS ((),
   2.766  	consume it.
   2.767  	Create a <a data-link-type=token href=#tokendef-function>〈function〉</a> token
   2.768  	with its value set to the returned string
   2.769 @@ -1079,18 +1087,18 @@
   2.770  <h4 data-level=4.3.4 id=consume-a-string-token><span class=secno>4.3.4 </span><span class=content>
   2.771  <dfn data-dfn-type=dfn id=consume-a-string-token0>Consume a string token</dfn></span><a class=section-link href=#consume-a-string-token>§</a></h4>
   2.772  
   2.773 -<p>	This section describes how to <a href=#consume-a-string-token0>consume a string token</a> from a stream of characters.
   2.774 +<p>	This section describes how to <a href=#consume-a-string-token0>consume a string token</a> from a stream of <a href=#code-point>code points</a>.
   2.775  	It returns either a <a data-link-type=token href=#tokendef-string>〈string〉</a> or <a data-link-type=token href=#tokendef-bad-string>〈bad-string〉</a>.
   2.776  
   2.777 -<p>	This algorithm must be called with an <var>ending character</var>,
   2.778 -	which denotes the character that ends the string.
   2.779 +<p>	This algorithm must be called with an <var>ending code point</var>,
   2.780 +	which denotes the <a href=#code-point>code point</a> that ends the string.
   2.781  
   2.782  <p>	Initially create a <a data-link-type=token href=#tokendef-string>〈string〉</a> with its value set to the empty string.
   2.783  
   2.784 -<p>	Repeatedly consume the <a href=#next-input-character>next input character</a> from the stream:
   2.785 +<p>	Repeatedly consume the <a href=#next-input-code-point>next input code point</a> from the stream:
   2.786  
   2.787  	<dl>
   2.788 -		<dt><var>ending character</var>
   2.789 +		<dt><var>ending code point</var>
   2.790  		<dt>EOF
   2.791  		<dd>
   2.792  			Return the <a data-link-type=token href=#tokendef-string>〈string〉</a>.
   2.793 @@ -1098,33 +1106,33 @@
   2.794  		<dt><a href=#newline>newline</a>
   2.795  		<dd>
   2.796  			This is a <a href=#parse-errors>parse error</a>.
   2.797 -			<a href=#reconsume-the-current-input-character>Reconsume the current input character</a>,
   2.798 +			<a href=#reconsume-the-current-input-code-point>Reconsume the current input code point</a>,
   2.799  			create a <a data-link-type=token href=#tokendef-bad-string>〈bad-string〉</a>, and return it.
   2.800  
   2.801  		<dt>U+005C REVERSE SOLIDUS (\)
   2.802  		<dd>
   2.803 -			If the <a href=#next-input-character>next input character</a> is EOF,
   2.804 +			If the <a href=#next-input-code-point>next input code point</a> is EOF,
   2.805  			do nothing.
   2.806  
   2.807  <p>			Otherwise,
   2.808 -			if the <a href=#next-input-character>next input character</a> is a newline,
   2.809 +			if the <a href=#next-input-code-point>next input code point</a> is a newline,
   2.810  			consume it.
   2.811  
   2.812  <p>			Otherwise,
   2.813 -			if the stream <a href=#check-if-two-characters-are-a-valid-escape0>starts with a valid escape</a>,
   2.814 -			<a href=#consume-an-escaped-character0>consume an escaped character</a>
   2.815 -			and append the returned character to the <a data-link-type=token href=#tokendef-string>〈string〉</a>’s value.
   2.816 +			if the stream <a href=#check-if-two-code-points-are-a-valid-escape0>starts with a valid escape</a>,
   2.817 +			<a href=#consume-an-escaped-code-point0>consume an escaped code point</a>
   2.818 +			and append the returned <a href=#code-point>code point</a> to the <a data-link-type=token href=#tokendef-string>〈string〉</a>’s value.
   2.819  
   2.820  		<dt>anything else
   2.821  		<dd>
   2.822 -			Append the <a href=#current-input-character>current input character</a> to the <a data-link-type=token href=#tokendef-string>〈string〉</a>’s value.
   2.823 +			Append the <a href=#current-input-code-point>current input code point</a> to the <a data-link-type=token href=#tokendef-string>〈string〉</a>’s value.
   2.824  	</dl>
   2.825  
   2.826  
   2.827  <h4 data-level=4.3.5 id=consume-a-url-token><span class=secno>4.3.5 </span><span class=content>
   2.828  <dfn data-dfn-type=dfn id=consume-a-url-token0>Consume a url token</dfn></span><a class=section-link href=#consume-a-url-token>§</a></h4>
   2.829  
   2.830 -<p>	This section describes how to <a href=#consume-a-url-token0>consume a url token</a> from a stream of characters.
   2.831 +<p>	This section describes how to <a href=#consume-a-url-token0>consume a url token</a> from a stream of <a href=#code-point>code points</a>.
   2.832  	It returns either a <a data-link-type=token href=#tokendef-url>〈url〉</a> or a <a data-link-type=token href=#tokendef-bad-url>〈bad-url〉</a>.
   2.833  
   2.834  <p class=note>	Note: This algorithm assumes that the initial "url(" has already been consumed.
   2.835 @@ -1139,16 +1147,16 @@
   2.836  			Consume as much <a href=#whitespace>whitespace</a> as possible.
   2.837  
   2.838  		<li>
   2.839 -			If the <a href=#next-input-character>next input character</a> is EOF,
   2.840 +			If the <a href=#next-input-code-point>next input code point</a> is EOF,
   2.841  			return the <a data-link-type=token href=#tokendef-url>〈url〉</a>.
   2.842  
   2.843  		<li>
   2.844 -			If the <a href=#next-input-character>next input character</a> is a U+0022 QUOTATION MARK (") or U+0027 APOSTROPHE ('),
   2.845 +			If the <a href=#next-input-code-point>next input code point</a> is a U+0022 QUOTATION MARK (") or U+0027 APOSTROPHE ('),
   2.846  			then:
   2.847  
   2.848  			<ol>
   2.849  				<li>
   2.850 -					<a href=#consume-a-string-token0>Consume a string token</a> with the <a href=#current-input-character>current input character</a> as the ending character.
   2.851 +					<a href=#consume-a-string-token0>Consume a string token</a> with the <a href=#current-input-code-point>current input code point</a> as the ending code point.
   2.852  
   2.853  				<li>
   2.854  					If a <a data-link-type=token href=#tokendef-bad-string>〈bad-string〉</a> was returned,
   2.855 @@ -1163,7 +1171,7 @@
   2.856  					Consume as much <a href=#whitespace>whitespace</a> as possible.
   2.857  
   2.858  				<li>
   2.859 -					If the <a href=#next-input-character>next input character</a> is U+0029 RIGHT PARENTHESIS ()) or EOF,
   2.860 +					If the <a href=#next-input-code-point>next input code point</a> is U+0029 RIGHT PARENTHESIS ()) or EOF,
   2.861  					consume it and return the <a data-link-type=token href=#tokendef-url>〈url〉</a>;
   2.862  					otherwise,
   2.863  					<a href=#consume-the-remnants-of-a-bad-url0>consume the remnants of a bad url</a>,
   2.864 @@ -1172,7 +1180,7 @@
   2.865  			</ol>
   2.866  
   2.867  		<li>
   2.868 -			Repeatedly consume the <a href=#next-input-character>next input character</a> from the stream:
   2.869 +			Repeatedly consume the <a href=#next-input-code-point>next input code point</a> from the stream:
   2.870  
   2.871  			<dl>
   2.872  				<dt>U+0029 RIGHT PARENTHESIS ())
   2.873 @@ -1183,7 +1191,7 @@
   2.874  				<dt><a href=#whitespace>whitespace</a>
   2.875  				<dd>
   2.876  					Consume as much <a href=#whitespace>whitespace</a> as possible.
   2.877 -					If the <a href=#next-input-character>next input character</a> is U+0029 RIGHT PARENTHESIS ()) or EOF,
   2.878 +					If the <a href=#next-input-code-point>next input code point</a> is U+0029 RIGHT PARENTHESIS ()) or EOF,
   2.879  					consume it and return the <a data-link-type=token href=#tokendef-url>〈url〉</a>;
   2.880  					otherwise,
   2.881  					<a href=#consume-the-remnants-of-a-bad-url0>consume the remnants of a bad url</a>,
   2.882 @@ -1193,7 +1201,7 @@
   2.883  				<dt>U+0022 QUOTATION MARK (")
   2.884  				<dt>U+0027 APOSTROPHE (')
   2.885  				<dt>U+0028 LEFT PARENTHESIS (()
   2.886 -				<dt><a href=#non-printable-character>non-printable character</a>
   2.887 +				<dt><a href=#non-printable-code-point>non-printable code point</a>
   2.888  				<dd>
   2.889  					This is a <a href=#parse-errors>parse error</a>.
   2.890  					<a href=#consume-the-remnants-of-a-bad-url0>Consume the remnants of a bad url</a>,
   2.891 @@ -1202,9 +1210,9 @@
   2.892  
   2.893  				<dt>U+005C REVERSE SOLIDUS
   2.894  				<dd>
   2.895 -					If the stream <a href=#check-if-two-characters-are-a-valid-escape0>starts with a valid escape</a>,
   2.896 -					<a href=#consume-an-escaped-character0>consume an escaped character</a>
   2.897 -					and append the returned character to the <a data-link-type=token href=#tokendef-url>〈url〉</a>’s value.
   2.898 +					If the stream <a href=#check-if-two-code-points-are-a-valid-escape0>starts with a valid escape</a>,
   2.899 +					<a href=#consume-an-escaped-code-point0>consume an escaped code point</a>
   2.900 +					and append the returned <a href=#code-point>code point</a> to the <a data-link-type=token href=#tokendef-url>〈url〉</a>’s value.
   2.901  
   2.902  <p>					Otherwise,
   2.903  					this is a <a href=#parse-errors>parse error</a>.
   2.904 @@ -1214,7 +1222,7 @@
   2.905  
   2.906  				<dt>anything else
   2.907  				<dd>
   2.908 -					Append the <a href=#current-input-character>current input character</a>
   2.909 +					Append the <a href=#current-input-code-point>current input code point</a>
   2.910  					to the <a data-link-type=token href=#tokendef-url>〈url〉</a>’s value.
   2.911  			</dl>
   2.912  	</ol>
   2.913 @@ -1227,7 +1235,7 @@
   2.914  	It returns a <a data-link-type=token href=#tokendef-unicode-range>〈unicode-range〉</a> token.
   2.915  
   2.916  <p class=note>	Note: This algorithm assumes that the initial "u+" has been consumed,
   2.917 -	and the next character verified to be a <a href=#hex-digit>hex digit</a> or a "?".
   2.918 +	and the next <a href=#code-point>code point</a> verified to be a <a href=#hex-digit>hex digit</a> or a "?".
   2.919  
   2.920  <p>	Execute the following steps in order:
   2.921  
   2.922 @@ -1239,21 +1247,21 @@
   2.923  		<li>
   2.924  			Consume as many <a href=#hex-digit>hex digits</a> as possible, but no more than 6.
   2.925  			If less than 6 <a href=#hex-digit>hex digits</a> were consumed,
   2.926 -			consume as many U+003F QUESTION MARK (?) characters as possible,
   2.927 -			but no more than enough to make the total of <a href=#hex-digit>hex digits</a> and U+003F QUESTION MARK (?) characters equal to 6.
   2.928 -
   2.929 -<p>			If any U+003F QUESTION MARK (?) characters were consumed,
   2.930 +			consume as many U+003F QUESTION MARK (?) <a href=#code-point>code points</a> as possible,
   2.931 +			but no more than enough to make the total of <a href=#hex-digit>hex digits</a> and U+003F QUESTION MARK (?) <a href=#code-point>code points</a> equal to 6.
   2.932 +
   2.933 +<p>			If any U+003F QUESTION MARK (?) <a href=#code-point>code points</a> were consumed,
   2.934  			then:
   2.935  
   2.936  			<ol>
   2.937  				<li>
   2.938 -					Interpret the consumed characters as a hexadecimal number,
   2.939 -					with the U+003F QUESTION MARK (?) characters replaced by U+0030 DIGIT ZERO (0) characters.
   2.940 +					Interpret the consumed <a href=#code-point>code points</a> as a hexadecimal number,
   2.941 +					with the U+003F QUESTION MARK (?) <a href=#code-point>code points</a> replaced by U+0030 DIGIT ZERO (0) <a href=#code-point>code points</a>.
   2.942  					This is the <a href=#start-of-the-range>start of the range</a>.
   2.943  
   2.944  				<li>
   2.945 -					Interpret the consumed characters as a hexadecimal number again,
   2.946 -					with the U+003F QUESTION MARK (?) character replaced by U+0046 LATIN CAPITAL LETTER F (F) characters.
   2.947 +					Interpret the consumed <a href=#code-point>code points</a> as a hexadecimal number again,
   2.948 +					with the U+003F QUESTION MARK (?) <a href=#code-point>code point</a> replaced by U+0046 LATIN CAPITAL LETTER F (F) <a href=#code-point>code points</a>.
   2.949  					This is the <a href=#end-of-the-range>end of the range</a>.
   2.950  
   2.951  				<li>
   2.952 @@ -1265,12 +1273,12 @@
   2.953  			This is the <a href=#start-of-the-range>start of the range</a>.
   2.954  
   2.955  		<li>
   2.956 -			If the <a href=#next-input-character title="next input character">next 2 input character</a> are
   2.957 +			If the <a href=#next-input-code-point title="next input code point">next 2 input code point</a> are
   2.958  			U+002D HYPHEN-MINUS (-) followed by a <a href=#hex-digit>hex digit</a>,
   2.959  			then:
   2.960  
   2.961  			<ol>
   2.962 -				<li>Consume the <a href=#next-input-character>next input character</a>.
   2.963 +				<li>Consume the <a href=#next-input-code-point>next input code point</a>.
   2.964  
   2.965  				<li>
   2.966  					Consume as many <a href=#hex-digit>hex digits</a> as possible, but no more than 6.
   2.967 @@ -1285,130 +1293,130 @@
   2.968  	</ol>
   2.969  
   2.970  
   2.971 -<h4 data-level=4.3.7 id=consume-an-escaped-character><span class=secno>4.3.7 </span><span class=content>
   2.972 -<dfn data-dfn-type=dfn id=consume-an-escaped-character0>Consume an escaped character</dfn></span><a class=section-link href=#consume-an-escaped-character>§</a></h4>
   2.973 -
   2.974 -<p>	This section describes how to <a href=#consume-an-escaped-character0>consume an escaped character</a>.
   2.975 +<h4 data-level=4.3.7 id=consume-an-escaped-code-point><span class=secno>4.3.7 </span><span class=content>
   2.976 +<dfn data-dfn-type=dfn id=consume-an-escaped-code-point0>consume an escaped code point</dfn></span><a class=section-link href=#consume-an-escaped-code-point>§</a></h4>
   2.977 +
   2.978 +<p>	This section describes how to <a href=#consume-an-escaped-code-point0>consume an escaped code point</a>.
   2.979  	It assumes that the U+005C REVERSE SOLIDUS (\) has already been consumed
   2.980 -	and that the next input character has already been verified
   2.981 +	and that the next input code point has already been verified
   2.982  	to not be a <a href=#newline>newline</a> or EOF.
   2.983 -	It will return a character.
   2.984 -
   2.985 -<p>	Consume the <a href=#next-input-character>next input character</a>.
   2.986 +	It will return a <a href=#code-point>code point</a>.
   2.987 +
   2.988 +<p>	Consume the <a href=#next-input-code-point>next input code point</a>.
   2.989  
   2.990  	<dl>
   2.991  		<dt><a href=#hex-digit>hex digit</a>
   2.992  		<dd>
   2.993  			Consume as many <a href=#hex-digit>hex digits</a> as possible, but no more than 5.
   2.994  			<span class=note>Note that this means 1-6 hex digits have been consumed in total.</span>
   2.995 -			If the <a href=#next-input-character>next input character</a> is
   2.996 +			If the <a href=#next-input-code-point>next input code point</a> is
   2.997  			<a href=#whitespace>whitespace</a>,
   2.998  			consume it as well.
   2.999  			Interpret the <a href=#hex-digit>hex digits</a> as a hexadecimal number.
  2.1000  			If this number is zero,
  2.1001  			or is between U+D800 and U+DFFF inclusive,
  2.1002 -			or is greater than the <a href=#maximum-allowed-codepoint>maximum allowed codepoint</a>,
  2.1003 +			or is greater than the <a href=#maximum-allowed-code-point>maximum allowed code point</a>,
  2.1004  			return U+FFFD REPLACEMENT CHARACTER (�).
  2.1005 -			Otherwise, return the character with that codepoint.
  2.1006 +			Otherwise, return the <a href=#code-point>code point</a> with that value.
  2.1007  
  2.1008  			<p class=note>
  2.1009  				U+D800 to U+DFFF are the
  2.1010  				<a href=http://www.unicode.org/glossary/#surrogate_code_point>surrogate code points</a>.
  2.1011  
  2.1012 -		<dt>EOF character
  2.1013 +		<dt>EOF code point
  2.1014  		<dd>
  2.1015  			Return U+FFFD REPLACEMENT CHARACTER (�).
  2.1016  
  2.1017  		<dt>anything else
  2.1018  		<dd>
  2.1019 -			Return the <a href=#current-input-character>current input character</a>.
  2.1020 +			Return the <a href=#current-input-code-point>current input code point</a>.
  2.1021  	</dl>
  2.1022  
  2.1023  
  2.1024 -<h4 data-level=4.3.8 id=check-if-two-characters-are-a-valid-escape><span class=secno>4.3.8 </span><span class=content>
  2.1025 -<dfn data-dfn-type=dfn id=check-if-two-characters-are-a-valid-escape0 title="check if two characters are a valid escape|are a valid escape|starts with a valid escape">Check if two characters are a valid escape</dfn></span><a class=section-link href=#check-if-two-characters-are-a-valid-escape>§</a></h4>
  2.1026 -
  2.1027 -<p>	This section describes how to <a href=#check-if-two-characters-are-a-valid-escape0>check if two characters are a valid escape</a>.
  2.1028 -	The algorithm described here can be called explicitly with two characters,
  2.1029 +<h4 data-level=4.3.8 id=check-if-two-code-points-are-a-valid-escape><span class=secno>4.3.8 </span><span class=content>
  2.1030 +<dfn data-dfn-type=dfn id=check-if-two-code-points-are-a-valid-escape0 title="check if two code points are a valid escape|are a valid escape|starts with a valid escape">Check if two code points are a valid escape</dfn></span><a class=section-link href=#check-if-two-code-points-are-a-valid-escape>§</a></h4>
  2.1031 +
  2.1032 +<p>	This section describes how to <a href=#check-if-two-code-points-are-a-valid-escape0>check if two code points are a valid escape</a>.
  2.1033 +	The algorithm described here can be called explicitly with two <a href=#code-point>code points</a>,
  2.1034  	or can be called with the input stream itself.
  2.1035 -	In the latter case, the two characters in question are
  2.1036 -	the <a href=#current-input-character>current input character</a>
  2.1037 -	and the <a href=#next-input-character>next input character</a>,
  2.1038 +	In the latter case, the two <a href=#code-point>code points</a> in question are
  2.1039 +	the <a href=#current-input-code-point>current input code point</a>
  2.1040 +	and the <a href=#next-input-code-point>next input code point</a>,
  2.1041  	in that order.
  2.1042  
  2.1043 -<p class=note>	Note: This algorithm will not consume any additional characters.
  2.1044 -
  2.1045 -<p>	If the first character is not U+005D REVERSE SOLIDUS (\),
  2.1046 +<p class=note>	Note: This algorithm will not consume any additional <a href=#code-point>code point</a>.
  2.1047 +
  2.1048 +<p>	If the first <a href=#code-point>code point</a> is not U+005D REVERSE SOLIDUS (\),
  2.1049  	return false.
  2.1050  
  2.1051  <p>	Otherwise,
  2.1052 -	if the second character is a <a href=#newline>newline</a>,
  2.1053 +	if the second <a href=#code-point>code point</a> is a <a href=#newline>newline</a>,
  2.1054  	return false.
  2.1055  
  2.1056  <p>	Otherwise, return true.
  2.1057  
  2.1058  
  2.1059 -<h4 data-level=4.3.9 id=check-if-three-characters-would-start-an-identifier><span class=secno>4.3.9 </span><span class=content>
  2.1060 -<dfn data-dfn-type=dfn id=check-if-three-characters-would-start-an-identifier0 title="check if three characters would start an identifier|starts with an identifier|start with an identifier|would start an identifier">Check if three characters would start an identifier</dfn></span><a class=section-link href=#check-if-three-characters-would-start-an-identifier>§</a></h4>
  2.1061 -
  2.1062 -<p>	This section describes how to <a href=#check-if-three-characters-would-start-an-identifier0>check if three characters would start an identifier</a>.
  2.1063 -	The algorithm described here can be called explicitly with three characters,
  2.1064 +<h4 data-level=4.3.9 id=check-if-three-code-points-would-start-an-identifier><span class=secno>4.3.9 </span><span class=content>
  2.1065 +<dfn data-dfn-type=dfn id=check-if-three-code-points-would-start-an-identifier0 title="check if three code points would start an identifier|starts with an identifier|start with an identifier|would start an identifier">Check if three code points would start an identifier</dfn></span><a class=section-link href=#check-if-three-code-points-would-start-an-identifier>§</a></h4>
  2.1066 +
  2.1067 +<p>	This section describes how to <a href=#check-if-three-code-points-would-start-an-identifier0>check if three code points would start an identifier</a>.
  2.1068 +	The algorithm described here can be called explicitly with three <a href=#code-point>code points</a>,
  2.1069  	or can be called with the input stream itself.
  2.1070 -	In the latter case, the three characters in question are
  2.1071 -	the <a href=#current-input-character>current input character</a>
  2.1072 -	and the <a href=#next-input-character title="next input character">next two input characters</a>,
  2.1073 +	In the latter case, the three <a href=#code-point>code points</a> in question are
  2.1074 +	the <a href=#current-input-code-point>current input code point</a>
  2.1075 +	and the <a href=#next-input-code-point title="next input code point">next two input code points</a>,
  2.1076  	in that order.
  2.1077  
  2.1078 -<p class=note>	Note: This algorithm will not consume any additional characters.
  2.1079 -
  2.1080 -<p>	Look at the first character:
  2.1081 +<p class=note>	Note: This algorithm will not consume any additional <a href=#code-point>code point</a>.
  2.1082 +
  2.1083 +<p>	Look at the first <a href=#code-point>code point</a>:
  2.1084  
  2.1085  	<dl>
  2.1086  		<dt>U+002D HYPHEN-MINUS
  2.1087  		<dd>
  2.1088 -			If the second character is a <a href=#name-start-character>name-start character</a>
  2.1089 -			or the second and third characters <a href=#check-if-two-characters-are-a-valid-escape0>are a valid escape</a>,
  2.1090 +			If the second <a href=#code-point>code point</a> is a <a href=#name-start-code-point>name-start code point</a>
  2.1091 +			or the second and third <a href=#code-point>code points</a> <a href=#check-if-two-code-points-are-a-valid-escape0>are a valid escape</a>,
  2.1092  			return true.
  2.1093  			Otherwise, return false.
  2.1094  
  2.1095 -		<dt><a href=#name-start-character>name-start character</a>
  2.1096 +		<dt><a href=#name-start-code-point>name-start code point</a>
  2.1097  		<dd>
  2.1098  			Return true.
  2.1099  
  2.1100  		<dt>U+005C REVERSE SOLIDUS (\)
  2.1101  		<dd>
  2.1102 -			If the first and second characters <a href=#check-if-two-characters-are-a-valid-escape0>are a valid escape</a>,
  2.1103 +			If the first and second <a href=#code-point>code points</a> <a href=#check-if-two-code-points-are-a-valid-escape0>are a valid escape</a>,
  2.1104  			return true.
  2.1105  			Otherwise, return false.
  2.1106  	</dl>
  2.1107  
  2.1108 -<h4 data-level=4.3.10 id=check-if-three-characters-would-start-a-number><span class=secno>4.3.10 </span><span class=content>
  2.1109 -<dfn data-dfn-type=dfn id=check-if-three-characters-would-start-a-number0 title="check if three characters would start a number|starts with a number|start with a number|would start a number">Check if three characters would start a number</dfn></span><a class=section-link href=#check-if-three-characters-would-start-a-number>§</a></h4>
  2.1110 -
  2.1111 -<p>	This section describes how to <a href=#check-if-three-characters-would-start-a-number0>check if three characters would start a number</a>.
  2.1112 -	The algorithm described here can be called explicitly with three characters,
  2.1113 +<h4 data-level=4.3.10 id=check-if-three-code-points-would-start-a-number><span class=secno>4.3.10 </span><span class=content>
  2.1114 +<dfn data-dfn-type=dfn id=check-if-three-code-points-would-start-a-number0 title="check if three code points would start a number|starts with a number|start with a number|would start a number">Check if three code points would start a number</dfn></span><a class=section-link href=#check-if-three-code-points-would-start-a-number>§</a></h4>
  2.1115 +
  2.1116 +<p>	This section describes how to <a href=#check-if-three-code-points-would-start-a-number0>check if three code points would start a number</a>.
  2.1117 +	The algorithm described here can be called explicitly with three <a href=#code-point>code points</a>,
  2.1118  	or can be called with the input stream itself.
  2.1119 -	In the latter case, the three characters in question are
  2.1120 -	the <a href=#current-input-character>current input character</a>
  2.1121 -	and the <a href=#next-input-character title="next input character">next two input characters</a>,
  2.1122 +	In the latter case, the three <a href=#code-point>code points</a> in question are
  2.1123 +	the <a href=#current-input-code-point>current input code point</a>
  2.1124 +	and the <a href=#next-input-code-point title="next input code point">next two input code points</a>,
  2.1125  	in that order.
  2.1126  
  2.1127 -<p class=note>	Note: This algorithm will not consume any additional characters.
  2.1128 -
  2.1129 -<p>	Look at the first character:
  2.1130 +<p class=note>	Note: This algorithm will not consume any additional <a href=#code-point>code points</a>.
  2.1131 +
  2.1132 +<p>	Look at the first <a href=#code-point>code point</a>:
  2.1133  
  2.1134  	<dl>
  2.1135  		<dt>U+002B PLUS SIGN (+)
  2.1136  		<dt>U+002D HYPHEN-MINUS (-)
  2.1137  		<dd>
  2.1138 -			If the second character
  2.1139 +			If the second <a href=#code-point>code point</a>
  2.1140  			is a <a href=#digit>digit</a>,
  2.1141  			return true.
  2.1142  
  2.1143  <p>			Otherwise,
  2.1144 -			if the second character
  2.1145 +			if the second <a href=#code-point>code point</a>
  2.1146  			is a U+002E FULL STOP (.)
  2.1147 -			and the third character
  2.1148 +			and the third <a href=#code-point>code point</a>
  2.1149  			is a <a href=#digit>digit</a>,
  2.1150  			return true.
  2.1151  
  2.1152 @@ -1416,7 +1424,7 @@
  2.1153  
  2.1154  		<dt>U+002E FULL STOP (.)
  2.1155  		<dd>
  2.1156 -			If the second character
  2.1157 +			If the second <a href=#code-point>code point</a>
  2.1158  			is a <a href=#digit>digit</a>,
  2.1159  			return true.
  2.1160  			Otherwise, return false.
  2.1161 @@ -1434,29 +1442,29 @@
  2.1162  <h4 data-level=4.3.11 id=consume-a-name><span class=secno>4.3.11 </span><span class=content>
  2.1163  <dfn data-dfn-type=dfn id=consume-a-name0>Consume a name</dfn></span><a class=section-link href=#consume-a-name>§</a></h4>
  2.1164  
  2.1165 -<p>	This section describes how to <a href=#consume-a-name0>consume a name</a> from a stream of characters.
  2.1166 +<p>	This section describes how to <a href=#consume-a-name0>consume a name</a> from a stream of <a href=#code-point>code points</a>.
  2.1167  	It returns a string containing
  2.1168 -	the largest name that can be formed from adjacent characters in the stream, starting from the first.
  2.1169 -
  2.1170 -<p class=note>	Note: This algorithm does not do the verification of the first few characters
  2.1171 -	that are necessary to ensure the returned characters would constitute an <a data-link-type=token href=#tokendef-ident>〈ident〉</a>.
  2.1172 +	the largest name that can be formed from adjacent <a href=#code-point>code points</a> in the stream, starting from the first.
  2.1173 +
  2.1174 +<p class=note>	Note: This algorithm does not do the verification of the first few <a href=#code-point>code points</a>
  2.1175 +	that are necessary to ensure the returned <a href=#code-point>code points</a> would constitute an <a data-link-type=token href=#tokendef-ident>〈ident〉</a>.
  2.1176  	If that is the intended use,
  2.1177 -	ensure that the stream <a href=#check-if-three-characters-would-start-an-identifier0>starts with an identifier</a>
  2.1178 +	ensure that the stream <a href=#check-if-three-code-points-would-start-an-identifier0>starts with an identifier</a>
  2.1179  	before calling this algorithm.
  2.1180  
  2.1181  <p>	Let <var>result</var> initially be an empty string.
  2.1182  
  2.1183 -<p>	Repeatedly consume the <a href=#next-input-character>next input character</a> from the stream:
  2.1184 +<p>	Repeatedly consume the <a href=#next-input-code-point>next input code point</a> from the stream:
  2.1185  
  2.1186  	<dl>
  2.1187 -		<dt><a href=#name-character>name character</a>
  2.1188 +		<dt><a href=#name-code-point>name code point</a>
  2.1189  		<dd>
  2.1190 -			Append the character to <var>result</var>.
  2.1191 -
  2.1192 -		<dt>the stream <a href=#check-if-two-characters-are-a-valid-escape0>starts with a valid escape</a>
  2.1193 +			Append the <a href=#code-point>code point</a> to <var>result</var>.
  2.1194 +
  2.1195 +		<dt>the stream <a href=#check-if-two-code-points-are-a-valid-escape0>starts with a valid escape</a>
  2.1196  		<dd>
  2.1197 -			<a href=#consume-an-escaped-character0>Consume an escaped character</a>.
  2.1198 -			Append the returned character to <var>result</var>.
  2.1199 +			<a href=#consume-an-escaped-code-point0>consume an escaped code point</a>.
  2.1200 +			Append the returned <a href=#code-point>code point</a> to <var>result</var>.
  2.1201  
  2.1202  		<dt>anything else
  2.1203  		<dd>
  2.1204 @@ -1467,15 +1475,15 @@
  2.1205  <h4 data-level=4.3.12 id=consume-a-number><span class=secno>4.3.12 </span><span class=content>
  2.1206  <dfn data-dfn-type=dfn id=consume-a-number0>Consume a number</dfn></span><a class=section-link href=#consume-a-number>§</a></h4>
  2.1207  
  2.1208 -<p>	This section describes how to <a href=#consume-a-number0>consume a number</a> from a stream of characters.
  2.1209 +<p>	This section describes how to <a href=#consume-a-number0>consume a number</a> from a stream of <a href=#code-point>code points</a>.
  2.1210  	It returns a 3-tuple of
  2.1211  	a string representation,
  2.1212  	a numeric value,
  2.1213  	and a type flag which is either "integer" or "number".
  2.1214  
  2.1215 -<p class=note>	Note: This algorithm does not do the verification of the first few characters
  2.1216 +<p class=note>	Note: This algorithm does not do the verification of the first few <a href=#code-point>code points</a>
  2.1217  	that are necessary to ensure a number can be obtained from the stream.
  2.1218 -	Ensure that the stream <a href=#check-if-three-characters-would-start-a-number0>starts with a number</a>
  2.1219 +	Ensure that the stream <a href=#check-if-three-code-points-would-start-a-number0>starts with a number</a>
  2.1220  	before calling this algorithm.
  2.1221  
  2.1222  <p>	Execute the following steps in order:
  2.1223 @@ -1486,15 +1494,15 @@
  2.1224  			and <var>type</var> to "integer".
  2.1225  
  2.1226  		<li>
  2.1227 -			If the <a href=#next-input-character>next input character</a> is U+002B PLUS SIGN (+) or U+002D HYPHEN-MINUS (-),
  2.1228 +			If the <a href=#next-input-code-point>next input code point</a> is U+002B PLUS SIGN (+) or U+002D HYPHEN-MINUS (-),
  2.1229  			consume it and append it to <var>repr</var>.
  2.1230  
  2.1231  		<li>
  2.1232 -			While the <a href=#next-input-character>next input character</a> is a <a href=#digit>digit</a>,
  2.1233 +			While the <a href=#next-input-code-point>next input code point</a> is a <a href=#digit>digit</a>,
  2.1234  			consume it and append it to <var>repr</var>.
  2.1235  
  2.1236  		<li>
  2.1237 -			If the <a href=#next-input-character title="next input character">next 2 input characters</a> are
  2.1238 +			If the <a href=#next-input-code-point title="next input code point">next 2 input code points</a> are
  2.1239  			U+002E FULL STOP (.) followed by a <a href=#digit>digit</a>,
  2.1240  			then:
  2.1241  
  2.1242 @@ -1502,11 +1510,11 @@
  2.1243  				<li>Consume them.
  2.1244  				<li>Append them to <var>repr</var>.
  2.1245  				<li>Set <var>type</var> to "number".
  2.1246 -				<li>While the <a href=#next-input-character>next input character</a> is a <a href=#digit>digit</a>, consume it and append it to <var>repr</var>.
  2.1247 +				<li>While the <a href=#next-input-code-point>next input code point</a> is a <a href=#digit>digit</a>, consume it and append it to <var>repr</var>.
  2.1248  			</ol>
  2.1249  
  2.1250  		<li>
  2.1251 -			If the <a href=#next-input-character title="next input character">next 2 or 3 input characters</a> are
  2.1252 +			If the <a href=#next-input-code-point title="next input code point">next 2 or 3 input code points</a> are
  2.1253  			U+0045 LATIN CAPITAL LETTER E (E) or U+0065 LATIN SMALL LETTER E (e),
  2.1254  			optionally followed by U+002D HYPHEN-MINUS (-) or U+002B PLUS SIGN (+),
  2.1255  			followed by a <a href=#digit>digit</a>,
  2.1256 @@ -1516,7 +1524,7 @@
  2.1257  				<li>Consume them.
  2.1258  				<li>Append them to <var>repr</var>.
  2.1259  				<li>Set <var>type</var> to "number".
  2.1260 -				<li>While the <a href=#next-input-character>next input character</a> is a <a href=#digit>digit</a>, consume it and append it to <var>repr</var>.
  2.1261 +				<li>While the <a href=#next-input-code-point>next input code point</a> is a <a href=#digit>digit</a>, consume it and append it to <var>repr</var>.
  2.1262  			</ol>
  2.1263  
  2.1264  		<li>
  2.1265 @@ -1588,13 +1596,13 @@
  2.1266  <h4 data-level=4.3.14 id=consume-the-remnants-of-a-bad-url><span class=secno>4.3.14 </span><span class=content>
  2.1267  <dfn data-dfn-type=dfn id=consume-the-remnants-of-a-bad-url0>Consume the remnants of a bad url</dfn></span><a class=section-link href=#consume-the-remnants-of-a-bad-url>§</a></h4>
  2.1268  
  2.1269 -<p>	This section describes how to <a href=#consume-the-remnants-of-a-bad-url0>consume the remnants of a bad url</a> from a stream of characters,
  2.1270 +<p>	This section describes how to <a href=#consume-the-remnants-of-a-bad-url0>consume the remnants of a bad url</a> from a stream of <a href=#code-point>code points</a>,
  2.1271  	"cleaning up" after the tokenizer realizes that it's in the middle of a <a data-link-type=token href=#tokendef-bad-url>〈bad-url〉</a> rather than a <a data-link-type=token href=#tokendef-url>〈url〉</a>.
  2.1272  	It returns nothing;
  2.1273  	its sole use is to consume enough of the input stream to reach a recovery point
  2.1274  	where normal tokenizing can resume.
  2.1275  
  2.1276 -<p>	Repeatedly consume the <a href=#next-input-character>next input character</a> from the stream:
  2.1277 +<p>	Repeatedly consume the <a href=#next-input-code-point>next input code point</a> from the stream:
  2.1278  
  2.1279  	<dl>
  2.1280  		<dt>U+0029 RIGHT PARENTHESIS ())
  2.1281 @@ -1602,9 +1610,9 @@
  2.1282  		<dd>
  2.1283  			Return.
  2.1284  
  2.1285 -		<dt>the input stream <a href=#check-if-two-characters-are-a-valid-escape0>starts with a valid escape</a>
  2.1286 +		<dt>the input stream <a href=#check-if-two-code-points-are-a-valid-escape0>starts with a valid escape</a>
  2.1287  		<dd>
  2.1288 -			<a href=#consume-an-escaped-character0>Consume an escaped character</a>.
  2.1289 +			<a href=#consume-an-escaped-code-point0>consume an escaped code point</a>.
  2.1290  			<span class=note>This allows an escaped right parenthesis ("\)") to be encountered without ending the <a data-link-type=token href=#tokendef-bad-url>〈bad-url〉</a>.
  2.1291  				This is otherwise identical to the "anything else" clause.</span>
  2.1292  
  2.1293 @@ -1618,14 +1626,14 @@
  2.1294  
  2.1295  <p>	This section describes how to set a <a data-link-type=token href=#tokendef-unicode-range>〈unicode-range〉</a>’s range
  2.1296  	so that the range it describes
  2.1297 -	is within the supported range of unicode characters.
  2.1298 +	is within the supported range of unicode <a href=#code-point>code points</a>.
  2.1299  
  2.1300  <p>	It assumes that the <dfn data-dfn-type=dfn id=start-of-the-range>start of the range</dfn> has been defined,
  2.1301  	the <dfn data-dfn-type=dfn id=end-of-the-range>end of the range</dfn> might be defined,
  2.1302  	and both are non-negative integers.
  2.1303  
  2.1304  <p>	If the <a href=#start-of-the-range>start of the range</a> is greater than
  2.1305 -	the <a href=#maximum-allowed-codepoint>maximum allowed codepoint</a>,
  2.1306 +	the <a href=#maximum-allowed-code-point>maximum allowed code point</a>,
  2.1307  	the <a data-link-type=token href=#tokendef-unicode-range>〈unicode-range〉</a>’s range is empty.
  2.1308  
  2.1309  <p>	If the <a href=#end-of-the-range>end of the range</a> is defined,
  2.1310 @@ -1634,16 +1642,16 @@
  2.1311  
  2.1312  <p>	If the <a href=#end-of-the-range>end of the range</a> is not defined,
  2.1313  	the <a data-link-type=token href=#tokendef-unicode-range>〈unicode-range〉</a>’s range
  2.1314 -	is the single character whose codepoint is the <a href=#start-of-the-range>start of the range</a>.
  2.1315 +	is the single <a href=#code-point>code point</a> whose value is the <a href=#start-of-the-range>start of the range</a>.
  2.1316  
  2.1317  <p>	Otherwise,
  2.1318  	if the <a href=#end-of-the-range>end of the range</a> is greater than
  2.1319 -	the <a href=#maximum-allowed-codepoint>maximum allowed codepoint</a>,
  2.1320 -	change it to the <a href=#maximum-allowed-codepoint>maximum allowed codepoint</a>.
  2.1321 +	the <a href=#maximum-allowed-code-point>maximum allowed code point</a>,
  2.1322 +	change it to the <a href=#maximum-allowed-code-point>maximum allowed code point</a>.
  2.1323  	The <a data-link-type=token href=#tokendef-unicode-range>〈unicode-range〉</a>’s range
  2.1324 -	is all characters between
  2.1325 -	the character whose codepoint is the <a href=#start-of-the-range>start of the range</a>
  2.1326 -	and the character whose codepoint is the <a href=#end-of-the-range>end of the range</a>.
  2.1327 +	is all <a href=#code-point>code points</a> between
  2.1328 +	the <a href=#code-point>code point</a> whose value is the <a href=#start-of-the-range>start of the range</a>
  2.1329 +	and the <a href=#code-point>code point</a> whose value is the <a href=#end-of-the-range>end of the range</a>.
  2.1330  
  2.1331  
  2.1332  <!--
  2.1333 @@ -1857,11 +1865,11 @@
  2.1334  		<dd>
  2.1335  			When two strings are to be matched ASCII case-insensitively,
  2.1336  			temporarily convert both of them to ASCII lower-case form
  2.1337 -			by adding 32 (0x20) to the value of each codepoint between
  2.1338 +			by adding 32 (0x20) to the value of each <a href=#code-point>code point</a> between
  2.1339  			U+0041 LATIN CAPITAL LETTER A (A)
  2.1340  			and U+005A LATIN CAPITAL LETTER Z (Z),
  2.1341  			inclusive,
  2.1342 -			and then compare them on a codepoint-by-codepoint basis.
  2.1343 +			and check if this results in identical sequences of <a href=#code-point>code point</a>.
  2.1344  	</dl>
  2.1345  
  2.1346  
  2.1347 @@ -1875,7 +1883,7 @@
  2.1348  	but they may also be invoked on a string;
  2.1349  	if so,
  2.1350  	first perform <a href=#preprocessing-the-input-stream>input preprocessing</a>
  2.1351 -	to produce a character stream,
  2.1352 +	to produce a <a href=#code-point>code point</a> stream,
  2.1353  	then perform <a href=#tokenization>tokenization</a>
  2.1354  	to produce a token stream.
  2.1355  
  2.1356 @@ -2092,7 +2100,7 @@
  2.1357  
  2.1358  <p>	These algorithms may be called with a list of either tokens or of component values.
  2.1359  	(The difference being that some tokens are replaced by <a href=#function>functions</a> and <a href=#simple-block>simple blocks</a> in a list of component values.)
  2.1360 -	Similar to how the input stream returned EOF characters to represent when it was empty during the tokenization stage,
  2.1361 +	Similar to how the input stream returned EOF code points to represent when it was empty during the tokenization stage,
  2.1362  	the lists in this stage must return an <a data-link-type=token href=#tokendef-eof>〈EOF〉</a> when the next token is requested but they are empty.
  2.1363  
  2.1364  <p>	An algorithm may be invoked with a specific list,
  2.1365 @@ -2561,13 +2569,13 @@
  2.1366  		<dd>
  2.1367  			<var>A</var> is the dimension's value or 1, respectively.
  2.1368  			<var>B</var> is the dimension's unit or ident's value, respectively,
  2.1369 -			with the first character removed and the remainder interpreted as a base-10 number.
  2.1370 +			with the first <a href=#code-point>code point</a> removed and the remainder interpreted as a base-10 number.
  2.1371  			<span class=note>B is negative.</span>
  2.1372  
  2.1373  		<dt><code><var>&lt;dashndashdigit-ident&gt;</var></code>
  2.1374  		<dd>
  2.1375  			<var>A</var> is -1.
  2.1376 -			<var>B</var> is the ident's value, with the first two characters removed and the remainder interpreted as a base-10 number.
  2.1377 +			<var>B</var> is the ident's value, with the first two <a href=#code-point>code points</a> removed and the remainder interpreted as a base-10 number.
  2.1378  			<span class=note>B is negative.</span>
  2.1379  
  2.1380  		<dt><code><var>&lt;n-dimension&gt;</var> <var>&lt;signed-integer&gt;</var></code>
  2.1381 @@ -2625,7 +2633,7 @@
  2.1382  		and does not match corresponding grammar definitions.
  2.1383  
  2.1384  	<a data-link-type=token href=#tokendef-delim>〈delim〉</a>s are written with their value enclosed in single quotes.
  2.1385 -	For example, a <a data-link-type=token href=#tokendef-delim>〈delim〉</a> containing the "+" character is written as <code>'+'</code>.
  2.1386 +	For example, a <a data-link-type=token href=#tokendef-delim>〈delim〉</a> containing the "+" <a href=#code-point>code point</a> is written as <code>'+'</code>.
  2.1387  	Similarly, the <a data-link-type=token href=#tokendef-open-square>〈[〉</a> and <a data-link-type=token href=#tokendef-close-square>〈]〉</a>s must be written in single quotes,
  2.1388  	as they're used by the syntax of the grammar itself to group clauses.
  2.1389  	<a data-link-type=token href=#tokendef-whitespace>〈whitespace〉</a> is never indicated in the grammar;
  2.1390 @@ -2931,22 +2939,22 @@
  2.1391  
  2.1392  <p>	<ul>
  2.1393  		<li>
  2.1394 -			Any U+0000 NULL character in the CSS source is replaced with U+FFFD REPLACEMENT CHARACTER.
  2.1395 +			Any U+0000 NULL <a href=#code-point>code point</a> in the CSS source is replaced with U+FFFD REPLACEMENT CHARACTER.
  2.1396  
  2.1397  		<li>
  2.1398  			Any hexadecimal escape sequence such as <span class=css data-link-type=maybe>\0</span> that evaluate to zero
  2.1399 -			produce U+FFFD REPLACEMENT CHARACTER rather than U+0000 NULL.
  2.1400 +			produce U+FFFD REPLACEMENT r rather than U+0000 NULL.
  2.1401  			<!--
  2.1402  				This covers a security issue:
  2.1403  				https://bugzilla.mozilla.org/show_bug.cgi?id=228856
  2.1404  			-->
  2.1405  
  2.1406  		<li>
  2.1407 -			The definition of <a href=#non-ascii-character>non-ASCII character</a> was changed
  2.1408 +			The definition of <a href=#non-ascii-code-point>non-ASCII code point</a> was changed
  2.1409  			to be consistent with every definition of ASCII.
  2.1410 -			This affects characters U+0080 to U+009F,
  2.1411 -			which are now <a href=#name-character>name characters</a> rather than <a data-link-type=token href=#tokendef-delim>〈delim〉</a>s,
  2.1412 -			like the rest of <a href=#non-ascii-character>non-ASCII characters</a>.
  2.1413 +			This affects <a href=#code-point>code points</a> U+0080 to U+009F,
  2.1414 +			which are now <a href=#name-code-point>name code points</a> rather than <a data-link-type=token href=#tokendef-delim>〈delim〉</a>s,
  2.1415 +			like the rest of <a href=#non-ascii-code-point>non-ASCII code points</a>.
  2.1416  
  2.1417  		<li>
  2.1418  			Tokenization does not emit COMMENT or BAD_COMMENT tokens anymore.
  2.1419 @@ -3040,7 +3048,7 @@
  2.1420  
  2.1421  <p>			<ul>
  2.1422  				<li>
  2.1423 -					In some cases, "-" characters or digits can be escaped
  2.1424 +					In some cases, minus signs or digits can be escaped
  2.1425  					(when they appear as part of the unit of a <a data-link-type=token href=#tokendef-dimension>〈dimension〉</a> or <a data-link-type=token href=#tokendef-ident>〈ident〉</a>).
  2.1426  			</ul>
  2.1427  	</ul>
  2.1428 @@ -3197,7 +3205,7 @@
  2.1429  <li>A, <a href=#a title="section 6">6</a>
  2.1430  <li>An+B, <a href=#anb0 title="section 6">6</a>
  2.1431  <li>&lt;an+b&gt;, <a href=#anb-production title="section 6.2">6.2</a>
  2.1432 -<li>are a valid escape, <a href=#check-if-two-characters-are-a-valid-escape0 title="section 4.3.8">4.3.8</a>
  2.1433 +<li>are a valid escape, <a href=#check-if-two-code-points-are-a-valid-escape0 title="section 4.3.8">4.3.8</a>
  2.1434  <li>ASCII case-insensitive, <a href=#ascii-case-insensitive title="section 5.2">5.2</a>
  2.1435  <li>&lt;at-charset-rule&gt;, <a href=#typedef-at-charset-rule title="section 8.2">8.2</a>
  2.1436  <li>〈at-keyword〉, <a href=#tokendef-at-keyword title="section 4">4</a>
  2.1437 @@ -3208,9 +3216,10 @@
  2.1438  <li>〈CDC〉, <a href=#tokendef-cdc title="section 4">4</a>
  2.1439  <li>〈CDO〉, <a href=#tokendef-cdo title="section 4">4</a>
  2.1440  <li>@charset, <a href=#at-ruledef-charset title="section 8.2">8.2</a>
  2.1441 -<li>check if three characters would start an identifier, <a href=#check-if-three-characters-would-start-an-identifier0 title="section 4.3.9">4.3.9</a>
  2.1442 -<li>check if three characters would start a number, <a href=#check-if-three-characters-would-start-a-number0 title="section 4.3.10">4.3.10</a>
  2.1443 -<li>check if two characters are a valid escape, <a href=#check-if-two-characters-are-a-valid-escape0 title="section 4.3.8">4.3.8</a>
  2.1444 +<li>check if three code points would start an identifier, <a href=#check-if-three-code-points-would-start-an-identifier0 title="section 4.3.9">4.3.9</a>
  2.1445 +<li>check if three code points would start a number, <a href=#check-if-three-code-points-would-start-a-number0 title="section 4.3.10">4.3.10</a>
  2.1446 +<li>check if two code points are a valid escape, <a href=#check-if-two-code-points-are-a-valid-escape0 title="section 4.3.8">4.3.8</a>
  2.1447 +<li>code point, <a href=#code-point title="section 4.2">4.2</a>
  2.1448  <li>〈colon〉, <a href=#tokendef-colon title="section 4">4</a>
  2.1449  <li>〈column〉, <a href=#tokendef-column title="section 4">4</a>
  2.1450  <li>〈comma〉, <a href=#tokendef-comma title="section 4">4</a>
  2.1451 @@ -3222,7 +3231,7 @@
  2.1452  <li>Consume a list of rules, <a href=#consume-a-list-of-rules0 title="section 5.4.1">5.4.1</a>
  2.1453  <li>Consume a name, <a href=#consume-a-name0 title="section 4.3.11">4.3.11</a>
  2.1454  <li>Consume an at-rule, <a href=#consume-an-at-rule0 title="section 5.4.2">5.4.2</a>
  2.1455 -<li>Consume an escaped character, <a href=#consume-an-escaped-character0 title="section 4.3.7">4.3.7</a>
  2.1456 +<li>consume an escaped code point, <a href=#consume-an-escaped-code-point0 title="section 4.3.7">4.3.7</a>
  2.1457  <li>Consume an ident-like token, <a href=#consume-an-ident-like-token0 title="section 4.3.3">4.3.3</a>
  2.1458  <li>Consume a number, <a href=#consume-a-number0 title="section 4.3.12">4.3.12</a>
  2.1459  <li>Consume a numeric token, <a href=#consume-a-numeric-token0 title="section 4.3.2">4.3.2</a>
  2.1460 @@ -3235,7 +3244,7 @@
  2.1461  <li>consume the next input token, <a href=#consume-the-next-input-token title="section 5.2">5.2</a>
  2.1462  <li>Consume the remnants of a bad url, <a href=#consume-the-remnants-of-a-bad-url0 title="section 4.3.14">4.3.14</a>
  2.1463  <li>Convert a string to a number, <a href=#convert-a-string-to-a-number0 title="section 4.3.13">4.3.13</a>
  2.1464 -<li>current input character, <a href=#current-input-character title="section 4.2">4.2</a>
  2.1465 +<li>current input code point, <a href=#current-input-code-point title="section 4.2">4.2</a>
  2.1466  <li>current input token, <a href=#current-input-token title="section 5.2">5.2</a>
  2.1467  <li>〈dash-match〉, <a href=#tokendef-dash-match title="section 4">4</a>
  2.1468  <li>&lt;dashndashdigit-ident&gt;, <a href=#typedef-dashndashdigit-ident title="section 6.2">6.2</a>
  2.1469 @@ -3250,7 +3259,7 @@
  2.1470  <li>ending token, <a href=#ending-token title="section 5.4.7">5.4.7</a>
  2.1471  <li>end of the range, <a href=#end-of-the-range title="section 4.3.15">4.3.15</a>
  2.1472  <li>〈EOF〉, <a href=#tokendef-eof title="section 5.2">5.2</a>
  2.1473 -<li>EOF character, <a href=#eof-character title="section 4.2">4.2</a>
  2.1474 +<li>EOF code point, <a href=#eof-code-point title="section 4.2">4.2</a>
  2.1475  <li>escaping, <a href=#escaping0 title="section 2.1">2.1</a>
  2.1476  <li>〈function〉, <a href=#tokendef-function title="section 4">4</a>
  2.1477  <li>function, <a href=#function title="section 5">5</a>
  2.1478 @@ -3262,18 +3271,18 @@
  2.1479  <li>&lt;integer&gt;, <a href=#typedef-integer title="section 6.2">6.2</a>
  2.1480  <li>letter, <a href=#letter title="section 4.2">4.2</a>
  2.1481  <li>lowercase letter, <a href=#lowercase-letter title="section 4.2">4.2</a>
  2.1482 -<li>maximum allowed codepoint, <a href=#maximum-allowed-codepoint title="section 4.2">4.2</a>
  2.1483 -<li>name character, <a href=#name-character title="section 4.2">4.2</a>
  2.1484 -<li>name-start character, <a href=#name-start-character title="section 4.2">4.2</a>
  2.1485 +<li>maximum allowed code point, <a href=#maximum-allowed-code-point title="section 4.2">4.2</a>
  2.1486 +<li>name code point, <a href=#name-code-point title="section 4.2">4.2</a>
  2.1487 +<li>name-start code point, <a href=#name-start-code-point title="section 4.2">4.2</a>
  2.1488  <li>&lt;ndashdigit-dimension&gt;, <a href=#typedef-ndashdigit-dimension title="section 6.2">6.2</a>
  2.1489  <li>&lt;ndashdigit-ident&gt;, <a href=#typedef-ndashdigit-ident title="section 6.2">6.2</a>
  2.1490  <li>&lt;ndash-dimension&gt;, <a href=#typedef-ndash-dimension title="section 6.2">6.2</a>
  2.1491  <li>&lt;n-dimension&gt;, <a href=#typedef-n-dimension title="section 6.2">6.2</a>
  2.1492  <li>newline, <a href=#newline title="section 4.2">4.2</a>
  2.1493 -<li>next input character, <a href=#next-input-character title="section 4.2">4.2</a>
  2.1494 +<li>next input code point, <a href=#next-input-code-point title="section 4.2">4.2</a>
  2.1495  <li>next input token, <a href=#next-input-token title="section 5.2">5.2</a>
  2.1496 -<li>non-ASCII character, <a href=#non-ascii-character title="section 4.2">4.2</a>
  2.1497 -<li>non-printable character, <a href=#non-printable-character title="section 4.2">4.2</a>
  2.1498 +<li>non-ASCII code point, <a href=#non-ascii-code-point title="section 4.2">4.2</a>
  2.1499 +<li>non-printable code point, <a href=#non-printable-code-point title="section 4.2">4.2</a>
  2.1500  <li>〈number〉, <a href=#tokendef-number title="section 4">4</a>
  2.1501  <li>Parse a component value, <a href=#parse-a-component-value0 title="section 5.3.6">5.3.6</a>
  2.1502  <li>Parse a declaration, <a href=#parse-a-declaration0 title="section 5.3.4">5.3.4</a>
  2.1503 @@ -3287,7 +3296,7 @@
  2.1504  <li>〈prefix-match〉, <a href=#tokendef-prefix-match title="section 4">4</a>
  2.1505  <li>preserved tokens, <a href=#preserved-tokens title="section 5">5</a>
  2.1506  <li>qualified rule, <a href=#qualified-rule title="section 5">5</a>
  2.1507 -<li>reconsume the current input character, <a href=#reconsume-the-current-input-character title="section 4.2">4.2</a>
  2.1508 +<li>reconsume the current input code point, <a href=#reconsume-the-current-input-code-point title="section 4.2">4.2</a>
  2.1509  <li>reconsume the current input token, <a href=#reconsume-the-current-input-token title="section 5.2">5.2</a>
  2.1510  <li>&lt;rule-list&gt;, <a href=#typedef-rule-list title="section 7.1">7.1</a>
  2.1511  <li>〈semicolon〉, <a href=#tokendef-semicolon title="section 4">4</a>
  2.1512 @@ -3296,11 +3305,11 @@
  2.1513  <li>&lt;signless-integer&gt;, <a href=#typedef-signless-integer title="section 6.2">6.2</a>
  2.1514  <li>simple block, <a href=#simple-block title="section 5">5</a>
  2.1515  <li>start of the range, <a href=#start-of-the-range title="section 4.3.15">4.3.15</a>
  2.1516 -<li>starts with an identifier, <a href=#check-if-three-characters-would-start-an-identifier0 title="section 4.3.9">4.3.9</a>
  2.1517 -<li>starts with a number, <a href=#check-if-three-characters-would-start-a-number0 title="section 4.3.10">4.3.10</a>
  2.1518 -<li>starts with a valid escape, <a href=#check-if-two-characters-are-a-valid-escape0 title="section 4.3.8">4.3.8</a>
  2.1519 -<li>start with an identifier, <a href=#check-if-three-characters-would-start-an-identifier0 title="section 4.3.9">4.3.9</a>
  2.1520 -<li>start with a number, <a href=#check-if-three-characters-would-start-a-number0 title="section 4.3.10">4.3.10</a>
  2.1521 +<li>starts with an identifier, <a href=#check-if-three-code-points-would-start-an-identifier0 title="section 4.3.9">4.3.9</a>
  2.1522 +<li>starts with a number, <a href=#check-if-three-code-points-would-start-a-number0 title="section 4.3.10">4.3.10</a>
  2.1523 +<li>starts with a valid escape, <a href=#check-if-two-code-points-are-a-valid-escape0 title="section 4.3.8">4.3.8</a>
  2.1524 +<li>start with an identifier, <a href=#check-if-three-code-points-would-start-an-identifier0 title="section 4.3.9">4.3.9</a>
  2.1525 +<li>start with a number, <a href=#check-if-three-code-points-would-start-a-number0 title="section 4.3.10">4.3.10</a>
  2.1526  <li>〈string〉, <a href=#tokendef-string title="section 4">4</a>
  2.1527  <li>style rule, <a href=#style-rule title="section 8.1">8.1</a>
  2.1528  <li>&lt;stylesheet&gt;, <a href=#typedef-stylesheet title="section 7.1">7.1</a>
  2.1529 @@ -3312,8 +3321,8 @@
  2.1530  <li>〈url〉, <a href=#tokendef-url title="section 4">4</a>
  2.1531  <li>〈whitespace〉, <a href=#tokendef-whitespace title="section 4">4</a>
  2.1532  <li>whitespace, <a href=#whitespace title="section 4.2">4.2</a>
  2.1533 -<li>would start an identifier, <a href=#check-if-three-characters-would-start-an-identifier0 title="section 4.3.9">4.3.9</a>
  2.1534 -<li>would start a number, <a href=#check-if-three-characters-would-start-a-number0 title="section 4.3.10">4.3.10</a>
  2.1535 +<li>would start an identifier, <a href=#check-if-three-code-points-would-start-an-identifier0 title="section 4.3.9">4.3.9</a>
  2.1536 +<li>would start a number, <a href=#check-if-three-code-points-would-start-a-number0 title="section 4.3.10">4.3.10</a>
  2.1537  </ul></div>
  2.1538  
  2.1539  <h2 class="no-num no-ref" id=property-index><span class=content>
     3.1 --- a/css-syntax/Overview.src.html	Wed Aug 14 11:35:33 2013 +0200
     3.2 +++ b/css-syntax/Overview.src.html	Wed Aug 14 18:26:25 2013 +0100
     3.3 @@ -22,7 +22,7 @@
     3.4  	and other things which use CSS syntax
     3.5  	(such as the HTML <code>style</code> attribute).
     3.6  
     3.7 -	It defines algorithms for converting a stream of codepoints
     3.8 +	It defines algorithms for converting a stream of Unicode <a>code points</a>
     3.9  	(in other words, text)
    3.10  	into a stream of CSS tokens,
    3.11  	and then further into CSS objects
    3.12 @@ -74,7 +74,7 @@
    3.13  	</div>
    3.14  
    3.15  	At-rules are all different, but they have a basic structure in common.
    3.16 -	They start with an "@" character followed by their name.
    3.17 +	They start with an "@" <a>code point</a> followed by their name.
    3.18  	Some <a>at-rules</a> are simple statements,
    3.19  	with their name followed by more CSS values to specify their behavior,
    3.20  	and finally ended by a semicolon.
    3.21 @@ -123,7 +123,7 @@
    3.22  	Property names and <a>at-rule</a> names are always <b>identifiers</b>,
    3.23  	which have to start with a letter or a hyphen followed by a letter,
    3.24  	and then can contain letters, numbers, hyphens, or underscores.
    3.25 -	You can include any character at all,
    3.26 +	You can include any <a>code point</a> at all,
    3.27  	even ones that CSS uses in its syntax,
    3.28  	by <a>escaping</a> it.
    3.29  
    3.30 @@ -136,18 +136,18 @@
    3.31  
    3.32  	<em>This section is not normative.</em>
    3.33  
    3.34 -	Any Unicode character can be included in an identifier or quoted string
    3.35 +	Any Unicode <a>code point</a> can be included in an identifier or quoted string
    3.36  	by <dfn>escaping</dfn> it.
    3.37  	CSS escape sequences start with a backslash (\), and continue with:
    3.38  
    3.39  	<ul>
    3.40  		<li>
    3.41 -			Any Unicode character that is not a <a>hex digits</a> or a <a>newline</a>.
    3.42 -			The escape sequence is replaced by that character.
    3.43 +			Any Unicode <a>code point</a> that is not a <a>hex digits</a> or a <a>newline</a>.
    3.44 +			The escape sequence is replaced by that <a>code point</a>.
    3.45  		<li>
    3.46  			Or one to six <a>hex digits</a>, followed by an optional <a>whitespace</a>.
    3.47 -			The escape sequence is replaced by the Unicode character
    3.48 -			whose codepoint number is given by the hexadecimal digits.
    3.49 +			The escape sequence is replaced by the Unicode <a>code point</a>
    3.50 +			whose value is given by the hexadecimal digits.
    3.51  			This optional whitespace allow hexadecimal escape sequences
    3.52  			to be followed by "real" hex digits.
    3.53  
    3.54 @@ -244,7 +244,7 @@
    3.55  <h3>
    3.56  Overview of the Parsing Model</h3>
    3.57  
    3.58 -	The input to the CSS parsing process consists of a stream of Unicode code points,
    3.59 +	The input to the CSS parsing process consists of a stream of Unicode <a>code points</a>,
    3.60  	which is passed through a tokenization stage followed by a tree construction stage.
    3.61  	The output is a CSSStyleSheet object.
    3.62  
    3.63 @@ -255,12 +255,13 @@
    3.64  The input byte stream</h3>
    3.65  
    3.66  	When parsing a stylesheet,
    3.67 -	the stream of Unicode code points that comprises the input to the tokenization stage may be initially seen by the user agent as a stream of bytes
    3.68 +	the stream of Unicode <a>code points</a> that comprises the input to the tokenization stage
    3.69 +	may be initially seen by the user agent as a stream of bytes
    3.70  	(typically coming over the network or from the local file system).
    3.71 -	The bytes encode the actual characters according to a particular character encoding,
    3.72 -	which the user agent must use to decode the bytes into characters.
    3.73 -
    3.74 -	To decode the stream of bytes into a stream of characters,
    3.75 +	The bytes encode the <a>code points</a> according to a particular character encoding,
    3.76 +	which the user agent must use to decode the bytes into <a>code points</a>.
    3.77 +
    3.78 +	To decode the stream of bytes into a stream of <a>code points</a>,
    3.79  	UAs must follow these steps.
    3.80  
    3.81  	The algorithms to <a href="http://encoding.spec.whatwg.org/#concept-encoding-get"><dfn>get an encoding</dfn></a>
    3.82 @@ -329,21 +330,21 @@
    3.83  <h3>
    3.84  Preprocessing the input stream</h3>
    3.85  
    3.86 -	The input stream consists of the characters (individual unicode code-points)
    3.87 +	The input stream consists of the <a>code points</a>
    3.88  	pushed into it as the input byte stream is decoded.
    3.89  
    3.90  	Before sending the input stream to the tokenizer,
    3.91 -	implementations must make the following character substitutions:
    3.92 +	implementations must make the following <a>code point</a> substitutions:
    3.93  
    3.94  	<ul>
    3.95  		<li>
    3.96 -			Replace any U+000D CARRIAGE RETURN (CR) characters,
    3.97 -			U+000C FORM FEED (FF) characters,
    3.98 +			Replace any U+000D CARRIAGE RETURN (CR) <a>code point</a>,
    3.99 +			U+000C FORM FEED (FF) <a>code point</a>,
   3.100  			or pairs of U+000D CARRIAGE RETURN (CR) followed by U+000A LINE FEED (LF)
   3.101 -			by a single U+000A LINE FEED (LF) character.
   3.102 +			by a single U+000A LINE FEED (LF) <a>code point</a>.
   3.103  
   3.104  		<li>
   3.105 -			Replace any U+0000 NULL characters with U+FFFD REPLACEMENT CHARACTER (�).
   3.106 +			Replace any U+0000 NULL <a>code point</a> with U+FFFD REPLACEMENT CHARACTER (�).
   3.107  	</ul>
   3.108  
   3.109  
   3.110 @@ -351,13 +352,13 @@
   3.111  Tokenization</h2>
   3.112  
   3.113  	Implementations must act as if they used the following algorithms to tokenize CSS.
   3.114 -	To transform a stream of characters into a stream of tokens,
   3.115 +	To transform a stream of <a>code points</a> into a stream of tokens,
   3.116  	repeatedly <a>consume a token</a>
   3.117  	until an <<<EOF>>> is reached,
   3.118  	collecting the returned tokens into a stream.
   3.119  	Each call to the <a>consume a token</a> algorithm
   3.120  	returns a single token,
   3.121 -	so it can also be used "on-demand" to tokenize a stream of characters <em>during</em> parsing,
   3.122 +	so it can also be used "on-demand" to tokenize a stream of <a>code points</a> <em>during</em> parsing,
   3.123  	if so desired.
   3.124  
   3.125  	The output of the tokenization step is a stream of zero or more of the following tokens:
   3.126 @@ -395,26 +396,26 @@
   3.127  
   3.128  	<ul>
   3.129  		<li>
   3.130 -			<<<ident>>>, <<<function>>>, <<<at-keyword>>>, <<<hash>>>, <<<string>>>, and <<<url>>> tokens have a value composed of zero or more characters.
   3.131 +			<<<ident>>>, <<<function>>>, <<<at-keyword>>>, <<<hash>>>, <<<string>>>, and <<<url>>> tokens have a value composed of zero or more <a>code points</a>.
   3.132  			Additionally, hash tokens have a type flag set to either "id" or "unrestricted".  The type flag defaults to "unrestricted" if not otherwise set.
   3.133  
   3.134  		<li>
   3.135 -			<<<delim>>> tokens have a value composed of a single character.
   3.136 +			<<<delim>>> tokens have a value composed of a single <a>code point</a>.
   3.137  
   3.138  		<li>
   3.139 -			<<<number>>>, <<<percentage>>>, and <<<dimension>>> tokens have a representation composed of one or more character, and a numeric value.
   3.140 +			<<<number>>>, <<<percentage>>>, and <<<dimension>>> tokens have a representation composed of one or more <a>code points</a>, and a numeric value.
   3.141  			<<<number>>> and <<<dimension>>> tokens additionally have a type flag set to either "integer" or "number".  The type flag defaults to "integer" if not otherwise set.
   3.142 -			<<<dimension>>> tokens additionally have a unit composed of one or more characters.
   3.143 +			<<<dimension>>> tokens additionally have a unit composed of one or more <a>code points</a>.
   3.144  
   3.145  		<li>
   3.146 -			<<<unicode-range>>> tokens have a range of characters.
   3.147 +			<<<unicode-range>>> tokens have a range of <a>code points</a>.
   3.148  	</ul>
   3.149  
   3.150  	Note: The type flag of hash tokens is used in the Selectors syntax [[SELECT]].
   3.151  	Only hash tokens with the "id" type are valid <a href="http://www.w3.org/TR/selectors/#id-selectors">ID selectors</a>.
   3.152  
   3.153  	Note: As a technical note,
   3.154 -	the tokenizer defined here requires only three characters of look-ahead.
   3.155 +	the tokenizer defined here requires only three <a>code points</a> of look-ahead.
   3.156  	The tokens it produces are designed to allow Selectors to be parsed with one token of look-ahead,
   3.157  	and additional tokens may be added in the future to maintain this invariant.
   3.158  
   3.159 @@ -450,144 +451,151 @@
   3.160  		<dt id="newline-diagram">newline</dt>
   3.161  		<dd><svg class="railroad-diagram" width="173" height="152"><g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><g><path d="M40 31h0"></path><path d="M132 31h0"></path><path d="M40 31h20"></path><g><path d="M60 31h8"></path><path d="M104 31h8"></path><rect x="68" y="20" width="36" height="22" rx="10" ry="10"></rect><text x="86" y="35">\n</text></g><path d="M112 31h20"></path><path d="M40 31a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10"></path><g><path d="M60 61h0"></path><path d="M112 61h0"></path><rect x="60" y="50" width="52" height="22" rx="10" ry="10"></rect><text x="86" y="65">\r\n</text></g><path d="M112 61a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10"></path><path d="M40 31a10 10 0 0 1 10 10v40a10 10 0 0 0 10 10"></path><g><path d="M60 91h8"></path><path d="M104 91h8"></path><rect x="68" y="80" width="36" height="22" rx="10" ry="10"></rect><text x="86" y="95">\r</text></g><path d="M112 91a10 10 0 0 0 10 -10v-40a10 10 0 0 1 10 -10"></path><path d="M40 31a10 10 0 0 1 10 10v70a10 10 0 0 0 10 10"></path><g><path d="M60 121h8"></path><path d="M104 121h8"></path><rect x="68" y="110" width="36" height="22" rx="10" ry="10"></rect><text x="86" y="125">\f</text></g><path d="M112 121a10 10 0 0 0 10 -10v-70a10 10 0 0 1 10 -10"></path></g><path d="M 132 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
   3.162  
   3.163 -		<dt id="whitespace-character-diagram">whitespace character</dt>
   3.164 +		<dt id="whitespace-diagram">whitespace</dt>
   3.165  		<dd><svg class="railroad-diagram" width="197" height="122"><g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><g><path d="M40 31h0"></path><path d="M156 31h0"></path><path d="M40 31h20"></path><g><path d="M60 31h8"></path><path d="M128 31h8"></path><rect x="68" y="20" width="60" height="22" rx="10" ry="10"></rect><text x="98" y="35">space</text></g><path d="M136 31h20"></path><path d="M40 31a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10"></path><g><path d="M60 61h20"></path><path d="M116 61h20"></path><rect x="80" y="50" width="36" height="22" rx="10" ry="10"></rect><text x="98" y="65">\t</text></g><path d="M136 61a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10"></path><path d="M40 31a10 10 0 0 1 10 10v40a10 10 0 0 0 10 10"></path><g><path d="M60 91h0"></path><path d="M136 91h0"></path><rect x="60" y="80" width="76" height="22"></rect><text x="98" y="95">newline</text></g><path d="M136 91a10 10 0 0 0 10 -10v-40a10 10 0 0 1 10 -10"></path></g><path d="M 156 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
   3.166  
   3.167  		<dt id="escape-diagram">escape</dt>
   3.168 -		<dd><svg class="railroad-diagram" width="521" height="122"><g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 31h10"></path><g><path d="M50 31h0"></path><path d="M78 31h0"></path><rect x="50" y="20" width="28" height="22" rx="10" ry="10"></rect><text x="64" y="35">\</text></g><path d="M78 31h10"></path><g><path d="M88 31h0"></path><path d="M480 31h0"></path><path d="M88 31h20"></path><g><path d="M108 31h70"></path><path d="M390 31h70"></path><rect x="178" y="20" width="212" height="22"></rect><text x="284" y="35">not newline or hex digit</text></g><path d="M460 31h20"></path><path d="M88 31a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10"></path><g><path d="M108 61h0"></path><path d="M460 61h0"></path><path d="M108 61h10"></path><g><path d="M118 61h0"></path><path d="M230 61h0"></path><path d="M118 61h10"></path><g><path d="M128 61h0"></path><path d="M220 61h0"></path><rect x="128" y="50" width="92" height="22"></rect><text x="174" y="65">hex digit</text></g><path d="M220 61h10"></path><path d="M128 61a10 10 0 0 0 -10 10v10a10 10 0 0 0 10 10"></path><g><path d="M128 91h9.5"></path><path d="M210.5 91h9.5"></path><text x="174" y="96" class="comment">1-6 times</text></g><path d="M220 91a10 10 0 0 0 10 -10v-10a10 10 0 0 0 -10 -10"></path></g><path d="M230 61h10"></path><g><path d="M240 61h0"></path><path d="M460 61h0"></path><path d="M240 61h20"></path><g><path d="M260 61h180"></path></g><path d="M440 61h20"></path><path d="M240 61a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><g><path d="M260 81h0"></path><path d="M440 81h0"></path><rect x="260" y="70" width="180" height="22"></rect><text x="350" y="85">whitespace character</text></g><path d="M440 81a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path></g></g><path d="M460 61a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10"></path></g><path d="M 480 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
   3.169 -
   3.170 -		<dt id="<<<whitespace>>>-diagram"><<<whitespace>>></dt>
   3.171 -		<dd><svg class="railroad-diagram" width="301" height="71"><g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 31h10"></path><g><path d="M50 31h0"></path><path d="M250 31h0"></path><path d="M50 31h10"></path><g><path d="M60 31h0"></path><path d="M240 31h0"></path><rect x="60" y="20" width="180" height="22"></rect><text x="150" y="35">whitespace character</text></g><path d="M240 31h10"></path><path d="M60 31a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10"></path><g><path d="M60 51h180"></path></g><path d="M240 51a10 10 0 0 0 10 -10v0a10 10 0 0 0 -10 -10"></path></g><path d="M250 31h10"></path><path d="M 260 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
   3.172 -
   3.173 -		<dt id="<<<ident>>>-diagram"><<<ident>>></dt>
   3.174 +		<dd><svg class="railroad-diagram" width="441" height="122"><g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 31h10"></path><g><path d="M50 31h0"></path><path d="M78 31h0"></path><rect x="50" y="20" width="28" height="22" rx="10" ry="10"></rect><text x="64" y="35">\</text></g><path d="M78 31h10"></path><g><path d="M88 31h0"></path><path d="M400 31h0"></path><path d="M88 31h20"></path><g><path d="M108 31h30"></path><path d="M350 31h30"></path><rect x="138" y="20" width="212" height="22"></rect><text x="244" y="35">not newline or hex digit</text></g><path d="M380 31h20"></path><path d="M88 31a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10"></path><g><path d="M108 61h0"></path><path d="M380 61h0"></path><path d="M108 61h10"></path><g><path d="M118 61h0"></path><path d="M230 61h0"></path><path d="M118 61h10"></path><g><path d="M128 61h0"></path><path d="M220 61h0"></path><rect x="128" y="50" width="92" height="22"></rect><text x="174" y="65">hex digit</text></g><path d="M220 61h10"></path><path d="M128 61a10 10 0 0 0 -10 10v10a10 10 0 0 0 10 10"></path><g><path d="M128 91h9.5"></path><path d="M210.5 91h9.5"></path><text x="174" y="96" class="comment">1-6 times</text></g><path d="M220 91a10 10 0 0 0 10 -10v-10a10 10 0 0 0 -10 -10"></path></g><path d="M230 61h10"></path><g><path d="M240 61h0"></path><path d="M380 61h0"></path><path d="M240 61h20"></path><g><path d="M260 61h100"></path></g><path d="M360 61h20"></path><path d="M240 61a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><g><path d="M260 81h0"></path><path d="M360 81h0"></path><rect x="260" y="70" width="100" height="22"></rect><text x="310" y="85">whitespace</text></g><path d="M360 81a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path></g></g><path d="M380 61a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10"></path></g><path d="M 400 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
   3.175 +
   3.176 +		<dt id="〈whitespace〉-diagram">〈whitespace〉</dt>
   3.177 +		<dd><svg class="railroad-diagram" width="221" height="71"><g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 31h10"></path><g><path d="M50 31h0"></path><path d="M170 31h0"></path><path d="M50 31h10"></path><g><path d="M60 31h0"></path><path d="M160 31h0"></path><rect x="60" y="20" width="100" height="22"></rect><text x="110" y="35">whitespace</text></g><path d="M160 31h10"></path><path d="M60 31a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10"></path><g><path d="M60 51h100"></path></g><path d="M160 51a10 10 0 0 0 10 -10v0a10 10 0 0 0 -10 -10"></path></g><path d="M170 31h10"></path><path d="M 180 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
   3.178 +
   3.179 +		<dt id="〈ident〉-diagram">〈ident〉</dt>
   3.180  		<dd><svg class="railroad-diagram" width="729" height="110"><g transform="translate(.5 .5)"><path d="M 20 31 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><g><path d="M40 41h0"></path><path d="M108 41h0"></path><path d="M40 41h20"></path><g><path d="M60 41h28"></path></g><path d="M88 41h20"></path><path d="M40 41a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><g><path d="M60 61h0"></path><path d="M88 61h0"></path><rect x="60" y="50" width="28" height="22" rx="10" ry="10"></rect><text x="74" y="65">-</text></g><path d="M88 61a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path></g><g><path d="M108 41h0"></path><path d="M344 41h0"></path><path d="M108 41h20"></path><g><path d="M128 41h0"></path><path d="M324 41h0"></path><rect x="128" y="30" width="196" height="22"></rect><text x="226" y="45">a-z A-Z _ or non-ASCII</text></g><path d="M324 41h20"></path><path d="M108 41a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10"></path><g><path d="M128 71h64"></path><path d="M260 71h64"></path><rect x="192" y="60" width="68" height="22"></rect><text x="226" y="75">escape</text></g><path d="M324 71a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10"></path></g><g><path d="M344 41h0"></path><path d="M688 41h0"></path><path d="M344 41a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path><g><path d="M364 21h304"></path></g><path d="M668 21a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><path d="M344 41h20"></path><g><path d="M364 41h0"></path><path d="M668 41h0"></path><path d="M364 41h10"></path><g><path d="M374 41h0"></path><path d="M658 41h0"></path><path d="M374 41h20"></path><g><path d="M394 41h0"></path><path d="M638 41h0"></path><rect x="394" y="30" width="244" height="22"></rect><text x="516" y="45">a-z A-Z 0-9 _ - or non-ASCII</text></g><path d="M638 41h20"></path><path d="M374 41a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10"></path><g><path d="M394 71h88"></path><path d="M550 71h88"></path><rect x="482" y="60" width="68" height="22"></rect><text x="516" y="75">escape</text></g><path d="M638 71a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10"></path></g><path d="M658 41h10"></path><path d="M374 41a10 10 0 0 0 -10 10v29a10 10 0 0 0 10 10"></path><g><path d="M374 90h284"></path></g><path d="M658 90a10 10 0 0 0 10 -10v-29a10 10 0 0 0 -10 -10"></path></g><path d="M668 41h20"></path></g><path d="M 688 41 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
   3.181  
   3.182 -		<dt id="<<<function>>>-diagram"><<<function>>></dt>
   3.183 -		<dd><svg class="railroad-diagram" width="225" height="62"><g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 31h10"></path><g><path d="M50 31h0"></path><path d="M126 31h0"></path><rect x="50" y="20" width="76" height="22"></rect><text x="88" y="35"><<<ident>>></text></g><path d="M126 31h10"></path><path d="M136 31h10"></path><g><path d="M146 31h0"></path><path d="M174 31h0"></path><rect x="146" y="20" width="28" height="22" rx="10" ry="10"></rect><text x="160" y="35">(</text></g><path d="M174 31h10"></path><path d="M 184 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
   3.184 -
   3.185 -		<dt id="<<<at-keyword>>>-diagram"><<<at-keyword>>></dt>
   3.186 -		<dd><svg class="railroad-diagram" width="225" height="62"><g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 31h10"></path><g><path d="M50 31h0"></path><path d="M78 31h0"></path><rect x="50" y="20" width="28" height="22" rx="10" ry="10"></rect><text x="64" y="35">@</text></g><path d="M78 31h10"></path><path d="M88 31h10"></path><g><path d="M98 31h0"></path><path d="M174 31h0"></path><rect x="98" y="20" width="76" height="22"></rect><text x="136" y="35"><<<ident>>></text></g><path d="M174 31h10"></path><path d="M 184 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
   3.187 -
   3.188 -		<dt id="<<<hash>>>-diagram"><<<hash>>></dt>
   3.189 +		<dt id="〈function〉-diagram">〈function〉</dt>
   3.190 +		<dd><svg class="railroad-diagram" width="225" height="62"><g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 31h10"></path><g><path d="M50 31h0"></path><path d="M126 31h0"></path><rect x="50" y="20" width="76" height="22"></rect><text x="88" y="35">〈ident〉</text></g><path d="M126 31h10"></path><path d="M136 31h10"></path><g><path d="M146 31h0"></path><path d="M174 31h0"></path><rect x="146" y="20" width="28" height="22" rx="10" ry="10"></rect><text x="160" y="35">(</text></g><path d="M174 31h10"></path><path d="M 184 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
   3.191 +
   3.192 +		<dt id="〈at-keyword〉-diagram">〈at-keyword〉</dt>
   3.193 +		<dd><svg class="railroad-diagram" width="225" height="62"><g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 31h10"></path><g><path d="M50 31h0"></path><path d="M78 31h0"></path><rect x="50" y="20" width="28" height="22" rx="10" ry="10"></rect><text x="64" y="35">@</text></g><path d="M78 31h10"></path><path d="M88 31h10"></path><g><path d="M98 31h0"></path><path d="M174 31h0"></path><rect x="98" y="20" width="76" height="22"></rect><text x="136" y="35">〈ident〉</text></g><path d="M174 31h10"></path><path d="M 184 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
   3.194 +
   3.195 +		<dt id="〈hash〉-diagram">〈hash〉</dt>
   3.196  		<dd><svg class="railroad-diagram" width="453" height="100"><g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 31h10"></path><g><path d="M50 31h0"></path><path d="M78 31h0"></path><rect x="50" y="20" width="28" height="22" rx="10" ry="10"></rect><text x="64" y="35">#</text></g><path d="M78 31h10"></path><path d="M88 31h10"></path><g><path d="M98 31h0"></path><path d="M402 31h0"></path><path d="M98 31h10"></path><g><path d="M108 31h0"></path><path d="M392 31h0"></path><path d="M108 31h20"></path><g><path d="M128 31h0"></path><path d="M372 31h0"></path><rect x="128" y="20" width="244" height="22"></rect><text x="250" y="35">a-z A-Z 0-9 _ - or non-ASCII</text></g><path d="M372 31h20"></path><path d="M108 31a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10"></path><g><path d="M128 61h88"></path><path d="M284 61h88"></path><rect x="216" y="50" width="68" height="22"></rect><text x="250" y="65">escape</text></g><path d="M372 61a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10"></path></g><path d="M392 31h10"></path><path d="M108 31a10 10 0 0 0 -10 10v29a10 10 0 0 0 10 10"></path><g><path d="M108 80h284"></path></g><path d="M392 80a10 10 0 0 0 10 -10v-29a10 10 0 0 0 -10 -10"></path></g><path d="M402 31h10"></path><path d="M 412 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
   3.197  
   3.198 -		<dt id="<<<string>>>-diagram"><<<string>>></dt>
   3.199 +		<dt id="〈string〉-diagram">〈string〉</dt>
   3.200  		<dd><svg class="railroad-diagram" width="481" height="248"><g transform="translate(.5 .5)"><path d="M 20 31 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><g><path d="M40 41h0"></path><path d="M440 41h0"></path><path d="M40 41h20"></path><g><path d="M60 41h0"></path><path d="M420 41h0"></path><path d="M60 41h10"></path><g><path d="M70 41h0"></path><path d="M98 41h0"></path><rect x="70" y="30" width="28" height="22" rx="10" ry="10"></rect><text x="84" y="45">"</text></g><path d="M98 41h10"></path><g><path d="M108 41h0"></path><path d="M372 41h0"></path><path d="M108 41a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path><g><path d="M128 21h224"></path></g><path d="M352 21a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><path d="M108 41h20"></path><g><path d="M128 41h0"></path><path d="M352 41h0"></path><path d="M128 41h10"></path><g><path d="M138 41h0"></path><path d="M342 41h0"></path><path d="M138 41h20"></path><g><path d="M158 41h0"></path><path d="M322 41h0"></path><rect x="158" y="30" width="164" height="22"></rect><text x="240" y="45">not " \ or newline</text></g><path d="M322 41h20"></path><path d="M138 41a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10"></path><g><path d="M158 71h48"></path><path d="M274 71h48"></path><rect x="206" y="60" width="68" height="22"></rect><text x="240" y="75">escape</text></g><path d="M322 71a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10"></path><path d="M138 41a10 10 0 0 1 10 10v40a10 10 0 0 0 10 10"></path><g><path d="M158 101h10"></path><path d="M312 101h10"></path><path d="M168 101h10"></path><g><path d="M178 101h0"></path><path d="M206 101h0"></path><rect x="178" y="90" width="28" height="22" rx="10" ry="10"></rect><text x="192" y="105">\</text></g><path d="M206 101h10"></path><path d="M216 101h10"></path><g><path d="M226 101h0"></path><path d="M302 101h0"></path><rect x="226" y="90" width="76" height="22"></rect><text x="264" y="105">newline</text></g><path d="M302 101h10"></path></g><path d="M322 101a10 10 0 0 0 10 -10v-40a10 10 0 0 1 10 -10"></path></g><path d="M342 41h10"></path><path d="M138 41a10 10 0 0 0 -10 10v59a10 10 0 0 0 10 10"></path><g><path d="M138 120h204"></path></g><path d="M342 120a10 10 0 0 0 10 -10v-59a10 10 0 0 0 -10 -10"></path></g><path d="M352 41h20"></path></g><path d="M372 41h10"></path><g><path d="M382 41h0"></path><path d="M410 41h0"></path><rect x="382" y="30" width="28" height="22" rx="10" ry="10"></rect><text x="396" y="45">"</text></g><path d="M410 41h10"></path></g><path d="M420 41h20"></path><path d="M40 41a10 10 0 0 1 10 10v88a10 10 0 0 0 10 10"></path><g><path d="M60 149h0"></path><path d="M420 149h0"></path><path d="M60 149h10"></path><g><path d="M70 149h0"></path><path d="M98 149h0"></path><rect x="70" y="138" width="28" height="22" rx="10" ry="10"></rect><text x="84" y="153">&apos;</text></g><path d="M98 149h10"></path><g><path d="M108 149h0"></path><path d="M372 149h0"></path><path d="M108 149a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path><g><path d="M128 129h224"></path></g><path d="M352 129a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><path d="M108 149h20"></path><g><path d="M128 149h0"></path><path d="M352 149h0"></path><path d="M128 149h10"></path><g><path d="M138 149h0"></path><path d="M342 149h0"></path><path d="M138 149h20"></path><g><path d="M158 149h0"></path><path d="M322 149h0"></path><rect x="158" y="138" width="164" height="22"></rect><text x="240" y="153">not &apos; \ or newline</text></g><path d="M322 149h20"></path><path d="M138 149a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10"></path><g><path d="M158 179h48"></path><path d="M274 179h48"></path><rect x="206" y="168" width="68" height="22"></rect><text x="240" y="183">escape</text></g><path d="M322 179a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10"></path><path d="M138 149a10 10 0 0 1 10 10v40a10 10 0 0 0 10 10"></path><g><path d="M158 209h10"></path><path d="M312 209h10"></path><path d="M168 209h10"></path><g><path d="M178 209h0"></path><path d="M206 209h0"></path><rect x="178" y="198" width="28" height="22" rx="10" ry="10"></rect><text x="192" y="213">\</text></g><path d="M206 209h10"></path><path d="M216 209h10"></path><g><path d="M226 209h0"></path><path d="M302 209h0"></path><rect x="226" y="198" width="76" height="22"></rect><text x="264" y="213">newline</text></g><path d="M302 209h10"></path></g><path d="M322 209a10 10 0 0 0 10 -10v-40a10 10 0 0 1 10 -10"></path></g><path d="M342 149h10"></path><path d="M138 149a10 10 0 0 0 -10 10v59a10 10 0 0 0 10 10"></path><g><path d="M138 228h204"></path></g><path d="M342 228a10 10 0 0 0 10 -10v-59a10 10 0 0 0 -10 -10"></path></g><path d="M352 149h20"></path></g><path d="M372 149h10"></path><g><path d="M382 149h0"></path><path d="M410 149h0"></path><rect x="382" y="138" width="28" height="22" rx="10" ry="10"></rect><text x="396" y="153">&apos;</text></g><path d="M410 149h10"></path></g><path d="M420 149a10 10 0 0 0 10 -10v-88a10 10 0 0 1 10 -10"></path></g><path d="M 440 41 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
   3.201  
   3.202 -		<dt id="<<<url>>>-diagram"><<<url>>></dt>
   3.203 -		<dd><svg class="railroad-diagram" width="829" height="102"><g transform="translate(.5 .5)"><path d="M 20 31 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 41h10"></path><g><path d="M50 41h0"></path><path d="M174 41h0"></path><rect x="50" y="30" width="124" height="22"></rect><text x="112" y="45"><<<ident "url">>></text></g><path d="M174 41h10"></path><path d="M184 41h10"></path><g><path d="M194 41h0"></path><path d="M222 41h0"></path><rect x="194" y="30" width="28" height="22" rx="10" ry="10"></rect><text x="208" y="45">(</text></g><path d="M222 41h10"></path><g><path d="M232 41h0"></path><path d="M388 41h0"></path><path d="M232 41h20"></path><g><path d="M252 41h116"></path></g><path d="M368 41h20"></path><path d="M232 41a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><g><path d="M252 61h0"></path><path d="M368 61h0"></path><rect x="252" y="50" width="116" height="22"></rect><text x="310" y="65"><<<whitespace>>></text></g><path d="M368 61a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path></g><g><path d="M388 41h0"></path><path d="M740 41h0"></path><path d="M388 41a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path><g><path d="M408 21h312"></path></g><path d="M720 21a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><path d="M388 41h20"></path><g><path d="M408 41h0"></path><path d="M720 41h0"></path><g><path d="M408 41h0"></path><path d="M564 41h0"></path><path d="M408 41h20"></path><g><path d="M428 41h0"></path><path d="M544 41h0"></path><rect x="428" y="30" width="116" height="22"></rect><text x="486" y="45">url-unquoted</text></g><path d="M544 41h20"></path><path d="M408 41a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10"></path><g><path d="M428 71h24"></path><path d="M520 71h24"></path><rect x="452" y="60" width="68" height="22"></rect><text x="486" y="75">STRING</text></g><path d="M544 71a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10"></path></g><g><path d="M564 41h0"></path><path d="M720 41h0"></path><path d="M564 41h20"></path><g><path d="M584 41h116"></path></g><path d="M700 41h20"></path><path d="M564 41a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><g><path d="M584 61h0"></path><path d="M700 61h0"></path><rect x="584" y="50" width="116" height="22"></rect><text x="642" y="65"><<<whitespace>>></text></g><path d="M700 61a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path></g></g><path d="M720 41h20"></path></g><path d="M740 41h10"></path><g><path d="M750 41h0"></path><path d="M778 41h0"></path><rect x="750" y="30" width="28" height="22" rx="10" ry="10"></rect><text x="764" y="45">)</text></g><path d="M778 41h10"></path><path d="M 788 41 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
   3.204 +		<dt id="〈url〉-diagram">〈url〉</dt>
   3.205 +		<dd><svg class="railroad-diagram" width="829" height="102"><g transform="translate(.5 .5)"><path d="M 20 31 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 41h10"></path><g><path d="M50 41h0"></path><path d="M174 41h0"></path><rect x="50" y="30" width="124" height="22"></rect><text x="112" y="45">〈ident "url"〉</text></g><path d="M174 41h10"></path><path d="M184 41h10"></path><g><path d="M194 41h0"></path><path d="M222 41h0"></path><rect x="194" y="30" width="28" height="22" rx="10" ry="10"></rect><text x="208" y="45">(</text></g><path d="M222 41h10"></path><g><path d="M232 41h0"></path><path d="M388 41h0"></path><path d="M232 41h20"></path><g><path d="M252 41h116"></path></g><path d="M368 41h20"></path><path d="M232 41a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><g><path d="M252 61h0"></path><path d="M368 61h0"></path><rect x="252" y="50" width="116" height="22"></rect><text x="310" y="65">〈whitespace〉</text></g><path d="M368 61a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path></g><g><path d="M388 41h0"></path><path d="M740 41h0"></path><path d="M388 41a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path><g><path d="M408 21h312"></path></g><path d="M720 21a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><path d="M388 41h20"></path><g><path d="M408 41h0"></path><path d="M720 41h0"></path><g><path d="M408 41h0"></path><path d="M564 41h0"></path><path d="M408 41h20"></path><g><path d="M428 41h0"></path><path d="M544 41h0"></path><rect x="428" y="30" width="116" height="22"></rect><text x="486" y="45">url-unquoted</text></g><path d="M544 41h20"></path><path d="M408 41a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10"></path><g><path d="M428 71h24"></path><path d="M520 71h24"></path><rect x="452" y="60" width="68" height="22"></rect><text x="486" y="75">STRING</text></g><path d="M544 71a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10"></path></g><g><path d="M564 41h0"></path><path d="M720 41h0"></path><path d="M564 41h20"></path><g><path d="M584 41h116"></path></g><path d="M700 41h20"></path><path d="M564 41a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><g><path d="M584 61h0"></path><path d="M700 61h0"></path><rect x="584" y="50" width="116" height="22"></rect><text x="642" y="65">〈whitespace〉</text></g><path d="M700 61a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path></g></g><path d="M720 41h20"></path></g><path d="M740 41h10"></path><g><path d="M750 41h0"></path><path d="M778 41h0"></path><rect x="750" y="30" width="28" height="22" rx="10" ry="10"></rect><text x="764" y="45">)</text></g><path d="M778 41h10"></path><path d="M 788 41 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
   3.206  
   3.207  		<dt id="url-unquoted-diagram">url-unquoted</dt>
   3.208  		<dd><svg class="railroad-diagram" width="509" height="100"><g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 31h10"></path><g><path d="M50 31h0"></path><path d="M458 31h0"></path><path d="M50 31h10"></path><g><path d="M60 31h0"></path><path d="M448 31h0"></path><path d="M60 31h20"></path><g><path d="M80 31h0"></path><path d="M428 31h0"></path><rect x="80" y="20" width="348" height="22"></rect><text x="254" y="35">not " &apos; ( ) \ whitespace or non-printable</text></g><path d="M428 31h20"></path><path d="M60 31a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10"></path><g><path d="M80 61h140"></path><path d="M288 61h140"></path><rect x="220" y="50" width="68" height="22"></rect><text x="254" y="65">escape</text></g><path d="M428 61a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10"></path></g><path d="M448 31h10"></path><path d="M60 31a10 10 0 0 0 -10 10v29a10 10 0 0 0 10 10"></path><g><path d="M60 80h388"></path></g><path d="M448 80a10 10 0 0 0 10 -10v-29a10 10 0 0 0 -10 -10"></path></g><path d="M458 31h10"></path><path d="M 468 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
   3.209  
   3.210 -		<dt id="<<<number>>>-diagram"><<<number>>></dt>
   3.211 +		<dt id="〈number〉-diagram">〈number〉</dt>
   3.212  		<dd><svg class="railroad-diagram" width="713" height="179"><g transform="translate(.5 .5)"><path d="M 20 50 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><g><path d="M40 60h0"></path><path d="M108 60h0"></path><path d="M40 60a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path><g><path d="M60 40h0"></path><path d="M88 40h0"></path><rect x="60" y="29" width="28" height="22" rx="10" ry="10"></rect><text x="74" y="44">+</text></g><path d="M88 40a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><path d="M40 60h20"></path><g><path d="M60 60h28"></path></g><path d="M88 60h20"></path><path d="M40 60a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><g><path d="M60 80h0"></path><path d="M88 80h0"></path><rect x="60" y="69" width="28" height="22" rx="10" ry="10"></rect><text x="74" y="84">-</text></g><path d="M88 80a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path></g><g><path d="M108 60h0"></path><path d="M396 60h0"></path><path d="M108 60h20"></path><g><path d="M128 60h0"></path><path d="M376 60h0"></path><path d="M128 60h10"></path><g><path d="M138 60h0"></path><path d="M218 60h0"></path><path d="M138 60h10"></path><g><path d="M148 60h0"></path><path d="M208 60h0"></path><rect x="148" y="49" width="60" height="22"></rect><text x="178" y="64">digit</text></g><path d="M208 60h10"></path><path d="M148 60a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10"></path><g><path d="M148 80h60"></path></g><path d="M208 80a10 10 0 0 0 10 -10v0a10 10 0 0 0 -10 -10"></path></g><path d="M218 60h10"></path><path d="M228 60h10"></path><g><path d="M238 60h0"></path><path d="M266 60h0"></path><rect x="238" y="49" width="28" height="22" rx="10" ry="10"></rect><text x="252" y="64">.</text></g><path d="M266 60h10"></path><path d="M276 60h10"></path><g><path d="M286 60h0"></path><path d="M366 60h0"></path><path d="M286 60h10"></path><g><path d="M296 60h0"></path><path d="M356 60h0"></path><rect x="296" y="49" width="60" height="22"></rect><text x="326" y="64">digit</text></g><path d="M356 60h10"></path><path d="M296 60a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10"></path><g><path d="M296 80h60"></path></g><path d="M356 80a10 10 0 0 0 10 -10v0a10 10 0 0 0 -10 -10"></path></g><path d="M366 60h10"></path></g><path d="M376 60h20"></path><path d="M108 60a10 10 0 0 1 10 10v19a10 10 0 0 0 10 10"></path><g><path d="M128 99h84"></path><path d="M292 99h84"></path><path d="M212 99h10"></path><g><path d="M222 99h0"></path><path d="M282 99h0"></path><rect x="222" y="88" width="60" height="22"></rect><text x="252" y="103">digit</text></g><path d="M282 99h10"></path><path d="M222 99a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10"></path><g><path d="M222 119h60"></path></g><path d="M282 119a10 10 0 0 0 10 -10v0a10 10 0 0 0 -10 -10"></path></g><path d="M376 99a10 10 0 0 0 10 -10v-19a10 10 0 0 1 10 -10"></path><path d="M108 60a10 10 0 0 1 10 10v58a10 10 0 0 0 10 10"></path><g><path d="M128 138h50"></path><path d="M326 138h50"></path><path d="M178 138h10"></path><g><path d="M188 138h0"></path><path d="M216 138h0"></path><rect x="188" y="127" width="28" height="22" rx="10" ry="10"></rect><text x="202" y="142">.</text></g><path d="M216 138h10"></path><path d="M226 138h10"></path><g><path d="M236 138h0"></path><path d="M316 138h0"></path><path d="M236 138h10"></path><g><path d="M246 138h0"></path><path d="M306 138h0"></path><rect x="246" y="127" width="60" height="22"></rect><text x="276" y="142">digit</text></g><path d="M306 138h10"></path><path d="M246 138a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10"></path><g><path d="M246 158h60"></path></g><path d="M306 158a10 10 0 0 0 10 -10v0a10 10 0 0 0 -10 -10"></path></g><path d="M316 138h10"></path></g><path d="M376 138a10 10 0 0 0 10 -10v-58a10 10 0 0 1 10 -10"></path></g><g><path d="M396 60h0"></path><path d="M672 60h0"></path><path d="M396 60h20"></path><g><path d="M416 60h236"></path></g><path d="M652 60h20"></path><path d="M396 60a10 10 0 0 1 10 10v28a10 10 0 0 0 10 10"></path><g><path d="M416 108h0"></path><path d="M652 108h0"></path><g><path d="M416 108h0"></path><path d="M484 108h0"></path><path d="M416 108h20"></path><g><path d="M436 108h0"></path><path d="M464 108h0"></path><rect x="436" y="97" width="28" height="22" rx="10" ry="10"></rect><text x="450" y="112">e</text></g><path d="M464 108h20"></path><path d="M416 108a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10"></path><g><path d="M436 138h0"></path><path d="M464 138h0"></path><rect x="436" y="127" width="28" height="22" rx="10" ry="10"></rect><text x="450" y="142">E</text></g><path d="M464 138a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10"></path></g><g><path d="M484 108h0"></path><path d="M552 108h0"></path><path d="M484 108a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path><g><path d="M504 88h0"></path><path d="M532 88h0"></path><rect x="504" y="77" width="28" height="22" rx="10" ry="10"></rect><text x="518" y="92">+</text></g><path d="M532 88a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><path d="M484 108h20"></path><g><path d="M504 108h28"></path></g><path d="M532 108h20"></path><path d="M484 108a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><g><path d="M504 128h0"></path><path d="M532 128h0"></path><rect x="504" y="117" width="28" height="22" rx="10" ry="10"></rect><text x="518" y="132">-</text></g><path d="M532 128a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path></g><path d="M552 108h10"></path><g><path d="M562 108h0"></path><path d="M642 108h0"></path><path d="M562 108h10"></path><g><path d="M572 108h0"></path><path d="M632 108h0"></path><rect x="572" y="97" width="60" height="22"></rect><text x="602" y="112">digit</text></g><path d="M632 108h10"></path><path d="M572 108a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10"></path><g><path d="M572 128h60"></path></g><path d="M632 128a10 10 0 0 0 10 -10v0a10 10 0 0 0 -10 -10"></path></g><path d="M642 108h10"></path></g><path d="M652 108a10 10 0 0 0 10 -10v-28a10 10 0 0 1 10 -10"></path></g><path d="M 672 60 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
   3.213  
   3.214 -		<dt id="<<<dimension>>>-diagram"><<<dimension>>></dt>
   3.215 -		<dd><svg class="railroad-diagram" width="281" height="62"><g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 31h10"></path><g><path d="M50 31h0"></path><path d="M134 31h0"></path><rect x="50" y="20" width="84" height="22"></rect><text x="92" y="35"><<<number>>></text></g><path d="M134 31h10"></path><path d="M144 31h10"></path><g><path d="M154 31h0"></path><path d="M230 31h0"></path><rect x="154" y="20" width="76" height="22"></rect><text x="192" y="35"><<<ident>>></text></g><path d="M230 31h10"></path><path d="M 240 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
   3.216 -
   3.217 -		<dt id="<<<percentage>>>-diagram"><<<percentage>>></dt>
   3.218 -		<dd><svg class="railroad-diagram" width="233" height="62"><g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 31h10"></path><g><path d="M50 31h0"></path><path d="M134 31h0"></path><rect x="50" y="20" width="84" height="22"></rect><text x="92" y="35"><<<number>>></text></g><path d="M134 31h10"></path><path d="M144 31h10"></path><g><path d="M154 31h0"></path><path d="M182 31h0"></path><rect x="154" y="20" width="28" height="22" rx="10" ry="10"></rect><text x="168" y="35">%</text></g><path d="M182 31h10"></path><path d="M 192 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
   3.219 -
   3.220 -		<dt id="<<<unicode-range>>>-diagram"><<<unicode-range>>></dt>
   3.221 +		<dt id="〈dimension〉-diagram">〈dimension〉</dt>
   3.222 +		<dd><svg class="railroad-diagram" width="281" height="62"><g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 31h10"></path><g><path d="M50 31h0"></path><path d="M134 31h0"></path><rect x="50" y="20" width="84" height="22"></rect><text x="92" y="35">〈number〉</text></g><path d="M134 31h10"></path><path d="M144 31h10"></path><g><path d="M154 31h0"></path><path d="M230 31h0"></path><rect x="154" y="20" width="76" height="22"></rect><text x="192" y="35">〈ident〉</text></g><path d="M230 31h10"></path><path d="M 240 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
   3.223 +
   3.224 +		<dt id="〈percentage〉-diagram">〈percentage〉</dt>
   3.225 +		<dd><svg class="railroad-diagram" width="233" height="62"><g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 31h10"></path><g><path d="M50 31h0"></path><path d="M134 31h0"></path><rect x="50" y="20" width="84" height="22"></rect><text x="92" y="35">〈number〉</text></g><path d="M134 31h10"></path><path d="M144 31h10"></path><g><path d="M154 31h0"></path><path d="M182 31h0"></path><rect x="154" y="20" width="28" height="22" rx="10" ry="10"></rect><text x="168" y="35">%</text></g><path d="M182 31h10"></path><path d="M 192 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
   3.226 +
   3.227 +		<dt id="〈unicode-range〉-diagram">〈unicode-range〉</dt>
   3.228  		<dd><svg class="railroad-diagram" width="600" height="222"><g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><g><path d="M40 31h0"></path><path d="M108 31h0"></path><path d="M40 31h20"></path><g><path d="M60 31h0"></path><path d="M88 31h0"></path><rect x="60" y="20" width="28" height="22" rx="10" ry="10"></rect><text x="74" y="35">U</text></g><path d="M88 31h20"></path><path d="M40 31a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10"></path><g><path d="M60 61h0"></path><path d="M88 61h0"></path><rect x="60" y="50" width="28" height="22" rx="10" ry="10"></rect><text x="74" y="65">u</text></g><path d="M88 61a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10"></path></g><path d="M108 31h10"></path><g><path d="M118 31h0"></path><path d="M146 31h0"></path><rect x="118" y="20" width="28" height="22" rx="10" ry="10"></rect><text x="132" y="35">+</text></g><path d="M146 31h10"></path><g><path d="M156 31h0"></path><path d="M559 31h0"></path><path d="M156 31h20"></path><g><path d="M176 31h115.5"></path><path d="M423.5 31h115.5"></path><path d="M291.5 31h10"></path><g><path d="M301.5 31h0"></path><path d="M413.5 31h0"></path><path d="M301.5 31h10"></path><g><path d="M311.5 31h0"></path><path d="M403.5 31h0"></path><rect x="311.5" y="20" width="92" height="22"></rect><text x="357.5" y="35">hex digit</text></g><path d="M403.5 31h10"></path><path d="M311.5 31a10 10 0 0 0 -10 10v10a10 10 0 0 0 10 10"></path><g><path d="M311.5 61h9.5"></path><path d="M394 61h9.5"></path><text x="357.5" y="66" class="comment">1-6 times</text></g><path d="M403.5 61a10 10 0 0 0 10 -10v-10a10 10 0 0 0 -10 -10"></path></g><path d="M413.5 31h10"></path></g><path d="M539 31h20"></path><path d="M156 31a10 10 0 0 1 10 10v50a10 10 0 0 0 10 10"></path><g><path d="M176 101h0"></path><path d="M539 101h0"></path><g><path d="M176 101h0"></path><path d="M328 101h0"></path><path d="M176 101a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path><g><path d="M196 81h112"></path></g><path d="M308 81a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><path d="M176 101h20"></path><g><path d="M196 101h0"></path><path d="M308 101h0"></path><path d="M196 101h10"></path><g><path d="M206 101h0"></path><path d="M298 101h0"></path><rect x="206" y="90" width="92" height="22"></rect><text x="252" y="105">hex digit</text></g><path d="M298 101h10"></path><path d="M206 101a10 10 0 0 0 -10 10v10a10 10 0 0 0 10 10"></path><g><path d="M206 131h9.5"></path><path d="M288.5 131h9.5"></path><text x="252" y="136" class="comment">1-5 times</text></g><path d="M298 131a10 10 0 0 0 10 -10v-10a10 10 0 0 0 -10 -10"></path></g><path d="M308 101h20"></path></g><path d="M328 101h10"></path><g><path d="M338 101h0"></path><path d="M529 101h0"></path><path d="M338 101h10"></path><g><path d="M348 101h71.5"></path><path d="M447.5 101h71.5"></path><rect x="419.5" y="90" width="28" height="22" rx="10" ry="10"></rect><text x="433.5" y="105">?</text></g><path d="M519 101h10"></path><path d="M348 101a10 10 0 0 0 -10 10v10a10 10 0 0 0 10 10"></path><g><path d="M348 131h0"></path><path d="M519 131h0"></path><text x="433.5" y="136" class="comment">1 to (6 - digits) times</text></g><path d="M519 131a10 10 0 0 0 10 -10v-10a10 10 0 0 0 -10 -10"></path></g><path d="M529 101h10"></path></g><path d="M539 101a10 10 0 0 0 10 -10v-50a10 10 0 0 1 10 -10"></path><path d="M156 31a10 10 0 0 1 10 10v110a10 10 0 0 0 10 10"></path><g><path d="M176 161h25.5"></path><path d="M513.5 161h25.5"></path><path d="M201.5 161h10"></path><g><path d="M211.5 161h0"></path><path d="M323.5 161h0"></path><path d="M211.5 161h10"></path><g><path d="M221.5 161h0"></path><path d="M313.5 161h0"></path><rect x="221.5" y="150" width="92" height="22"></rect><text x="267.5" y="165">hex digit</text></g><path d="M313.5 161h10"></path><path d="M221.5 161a10 10 0 0 0 -10 10v10a10 10 0 0 0 10 10"></path><g><path d="M221.5 191h9.5"></path><path d="M304 191h9.5"></path><text x="267.5" y="196" class="comment">1-6 times</text></g><path d="M313.5 191a10 10 0 0 0 10 -10v-10a10 10 0 0 0 -10 -10"></path></g><path d="M323.5 161h10"></path><path d="M333.5 161h10"></path><g><path d="M343.5 161h0"></path><path d="M371.5 161h0"></path><rect x="343.5" y="150" width="28" height="22" rx="10" ry="10"></rect><text x="357.5" y="165">-</text></g><path d="M371.5 161h10"></path><path d="M381.5 161h10"></path><g><path d="M391.5 161h0"></path><path d="M503.5 161h0"></path><path d="M391.5 161h10"></path><g><path d="M401.5 161h0"></path><path d="M493.5 161h0"></path><rect x="401.5" y="150" width="92" height="22"></rect><text x="447.5" y="165">hex digit</text></g><path d="M493.5 161h10"></path><path d="M401.5 161a10 10 0 0 0 -10 10v10a10 10 0 0 0 10 10"></path><g><path d="M401.5 191h9.5"></path><path d="M484 191h9.5"></path><text x="447.5" y="196" class="comment">1-6 times</text></g><path d="M493.5 191a10 10 0 0 0 10 -10v-10a10 10 0 0 0 -10 -10"></path></g><path d="M503.5 161h10"></path></g><path d="M539 161a10 10 0 0 0 10 -10v-110a10 10 0 0 1 10 -10"></path></g><path d="M 559 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
   3.229  
   3.230 -		<dt id="<<<include-match>>>-diagram"><<<include-match>>></dt>
   3.231 +		<dt id="〈include-match〉-diagram">〈include-match〉</dt>
   3.232  		<dd><svg class="railroad-diagram" width="137" height="62"><g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 31h10"></path><g><path d="M50 31h0"></path><path d="M86 31h0"></path><rect x="50" y="20" width="36" height="22" rx="10" ry="10"></rect><text x="68" y="35">~=</text></g><path d="M86 31h10"></path><path d="M 96 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
   3.233  
   3.234 -		<dt id="<<<dash-match>>>-diagram"><<<dash-match>>></dt>
   3.235 +		<dt id="〈dash-match〉-diagram">〈dash-match〉</dt>
   3.236  		<dd><svg class="railroad-diagram" width="137" height="62"><g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 31h10"></path><g><path d="M50 31h0"></path><path d="M86 31h0"></path><rect x="50" y="20" width="36" height="22" rx="10" ry="10"></rect><text x="68" y="35">|=</text></g><path d="M86 31h10"></path><path d="M 96 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
   3.237  
   3.238 -		<dt id="<<<prefix-match>>>-diagram"><<<prefix-match>>></dt>
   3.239 +		<dt id="〈prefix-match〉-diagram">〈prefix-match〉</dt>
   3.240  		<dd><svg class="railroad-diagram" width="137" height="62"><g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 31h10"></path><g><path d="M50 31h0"></path><path d="M86 31h0"></path><rect x="50" y="20" width="36" height="22" rx="10" ry="10"></rect><text x="68" y="35">^=</text></g><path d="M86 31h10"></path><path d="M 96 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
   3.241  
   3.242 -		<dt id="<<<suffix-match>>>-diagram"><<<suffix-match>>></dt>
   3.243 +		<dt id="〈suffix-match〉-diagram">〈suffix-match〉</dt>
   3.244  		<dd><svg class="railroad-diagram" width="137" height="62"><g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 31h10"></path><g><path d="M50 31h0"></path><path d="M86 31h0"></path><rect x="50" y="20" width="36" height="22" rx="10" ry="10"></rect><text x="68" y="35">$=</text></g><path d="M86 31h10"></path><path d="M 96 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
   3.245  
   3.246 -		<dt id="<<<substring-match>>>-diagram"><<<substring-match>>></dt>
   3.247 +		<dt id="〈substring-match〉-diagram">〈substring-match〉</dt>
   3.248  		<dd><svg class="railroad-diagram" width="137" height="62"><g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 31h10"></path><g><path d="M50 31h0"></path><path d="M86 31h0"></path><rect x="50" y="20" width="36" height="22" rx="10" ry="10"></rect><text x="68" y="35">*=</text></g><path d="M86 31h10"></path><path d="M 96 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
   3.249  
   3.250 -		<dt id="<<<column>>>-diagram"><<<column>>></dt>
   3.251 +		<dt id="〈column〉-diagram">〈column〉</dt>
   3.252  		<dd><svg class="railroad-diagram" width="137" height="62"><g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 31h10"></path><g><path d="M50 31h0"></path><path d="M86 31h0"></path><rect x="50" y="20" width="36" height="22" rx="10" ry="10"></rect><text x="68" y="35">||</text></g><path d="M86 31h10"></path><path d="M 96 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
   3.253  
   3.254 -		<dt id="<<<CDO>>>-diagram"><<<CDO>>></dt>
   3.255 +		<dt id="〈cdo〉-diagram">〈CDO〉</dt>
   3.256  		<dd><svg class="railroad-diagram" width="153" height="62"><g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 31h10"></path><g><path d="M50 31h0"></path><path d="M102 31h0"></path><rect x="50" y="20" width="52" height="22" rx="10" ry="10"></rect><text x="76" y="35">&lt;!--</text></g><path d="M102 31h10"></path><path d="M 112 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
   3.257  
   3.258 -		<dt id="<<<CDC>>>-diagram"><<<CDC>>></dt>
   3.259 +		<dt id="〈cdc〉-diagram">〈CDC〉</dt>
   3.260  		<dd><svg class="railroad-diagram" width="145" height="62"><g transform="translate(.5 .5)"><path d="M 20 21 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><path d="M40 31h10"></path><g><path d="M50 31h0"></path><path d="M94 31h0"></path><rect x="50" y="20" width="44" height="22" rx="10" ry="10"></rect><text x="72" y="35">--&gt;</text></g><path d="M94 31h10"></path><path d="M 104 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
   3.261  
   3.262  	</dl>
   3.263  
   3.264 +	</dl>
   3.265 +
   3.266  <h3>
   3.267  Definitions</h3>
   3.268  
   3.269  	This section defines several terms used during the tokenization phase.
   3.270  
   3.271  	<dl>
   3.272 -		<dt><dfn>next input character</dfn>
   3.273 +		<dt><dfn>code point</dfn>
   3.274  		<dd>
   3.275 -			The first character in the input stream that has not yet been consumed.
   3.276 -
   3.277 -		<dt><dfn>current input character</dfn>
   3.278 +			A <a href="http://unicode.org/glossary/#code_point">Unicode code point</a>.
   3.279 +			Any value in the Unicode codespace; that is, the range of integers from 0 to (hexadecimal) 10FFFF.
   3.280 +
   3.281 +		<dt><dfn>next input code point</dfn>
   3.282  		<dd>
   3.283 -			The last character to have been consumed.
   3.284 -
   3.285 -		<dt><dfn>reconsume the current input character</dfn>
   3.286 +			The first <a>code point</a> in the input stream that has not yet been consumed.
   3.287 +
   3.288 +		<dt><dfn>current input code point</dfn>
   3.289  		<dd>
   3.290 -			Push the <a>current input character</a> back onto the front of the input stream,
   3.291 -			so that the next time you are instructed to consume the next input character,
   3.292 -			it will instead reconsume the <a>current input character</a>.
   3.293 -
   3.294 -		<dt><dfn>EOF character</dfn>
   3.295 +			The last <a>code point</a> to have been consumed.
   3.296 +
   3.297 +		<dt><dfn>reconsume the current input code point</dfn>
   3.298  		<dd>
   3.299 -			A conceptual character representing the end of the input stream.
   3.300 +			Push the <a>current input code point</a> back onto the front of the input stream,
   3.301 +			so that the next time you are instructed to consume the <a>next input code point</a>,
   3.302 +			it will instead reconsume the <a>current input code point</a>.
   3.303 +
   3.304 +		<dt><dfn>EOF code point</dfn>
   3.305 +		<dd>
   3.306 +			A conceptual <a>code point</a> representing the end of the input stream.
   3.307  			Whenever the input stream is empty,
   3.308 -			the <a>next input character</a> is always an EOF character.
   3.309 +			the <a>next input code point</a> is always an EOF code point.
   3.310  
   3.311  		<dt><dfn>digit</dfn>
   3.312  		<dd>
   3.313 -			A character between U+0030 DIGIT ZERO (0) and U+0039 DIGIT NINE (9).
   3.314 +			A <a>code point</a> between U+0030 DIGIT ZERO (0) and U+0039 DIGIT NINE (9).
   3.315  
   3.316  		<dt><dfn>hex digit</dfn>
   3.317  		<dd>
   3.318  			A <a>digit</a>,
   3.319 -			or a character between U+0041 LATIN CAPITAL LETTER A (A) and U+0046 LATIN CAPITAL LETTER F (F),
   3.320 -			or a character between U+0061 LATIN SMALL LETTER A (a) and U+0066 LATIN SMALL LETTER F (f).
   3.321 +			or a <a>code point</a> between U+0041 LATIN CAPITAL LETTER A (A) and U+0046 LATIN CAPITAL LETTER F (F),
   3.322 +			or a <a>code point</a> between U+0061 LATIN SMALL LETTER A (a) and U+0066 LATIN SMALL LETTER F (f).
   3.323  
   3.324  		<dt><dfn>uppercase letter</dfn>
   3.325  		<dd>
   3.326 -			A character between U+0041 LATIN CAPITAL LETTER A (A) and U+005A LATIN CAPITAL LETTER Z (Z).
   3.327 +			A <a>code point</a> between U+0041 LATIN CAPITAL LETTER A (A) and U+005A LATIN CAPITAL LETTER Z (Z).
   3.328  
   3.329  		<dt><dfn>lowercase letter</dfn>
   3.330  		<dd>
   3.331 -			A character between U+0061 LATIN SMALL LETTER A (a) and U+007A LATIN SMALL LETTER Z (z).
   3.332 +			A <a>code point</a> between U+0061 LATIN SMALL LETTER A (a) and U+007A LATIN SMALL LETTER Z (z).
   3.333  
   3.334  		<dt><dfn>letter</dfn>
   3.335  		<dd>
   3.336  			An <a>uppercase letter</a>
   3.337  			or a <a>lowercase letter</a>.
   3.338  
   3.339 -		<dt><dfn>non-ASCII character</dfn>
   3.340 +		<dt><dfn>non-ASCII code point</dfn>
   3.341  		<dd>
   3.342 -			A character with a codepoint equal to or greater than U+0080 &lt;control>.
   3.343 -
   3.344 -		<dt><dfn>name-start character</dfn>
   3.345 +			A <a>code point</a> with a value equal to or greater than U+0080 &lt;control>.
   3.346 +
   3.347 +		<dt><dfn>name-start code point</dfn>
   3.348  		<dd>
   3.349  			A <a>letter</a>,
   3.350 -			a <a>non-ASCII character</a>,
   3.351 +			a <a>non-ASCII code point</a>,
   3.352  			or U+005F LOW LINE (_).
   3.353  
   3.354 -		<dt><dfn>name character</dfn>
   3.355 +		<dt><dfn>name code point</dfn>
   3.356  		<dd>
   3.357 -			A <a>name-start character</a>,
   3.358 +			A <a>name-start code point</a>,
   3.359  			A <a>digit</a>,
   3.360  			or U+002D HYPHEN-MINUS (-).
   3.361  
   3.362 -		<dt><dfn>non-printable character</dfn>
   3.363 +		<dt><dfn>non-printable code point</dfn>
   3.364  		<dd>
   3.365 -			A character between U+0000 NULL and U+0008 BACKSPACE,
   3.366 +			A <a>code point</a> between U+0000 NULL and U+0008 BACKSPACE,
   3.367  			or U+000B LINE TABULATION,
   3.368 -			or a character between U+000E SHIFT OUT and U+001F INFORMATION SEPARATOR ONE,
   3.369 +			or a <a>code point</a> between U+000E SHIFT OUT and U+001F INFORMATION SEPARATOR ONE,
   3.370  			or U+007F DELETE.
   3.371  
   3.372  		<dt><dfn>newline</dfn>
   3.373 @@ -601,23 +609,23 @@
   3.374  		<dt><dfn>whitespace</dfn>
   3.375  		<dd>A <a>newline</a>, U+0009 CHARACTER TABULATION, or U+0020 SPACE.
   3.376  
   3.377 -		<dt><dfn>maximum allowed codepoint</dfn>
   3.378 -		<dd>The greatest codepoint defined by Unicode.  This is currently U+10FFFF.
   3.379 +		<dt><dfn>maximum allowed code point</dfn>
   3.380 +		<dd>The greatest <a>code point</a> defined by Unicode.  This is currently U+10FFFF.
   3.381  
   3.382  	</dl>
   3.383  
   3.384  <h3>
   3.385  Tokenizer Algorithms</h3>
   3.386  
   3.387 -	The algorithms defined in this section transform a stream of characters into a stream of tokens.
   3.388 +	The algorithms defined in this section transform a stream of <a>code points</a> into a stream of tokens.
   3.389  
   3.390  <h4>
   3.391  <dfn>Consume a token</dfn></h4>
   3.392  
   3.393 -	This section describes how to <a>consume a token</a> from a stream of characters.
   3.394 +	This section describes how to <a>consume a token</a> from a stream of <a>code points</a>.
   3.395  	It will return a single token of any type.
   3.396  
   3.397 -	Consume the <a>next input character</a>.
   3.398 +	Consume the <a>next input code point</a>.
   3.399  
   3.400  	<dl>
   3.401  		<dt><a>whitespace</a>
   3.402 @@ -627,13 +635,13 @@
   3.403  
   3.404  		<dt>U+0022 QUOTATION MARK (")
   3.405  		<dd>
   3.406 -			<a>Consume a string token</a> with the ending character U+0022 QUOTATION MARK (")
   3.407 +			<a>Consume a string token</a> with the ending <a>code point</a> U+0022 QUOTATION MARK (")
   3.408  			and return it.
   3.409  
   3.410  		<dt>U+0023 NUMBER SIGN (#)
   3.411  		<dd>
   3.412 -			If the <a>next input character</a> is a <a>name character</a>
   3.413 -			or the <a title="next input character">next two input characters</a>
   3.414 +			If the <a>next input code point</a> is a <a>name code point</a>
   3.415 +			or the <a title="next input code point">next two input code points</a>
   3.416  			<a>are a valid escape</a>,
   3.417  			then:
   3.418  
   3.419 @@ -642,7 +650,7 @@
   3.420  					Create a <<<hash>>>.
   3.421  
   3.422  				<li>
   3.423 -					If the <a title="next input character">next 3 input characters</a> <a>would start an identifier</a>,
   3.424 +					If the <a title="next input code point">next 3 input code points</a> <a>would start an identifier</a>,
   3.425  					set the <<<hash>>>’s type flag to "id".
   3.426  
   3.427  				<li>
   3.428 @@ -655,22 +663,22 @@
   3.429  
   3.430  			Otherwise,
   3.431  			return a <<<delim>>>
   3.432 -			with its value set to the <a>current input character</a>.
   3.433 +			with its value set to the <a>current input code point</a>.
   3.434  
   3.435  		<dt>U+0024 DOLLAR SIGN ($)
   3.436  		<dd>
   3.437 -			If the <a>next input character</a> is
   3.438 +			If the <a>next input code point</a> is
   3.439  			U+003D EQUALS SIGN (=),
   3.440  			consume it
   3.441  			and return a <<<suffix-match>>>.
   3.442  
   3.443  			Otherwise,
   3.444  			emit a <<<delim>>>
   3.445 -			with its value set to the <a>current input character</a>.
   3.446 +			with its value set to the <a>current input code point</a>.
   3.447  
   3.448  		<dt>U+0027 APOSTROPHE (&apos;)
   3.449  		<dd>
   3.450 -			<a>Consume a string token</a> with the ending character U+0027 APOSTROPHE (&apos;)
   3.451 +			<a>Consume a string token</a> with the ending <a>code point</a> U+0027 APOSTROPHE (&apos;)
   3.452  			and return it.
   3.453  
   3.454  		<dt>U+0028 LEFT PARENTHESIS (()
   3.455 @@ -683,25 +691,25 @@
   3.456  
   3.457  		<dt>U+002A ASTERISK (*)
   3.458  		<dd>
   3.459 -			If the <a>next input character</a> is
   3.460 +			If the <a>next input code point</a> is
   3.461  			U+003D EQUALS SIGN (=),
   3.462  			consume it
   3.463  			and return a <<<substring-match>>>.
   3.464  
   3.465  			Otherwise,
   3.466  			return a <<<delim>>>
   3.467 -			with its value set to the <a>current input character</a>.
   3.468 +			with its value set to the <a>current input code point</a>.
   3.469  
   3.470  		<dt>U+002B PLUS SIGN (+)
   3.471  		<dd>
   3.472  			If the input stream <a>starts with a number</a>,
   3.473 -			<a>reconsume the current input character</a>,
   3.474 +			<a>reconsume the current input code point</a>,
   3.475  			<a>consume a numeric token</a>
   3.476  			and return it.
   3.477  
   3.478  			Otherwise,
   3.479  			return a <<<delim>>>
   3.480 -			with its value set to the <a>current input character</a>.
   3.481 +			with its value set to the <a>current input code point</a>.
   3.482  
   3.483  		<dt>U+002C COMMA (,)
   3.484  		<dd>
   3.485 @@ -710,18 +718,18 @@
   3.486  		<dt>U+002D HYPHEN-MINUS (-)
   3.487  		<dd>
   3.488  			If the input stream <a>starts with a number</a>,
   3.489 -			<a>reconsume the current input character</a>,
   3.490 +			<a>reconsume the current input code point</a>,
   3.491  			<a>consume a numeric token</a>,
   3.492  			and return it.
   3.493  
   3.494  			Otherwise,
   3.495  			if the input stream <a>starts with an identifier</a>,
   3.496 -			<a>reconsume the current input character</a>,
   3.497 +			<a>reconsume the current input code point</a>,
   3.498  			<a>consume an ident-like token</a>,
   3.499  			and return it.
   3.500  
   3.501  			Otherwise,
   3.502 -			if the <a title="next input character">next 2 input characters</a> are
   3.503 +			if the <a title="next input code point">next 2 input code points</a> are
   3.504  			U+002D HYPHEN-MINUS
   3.505  			U+003E GREATER-THAN SIGN
   3.506  			(->),
   3.507 @@ -730,32 +738,32 @@
   3.508  
   3.509  			Otherwise,
   3.510  			return a <<<delim>>>
   3.511 -			with its value set to the <a>current input character</a>.
   3.512 +			with its value set to the <a>current input code point</a>.
   3.513  
   3.514  		<dt>U+002E FULL STOP (.)
   3.515  		<dd>
   3.516  			If the input stream <a>starts with a number</a>,
   3.517 -			<a>reconsume the current input character</a>,
   3.518 +			<a>reconsume the current input code point</a>,
   3.519  			<a>consume a numeric token</a>,
   3.520  			and return it.
   3.521  
   3.522  			Otherwise,
   3.523  			return a <<<delim>>>
   3.524 -			with its value set to the <a>current input character</a>.
   3.525 +			with its value set to the <a>current input code point</a>.
   3.526  
   3.527  		<dt>U+002F SOLIDUS (/)
   3.528  		<dd>
   3.529 -			If the <a>next input character</a> is U+002A ASTERISK (*),
   3.530 +			If the <a>next input code point</a> is U+002A ASTERISK (*),
   3.531  			consume it
   3.532 -			and all following characters up to and including
   3.533 +			and all following <a>code points</a> up to and including
   3.534  			the first U+002A ASTERISK (*) followed by a U+002F SOLIDUS (/),
   3.535 -			or up to an EOF character.
   3.536 +			or up to an EOF code point.
   3.537  			Then <a>consume a token</a>
   3.538  			and return it.
   3.539  
   3.540  			Otherwise,
   3.541  			return a <<<delim>>>
   3.542 -			with its value set to the <a>current input character</a>.
   3.543 +			with its value set to the <a>current input code point</a>.
   3.544  
   3.545  		<dt>U+003A COLON (:)
   3.546  		<dd>
   3.547 @@ -767,7 +775,7 @@
   3.548  
   3.549  		<dt>U+003C LESS-THAN SIGN (&lt;)
   3.550  		<dd>
   3.551 -			If the <a title="next input character">next 3 input characters</a> are
   3.552 +			If the <a title="next input code point">next 3 input code points</a> are
   3.553  			U+0021 EXCLAMATION MARK
   3.554  			U+002D HYPHEN-MINUS
   3.555  			U+002D HYPHEN-MINUS
   3.556 @@ -777,11 +785,11 @@
   3.557  
   3.558  			Otherwise,
   3.559  			return a <<<delim>>>
   3.560 -			with its value set to the <a>current input character</a>.
   3.561 +			with its value set to the <a>current input code point</a>.
   3.562  
   3.563  		<dt>U+0040 COMMERCIAL AT (@)
   3.564  		<dd>
   3.565 -			If the <a title="next input character">next 3 input characters</a>
   3.566 +			If the <a title="next input code point">next 3 input code points</a>
   3.567  			<a>would start an identifier</a>,
   3.568  			<a>consume a name</a>,
   3.569  			create an <<<at-keyword>>> with its value set to the returned value,
   3.570 @@ -789,7 +797,7 @@
   3.571  
   3.572  			Otherwise,
   3.573  			return a <<<delim>>>
   3.574 -			with its value set to the <a>current input character</a>.
   3.575 +			with its value set to the <a>current input code point</a>.
   3.576  
   3.577  		<dt>U+005B LEFT SQUARE BRACKET ([)
   3.578  		<dd>
   3.579 @@ -798,14 +806,14 @@
   3.580  		<dt>U+005C REVERSE SOLIDUS (\)
   3.581  		<dd>
   3.582  			If the input stream <a>starts with a valid escape</a>,
   3.583 -			<a>reconsume the current input character</a>,
   3.584 +			<a>reconsume the current input code point</a>,
   3.585  			<a>consume an ident-like token</a>,
   3.586  			and return it.
   3.587  
   3.588  			Otherwise,
   3.589  			this is a <a>parse error</a>.
   3.590  			Return a <<<delim>>>
   3.591 -			with its value set to the <a>current input character</a>.
   3.592 +			with its value set to the <a>current input code point</a>.
   3.593  
   3.594  		<dt>U+005D RIGHT SQUARE BRACKET (])
   3.595  		<dd>
   3.596 @@ -813,14 +821,14 @@
   3.597  
   3.598  		<dt>U+005E CIRCUMFLEX ACCENT (^)
   3.599  		<dd>
   3.600 -			If the <a>next input character</a> is
   3.601 +			If the <a>next input code point</a> is
   3.602  			U+003D EQUALS SIGN (=),
   3.603  			consume it
   3.604  			and return a <<<prefix-match>>>.
   3.605  
   3.606  			Otherwise,
   3.607  			return a <<<delim>>>
   3.608 -			with its value set to the <a>current input character</a>.
   3.609 +			with its value set to the <a>current input code point</a>.
   3.610  
   3.611  		<dt>U+007B LEFT CURLY BRACKET ({)
   3.612  		<dd>
   3.613 @@ -838,53 +846,53 @@
   3.614  		<dt>U+0055 LATIN CAPITAL LETTER U (U)
   3.615  		<dt>U+0075 LATIN SMALL LETTER U (u)
   3.616  		<dd>
   3.617 -			If the <a title="next input character">next 2 input character</a> are
   3.618 +			If the <a title="next input code point">next 2 input code points</a> are
   3.619  			U+002B PLUS SIGN (+)
   3.620  			followed by a <a>hex digit</a>
   3.621  			or U+003F QUESTION MARK (?),
   3.622 -			consume the <a>next input character</a>.
   3.623 +			consume the <a>next input code point</a>.
   3.624  			<span class='note'>Note: don't consume both of them.</span>
   3.625  			<a>Consume a unicode-range token</a>
   3.626  			and return it.
   3.627  
   3.628  			Otherwise,
   3.629 -			<a>reconsume the current input character</a>,
   3.630 +			<a>reconsume the current input code point</a>,
   3.631  			<a>consume an ident-like token</a>,
   3.632  			and return it.
   3.633  
   3.634 -		<dt><a>name-start character</a>
   3.635 +		<dt><a>name-start code point</a>
   3.636  		<dd>
   3.637 -			<a>Reconsume the current input character</a>,
   3.638 +			<a>Reconsume the current input code point</a>,
   3.639  			<a>consume an ident-like token</a>,
   3.640  			and return it.
   3.641  
   3.642  		<dt>U+007C VERTICAL LINE (|)
   3.643  		<dd>
   3.644 -			If the <a>next input character</a> is
   3.645 +			If the <a>next input code point</a> is
   3.646  			U+003D EQUALS SIGN (=),
   3.647  			consume it
   3.648  			and return a <<<dash-match>>>.
   3.649  
   3.650  			Otherwise,
   3.651 -			if the <a>next input character</a> is
   3.652 +			if the <a>next input code point</a> is
   3.653  			U+0073 VERTICAL LINE (|),
   3.654  			consume it
   3.655  			and return a <<<column>>>.
   3.656  
   3.657  			Otherwise,
   3.658  			return a <<<delim>>>
   3.659 -			with its value set to the <a>current input character</a>.
   3.660 +			with its value set to the <a>current input code point</a>.
   3.661  
   3.662  		<dt>U+007E TILDE (~)
   3.663  		<dd>
   3.664 -			If the <a>next input character</a> is
   3.665 +			If the <a>next input code point</a> is
   3.666  			U+003D EQUALS SIGN (=),
   3.667  			consume it
   3.668  			and return an <<<include-match>>>.
   3.669  
   3.670  			Otherwise,
   3.671  			return a <<<delim>>>
   3.672 -			with its value set to the <a>current input character</a>.
   3.673 +			with its value set to the <a>current input code point</a>.
   3.674  
   3.675  		<dt>EOF
   3.676  		<dd>
   3.677 @@ -893,7 +901,7 @@
   3.678  		<dt>anything else
   3.679  		<dd>
   3.680  			Return a <<<delim>>>
   3.681 -			with its value set to the <a>current input character</a>.
   3.682 +			with its value set to the <a>current input code point</a>.
   3.683  	</dl>
   3.684  
   3.685  
   3.686 @@ -902,12 +910,12 @@
   3.687  <h4>
   3.688  <dfn>Consume a numeric token</dfn></h4>
   3.689  
   3.690 -	This section describes how to <a>consume a numeric token</a> from a stream of characters.
   3.691 +	This section describes how to <a>consume a numeric token</a> from a stream of <a>code points</a>.
   3.692  	It returns either a <<<number>>>, <<<percentage>>>, or <<<dimension>>>.
   3.693  
   3.694  	<a>Consume a number</a>.
   3.695  
   3.696 -	If the <a title="next input character">next 3 input characters</a> <a>would start an identifier</a>,
   3.697 +	If the <a title="next input code point">next 3 input code points</a> <a>would start an identifier</a>,
   3.698  	then:
   3.699  
   3.700  	<ol>
   3.701 @@ -921,7 +929,7 @@
   3.702  	</ol>
   3.703  
   3.704  	Otherwise,
   3.705 -	if the <a>next input character</a> is U+0025 PERCENTAGE SIGN (%),
   3.706 +	if the <a>next input code point</a> is U+0025 PERCENTAGE SIGN (%),
   3.707  	consume it.
   3.708  	Create a <<<percentage>>> with the same representation and value as the returned number,
   3.709  	and return it.
   3.710 @@ -934,19 +942,19 @@
   3.711  <h4>
   3.712  <dfn>Consume an ident-like token</dfn></h4>
   3.713  
   3.714 -	This section describes how to <a>consume an ident-like token</a> from a stream of characters.
   3.715 +	This section describes how to <a>consume an ident-like token</a> from a stream of <a>code points</a>.
   3.716  	It returns an <<<ident>>>, <<<function>>>, <<<url>>>, or <<<bad-url>>>.
   3.717  
   3.718  	<a>Consume a name</a>.
   3.719  
   3.720  	If the returned string's value is an <a>ASCII case-insensitive</a> match for "url",
   3.721 -	and the <a>next input character</a> is U+0028 LEFT PARENTHESIS ((),
   3.722 +	and the <a>next input code point</a> is U+0028 LEFT PARENTHESIS ((),
   3.723  	consume it.
   3.724  	<a>Consume a url token</a>,
   3.725  	and return it.
   3.726  
   3.727  	Otherwise,
   3.728 -	if the <a>next input character</a> is U+0028 LEFT PARENTHESIS ((),
   3.729 +	if the <a>next input code point</a> is U+0028 LEFT PARENTHESIS ((),
   3.730  	consume it.
   3.731  	Create a <<<function>>> token
   3.732  	with its value set to the returned string
   3.733 @@ -961,18 +969,18 @@
   3.734  <h4>
   3.735  <dfn>Consume a string token</dfn></h4>
   3.736  
   3.737 -	This section describes how to <a>consume a string token</a> from a stream of characters.
   3.738 +	This section describes how to <a>consume a string token</a> from a stream of <a>code points</a>.
   3.739  	It returns either a <<<string>>> or <<<bad-string>>>.
   3.740  
   3.741 -	This algorithm must be called with an <var>ending character</var>,
   3.742 -	which denotes the character that ends the string.
   3.743 +	This algorithm must be called with an <var>ending code point</var>,
   3.744 +	which denotes the <a>code point</a> that ends the string.
   3.745  
   3.746  	Initially create a <<<string>>> with its value set to the empty string.
   3.747  
   3.748 -	Repeatedly consume the <a>next input character</a> from the stream:
   3.749 +	Repeatedly consume the <a>next input code point</a> from the stream:
   3.750  
   3.751  	<dl>
   3.752 -		<dt><var>ending character</var>
   3.753 +		<dt><var>ending code point</var>
   3.754  		<dt>EOF
   3.755  		<dd>
   3.756  			Return the <<<string>>>.
   3.757 @@ -980,33 +988,33 @@
   3.758  		<dt><a>newline</a>
   3.759  		<dd>
   3.760  			This is a <a>parse error</a>.
   3.761 -			<a>Reconsume the current input character</a>,
   3.762 +			<a>Reconsume the current input code point</a>,
   3.763  			create a <<<bad-string>>>, and return it.
   3.764  
   3.765  		<dt>U+005C REVERSE SOLIDUS (\)
   3.766  		<dd>
   3.767 -			If the <a>next input character</a> is EOF,
   3.768 +			If the <a>next input code point</a> is EOF,
   3.769  			do nothing.
   3.770  
   3.771  			Otherwise,
   3.772 -			if the <a>next input character</a> is a newline,
   3.773 +			if the <a>next input code point</a> is a newline,
   3.774  			consume it.
   3.775  
   3.776  			Otherwise,
   3.777  			if the stream <a>starts with a valid escape</a>,
   3.778 -			<a>consume an escaped character</a>
   3.779 -			and append the returned character to the <<<string>>>’s value.
   3.780 +			<a>consume an escaped code point</a>
   3.781 +			and append the returned <a>code point</a> to the <<<string>>>’s value.
   3.782  
   3.783  		<dt>anything else
   3.784  		<dd>
   3.785 -			Append the <a>current input character</a> to the <<<string>>>’s value.
   3.786 +			Append the <a>current input code point</a> to the <<<string>>>’s value.
   3.787  	</dl>
   3.788  
   3.789  
   3.790  <h4>
   3.791  <dfn>Consume a url token</dfn></h4>
   3.792  
   3.793 -	This section describes how to <a>consume a url token</a> from a stream of characters.
   3.794 +	This section describes how to <a>consume a url token</a> from a stream of <a>code points</a>.
   3.795  	It returns either a <<<url>>> or a <<<bad-url>>>.
   3.796  
   3.797  	Note: This algorithm assumes that the initial "url(" has already been consumed.
   3.798 @@ -1021,16 +1029,16 @@
   3.799  			Consume as much <a>whitespace</a> as possible.
   3.800  
   3.801  		<li>
   3.802 -			If the <a>next input character</a> is EOF,
   3.803 +			If the <a>next input code point</a> is EOF,
   3.804  			return the <<<url>>>.
   3.805  
   3.806  		<li>
   3.807 -			If the <a>next input character</a> is a U+0022 QUOTATION MARK (") or U+0027 APOSTROPHE (&apos;),
   3.808 +			If the <a>next input code point</a> is a U+0022 QUOTATION MARK (") or U+0027 APOSTROPHE (&apos;),
   3.809  			then:
   3.810  
   3.811  			<ol>
   3.812  				<li>
   3.813 -					<a>Consume a string token</a> with the <a>current input character</a> as the ending character.
   3.814 +					<a>Consume a string token</a> with the <a>current input code point</a> as the ending code point.
   3.815  
   3.816  				<li>
   3.817  					If a <<<bad-string>>> was returned,
   3.818 @@ -1045,7 +1053,7 @@
   3.819  					Consume as much <a>whitespace</a> as possible.
   3.820  
   3.821  				<li>
   3.822 -					If the <a>next input character</a> is U+0029 RIGHT PARENTHESIS ()) or EOF,
   3.823 +					If the <a>next input code point</a> is U+0029 RIGHT PARENTHESIS ()) or EOF,
   3.824  					consume it and return the <<<url>>>;
   3.825  					otherwise,
   3.826  					<a>consume the remnants of a bad url</a>,
   3.827 @@ -1054,7 +1062,7 @@
   3.828  			</ol>
   3.829  
   3.830  		<li>
   3.831 -			Repeatedly consume the <a>next input character</a> from the stream:
   3.832 +			Repeatedly consume the <a>next input code point</a> from the stream:
   3.833  
   3.834  			<dl>
   3.835  				<dt>U+0029 RIGHT PARENTHESIS ())
   3.836 @@ -1065,7 +1073,7 @@
   3.837  				<dt><a>whitespace</a>
   3.838  				<dd>
   3.839  					Consume as much <a>whitespace</a> as possible.
   3.840 -					If the <a>next input character</a> is U+0029 RIGHT PARENTHESIS ()) or EOF,
   3.841 +					If the <a>next input code point</a> is U+0029 RIGHT PARENTHESIS ()) or EOF,
   3.842  					consume it and return the <<<url>>>;
   3.843  					otherwise,
   3.844  					<a>consume the remnants of a bad url</a>,
   3.845 @@ -1075,7 +1083,7 @@
   3.846  				<dt>U+0022 QUOTATION MARK (")
   3.847  				<dt>U+0027 APOSTROPHE (&apos;)
   3.848  				<dt>U+0028 LEFT PARENTHESIS (()
   3.849 -				<dt><a>non-printable character</a>
   3.850 +				<dt><a>non-printable code point</a>
   3.851  				<dd>
   3.852  					This is a <a>parse error</a>.
   3.853  					<a>Consume the remnants of a bad url</a>,
   3.854 @@ -1085,8 +1093,8 @@
   3.855  				<dt>U+005C REVERSE SOLIDUS
   3.856  				<dd>
   3.857  					If the stream <a>starts with a valid escape</a>,
   3.858 -					<a>consume an escaped character</a>
   3.859 -					and append the returned character to the <<<url>>>’s value.
   3.860 +					<a>consume an escaped code point</a>
   3.861 +					and append the returned <a>code point</a> to the <<<url>>>’s value.
   3.862  
   3.863  					Otherwise,
   3.864  					this is a <a>parse error</a>.
   3.865 @@ -1096,7 +1104,7 @@
   3.866  
   3.867  				<dt>anything else
   3.868  				<dd>
   3.869 -					Append the <a>current input character</a>
   3.870 +					Append the <a>current input code point</a>
   3.871  					to the <<<url>>>’s value.
   3.872  			</dl>
   3.873  	</ol>
   3.874 @@ -1109,7 +1117,7 @@
   3.875  	It returns a <<<unicode-range>>> token.
   3.876  
   3.877  	Note: This algorithm assumes that the initial "u+" has been consumed,
   3.878 -	and the next character verified to be a <a>hex digit</a> or a "?".
   3.879 +	and the next <a>code point</a> verified to be a <a>hex digit</a> or a "?".
   3.880  
   3.881  	Execute the following steps in order:
   3.882  
   3.883 @@ -1121,21 +1129,21 @@
   3.884  		<li>
   3.885  			Consume as many <a>hex digits</a> as possible, but no more than 6.
   3.886  			If less than 6 <a>hex digits</a> were consumed,
   3.887 -			consume as many U+003F QUESTION MARK (?) characters as possible,
   3.888 -			but no more than enough to make the total of <a>hex digits</a> and U+003F QUESTION MARK (?) characters equal to 6.
   3.889 -
   3.890 -			If any U+003F QUESTION MARK (?) characters were consumed,
   3.891 +			consume as many U+003F QUESTION MARK (?) <a>code points</a> as possible,
   3.892 +			but no more than enough to make the total of <a>hex digits</a> and U+003F QUESTION MARK (?) <a>code points</a> equal to 6.
   3.893 +
   3.894 +			If any U+003F QUESTION MARK (?) <a>code points</a> were consumed,
   3.895  			then:
   3.896  
   3.897  			<ol>
   3.898  				<li>
   3.899 -					Interpret the consumed characters as a hexadecimal number,
   3.900 -					with the U+003F QUESTION MARK (?) characters replaced by U+0030 DIGIT ZERO (0) characters.
   3.901 +					Interpret the consumed <a>code points</a> as a hexadecimal number,
   3.902 +					with the U+003F QUESTION MARK (?) <a>code points</a> replaced by U+0030 DIGIT ZERO (0) <a>code points</a>.
   3.903  					This is the <a>start of the range</a>.
   3.904  
   3.905  				<li>
   3.906 -					Interpret the consumed characters as a hexadecimal number again,
   3.907 -					with the U+003F QUESTION MARK (?) character replaced by U+0046 LATIN CAPITAL LETTER F (F) characters.
   3.908 +					Interpret the consumed <a>code points</a> as a hexadecimal number again,
   3.909 +					with the U+003F QUESTION MARK (?) <a>code point</a> replaced by U+0046 LATIN CAPITAL LETTER F (F) <a>code points</a>.
   3.910  					This is the <a>end of the range</a>.
   3.911  
   3.912  				<li>
   3.913 @@ -1147,12 +1155,12 @@
   3.914  			This is the <a>start of the range</a>.
   3.915  
   3.916  		<li>
   3.917 -			If the <a title="next input character">next 2 input character</a> are
   3.918 +			If the <a title="next input code point">next 2 input code point</a> are
   3.919  			U+002D HYPHEN-MINUS (-) followed by a <a>hex digit</a>,
   3.920  			then:
   3.921  
   3.922  			<ol>
   3.923 -				<li>Consume the <a>next input character</a>.
   3.924 +				<li>Consume the <a>next input code point</a>.
   3.925  
   3.926  				<li>
   3.927  					Consume as many <a>hex digits</a> as possible, but no more than 6.
   3.928 @@ -1168,129 +1176,129 @@
   3.929  
   3.930  
   3.931  <h4>
   3.932 -<dfn>Consume an escaped character</dfn></h4>
   3.933 -
   3.934 -	This section describes how to <a>consume an escaped character</a>.
   3.935 +<dfn>consume an escaped code point</dfn></h4>
   3.936 +
   3.937 +	This section describes how to <a>consume an escaped code point</a>.
   3.938  	It assumes that the U+005C REVERSE SOLIDUS (\) has already been consumed
   3.939 -	and that the next input character has already been verified
   3.940 +	and that the next input code point has already been verified
   3.941  	to not be a <a>newline</a> or EOF.
   3.942 -	It will return a character.
   3.943 -
   3.944 -	Consume the <a>next input character</a>.
   3.945 +	It will return a <a>code point</a>.
   3.946 +
   3.947 +	Consume the <a>next input code point</a>.
   3.948  
   3.949  	<dl>
   3.950  		<dt><a>hex digit</a>
   3.951  		<dd>
   3.952  			Consume as many <a>hex digits</a> as possible, but no more than 5.
   3.953  			<span class='note'>Note that this means 1-6 hex digits have been consumed in total.</span>
   3.954 -			If the <a>next input character</a> is
   3.955 +			If the <a>next input code point</a> is
   3.956  			<a>whitespace</a>,
   3.957  			consume it as well.
   3.958  			Interpret the <a>hex digits</a> as a hexadecimal number.
   3.959  			If this number is zero,
   3.960  			or is between U+D800 and U+DFFF inclusive,
   3.961 -			or is greater than the <a>maximum allowed codepoint</a>,
   3.962 +			or is greater than the <a>maximum allowed code point</a>,
   3.963  			return U+FFFD REPLACEMENT CHARACTER (�).
   3.964 -			Otherwise, return the character with that codepoint.
   3.965 +			Otherwise, return the <a>code point</a> with that value.
   3.966  
   3.967  			<p class=note>
   3.968  				U+D800 to U+DFFF are the
   3.969  				<a href="http://www.unicode.org/glossary/#surrogate_code_point">surrogate code points</a>.
   3.970  
   3.971 -		<dt>EOF character
   3.972 +		<dt>EOF code point
   3.973  		<dd>
   3.974  			Return U+FFFD REPLACEMENT CHARACTER (�).
   3.975  
   3.976  		<dt>anything else
   3.977  		<dd>
   3.978 -			Return the <a>current input character</a>.
   3.979 +			Return the <a>current input code point</a>.
   3.980  	</dl>
   3.981  
   3.982  
   3.983  <h4>
   3.984 -<dfn title="check if two characters are a valid escape|are a valid escape|starts with a valid escape">Check if two characters are a valid escape</dfn></h4>
   3.985 -
   3.986 -	This section describes how to <a>check if two characters are a valid escape</a>.
   3.987 -	The algorithm described here can be called explicitly with two characters,
   3.988 +<dfn title="check if two code points are a valid escape|are a valid escape|starts with a valid escape">Check if two code points are a valid escape</dfn></h4>
   3.989 +
   3.990 +	This section describes how to <a>check if two code points are a valid escape</a>.
   3.991 +	The algorithm described here can be called explicitly with two <a>code points</a>,
   3.992  	or can be called with the input stream itself.
   3.993 -	In the latter case, the two characters in question are
   3.994 -	the <a>current input character</a>
   3.995 -	and the <a>next input character</a>,
   3.996 +	In the latter case, the two <a>code points</a> in question are
   3.997 +	the <a>current input code point</a>
   3.998 +	and the <a>next input code point</a>,
   3.999  	in that order.
  3.1000  
  3.1001 -	Note: This algorithm will not consume any additional characters.
  3.1002 -
  3.1003 -	If the first character is not U+005D REVERSE SOLIDUS (\),
  3.1004 +	Note: This algorithm will not consume any additional <a>code point</a>.
  3.1005 +
  3.1006 +	If the first <a>code point</a> is not U+005D REVERSE SOLIDUS (\),
  3.1007  	return false.
  3.1008  
  3.1009  	Otherwise,
  3.1010 -	if the second character is a <a>newline</a>,
  3.1011 +	if the second <a>code point</a> is a <a>newline</a>,
  3.1012  	return false.
  3.1013  
  3.1014  	Otherwise, return true.
  3.1015  
  3.1016  
  3.1017  <h4>
  3.1018 -<dfn title="check if three characters would start an identifier|starts with an identifier|start with an identifier|would start an identifier">Check if three characters would start an identifier</dfn></h4>
  3.1019 -
  3.1020 -	This section describes how to <a>check if three characters would start an identifier</a>.
  3.1021 -	The algorithm described here can be called explicitly with three characters,
  3.1022 +<dfn title="check if three code points would start an identifier|starts with an identifier|start with an identifier|would start an identifier">Check if three code points would start an identifier</dfn></h4>
  3.1023 +
  3.1024 +	This section describes how to <a>check if three code points would start an identifier</a>.
  3.1025 +	The algorithm described here can be called explicitly with three <a>code points</a>,
  3.1026  	or can be called with the input stream itself.
  3.1027 -	In the latter case, the three characters in question are
  3.1028 -	the <a>current input character</a>
  3.1029 -	and the <a title="next input character">next two input characters</a>,
  3.1030 +	In the latter case, the three <a>code points</a> in question are
  3.1031 +	the <a>current input code point</a>
  3.1032 +	and the <a title="next input code point">next two input code points</a>,
  3.1033  	in that order.
  3.1034  
  3.1035 -	Note: This algorithm will not consume any additional characters.
  3.1036 -
  3.1037 -	Look at the first character:
  3.1038 +	Note: This algorithm will not consume any additional <a>code point</a>.
  3.1039 +
  3.1040 +	Look at the first <a>code point</a>:
  3.1041  
  3.1042  	<dl>
  3.1043  		<dt>U+002D HYPHEN-MINUS
  3.1044  		<dd>
  3.1045 -			If the second character is a <a>name-start character</a>
  3.1046 -			or the second and third characters <a>are a valid escape</a>,
  3.1047 +			If the second <a>code point</a> is a <a>name-start code point</a>
  3.1048 +			or the second and third <a>code points</a> <a>are a valid escape</a>,
  3.1049  			return true.
  3.1050  			Otherwise, return false.
  3.1051  
  3.1052 -		<dt><a>name-start character</a>
  3.1053 +		<dt><a>name-start code point</a>
  3.1054  		<dd>
  3.1055  			Return true.
  3.1056  
  3.1057  		<dt>U+005C REVERSE SOLIDUS (\)
  3.1058  		<dd>
  3.1059 -			If the first and second characters <a>are a valid escape</a>,
  3.1060 +			If the first and second <a>code points</a> <a>are a valid escape</a>,
  3.1061  			return true.
  3.1062  			Otherwise, return false.
  3.1063  	</dl>
  3.1064  
  3.1065  <h4>
  3.1066 -<dfn title="check if three characters would start a number|starts with a number|start with a number|would start a number">Check if three characters would start a number</dfn></h4>
  3.1067 -
  3.1068 -	This section describes how to <a>check if three characters would start a number</a>.
  3.1069 -	The algorithm described here can be called explicitly with three characters,
  3.1070 +<dfn title="check if three code points would start a number|starts with a number|start with a number|would start a number">Check if three code points would start a number</dfn></h4>
  3.1071 +
  3.1072 +	This section describes how to <a>check if three code points would start a number</a>.
  3.1073 +	The algorithm described here can be called explicitly with three <a>code points</a>,
  3.1074  	or can be called with the input stream itself.
  3.1075 -	In the latter case, the three characters in question are
  3.1076 -	the <a>current input character</a>
  3.1077 -	and the <a title="next input character">next two input characters</a>,
  3.1078 +	In the latter case, the three <a>code points</a> in question are
  3.1079 +	the <a>current input code point</a>
  3.1080 +	and the <a title="next input code point">next two input code points</a>,
  3.1081  	in that order.
  3.1082  
  3.1083 -	Note: This algorithm will not consume any additional characters.
  3.1084 -
  3.1085 -	Look at the first character:
  3.1086 +	Note: This algorithm will not consume any additional <a>code points</a>.
  3.1087 +
  3.1088 +	Look at the first <a>code point</a>:
  3.1089  
  3.1090  	<dl>
  3.1091  		<dt>U+002B PLUS SIGN (+)
  3.1092  		<dt>U+002D HYPHEN-MINUS (-)
  3.1093  		<dd>
  3.1094 -			If the second character
  3.1095 +			If the second <a>code point</a>
  3.1096  			is a <a>digit</a>,
  3.1097  			return true.
  3.1098  
  3.1099  			Otherwise,
  3.1100 -			if the second character
  3.1101 +			if the second <a>code point</a>
  3.1102  			is a U+002E FULL STOP (.)
  3.1103 -			and the third character
  3.1104 +			and the third <a>code point</a>
  3.1105  			is a <a>digit</a>,
  3.1106  			return true.
  3.1107  
  3.1108 @@ -1298,7 +1306,7 @@
  3.1109  
  3.1110  		<dt>U+002E FULL STOP (.)
  3.1111  		<dd>
  3.1112 -			If the second character
  3.1113 +			If the second <a>code point</a>
  3.1114  			is a <a>digit</a>,
  3.1115  			return true.
  3.1116  			Otherwise, return false.
  3.1117 @@ -1316,29 +1324,29 @@
  3.1118  <h4>
  3.1119  <dfn>Consume a name</dfn></h4>
  3.1120  
  3.1121 -	This section describes how to <a>consume a name</a> from a stream of characters.
  3.1122 +	This section describes how to <a>consume a name</a> from a stream of <a>code points</a>.
  3.1123  	It returns a string containing
  3.1124 -	the largest name that can be formed from adjacent characters in the stream, starting from the first.
  3.1125 -
  3.1126 -	Note: This algorithm does not do the verification of the first few characters
  3.1127 -	that are necessary to ensure the returned characters would constitute an <<<ident>>>.
  3.1128 +	the largest name that can be formed from adjacent <a>code points</a> in the stream, starting from the first.
  3.1129 +
  3.1130 +	Note: This algorithm does not do the verification of the first few <a>code points</a>
  3.1131 +	that are necessary to ensure the returned <a>code points</a> would constitute an <<<ident>>>.
  3.1132  	If that is the intended use,
  3.1133  	ensure that the stream <a>starts with an identifier</a>
  3.1134  	before calling this algorithm.
  3.1135  
  3.1136  	Let <var>result</var> initially be an empty string.
  3.1137  
  3.1138 -	Repeatedly consume the <a>next input character</a> from the stream:
  3.1139 +	Repeatedly consume the <a>next input code point</a> from the stream:
  3.1140  
  3.1141  	<dl>
  3.1142 -		<dt><a>name character</a>
  3.1143 +		<dt><a>name code point</a>
  3.1144  		<dd>
  3.1145 -			Append the character to <var>result</var>.
  3.1146 +			Append the <a>code point</a> to <var>result</var>.
  3.1147  
  3.1148  		<dt>the stream <a>starts with a valid escape</a>
  3.1149  		<dd>
  3.1150 -			<a>Consume an escaped character</a>.
  3.1151 -			Append the returned character to <var>result</var>.
  3.1152 +			<a>consume an escaped code point</a>.
  3.1153 +			Append the returned <a>code point</a> to <var>result</var>.
  3.1154  
  3.1155  		<dt>anything else
  3.1156  		<dd>
  3.1157 @@ -1349,13 +1357,13 @@
  3.1158  <h4>
  3.1159  <dfn>Consume a number</dfn></h4>
  3.1160  
  3.1161 -	This section describes how to <a>consume a number</a> from a stream of characters.
  3.1162 +	This section describes how to <a>consume a number</a> from a stream of <a>code points</a>.
  3.1163  	It returns a 3-tuple of
  3.1164  	a string representation,
  3.1165  	a numeric value,
  3.1166  	and a type flag which is either "integer" or "number".
  3.1167  
  3.1168 -	Note: This algorithm does not do the verification of the first few characters
  3.1169 +	Note: This algorithm does not do the verification of the first few <a>code points</a>
  3.1170  	that are necessary to ensure a number can be obtained from the stream.
  3.1171  	Ensure that the stream <a>starts with a number</a>
  3.1172  	before calling this algorithm.
  3.1173 @@ -1368,15 +1376,15 @@
  3.1174  			and <var>type</var> to "integer".
  3.1175  
  3.1176  		<li>
  3.1177 -			If the <a>next input character</a> is U+002B PLUS SIGN (+) or U+002D HYPHEN-MINUS (-),
  3.1178 +			If the <a>next input code point</a> is U+002B PLUS SIGN (+) or U+002D HYPHEN-MINUS (-),
  3.1179  			consume it and append it to <var>repr</var>.
  3.1180  
  3.1181  		<li>
  3.1182 -			While the <a>next input character</a> is a <a>digit</a>,
  3.1183 +			While the <a>next input code point</a> is a <a>digit</a>,
  3.1184  			consume it and append it to <var>repr</var>.
  3.1185  
  3.1186  		<li>
  3.1187 -			If the <a title="next input character">next 2 input characters</a> are
  3.1188 +			If the <a title="next input code point">next 2 input code points</a> are
  3.1189  			U+002E FULL STOP (.) followed by a <a>digit</a>,
  3.1190  			then:
  3.1191  
  3.1192 @@ -1384,11 +1392,11 @@
  3.1193  				<li>Consume them.
  3.1194  				<li>Append them to <var>repr</var>.
  3.1195  				<li>Set <var>type</var> to "number".
  3.1196 -				<li>While the <a>next input character</a> is a <a>digit</a>, consume it and append it to <var>repr</var>.
  3.1197 +				<li>While the <a>next input code point</a> is a <a>digit</a>, consume it and append it to <var>repr</var>.
  3.1198  			</ol>
  3.1199  
  3.1200  		<li>
  3.1201 -			If the <a title="next input character">next 2 or 3 input characters</a> are
  3.1202 +			If the <a title="next input code point">next 2 or 3 input code points</a> are
  3.1203  			U+0045 LATIN CAPITAL LETTER E (E) or U+0065 LATIN SMALL LETTER E (e),
  3.1204  			optionally followed by U+002D HYPHEN-MINUS (-) or U+002B PLUS SIGN (+),
  3.1205  			followed by a <a>digit</a>,
  3.1206 @@ -1398,7 +1406,7 @@
  3.1207  				<li>Consume them.
  3.1208  				<li>Append them to <var>repr</var>.
  3.1209  				<li>Set <var>type</var> to "number".
  3.1210 -				<li>While the <a>next input character</a> is a <a>digit</a>, consume it and append it to <var>repr</var>.
  3.1211 +				<li>While the <a>next input code point</a> is a <a>digit</a>, consume it and append it to <var>repr</var>.
  3.1212  			</ol>
  3.1213  
  3.1214  		<li>
  3.1215 @@ -1470,13 +1478,13 @@
  3.1216  <h4>
  3.1217  <dfn>Consume the remnants of a bad url</dfn></h4>
  3.1218  
  3.1219 -	This section describes how to <a>consume the remnants of a bad url</a> from a stream of characters,
  3.1220 +	This section describes how to <a>consume the remnants of a bad url</a> from a stream of <a>code points</a>,
  3.1221  	"cleaning up" after the tokenizer realizes that it's in the middle of a <<<bad-url>>> rather than a <<<url>>>.
  3.1222  	It returns nothing;
  3.1223  	its sole use is to consume enough of the input stream to reach a recovery point
  3.1224  	where normal tokenizing can resume.
  3.1225  
  3.1226 -	Repeatedly consume the <a>next input character</a> from the stream:
  3.1227 +	Repeatedly consume the <a>next input code point</a> from the stream:
  3.1228  
  3.1229  	<dl>
  3.1230  		<dt>U+0029 RIGHT PARENTHESIS ())
  3.1231 @@ -1486,7 +1494,7 @@
  3.1232  
  3.1233  		<dt>the input stream <a>starts with a valid escape</a>
  3.1234  		<dd>
  3.1235 -			<a>Consume an escaped character</a>.
  3.1236 +			<a>consume an escaped code point</a>.
  3.1237  			<span class='note'>This allows an escaped right parenthesis ("\)") to be encountered without ending the <<<bad-url>>>.
  3.1238  				This is otherwise identical to the "anything else" clause.</span>
  3.1239  
  3.1240 @@ -1500,14 +1508,14 @@
  3.1241  
  3.1242  	This section describes how to set a <<<unicode-range>>>’s range
  3.1243  	so that the range it describes
  3.1244 -	is within the supported range of unicode characters.
  3.1245 +	is within the supported range of unicode <a>code points</a>.
  3.1246  
  3.1247  	It assumes that the <dfn>start of the range</dfn> has been defined,
  3.1248  	the <dfn>end of the range</dfn> might be defined,
  3.1249  	and both are non-negative integers.
  3.1250  
  3.1251  	If the <a>start of the range</a> is greater than
  3.1252 -	the <a>maximum allowed codepoint</a>,
  3.1253 +	the <a>maximum allowed code point</a>,
  3.1254  	the <<<unicode-range>>>’s range is empty.
  3.1255  
  3.1256  	If the <a>end of the range</a> is defined,
  3.1257 @@ -1516,16 +1524,16 @@
  3.1258  
  3.1259  	If the <a>end of the range</a> is not defined,
  3.1260  	the <<<unicode-range>>>’s range
  3.1261 -	is the single character whose codepoint is the <a>start of the range</a>.
  3.1262 +	is the single <a>code point</a> whose value is the <a>start of the range</a>.
  3.1263  
  3.1264  	Otherwise,
  3.1265  	if the <a>end of the range</a> is greater than
  3.1266 -	the <a>maximum allowed codepoint</a>,
  3.1267 -	change it to the <a>maximum allowed codepoint</a>.
  3.1268 +	the <a>maximum allowed code point</a>,
  3.1269 +	change it to the <a>maximum allowed code point</a>.
  3.1270  	The <<<unicode-range>>>’s range
  3.1271 -	is all characters between
  3.1272 -	the character whose codepoint is the <a>start of the range</a>
  3.1273 -	and the character whose codepoint is the <a>end of the range</a>.
  3.1274 +	is all <a>code points</a> between
  3.1275 +	the <a>code point</a> whose value is the <a>start of the range</a>
  3.1276 +	and the <a>code point</a> whose value is the <a>end of the range</a>.
  3.1277  
  3.1278  
  3.1279  <!--
  3.1280 @@ -1739,11 +1747,11 @@
  3.1281  		<dd>
  3.1282  			When two strings are to be matched ASCII case-insensitively,
  3.1283  			temporarily convert both of them to ASCII lower-case form
  3.1284 -			by adding 32 (0x20) to the value of each codepoint between
  3.1285 +			by adding 32 (0x20) to the value of each <a>code point</a> between
  3.1286  			U+0041 LATIN CAPITAL LETTER A (A)
  3.1287  			and U+005A LATIN CAPITAL LETTER Z (Z),
  3.1288  			inclusive,
  3.1289 -			and then compare them on a codepoint-by-codepoint basis.
  3.1290 +			and check if this results in identical sequences of <a>code point</a>.
  3.1291  	</dl>
  3.1292  
  3.1293  
  3.1294 @@ -1757,7 +1765,7 @@
  3.1295  	but they may also be invoked on a string;
  3.1296  	if so,
  3.1297  	first perform <a href="#preprocessing-the-input-stream">input preprocessing</a>
  3.1298 -	to produce a character stream,
  3.1299 +	to produce a <a>code point</a> stream,
  3.1300  	then perform <a href="#tokenization">tokenization</a>
  3.1301  	to produce a token stream.
  3.1302  
  3.1303 @@ -1974,7 +1982,7 @@
  3.1304  
  3.1305  	These algorithms may be called with a list of either tokens or of component values.
  3.1306  	(The difference being that some tokens are replaced by <a>functions</a> and <a>simple blocks</a> in a list of component values.)
  3.1307 -	Similar to how the input stream returned EOF characters to represent when it was empty during the tokenization stage,
  3.1308 +	Similar to how the input stream returned EOF code points to represent when it was empty during the tokenization stage,
  3.1309  	the lists in this stage must return an <<<EOF>>> when the next token is requested but they are empty.
  3.1310  
  3.1311  	An algorithm may be invoked with a specific list,
  3.1312 @@ -2441,13 +2449,13 @@
  3.1313  		<dd>
  3.1314  			<var>A</var> is the dimension's value or 1, respectively.
  3.1315  			<var>B</var> is the dimension's unit or ident's value, respectively,
  3.1316 -			with the first character removed and the remainder interpreted as a base-10 number.
  3.1317 +			with the first <a>code point</a> removed and the remainder interpreted as a base-10 number.
  3.1318  			<span class=note>B is negative.</span>
  3.1319  
  3.1320  		<dt><code><var>&lt;dashndashdigit-ident></var></code>
  3.1321  		<dd>
  3.1322  			<var>A</var> is -1.
  3.1323 -			<var>B</var> is the ident's value, with the first two characters removed and the remainder interpreted as a base-10 number.
  3.1324 +			<var>B</var> is the ident's value, with the first two <a>code points</a> removed and the remainder interpreted as a base-10 number.
  3.1325  			<span class=note>B is negative.</span>
  3.1326  
  3.1327  		<dt><code><var>&lt;n-dimension></var> <var>&lt;signed-integer></var></code>
  3.1328 @@ -2505,7 +2513,7 @@
  3.1329  		and does not match corresponding grammar definitions.
  3.1330  
  3.1331  	<<<delim>>>s are written with their value enclosed in single quotes.
  3.1332 -	For example, a <<<delim>>> containing the "+" character is written as <code>'+'</code>.
  3.1333 +	For example, a <<<delim>>> containing the "+" <a>code point</a> is written as <code>'+'</code>.
  3.1334  	Similarly, the <<<[>>> and <<<]>>>s must be written in single quotes,
  3.1335  	as they're used by the syntax of the grammar itself to group clauses.
  3.1336  	<<<whitespace>>> is never indicated in the grammar;
  3.1337 @@ -2818,22 +2826,22 @@
  3.1338  
  3.1339  	<ul>
  3.1340  		<li>
  3.1341 -			Any U+0000 NULL character in the CSS source is replaced with U+FFFD REPLACEMENT CHARACTER.
  3.1342 +			Any U+0000 NULL <a>code point</a> in the CSS source is replaced with U+FFFD REPLACEMENT CHARACTER.
  3.1343  
  3.1344  		<li>
  3.1345  			Any hexadecimal escape sequence such as ''\0'' that evaluate to zero
  3.1346 -			produce U+FFFD REPLACEMENT CHARACTER rather than U+0000 NULL.
  3.1347 +			produce U+FFFD REPLACEMENT r rather than U+0000 NULL.
  3.1348  			<!--
  3.1349  				This covers a security issue:
  3.1350  				https://bugzilla.mozilla.org/show_bug.cgi?id=228856
  3.1351  			-->
  3.1352  
  3.1353  		<li>
  3.1354 -			The definition of <a>non-ASCII character</a> was changed
  3.1355 +			The definition of <a>non-ASCII code point</a> was changed
  3.1356  			to be consistent with every definition of ASCII.
  3.1357 -			This affects characters U+0080 to U+009F,
  3.1358 -			which are now <a>name characters</a> rather than <<<delim>>>s,
  3.1359 -			like the rest of <a>non-ASCII characters</a>.
  3.1360 +			This affects <a>code points</a> U+0080 to U+009F,
  3.1361 +			which are now <a>name code points</a> rather than <<<delim>>>s,
  3.1362 +			like the rest of <a>non-ASCII code points</a>.
  3.1363  
  3.1364  		<li>
  3.1365  			Tokenization does not emit COMMENT or BAD_COMMENT tokens anymore.
  3.1366 @@ -2927,7 +2935,7 @@
  3.1367  
  3.1368  			<ul>
  3.1369  				<li>
  3.1370 -					In some cases, "-" characters or digits can be escaped
  3.1371 +					In some cases, minus signs or digits can be escaped
  3.1372  					(when they appear as part of the unit of a <<<dimension>>> or <<<ident>>>).
  3.1373  			</ul>
  3.1374  	</ul>

mercurial