[css-syntax] Revert <unicode-range> changes from CSS 2.1

Sun, 01 Sep 2013 16:18:24 +0100

author
Simon Sapin <simon.sapin@exyr.org>
date
Sun, 01 Sep 2013 16:18:24 +0100
changeset 8996
dec8752a6390
parent 8995
c6388008a3cc
child 8997
bed44c340b52

[css-syntax] Revert <unicode-range> changes from CSS 2.1

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	Fri Aug 30 16:02:46 2013 -0700
     1.2 +++ b/css-syntax/Diagrams.src.html	Sun Sep 01 16:18:24 2013 +0100
     1.3 @@ -63,6 +63,8 @@
     1.4  add('whitespace', Diagram(Choice(
     1.5  	0, 'space', '\\t', NonTerminal('newline'))));
     1.6  
     1.7 +add('hex digit', Diagram(NonTerminal('0-9 a-f or A-F')));
     1.8 +
     1.9  add('escape', Diagram(
    1.10  	'\\', Choice(0,
    1.11  		NonTerminal('not newline or hex digit'),
    1.12 @@ -151,15 +153,10 @@
    1.13  		'U',
    1.14  		'u'),
    1.15  	'+',
    1.16 -	Choice(0,
    1.17 -		Sequence(OneOrMore(NonTerminal('hex digit'), Comment('1-6 times'))),
    1.18 -		Sequence(
    1.19 -			ZeroOrMore(NonTerminal('hex digit'), Comment('1-5 times')),
    1.20 -			OneOrMore('?', Comment('1 to (6 - digits) times'))),
    1.21 -		Sequence(
    1.22 -			OneOrMore(NonTerminal('hex digit'), Comment('1-6 times')),
    1.23 -			'-',
    1.24 -			OneOrMore(NonTerminal('hex digit'), Comment('1-6 times'))))));
    1.25 +	Sequence(OneOrMore(Choice(0, NonTerminal('hex digit'), '?'), Comment('1-6 times'))),
    1.26 +	Optional(Sequence(
    1.27 +		'-',
    1.28 +		OneOrMore(NonTerminal('hex digit'), Comment('1-6 times'))))));
    1.29  
    1.30  add('〈include-match〉', Diagram('~='));
    1.31  
     2.1 --- a/css-syntax/Overview.html	Fri Aug 30 16:02:46 2013 -0700
     2.2 +++ b/css-syntax/Overview.html	Sun Sep 01 16:18:24 2013 +0100
     2.3 @@ -13,9 +13,9 @@
     2.4      <img alt=W3C height=48 src=http://www.w3.org/Icons/w3c_home width=72>
     2.5  </a></p>
     2.6    <h1 class="p-name no-ref" id=title>CSS Syntax Module Level 3</h1>
     2.7 -  <h2 class="no-num no-toc no-ref" id=subtitle><span class=content>Editor's Draft,
     2.8 -    <span class=dt-updated><span class=value-title title=20130827>27 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><dt>Previous Versions:<dd><a href=http://www.w3.org/TR/2003/WD-css3-syntax-20030813/ rel=previous>http://www.w3.org/TR/2003/WD-css3-syntax-20030813/</a>
    2.10 +  <h2 class="no-num no-toc no-ref heading settled heading" id=subtitle><span class=content>Editor’s Draft,
    2.11 +    <span class=dt-updated><span class=value-title title=20130901>1 September 2013</span></span></span></h2>
    2.12 +  <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><dt>Previous Versions:<dd><a href=http://www.w3.org/TR/2003/WD-css3-syntax-20030813/ rel=previous>http://www.w3.org/TR/2003/WD-css3-syntax-20030813/</a>
    2.13  <dt>Feedback:</dt>
    2.14      <dd><a href="mailto:www-style@w3.org?subject=%5Bcss-syntax%5D%20feedback">www-style@w3.org</a>
    2.15          with subject line
    2.16 @@ -27,18 +27,18 @@
    2.17    <hr title="Separator for header">
    2.18  </div>
    2.19  
    2.20 -<h2 class="no-num no-toc no-ref" id=abstract><span class=content>Abstract</span></h2>
    2.21 +<h2 class="no-num no-toc no-ref heading settled heading" id=abstract><span class=content>Abstract</span></h2>
    2.22  <p class=p-summary data-fill-with=abstract>This module describes, in general terms, the basic structure and syntax of CSS stylesheets. It defines, in detail, the syntax and parsing of CSS - how to turn a stream of bytes into a meaningful stylesheet.
    2.23  <a href=http://www.w3.org/TR/CSS/>CSS</a> is a language for describing the rendering of structured documents 
    2.24  (such as HTML and XML) 
    2.25  on screen, on paper, in speech, etc.</p>
    2.26  
    2.27 -<h2 class="no-num no-toc no-ref" id=status><span class=content>Status of this document</span></h2>
    2.28 +<h2 class="no-num no-toc no-ref heading settled heading" id=status><span class=content>Status of this document</span></h2>
    2.29  <div data-fill-with=status><p>
    2.30  	This is a public copy of the editors' draft. 
    2.31  	It is provided for discussion only and may change at any moment. 
    2.32  	Its publication here does not imply endorsement of its contents by W3C. 
    2.33 -	Don't cite this document other than as work in progress.
    2.34 +	Don’t cite this document other than as work in progress.
    2.35  
    2.36  <p>
    2.37  	The (<a href=http://lists.w3.org/Archives/Public/www-style/>archived</a>) public mailing list
    2.38 @@ -64,11 +64,11 @@
    2.39  	must disclose the information in accordance with <a href=/Consortium/Patent-Policy-20040205/#sec-Disclosure>section 6 of the W3C Patent Policy</a>.</div>
    2.40  <div data-fill-with=at-risk></div>
    2.41  
    2.42 -<h2 class="no-num no-toc no-ref" id=contents><span class=content>Table of contents</span></h2>
    2.43 +<h2 class="no-num no-toc no-ref heading settled heading" id=contents><span class=content>Table of contents</span></h2>
    2.44  <div data-fill-with=table-of-contents><ul class=toc><li><a href=#intro><span class=secno>1</span>
    2.45  Introduction</a><ul class=toc><li><a href=#placement><span class=secno>1.1</span>
    2.46  Module interactions</a></ul><li><a href=#syntax-description><span class=secno>2</span>
    2.47 -Description of CSS's Syntax</a><ul class=toc><li><a href=#escaping><span class=secno>2.1</span>
    2.48 +Description of CSS’s Syntax</a><ul class=toc><li><a href=#escaping><span class=secno>2.1</span>
    2.49  Escaping</a><li><a href=#error-handling><span class=secno>2.2</span>
    2.50  Error Handling</a></ul><li><a href=#tokenizing-and-parsing-css><span class=secno>3</span>
    2.51  Tokenizing and Parsing CSS</a><ul class=toc><li><a href=#overview-of-the-parsing-model><span class=secno>3.1</span>
    2.52 @@ -92,8 +92,7 @@
    2.53  Consume a name</a><li><a href=#consume-a-number><span class=secno>4.3.12</span>
    2.54  Consume a number</a><li><a href=#convert-a-string-to-a-number><span class=secno>4.3.13</span>
    2.55  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.56 -Consume the remnants of a bad url</a><li><a href=#set-the-unicode-ranges-range><span class=secno>4.3.15</span>
    2.57 -Set the unicode-range’s range</a></ul></ul><li><a href=#parsing><span class=secno>5</span>
    2.58 +Consume the remnants of a bad url</a></ul></ul><li><a href=#parsing><span class=secno>5</span>
    2.59  Parsing</a><ul class=toc><li><a href=#parser-diagrams><span class=secno>5.1</span>
    2.60  Parser Railroad Diagrams</a><li><a href=#definitions><span class=secno>5.2</span>
    2.61  Definitions</a><li><a href=#parser-entry-points><span class=secno>5.3</span>
    2.62 @@ -135,12 +134,12 @@
    2.63  Normative References</a><li><a href=#informative><span class=secno></span>
    2.64  Informative References</a></ul><li><a href=#index><span class=secno></span>
    2.65  Index</a><li><a href=#property-index><span class=secno></span>
    2.66 -Property index</a></ul></div>
    2.67 -
    2.68 -
    2.69 -
    2.70 -<h2 data-level=1 id=intro><span class=secno>1 </span><span class=content>
    2.71 -Introduction</span><a class=section-link href=#intro>§</a></h2>
    2.72 +Property index</a><li><a href=#issues-index><span class=secno></span>Issues Index</a></ul></div>
    2.73 +
    2.74 +
    2.75 +
    2.76 +<h2 class="heading settled heading" data-level=1 id=intro><span class=secno>1 </span><span class=content>
    2.77 +Introduction</span><a class=self-link href=#intro></a></h2>
    2.78  
    2.79  <p>	<em>This section is not normative.</em>
    2.80  
    2.81 @@ -154,14 +153,14 @@
    2.82  	and then further into CSS objects
    2.83  	such as stylesheets, rules, and declarations.
    2.84  
    2.85 -<h3 data-level=1.1 id=placement><span class=secno>1.1 </span><span class=content>
    2.86 -Module interactions</span><a class=section-link href=#placement>§</a></h3>
    2.87 +<h3 class="heading settled heading" data-level=1.1 id=placement><span class=secno>1.1 </span><span class=content>
    2.88 +Module interactions</span><a class=self-link href=#placement></a></h3>
    2.89  
    2.90  <p>	This module defines the syntax and parsing of CSS stylesheets.
    2.91  	It supersedes the lexical scanner and grammar defined in CSS 2.1.
    2.92  
    2.93 -<h2 data-level=2 id=syntax-description><span class=secno>2 </span><span class=content>
    2.94 -Description of CSS's Syntax</span><a class=section-link href=#syntax-description>§</a></h2>
    2.95 +<h2 class="heading settled heading" data-level=2 id=syntax-description><span class=secno>2 </span><span class=content>
    2.96 +Description of CSS’s Syntax</span><a class=self-link href=#syntax-description></a></h2>
    2.97  
    2.98  <p>	<em>This section is not normative.</em>
    2.99  
   2.100 @@ -173,7 +172,7 @@
   2.101  <p>	A qualified rule starts with a prelude
   2.102  	then has a {}-wrapped block containing a sequence of declarations.
   2.103  	The meaning of the prelude varies based on the context that the rule appears in -
   2.104 -	for style rules, it's a selector which specifies what elements the declarations will apply to.
   2.105 +	for style rules, it’s a selector which specifies what elements the declarations will apply to.
   2.106  	Each declaration has a name,
   2.107  	followed by a colon and the declaration value.
   2.108  	Declarations are separated by semicolons.
   2.109 @@ -225,8 +224,8 @@
   2.110  </pre>
   2.111  <p>		The <span class=css data-link-type=maybe>@page</span> <a href=#at-rule>at-rule</a> consists of an optional page selector (the <span class=css data-link-type=maybe>:left</span> pseudoclass),
   2.112  		followed by a block of properties that apply to the page when printed.
   2.113 -		In this way, it's very similar to a normal style rule,
   2.114 -		except that its properties don't apply to any "element",
   2.115 +		In this way, it’s very similar to a normal style rule,
   2.116 +		except that its properties don’t apply to any "element",
   2.117  		but rather the page itself.
   2.118  
   2.119  		<pre>  @media print {
   2.120 @@ -250,13 +249,13 @@
   2.121  	Similarly, the syntax of the wide variety of CSS values is defined in the <a href=http://www.w3.org/TR/css3-values/>Values &amp; Units spec</a>.
   2.122  	The special syntaxes of individual <a href=#at-rule>at-rules</a> can be found in the specs that define them.
   2.123  
   2.124 -<h3 data-level=2.1 id=escaping><span class=secno>2.1 </span><span class=content>
   2.125 -Escaping</span><a class=section-link href=#escaping>§</a></h3>
   2.126 +<h3 class="heading settled heading" data-level=2.1 id=escaping><span class=secno>2.1 </span><span class=content>
   2.127 +Escaping</span><a class=self-link href=#escaping></a></h3>
   2.128  
   2.129  <p>	<em>This section is not normative.</em>
   2.130  
   2.131  <p>	Any Unicode <a href=#code-point>code point</a> can be included in an identifier or quoted string
   2.132 -	by <dfn data-dfn-type=dfn data-noexport="" id=escaping0>escaping</dfn> it.
   2.133 +	by <dfn data-dfn-type=dfn data-noexport="" id=escaping0>escaping<a class=self-link href=#escaping0></a></dfn> it.
   2.134  	CSS escape sequences start with a backslash (\), and continue with:
   2.135  
   2.136  <p>	<ul>
   2.137 @@ -278,8 +277,8 @@
   2.138  				A "real" space after the escape sequence must be doubled.
   2.139  	</ul>
   2.140  
   2.141 -<h3 data-level=2.2 id=error-handling><span class=secno>2.2 </span><span class=content>
   2.142 -Error Handling</span><a class=section-link href=#error-handling>§</a></h3>
   2.143 +<h3 class="heading settled heading" data-level=2.2 id=error-handling><span class=secno>2.2 </span><span class=content>
   2.144 +Error Handling</span><a class=self-link href=#error-handling></a></h3>
   2.145  
   2.146  <p>	<em>This section is not normative.</em>
   2.147  
   2.148 @@ -287,58 +286,58 @@
   2.149  	the parser attempts to recover gracefully,
   2.150  	throwing away only the minimum amount of content
   2.151  	before returning to parsing as normal.
   2.152 -	This is because errors aren't always mistakes -
   2.153 +	This is because errors aren’t always mistakes -
   2.154  	new syntax looks like an error to an old parser,
   2.155 -	and it's useful to be able to add new syntax to the language
   2.156 +	and it’s useful to be able to add new syntax to the language
   2.157  	without worrying about stylesheets that include it being completely broken in older UAs.
   2.158  
   2.159  <p>	The precise error-recovery behavior is detailed in the parser itself,
   2.160 -	but it's simple enough that a short description is fairly accurate:
   2.161 +	but it’s simple enough that a short description is fairly accurate:
   2.162  
   2.163  <p>	<ul>
   2.164  		<li>
   2.165  			At the "top level" of a stylesheet,
   2.166 -			an <a data-link-type=token href=#tokendef-at-keyword>〈at-keyword〉</a> starts an at-rule.
   2.167 +			an <a class=css-code data-link-type=token href=#tokendef-at-keyword>〈at-keyword〉</a> starts an at-rule.
   2.168  			Anything else starts a qualified rule,
   2.169 -			and is included in the rule's prelude.
   2.170 +			and is included in the rule’s prelude.
   2.171  			This may produce an invalid selector,
   2.172 -			but that's not the concern of the CSS parser —
   2.173 +			but that’s not the concern of the CSS parser —
   2.174  			at worst, it means the selector will match nothing.
   2.175  
   2.176  		<li>
   2.177  			Once an at-rule starts,
   2.178 -			nothing is invalid from the parser's standpoint;
   2.179 -			it's all part of the at-rule's prelude.
   2.180 -			Encountering a <a data-link-type=token href=#tokendef-semicolon>〈semicolon〉</a> ends the at-rule immediately,
   2.181 -			while encountering an opening curly-brace <a data-link-type=token href=#tokendef-open-curly>〈{〉</a> starts the at-rule's body.
   2.182 +			nothing is invalid from the parser’s standpoint;
   2.183 +			it’s all part of the at-rule’s prelude.
   2.184 +			Encountering a <a class=css-code data-link-type=token href=#tokendef-semicolon>〈semicolon〉</a> ends the at-rule immediately,
   2.185 +			while encountering an opening curly-brace <a class=css-code data-link-type=token href=#tokendef-open-curly>〈{〉</a> starts the at-rule’s body.
   2.186  			The at-rule seeks forward, matching blocks (content surrounded by (), {}, or [])
   2.187 -			until it finds a closing curly-brace <a data-link-type=token href=#tokendef-close-curly>〈}〉</a> that isn't matched by anything else
   2.188 +			until it finds a closing curly-brace <a class=css-code data-link-type=token href=#tokendef-close-curly>〈}〉</a> that isn’t matched by anything else
   2.189  			or inside of another block.
   2.190 -			The contents of the at-rule are then interpreted according to the at-rule's own grammar.
   2.191 +			The contents of the at-rule are then interpreted according to the at-rule’s own grammar.
   2.192  
   2.193  		<li>
   2.194  			Qualified rules work similarly,
   2.195 -			except that semicolons don't end them;
   2.196 -			instead, they are just taken in as part of the rule's prelude.
   2.197 +			except that semicolons don’t end them;
   2.198 +			instead, they are just taken in as part of the rule’s prelude.
   2.199  			When the first {} block is found,
   2.200  			the contents are always interpreted as a list of declarations.
   2.201  
   2.202  		<li>
   2.203  			When interpreting a list of declarations,
   2.204 -			unknown syntax at any point causes the parser to throw away whatever declaration it's currently building,
   2.205 +			unknown syntax at any point causes the parser to throw away whatever declaration it’s currently building,
   2.206  			and seek forward until it finds a semicolon (or the end of the block).
   2.207  			It then starts fresh, trying to parse a declaration again.
   2.208  
   2.209  		<li>
   2.210  			If the stylesheet ends while any rule, declaration, function, string, etc. are still open,
   2.211  			everything is automatically closed.
   2.212 -			This doesn't make them invalid,
   2.213 +			This doesn’t make them invalid,
   2.214  			though they may be incomplete
   2.215  			and thus thrown away when they are verified against their grammar.
   2.216  	</ul>
   2.217  
   2.218 -<h2 data-level=3 id=tokenizing-and-parsing-css><span class=secno>3 </span><span class=content>
   2.219 -Tokenizing and Parsing CSS</span><a class=section-link href=#tokenizing-and-parsing-css>§</a></h2>
   2.220 +<h2 class="heading settled heading" data-level=3 id=tokenizing-and-parsing-css><span class=secno>3 </span><span class=content>
   2.221 +Tokenizing and Parsing CSS</span><a class=self-link href=#tokenizing-and-parsing-css></a></h2>
   2.222  
   2.223  <p>	User agents must use the parsing rules described in this specification
   2.224  	to generate the CSSOM trees from text/css resources.
   2.225 @@ -346,7 +345,7 @@
   2.226  
   2.227  <p>	This specification defines the parsing rules for CSS documents,
   2.228  	whether they are syntactically correct or not.
   2.229 -	Certain points in the parsing algorithm are said to be a <dfn data-dfn-type=dfn data-noexport="" id=parse-errors title="parse error">parse errors</dfn>.
   2.230 +	Certain points in the parsing algorithm are said to be a <dfn data-dfn-type=dfn data-noexport="" id=parse-errors title="parse error">parse errors<a class=self-link href=#parse-errors></a></dfn>.
   2.231  	The error handling for parse errors is well-defined:
   2.232  	user agents must either act as described below when encountering such problems,
   2.233  	or must abort processing at the first error that they encounter for which they do not wish to apply the rules described below.
   2.234 @@ -360,8 +359,8 @@
   2.235  	but if they do,
   2.236  	they must recover in the same way as user agents.
   2.237  
   2.238 -<h3 data-level=3.1 id=overview-of-the-parsing-model><span class=secno>3.1 </span><span class=content>
   2.239 -Overview of the Parsing Model</span><a class=section-link href=#overview-of-the-parsing-model>§</a></h3>
   2.240 +<h3 class="heading settled heading" data-level=3.1 id=overview-of-the-parsing-model><span class=secno>3.1 </span><span class=content>
   2.241 +Overview of the Parsing Model</span><a class=self-link href=#overview-of-the-parsing-model></a></h3>
   2.242  
   2.243  <p>	The input to the CSS parsing process consists of a stream of Unicode <a href=#code-point>code points</a>,
   2.244  	which is passed through a tokenization stage followed by a tree construction stage.
   2.245 @@ -370,8 +369,8 @@
   2.246  <p class=note>	Note: Implementations that do not support scripting do not have to actually create a CSSOM CSSStyleSheet object,
   2.247  	but the CSSOM tree in such cases is still used as the model for the rest of the specification.
   2.248  
   2.249 -<h3 data-level=3.2 id=the-input-byte-stream><span class=secno>3.2 </span><span class=content>
   2.250 -The input byte stream</span><a class=section-link href=#the-input-byte-stream>§</a></h3>
   2.251 +<h3 class="heading settled heading" data-level=3.2 id=the-input-byte-stream><span class=secno>3.2 </span><span class=content>
   2.252 +The input byte stream</span><a class=self-link href=#the-input-byte-stream></a></h3>
   2.253  
   2.254  <p>	When parsing a stylesheet,
   2.255  	the stream of Unicode <a href=#code-point>code points</a> that comprises the input to the tokenization stage
   2.256 @@ -383,11 +382,11 @@
   2.257  <p>	To decode the stream of bytes into a stream of <a href=#code-point>code points</a>,
   2.258  	UAs must follow these steps.
   2.259  
   2.260 -<p>	The algorithms to <a href=http://encoding.spec.whatwg.org/#concept-encoding-get><dfn data-dfn-type=dfn data-noexport="" id=get-an-encoding>get an encoding</dfn></a>
   2.261 -	and <a href=http://encoding.spec.whatwg.org/#decode><dfn data-dfn-type=dfn data-noexport="" id=decode>decode</dfn></a>
   2.262 +<p>	The algorithms to <a href=http://encoding.spec.whatwg.org/#concept-encoding-get><dfn data-dfn-type=dfn data-noexport="" id=get-an-encoding>get an encoding<a class=self-link href=#get-an-encoding></a></dfn></a>
   2.263 +	and <a href=http://encoding.spec.whatwg.org/#decode><dfn data-dfn-type=dfn data-noexport="" id=decode>decode<a class=self-link href=#decode></a></dfn></a>
   2.264  	are defined in the <a href=http://encoding.spec.whatwg.org/>Encoding Standard</a>.
   2.265  
   2.266 -<p>	First, <dfn data-dfn-type=dfn data-noexport="" id=determine-the-fallback-encoding>determine the fallback encoding</dfn>:
   2.267 +<p>	First, <dfn data-dfn-type=dfn data-noexport="" id=determine-the-fallback-encoding>determine the fallback encoding<a class=self-link href=#determine-the-fallback-encoding></a></dfn>:
   2.268  
   2.269  	<ol>
   2.270  		<li>
   2.271 @@ -409,7 +408,7 @@
   2.272  <p class=note>			Note: The byte sequence above,
   2.273  			when decoded as ASCII,
   2.274  			is the string "<code>@charset "…";</code>",
   2.275 -			where the "…" is the sequence of bytes corresponding to the encoding's name.
   2.276 +			where the "…" is the sequence of bytes corresponding to the encoding’s name.
   2.277  
   2.278  <p>			If the return value was <code>utf-16</code> or <code>utf-16be</code>,
   2.279  			use <code>utf-8</code> as the fallback encoding;
   2.280 @@ -436,17 +435,17 @@
   2.281  <p class=note>	Note: the <a href=#decode>decode</a> algorithm lets the byte order mark (BOM) take precedence,
   2.282  	hence the usage of the term "fallback" above.
   2.283  
   2.284 -	<p class=issue>
   2.285 +	<p class=issue id=issue-b26a56fd><a class=self-link href=#issue-b26a56fd></a>
   2.286  		Anne says that steps 3/4 should be an input to this algorithm from the specs that define importing stylesheet,
   2.287  		to make the algorithm as a whole cleaner.
   2.288  		Perhaps abstract it into the concept of an "environment charset" or something?
   2.289  
   2.290 -	<p class=issue>
   2.291 -		Should we only take the charset from the referring document if it's same-origin?
   2.292 -
   2.293 -
   2.294 -<h3 data-level=3.3 id=preprocessing-the-input-stream><span class=secno>3.3 </span><span class=content>
   2.295 -Preprocessing the input stream</span><a class=section-link href=#preprocessing-the-input-stream>§</a></h3>
   2.296 +	<p class=issue id=issue-ab273e4b><a class=self-link href=#issue-ab273e4b></a>
   2.297 +		Should we only take the charset from the referring document if it’s same-origin?
   2.298 +
   2.299 +
   2.300 +<h3 class="heading settled heading" data-level=3.3 id=preprocessing-the-input-stream><span class=secno>3.3 </span><span class=content>
   2.301 +Preprocessing the input stream</span><a class=self-link href=#preprocessing-the-input-stream></a></h3>
   2.302  
   2.303  <p>	The input stream consists of the <a href=#code-point>code points</a>
   2.304  	pushed into it as the input byte stream is decoded.
   2.305 @@ -466,13 +465,13 @@
   2.306  	</ul>
   2.307  
   2.308  
   2.309 -<h2 data-level=4 id=tokenization><span class=secno>4 </span><span class=content>
   2.310 -Tokenization</span><a class=section-link href=#tokenization>§</a></h2>
   2.311 +<h2 class="heading settled heading" data-level=4 id=tokenization><span class=secno>4 </span><span class=content>
   2.312 +Tokenization</span><a class=self-link href=#tokenization></a></h2>
   2.313  
   2.314  <p>	Implementations must act as if they used the following algorithms to tokenize CSS.
   2.315  	To transform a stream of <a href=#code-point>code points</a> into a stream of tokens,
   2.316  	repeatedly <a href=#consume-a-token0>consume a token</a>
   2.317 -	until an <a data-link-type=token href=#tokendef-eof>〈EOF〉</a> is reached,
   2.318 +	until an <a class=css-code data-link-type=token href=#tokendef-eof>〈EOF〉</a> is reached,
   2.319  	collecting the returned tokens into a stream.
   2.320  	Each call to the <a href=#consume-a-token0>consume a token</a> algorithm
   2.321  	returns a single token,
   2.322 @@ -480,66 +479,73 @@
   2.323  	if so desired.
   2.324  
   2.325  <p>	The output of the tokenization step is a stream of zero or more of the following tokens:
   2.326 -	<dfn data-dfn-type=token data-export="" id=tokendef-ident>〈ident〉</dfn>,
   2.327 -	<dfn data-dfn-type=token data-export="" id=tokendef-function>〈function〉</dfn>,
   2.328 -	<dfn data-dfn-type=token data-export="" id=tokendef-at-keyword>〈at-keyword〉</dfn>,
   2.329 -	<dfn data-dfn-type=token data-export="" id=tokendef-hash>〈hash〉</dfn>,
   2.330 -	<dfn data-dfn-type=token data-export="" id=tokendef-string>〈string〉</dfn>,
   2.331 -	<dfn data-dfn-type=token data-export="" id=tokendef-bad-string>〈bad-string〉</dfn>,
   2.332 -	<dfn data-dfn-type=token data-export="" id=tokendef-url>〈url〉</dfn>,
   2.333 -	<dfn data-dfn-type=token data-export="" id=tokendef-bad-url>〈bad-url〉</dfn>,
   2.334 -	<dfn data-dfn-type=token data-export="" id=tokendef-delim>〈delim〉</dfn>,
   2.335 -	<dfn data-dfn-type=token data-export="" id=tokendef-number>〈number〉</dfn>,
   2.336 -	<dfn data-dfn-type=token data-export="" id=tokendef-percentage>〈percentage〉</dfn>,
   2.337 -	<dfn data-dfn-type=token data-export="" id=tokendef-dimension>〈dimension〉</dfn>,
   2.338 -	<dfn data-dfn-type=token data-export="" id=tokendef-unicode-range>〈unicode-range〉</dfn>,
   2.339 -	<dfn data-dfn-type=token data-export="" id=tokendef-include-match>〈include-match〉</dfn>,
   2.340 -	<dfn data-dfn-type=token data-export="" id=tokendef-dash-match>〈dash-match〉</dfn>,
   2.341 -	<dfn data-dfn-type=token data-export="" id=tokendef-prefix-match>〈prefix-match〉</dfn>,
   2.342 -	<dfn data-dfn-type=token data-export="" id=tokendef-suffix-match>〈suffix-match〉</dfn>,
   2.343 -	<dfn data-dfn-type=token data-export="" id=tokendef-substring-match>〈substring-match〉</dfn>,
   2.344 -	<dfn data-dfn-type=token data-export="" id=tokendef-column>〈column〉</dfn>,
   2.345 -	<dfn data-dfn-type=token data-export="" id=tokendef-whitespace>〈whitespace〉</dfn>,
   2.346 -	<dfn data-dfn-type=token data-export="" id=tokendef-cdo>〈CDO〉</dfn>,
   2.347 -	<dfn data-dfn-type=token data-export="" id=tokendef-cdc>〈CDC〉</dfn>,
   2.348 -	<dfn data-dfn-type=token data-export="" id=tokendef-colon>〈colon〉</dfn>,
   2.349 -	<dfn data-dfn-type=token data-export="" id=tokendef-semicolon>〈semicolon〉</dfn>,
   2.350 -	<dfn data-dfn-type=token data-export="" id=tokendef-comma>〈comma〉</dfn>,
   2.351 -	<dfn data-dfn-type=token data-export="" id=tokendef-open-square>〈[〉</dfn>,
   2.352 -	<dfn data-dfn-type=token data-export="" id=tokendef-close-square>〈]〉</dfn>,
   2.353 -	<dfn data-dfn-type=token data-export="" id=tokendef-open-paren>〈(〉</dfn>,
   2.354 -	<dfn data-dfn-type=token data-export="" id=tokendef-close-paren>〈)〉</dfn>,
   2.355 -	<dfn data-dfn-type=token data-export="" id=tokendef-open-curly>〈{〉</dfn>,
   2.356 -	and <dfn data-dfn-type=token data-export="" id=tokendef-close-curly>〈}〉</dfn>.
   2.357 +	<dfn class=css-code data-dfn-type=token data-export="" id=tokendef-ident>〈ident〉<a class=self-link href=#tokendef-ident></a></dfn>,
   2.358 +	<dfn class=css-code data-dfn-type=token data-export="" id=tokendef-function>〈function〉<a class=self-link href=#tokendef-function></a></dfn>,
   2.359 +	<dfn class=css-code data-dfn-type=token data-export="" id=tokendef-at-keyword>〈at-keyword〉<a class=self-link href=#tokendef-at-keyword></a></dfn>,
   2.360 +	<dfn class=css-code data-dfn-type=token data-export="" id=tokendef-hash>〈hash〉<a class=self-link href=#tokendef-hash></a></dfn>,
   2.361 +	<dfn class=css-code data-dfn-type=token data-export="" id=tokendef-string>〈string〉<a class=self-link href=#tokendef-string></a></dfn>,
   2.362 +	<dfn class=css-code data-dfn-type=token data-export="" id=tokendef-bad-string>〈bad-string〉<a class=self-link href=#tokendef-bad-string></a></dfn>,
   2.363 +	<dfn class=css-code data-dfn-type=token data-export="" id=tokendef-url>〈url〉<a class=self-link href=#tokendef-url></a></dfn>,
   2.364 +	<dfn class=css-code data-dfn-type=token data-export="" id=tokendef-bad-url>〈bad-url〉<a class=self-link href=#tokendef-bad-url></a></dfn>,
   2.365 +	<dfn class=css-code data-dfn-type=token data-export="" id=tokendef-delim>〈delim〉<a class=self-link href=#tokendef-delim></a></dfn>,
   2.366 +	<dfn class=css-code data-dfn-type=token data-export="" id=tokendef-number>〈number〉<a class=self-link href=#tokendef-number></a></dfn>,
   2.367 +	<dfn class=css-code data-dfn-type=token data-export="" id=tokendef-percentage>〈percentage〉<a class=self-link href=#tokendef-percentage></a></dfn>,
   2.368 +	<dfn class=css-code data-dfn-type=token data-export="" id=tokendef-dimension>〈dimension〉<a class=self-link href=#tokendef-dimension></a></dfn>,
   2.369 +	<dfn class=css-code data-dfn-type=token data-export="" id=tokendef-unicode-range>〈unicode-range〉<a class=self-link href=#tokendef-unicode-range></a></dfn>,
   2.370 +	<dfn class=css-code data-dfn-type=token data-export="" id=tokendef-include-match>〈include-match〉<a class=self-link href=#tokendef-include-match></a></dfn>,
   2.371 +	<dfn class=css-code data-dfn-type=token data-export="" id=tokendef-dash-match>〈dash-match〉<a class=self-link href=#tokendef-dash-match></a></dfn>,
   2.372 +	<dfn class=css-code data-dfn-type=token data-export="" id=tokendef-prefix-match>〈prefix-match〉<a class=self-link href=#tokendef-prefix-match></a></dfn>,
   2.373 +	<dfn class=css-code data-dfn-type=token data-export="" id=tokendef-suffix-match>〈suffix-match〉<a class=self-link href=#tokendef-suffix-match></a></dfn>,
   2.374 +	<dfn class=css-code data-dfn-type=token data-export="" id=tokendef-substring-match>〈substring-match〉<a class=self-link href=#tokendef-substring-match></a></dfn>,
   2.375 +	<dfn class=css-code data-dfn-type=token data-export="" id=tokendef-column>〈column〉<a class=self-link href=#tokendef-column></a></dfn>,
   2.376 +	<dfn class=css-code data-dfn-type=token data-export="" id=tokendef-whitespace>〈whitespace〉<a class=self-link href=#tokendef-whitespace></a></dfn>,
   2.377 +	<dfn class=css-code data-dfn-type=token data-export="" id=tokendef-cdo>〈CDO〉<a class=self-link href=#tokendef-cdo></a></dfn>,
   2.378 +	<dfn class=css-code data-dfn-type=token data-export="" id=tokendef-cdc>〈CDC〉<a class=self-link href=#tokendef-cdc></a></dfn>,
   2.379 +	<dfn class=css-code data-dfn-type=token data-export="" id=tokendef-colon>〈colon〉<a class=self-link href=#tokendef-colon></a></dfn>,
   2.380 +	<dfn class=css-code data-dfn-type=token data-export="" id=tokendef-semicolon>〈semicolon〉<a class=self-link href=#tokendef-semicolon></a></dfn>,
   2.381 +	<dfn class=css-code data-dfn-type=token data-export="" id=tokendef-comma>〈comma〉<a class=self-link href=#tokendef-comma></a></dfn>,
   2.382 +	<dfn class=css-code data-dfn-type=token data-export="" id=tokendef-open-square>〈[〉<a class=self-link href=#tokendef-open-square></a></dfn>,
   2.383 +	<dfn class=css-code data-dfn-type=token data-export="" id=tokendef-close-square>〈]〉<a class=self-link href=#tokendef-close-square></a></dfn>,
   2.384 +	<dfn class=css-code data-dfn-type=token data-export="" id=tokendef-open-paren>〈(〉<a class=self-link href=#tokendef-open-paren></a></dfn>,
   2.385 +	<dfn class=css-code data-dfn-type=token data-export="" id=tokendef-close-paren>〈)〉<a class=self-link href=#tokendef-close-paren></a></dfn>,
   2.386 +	<dfn class=css-code data-dfn-type=token data-export="" id=tokendef-open-curly>〈{〉<a class=self-link href=#tokendef-open-curly></a></dfn>,
   2.387 +	and <dfn class=css-code data-dfn-type=token data-export="" id=tokendef-close-curly>〈}〉<a class=self-link href=#tokendef-close-curly></a></dfn>.
   2.388  
   2.389  <p>	<ul>
   2.390  		<li>
   2.391 -			<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.392 +			<a class=css-code data-link-type=token href=#tokendef-ident>〈ident〉</a>, <a class=css-code data-link-type=token href=#tokendef-function>〈function〉</a>, <a class=css-code data-link-type=token href=#tokendef-at-keyword>〈at-keyword〉</a>, <a class=css-code data-link-type=token href=#tokendef-hash>〈hash〉</a>, <a class=css-code data-link-type=token href=#tokendef-string>〈string〉</a>, and <a class=css-code 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.393  			Additionally, hash tokens have a type flag set to either "id" or "unrestricted".  The type flag defaults to "unrestricted" if not otherwise set.
   2.394  
   2.395  		<li>
   2.396 -			<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.397 +			<a class=css-code 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.398  
   2.399  		<li>
   2.400 -			<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.401 -			<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.402 -			<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.403 +			<a class=css-code data-link-type=token href=#tokendef-number>〈number〉</a>, <a class=css-code data-link-type=token href=#tokendef-percentage>〈percentage〉</a>, and <a class=css-code 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.404 +			<a class=css-code data-link-type=token href=#tokendef-number>〈number〉</a> and <a class=css-code 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.405 +			<a class=css-code 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.406  
   2.407  		<li>
   2.408 -			<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.409 +			<a class=css-code data-link-type=token href=#tokendef-unicode-range>〈unicode-range〉</a> tokens have
   2.410 +			a <dfn data-dfn-type=dfn data-noexport="" id=unicode-range-start title=unicode-range-start>start<a class=self-link href=#unicode-range-start></a></dfn> made of one to six <a href=#hex-digit>hex digits</a> or U+003F QUESTION MARK (?) code points,
   2.411 +			and and optional <dfn data-dfn-type=dfn data-noexport="" id=unicode-range-end title=unicode-range-end>end<a class=self-link href=#unicode-range-end></a></dfn> made of one to six <a href=#hex-digit>hex digits</a>.
   2.412  	</ul>
   2.413  
   2.414  <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.415  	Only hash tokens with the "id" type are valid <a href=http://www.w3.org/TR/selectors/#id-selectors>ID selectors</a>.
   2.416  
   2.417 +<p class=note>	Note: The syntax of <a class=css-code data-link-type=token href=#tokendef-unicode-range>〈unicode-range〉</a> tokens defined in this specification
   2.418 +	is a super-set of the <a class="production css-code" data-link-type=type href=http://dev.w3.org/csswg/css-fonts-3/#urange-value>&lt;urange&gt;</a> value accepted by <a class=css data-link-type=maybe href=http://dev.w3.org/csswg/css-fonts-3/#at-font-face-rule>@font-face</a>’s <a class=property data-link-type=propdesc href=http://dev.w3.org/csswg/css-fonts-3/#descdef-unicode-range title=unicode-range>unicode-range</a> descriptor. <a data-biblio-type=informative data-link-type=biblio href=#css3-fonts title=CSS3-FONTS>[CSS3-FONTS]</a>
   2.419 +	For example, <span class=css data-link-type=maybe>U+4??6</span> and <span class=css data-link-type=maybe>U+1??-300</span> are valid <a class=css-code data-link-type=token href=#tokendef-unicode-range>〈unicode-range〉</a> tokens
   2.420 +	but not valid <a class="production css-code" data-link-type=type href=http://dev.w3.org/csswg/css-fonts-3/#urange-value>&lt;urange&gt;</a> values.
   2.421 +
   2.422  <p class=note>	Note: As a technical note,
   2.423  	the tokenizer defined here requires only three <a href=#code-point>code points</a> of look-ahead.
   2.424  	The tokens it produces are designed to allow Selectors to be parsed with one token of look-ahead,
   2.425  	and additional tokens may be added in the future to maintain this invariant.
   2.426  
   2.427  
   2.428 -<h3 data-level=4.1 id=token-diagrams><span class=secno>4.1 </span><span class=content>
   2.429 -Token Railroad Diagrams</span><a class=section-link href=#token-diagrams>§</a></h3>
   2.430 +<h3 class="heading settled heading" data-level=4.1 id=token-diagrams><span class=secno>4.1 </span><span class=content>
   2.431 +Token Railroad Diagrams</span><a class=self-link href=#token-diagrams></a></h3>
   2.432  
   2.433  <p>	<em>This section is non-normative.</em>
   2.434  
   2.435 @@ -561,162 +567,162 @@
   2.436  		The generated SVG is copied here so that JavaScript is not required
   2.437  		to view the spec.
   2.438  	-->
   2.439 -
   2.440  	<dl>
   2.441 -		<dt id=comment-diagram>comment</dt>
   2.442 +		<dt id=comment-diagram><a class=self-link href=#comment-diagram></a>comment</dt>
   2.443  		<dd><svg class=railroad-diagram height=81 width=497><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="M86 41h0"></path><rect height=22 rx=10 ry=10 width=36 x=50 y=30></rect><text x=68 y=45>/*</text></g><path d="M86 41h10"></path><g><path d="M96 41h0"></path><path d="M400 41h0"></path><path d="M96 41a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path><g><path d="M116 21h264"></path></g><path d="M380 21a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><path d="M96 41h20"></path><g><path d="M116 41h0"></path><path d="M380 41h0"></path><path d="M116 41h10"></path><g><path d="M126 41h0"></path><path d="M370 41h0"></path><rect height=22 width=244 x=126 y=30></rect><text x=248 y=45>anything but * followed by /</text></g><path d="M370 41h10"></path><path d="M126 41a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10"></path><g><path d="M126 61h244"></path></g><path d="M370 61a10 10 0 0 0 10 -10v0a10 10 0 0 0 -10 -10"></path></g><path d="M380 41h20"></path></g><path d="M400 41h10"></path><g><path d="M410 41h0"></path><path d="M446 41h0"></path><rect height=22 rx=10 ry=10 width=36 x=410 y=30></rect><text x=428 y=45>*/</text></g><path d="M446 41h10"></path><path d="M 456 41 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
   2.444  
   2.445 -		<dt id=newline-diagram>newline</dt>
   2.446 +		<dt id=newline-diagram><a class=self-link href=#newline-diagram></a>newline</dt>
   2.447  		<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.448  
   2.449 -		<dt id=whitespace-diagram>whitespace</dt>
   2.450 +		<dt id=whitespace-diagram><a class=self-link href=#whitespace-diagram></a>whitespace</dt>
   2.451  		<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.452  
   2.453 -		<dt id=escape-diagram>escape</dt>
   2.454 +		<dt id=hex-digit-diagram><a class=self-link href=#hex-digit-diagram></a>hex digit</dt>
   2.455 +		<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="M182 31h0"></path><rect height=22 width=132 x=50 y=20></rect><text x=116 y=35>0-9 a-f or A-F</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.456 +
   2.457 +		<dt id=escape-diagram><a class=self-link href=#escape-diagram></a>escape</dt>
   2.458  		<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.459  
   2.460 -		<dt id=〈whitespace〉-diagram>〈whitespace〉</dt>
   2.461 +		<dt id=〈whitespace〉-diagram><a class=self-link href=#〈whitespace〉-diagram></a>〈whitespace〉</dt>
   2.462  		<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.463  
   2.464 -		<dt id=〈ident〉-diagram>〈ident〉</dt>
   2.465 +		<dt id=〈ident〉-diagram><a class=self-link href=#〈ident〉-diagram></a>〈ident〉</dt>
   2.466  		<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.467  
   2.468 -		<dt id=〈function〉-diagram>〈function〉</dt>
   2.469 +		<dt id=〈function〉-diagram><a class=self-link href=#〈function〉-diagram></a>〈function〉</dt>
   2.470  		<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.471  
   2.472 -		<dt id=〈at-keyword〉-diagram>〈at-keyword〉</dt>
   2.473 +		<dt id=〈at-keyword〉-diagram><a class=self-link href=#〈at-keyword〉-diagram></a>〈at-keyword〉</dt>
   2.474  		<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.475  
   2.476 -		<dt id=〈hash〉-diagram>〈hash〉</dt>
   2.477 +		<dt id=〈hash〉-diagram><a class=self-link href=#〈hash〉-diagram></a>〈hash〉</dt>
   2.478  		<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.479  
   2.480 -		<dt id=〈string〉-diagram>〈string〉</dt>
   2.481 +		<dt id=〈string〉-diagram><a class=self-link href=#〈string〉-diagram></a>〈string〉</dt>
   2.482  		<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.483  
   2.484 -		<dt id=〈url〉-diagram>〈url〉</dt>
   2.485 +		<dt id=〈url〉-diagram><a class=self-link href=#〈url〉-diagram></a>〈url〉</dt>
   2.486  		<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.487  
   2.488 -		<dt id=url-unquoted-diagram>url-unquoted</dt>
   2.489 +		<dt id=url-unquoted-diagram><a class=self-link href=#url-unquoted-diagram></a>url-unquoted</dt>
   2.490  		<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.491  
   2.492 -		<dt id=〈number〉-diagram>〈number〉</dt>
   2.493 +		<dt id=〈number〉-diagram><a class=self-link href=#〈number〉-diagram></a>〈number〉</dt>
   2.494  		<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.495  
   2.496 -		<dt id=〈dimension〉-diagram>〈dimension〉</dt>
   2.497 +		<dt id=〈dimension〉-diagram><a class=self-link href=#〈dimension〉-diagram></a>〈dimension〉</dt>
   2.498  		<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.499  
   2.500 -		<dt id=〈percentage〉-diagram>〈percentage〉</dt>
   2.501 +		<dt id=〈percentage〉-diagram><a class=self-link href=#〈percentage〉-diagram></a>〈percentage〉</dt>
   2.502  		<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.503  
   2.504 -		<dt id=〈unicode-range〉-diagram>〈unicode-range〉</dt>
   2.505 -		<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.506 -
   2.507 -		<dt id=〈include-match〉-diagram>〈include-match〉</dt>
   2.508 +		<dt id=〈unicode-range〉-diagram><a class=self-link href=#〈unicode-range〉-diagram></a>〈unicode-range〉</dt>
   2.509 +		<dd><svg class=railroad-diagram height=132 width=589><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 41h0"></path><path d="M88 41h0"></path><rect height=22 rx=10 ry=10 width=28 x=60 y=30></rect><text x=74 y=45>U</text></g><path d="M88 41h20"></path><path d="M40 41a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10"></path><g><path d="M60 71h0"></path><path d="M88 71h0"></path><rect height=22 rx=10 ry=10 width=28 x=60 y=60></rect><text x=74 y=75>u</text></g><path d="M88 71a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10"></path></g><path d="M108 41h10"></path><g><path d="M118 41h0"></path><path d="M146 41h0"></path><rect height=22 rx=10 ry=10 width=28 x=118 y=30></rect><text x=132 y=45>+</text></g><path d="M146 41h10"></path><g><path d="M156 41h0"></path><path d="M328 41h0"></path><path d="M156 41h10"></path><g><path d="M166 41h0"></path><path d="M318 41h0"></path><path d="M166 41h10"></path><g><path d="M176 41h0"></path><path d="M308 41h0"></path><path d="M176 41h20"></path><g><path d="M196 41h0"></path><path d="M288 41h0"></path><rect height=22 width=92 x=196 y=30></rect><text x=242 y=45>hex digit</text></g><path d="M288 41h20"></path><path d="M176 41a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10"></path><g><path d="M196 71h32"></path><path d="M256 71h32"></path><rect height=22 rx=10 ry=10 width=28 x=228 y=60></rect><text x=242 y=75>?</text></g><path d="M288 71a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10"></path></g><path d="M308 41h10"></path><path d="M176 41a10 10 0 0 0 -10 10v40a10 10 0 0 0 10 10"></path><g><path d="M176 101h29.5"></path><path d="M278.5 101h29.5"></path><text class=comment x=242 y=106>1-6 times</text></g><path d="M308 101a10 10 0 0 0 10 -10v-40a10 10 0 0 0 -10 -10"></path></g><path d="M318 41h10"></path></g><g><path d="M328 41h0"></path><path d="M548 41h0"></path><path d="M328 41a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path><g><path d="M348 21h180"></path></g><path d="M528 21a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><path d="M328 41h20"></path><g><path d="M348 41h0"></path><path d="M528 41h0"></path><path d="M348 41h10"></path><g><path d="M358 41h0"></path><path d="M386 41h0"></path><rect height=22 rx=10 ry=10 width=28 x=358 y=30></rect><text x=372 y=45>-</text></g><path d="M386 41h10"></path><path d="M396 41h10"></path><g><path d="M406 41h0"></path><path d="M518 41h0"></path><path d="M406 41h10"></path><g><path d="M416 41h0"></path><path d="M508 41h0"></path><rect height=22 width=92 x=416 y=30></rect><text x=462 y=45>hex digit</text></g><path d="M508 41h10"></path><path d="M416 41a10 10 0 0 0 -10 10v10a10 10 0 0 0 10 10"></path><g><path d="M416 71h9.5"></path><path d="M498.5 71h9.5"></path><text class=comment x=462 y=76>1-6 times</text></g><path d="M508 71a10 10 0 0 0 10 -10v-10a10 10 0 0 0 -10 -10"></path></g><path d="M518 41h10"></path></g><path d="M528 41h20"></path></g><path d="M 548 41 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
   2.510 +
   2.511 +		<dt id=〈include-match〉-diagram><a class=self-link href=#〈include-match〉-diagram></a>〈include-match〉</dt>
   2.512  		<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.513  
   2.514 -		<dt id=〈dash-match〉-diagram>〈dash-match〉</dt>
   2.515 +		<dt id=〈dash-match〉-diagram><a class=self-link href=#〈dash-match〉-diagram></a>〈dash-match〉</dt>
   2.516  		<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.517  
   2.518 -		<dt id=〈prefix-match〉-diagram>〈prefix-match〉</dt>
   2.519 +		<dt id=〈prefix-match〉-diagram><a class=self-link href=#〈prefix-match〉-diagram></a>〈prefix-match〉</dt>
   2.520  		<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.521  
   2.522 -		<dt id=〈suffix-match〉-diagram>〈suffix-match〉</dt>
   2.523 +		<dt id=〈suffix-match〉-diagram><a class=self-link href=#〈suffix-match〉-diagram></a>〈suffix-match〉</dt>
   2.524  		<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.525  
   2.526 -		<dt id=〈substring-match〉-diagram>〈substring-match〉</dt>
   2.527 +		<dt id=〈substring-match〉-diagram><a class=self-link href=#〈substring-match〉-diagram></a>〈substring-match〉</dt>
   2.528  		<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.529  
   2.530 -		<dt id=〈column〉-diagram>〈column〉</dt>
   2.531 +		<dt id=〈column〉-diagram><a class=self-link href=#〈column〉-diagram></a>〈column〉</dt>
   2.532  		<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.533  
   2.534 -		<dt id=〈cdo〉-diagram>〈CDO〉</dt>
   2.535 +		<dt id=〈cdo〉-diagram><a class=self-link href=#〈cdo〉-diagram></a>〈CDO〉</dt>
   2.536  		<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.537  
   2.538 -		<dt id=〈cdc〉-diagram>〈CDC〉</dt>
   2.539 +		<dt id=〈cdc〉-diagram><a class=self-link href=#〈cdc〉-diagram></a>〈CDC〉</dt>
   2.540  		<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.541  
   2.542  	</dl>
   2.543  
   2.544 -	
   2.545 -
   2.546 -<h3 data-level=4.2 id=definitions0><span class=secno>4.2 </span><span class=content>
   2.547 -Definitions</span><a class=section-link href=#definitions0>§</a></h3>
   2.548 +<h3 class="heading settled heading" data-level=4.2 id=definitions0><span class=secno>4.2 </span><span class=content>
   2.549 +Definitions</span><a class=self-link href=#definitions0></a></h3>
   2.550  
   2.551  <p>	This section defines several terms used during the tokenization phase.
   2.552  
   2.553  	<dl>
   2.554 -		<dt><dfn data-dfn-type=dfn data-noexport="" id=code-point>code point</dfn>
   2.555 +		<dt><dfn data-dfn-type=dfn data-noexport="" id=code-point>code point<a class=self-link href=#code-point></a></dfn>
   2.556  		<dd>
   2.557  			A <a href=http://unicode.org/glossary/#code_point>Unicode code point</a>.
   2.558  			Any value in the Unicode codespace; that is, the range of integers from 0 to (hexadecimal) 10FFFF.
   2.559  
   2.560 -		<dt><dfn data-dfn-type=dfn data-noexport="" id=next-input-code-point>next input code point</dfn>
   2.561 +		<dt><dfn data-dfn-type=dfn data-noexport="" id=next-input-code-point>next input code point<a class=self-link href=#next-input-code-point></a></dfn>
   2.562  		<dd>
   2.563  			The first <a href=#code-point>code point</a> in the input stream that has not yet been consumed.
   2.564  
   2.565 -		<dt><dfn data-dfn-type=dfn data-noexport="" id=current-input-code-point>current input code point</dfn>
   2.566 +		<dt><dfn data-dfn-type=dfn data-noexport="" id=current-input-code-point>current input code point<a class=self-link href=#current-input-code-point></a></dfn>
   2.567  		<dd>
   2.568  			The last <a href=#code-point>code point</a> to have been consumed.
   2.569  
   2.570 -		<dt><dfn data-dfn-type=dfn data-noexport="" id=reconsume-the-current-input-code-point>reconsume the current input code point</dfn>
   2.571 +		<dt><dfn data-dfn-type=dfn data-noexport="" id=reconsume-the-current-input-code-point>reconsume the current input code point<a class=self-link href=#reconsume-the-current-input-code-point></a></dfn>
   2.572  		<dd>
   2.573  			Push the <a href=#current-input-code-point>current input code point</a> back onto the front of the input stream,
   2.574  			so that the next time you are instructed to consume the <a href=#next-input-code-point>next input code point</a>,
   2.575  			it will instead reconsume the <a href=#current-input-code-point>current input code point</a>.
   2.576  
   2.577 -		<dt><dfn data-dfn-type=dfn data-noexport="" id=eof-code-point>EOF code point</dfn>
   2.578 +		<dt><dfn data-dfn-type=dfn data-noexport="" id=eof-code-point>EOF code point<a class=self-link href=#eof-code-point></a></dfn>
   2.579  		<dd>
   2.580  			A conceptual <a href=#code-point>code point</a> representing the end of the input stream.
   2.581  			Whenever the input stream is empty,
   2.582  			the <a href=#next-input-code-point>next input code point</a> is always an EOF code point.
   2.583  
   2.584 -		<dt><dfn data-dfn-type=dfn data-noexport="" id=digit>digit</dfn>
   2.585 +		<dt><dfn data-dfn-type=dfn data-noexport="" id=digit>digit<a class=self-link href=#digit></a></dfn>
   2.586  		<dd>
   2.587  			A <a href=#code-point>code point</a> between U+0030 DIGIT ZERO (0) and U+0039 DIGIT NINE (9).
   2.588  
   2.589 -		<dt><dfn data-dfn-type=dfn data-noexport="" id=hex-digit>hex digit</dfn>
   2.590 +		<dt><dfn data-dfn-type=dfn data-noexport="" id=hex-digit>hex digit<a class=self-link href=#hex-digit></a></dfn>
   2.591  		<dd>
   2.592  			A <a href=#digit>digit</a>,
   2.593  			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.594  			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.595  
   2.596 -		<dt><dfn data-dfn-type=dfn data-noexport="" id=uppercase-letter>uppercase letter</dfn>
   2.597 +		<dt><dfn data-dfn-type=dfn data-noexport="" id=uppercase-letter>uppercase letter<a class=self-link href=#uppercase-letter></a></dfn>
   2.598  		<dd>
   2.599  			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.600  
   2.601 -		<dt><dfn data-dfn-type=dfn data-noexport="" id=lowercase-letter>lowercase letter</dfn>
   2.602 +		<dt><dfn data-dfn-type=dfn data-noexport="" id=lowercase-letter>lowercase letter<a class=self-link href=#lowercase-letter></a></dfn>
   2.603  		<dd>
   2.604  			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.605  
   2.606 -		<dt><dfn data-dfn-type=dfn data-noexport="" id=letter>letter</dfn>
   2.607 +		<dt><dfn data-dfn-type=dfn data-noexport="" id=letter>letter<a class=self-link href=#letter></a></dfn>
   2.608  		<dd>
   2.609  			An <a href=#uppercase-letter>uppercase letter</a>
   2.610  			or a <a href=#lowercase-letter>lowercase letter</a>.
   2.611  
   2.612 -		<dt><dfn data-dfn-type=dfn data-noexport="" id=non-ascii-code-point>non-ASCII code point</dfn>
   2.613 +		<dt><dfn data-dfn-type=dfn data-noexport="" id=non-ascii-code-point>non-ASCII code point<a class=self-link href=#non-ascii-code-point></a></dfn>
   2.614  		<dd>
   2.615  			A <a href=#code-point>code point</a> with a value equal to or greater than U+0080 &lt;control&gt;.
   2.616  
   2.617 -		<dt><dfn data-dfn-type=dfn data-noexport="" id=name-start-code-point>name-start code point</dfn>
   2.618 +		<dt><dfn data-dfn-type=dfn data-noexport="" id=name-start-code-point>name-start code point<a class=self-link href=#name-start-code-point></a></dfn>
   2.619  		<dd>
   2.620  			A <a href=#letter>letter</a>,
   2.621  			a <a href=#non-ascii-code-point>non-ASCII code point</a>,
   2.622  			or U+005F LOW LINE (_).
   2.623  
   2.624 -		<dt><dfn data-dfn-type=dfn data-noexport="" id=name-code-point>name code point</dfn>
   2.625 +		<dt><dfn data-dfn-type=dfn data-noexport="" id=name-code-point>name code point<a class=self-link href=#name-code-point></a></dfn>
   2.626  		<dd>
   2.627  			A <a href=#name-start-code-point>name-start code point</a>,
   2.628  			A <a href=#digit>digit</a>,
   2.629  			or U+002D HYPHEN-MINUS (-).
   2.630  
   2.631 -		<dt><dfn data-dfn-type=dfn data-noexport="" id=non-printable-code-point>non-printable code point</dfn>
   2.632 +		<dt><dfn data-dfn-type=dfn data-noexport="" id=non-printable-code-point>non-printable code point<a class=self-link href=#non-printable-code-point></a></dfn>
   2.633  		<dd>
   2.634  			A <a href=#code-point>code point</a> between U+0000 NULL and U+0008 BACKSPACE,
   2.635  			or U+000B LINE TABULATION,
   2.636  			or a <a href=#code-point>code point</a> between U+000E SHIFT OUT and U+001F INFORMATION SEPARATOR ONE,
   2.637  			or U+007F DELETE.
   2.638  
   2.639 -		<dt><dfn data-dfn-type=dfn data-noexport="" id=newline>newline</dfn>
   2.640 +		<dt><dfn data-dfn-type=dfn data-noexport="" id=newline>newline<a class=self-link href=#newline></a></dfn>
   2.641  		<dd>
   2.642  			U+000A LINE FEED.
   2.643  			<span class=note>
   2.644 @@ -724,25 +730,25 @@
   2.645  				as they are converted to U+000A LINE FEED during <a href=#preprocessing-the-input-stream>preprocessing</a>.
   2.646  			</span>
   2.647  
   2.648 -		<dt><dfn data-dfn-type=dfn data-noexport="" id=whitespace>whitespace</dfn>
   2.649 +		<dt><dfn data-dfn-type=dfn data-noexport="" id=whitespace>whitespace<a class=self-link href=#whitespace></a></dfn>
   2.650  		<dd>A <a href=#newline>newline</a>, U+0009 CHARACTER TABULATION, or U+0020 SPACE.
   2.651  
   2.652 -		<dt><dfn data-dfn-type=dfn data-noexport="" id=surrogate-code-point>surrogate code point</dfn>
   2.653 +		<dt><dfn data-dfn-type=dfn data-noexport="" id=surrogate-code-point>surrogate code point<a class=self-link href=#surrogate-code-point></a></dfn>
   2.654  		<dd>
   2.655  			A <a href=#code-point>code point</a> between U+D800 and U+DFFF inclusive.
   2.656  
   2.657 -		<dt><dfn data-dfn-type=dfn data-noexport="" id=maximum-allowed-code-point>maximum allowed code point</dfn>
   2.658 +		<dt><dfn data-dfn-type=dfn data-noexport="" id=maximum-allowed-code-point>maximum allowed code point<a class=self-link href=#maximum-allowed-code-point></a></dfn>
   2.659  		<dd>The greatest <a href=#code-point>code point</a> defined by Unicode.  This is currently U+10FFFF.
   2.660  
   2.661  	</dl>
   2.662  
   2.663 -<h3 data-level=4.3 id=tokenizer-algorithms><span class=secno>4.3 </span><span class=content>
   2.664 -Tokenizer Algorithms</span><a class=section-link href=#tokenizer-algorithms>§</a></h3>
   2.665 +<h3 class="heading settled heading" data-level=4.3 id=tokenizer-algorithms><span class=secno>4.3 </span><span class=content>
   2.666 +Tokenizer Algorithms</span><a class=self-link href=#tokenizer-algorithms></a></h3>
   2.667  
   2.668  <p>	The algorithms defined in this section transform a stream of <a href=#code-point>code points</a> into a stream of tokens.
   2.669  
   2.670 -<h4 data-level=4.3.1 id=consume-a-token><span class=secno>4.3.1 </span><span class=content>
   2.671 -<dfn data-dfn-type=dfn data-noexport="" id=consume-a-token0>Consume a token</dfn></span><a class=section-link href=#consume-a-token>§</a></h4>
   2.672 +<h4 class="heading settled heading" data-level=4.3.1 id=consume-a-token><span class=secno>4.3.1 </span><span class=content>
   2.673 +<dfn data-dfn-type=dfn data-noexport="" id=consume-a-token0>Consume a token<a class=self-link href=#consume-a-token0></a></dfn></span><a class=self-link href=#consume-a-token></a></h4>
   2.674  
   2.675  <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.676  	It will return a single token of any type.
   2.677 @@ -753,7 +759,7 @@
   2.678  		<dt><a href=#whitespace>whitespace</a>
   2.679  		<dd>
   2.680  			Consume as much <a href=#whitespace>whitespace</a> as possible.
   2.681 -			Return a <a data-link-type=token href=#tokendef-whitespace>〈whitespace〉</a>.
   2.682 +			Return a <a class=css-code data-link-type=token href=#tokendef-whitespace>〈whitespace〉</a>.
   2.683  
   2.684  		<dt>U+0022 QUOTATION MARK (")
   2.685  		<dd>
   2.686 @@ -769,22 +775,22 @@
   2.687  
   2.688  			<ol>
   2.689  				<li>
   2.690 -					Create a <a data-link-type=token href=#tokendef-hash>〈hash〉</a>.
   2.691 +					Create a <a class=css-code data-link-type=token href=#tokendef-hash>〈hash〉</a>.
   2.692  
   2.693  				<li>
   2.694  					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.695 -					set the <a data-link-type=token href=#tokendef-hash>〈hash〉</a>’s type flag to "id".
   2.696 +					set the <a class=css-code data-link-type=token href=#tokendef-hash>〈hash〉</a>’s type flag to "id".
   2.697  
   2.698  				<li>
   2.699  					<a href=#consume-a-name0>Consume a name</a>,
   2.700 -					and set the <a data-link-type=token href=#tokendef-hash>〈hash〉</a>’s value to the returned string.
   2.701 +					and set the <a class=css-code data-link-type=token href=#tokendef-hash>〈hash〉</a>’s value to the returned string.
   2.702  
   2.703  				<li>
   2.704 -					Return the <a data-link-type=token href=#tokendef-hash>〈hash〉</a>.
   2.705 +					Return the <a class=css-code data-link-type=token href=#tokendef-hash>〈hash〉</a>.
   2.706  			</ol>
   2.707  
   2.708  <p>			Otherwise,
   2.709 -			return a <a data-link-type=token href=#tokendef-delim>〈delim〉</a>
   2.710 +			return a <a class=css-code data-link-type=token href=#tokendef-delim>〈delim〉</a>
   2.711  			with its value set to the <a href=#current-input-code-point>current input code point</a>.
   2.712  
   2.713  		<dt>U+0024 DOLLAR SIGN ($)
   2.714 @@ -792,10 +798,10 @@
   2.715  			If the <a href=#next-input-code-point>next input code point</a> is
   2.716  			U+003D EQUALS SIGN (=),
   2.717  			consume it
   2.718 -			and return a <a data-link-type=token href=#tokendef-suffix-match>〈suffix-match〉</a>.
   2.719 +			and return a <a class=css-code data-link-type=token href=#tokendef-suffix-match>〈suffix-match〉</a>.
   2.720  
   2.721  <p>			Otherwise,
   2.722 -			emit a <a data-link-type=token href=#tokendef-delim>〈delim〉</a>
   2.723 +			emit a <a class=css-code data-link-type=token href=#tokendef-delim>〈delim〉</a>
   2.724  			with its value set to the <a href=#current-input-code-point>current input code point</a>.
   2.725  
   2.726  		<dt>U+0027 APOSTROPHE (')
   2.727 @@ -805,21 +811,21 @@
   2.728  
   2.729  		<dt>U+0028 LEFT PARENTHESIS (()
   2.730  		<dd>
   2.731 -			Return a <a data-link-type=token href=#tokendef-open-paren>〈(〉</a>.
   2.732 +			Return a <a class=css-code data-link-type=token href=#tokendef-open-paren>〈(〉</a>.
   2.733  
   2.734  		<dt>U+0029 RIGHT PARENTHESIS ())
   2.735  		<dd>
   2.736 -			Return a <a data-link-type=token href=#tokendef-close-paren>〈)〉</a>.
   2.737 +			Return a <a class=css-code data-link-type=token href=#tokendef-close-paren>〈)〉</a>.
   2.738  
   2.739  		<dt>U+002A ASTERISK (*)
   2.740  		<dd>
   2.741  			If the <a href=#next-input-code-point>next input code point</a> is
   2.742  			U+003D EQUALS SIGN (=),
   2.743  			consume it
   2.744 -			and return a <a data-link-type=token href=#tokendef-substring-match>〈substring-match〉</a>.
   2.745 +			and return a <a class=css-code data-link-type=token href=#tokendef-substring-match>〈substring-match〉</a>.
   2.746  
   2.747  <p>			Otherwise,
   2.748 -			return a <a data-link-type=token href=#tokendef-delim>〈delim〉</a>
   2.749 +			return a <a class=css-code data-link-type=token href=#tokendef-delim>〈delim〉</a>
   2.750  			with its value set to the <a href=#current-input-code-point>current input code point</a>.
   2.751  
   2.752  		<dt>U+002B PLUS SIGN (+)
   2.753 @@ -830,12 +836,12 @@
   2.754  			and return it.
   2.755  
   2.756  <p>			Otherwise,
   2.757 -			return a <a data-link-type=token href=#tokendef-delim>〈delim〉</a>
   2.758 +			return a <a class=css-code data-link-type=token href=#tokendef-delim>〈delim〉</a>
   2.759  			with its value set to the <a href=#current-input-code-point>current input code point</a>.
   2.760  
   2.761  		<dt>U+002C COMMA (,)
   2.762  		<dd>
   2.763 -			Return a <a data-link-type=token href=#tokendef-comma>〈comma〉</a>.
   2.764 +			Return a <a class=css-code data-link-type=token href=#tokendef-comma>〈comma〉</a>.
   2.765  
   2.766  		<dt>U+002D HYPHEN-MINUS (-)
   2.767  		<dd>
   2.768 @@ -856,10 +862,10 @@
   2.769  			U+003E GREATER-THAN SIGN
   2.770  			(-&gt;),
   2.771  			consume them
   2.772 -			and return a <a data-link-type=token href=#tokendef-cdc>〈CDC〉</a>.
   2.773 +			and return a <a class=css-code data-link-type=token href=#tokendef-cdc>〈CDC〉</a>.
   2.774  
   2.775  <p>			Otherwise,
   2.776 -			return a <a data-link-type=token href=#tokendef-delim>〈delim〉</a>
   2.777 +			return a <a class=css-code data-link-type=token href=#tokendef-delim>〈delim〉</a>
   2.778  			with its value set to the <a href=#current-input-code-point>current input code point</a>.
   2.779  
   2.780  		<dt>U+002E FULL STOP (.)
   2.781 @@ -870,7 +876,7 @@
   2.782  			and return it.
   2.783  
   2.784  <p>			Otherwise,
   2.785 -			return a <a data-link-type=token href=#tokendef-delim>〈delim〉</a>
   2.786 +			return a <a class=css-code data-link-type=token href=#tokendef-delim>〈delim〉</a>
   2.787  			with its value set to the <a href=#current-input-code-point>current input code point</a>.
   2.788  
   2.789  		<dt>U+002F SOLIDUS (/)
   2.790 @@ -884,16 +890,16 @@
   2.791  			and return it.
   2.792  
   2.793  <p>			Otherwise,
   2.794 -			return a <a data-link-type=token href=#tokendef-delim>〈delim〉</a>
   2.795 +			return a <a class=css-code data-link-type=token href=#tokendef-delim>〈delim〉</a>
   2.796  			with its value set to the <a href=#current-input-code-point>current input code point</a>.
   2.797  
   2.798  		<dt>U+003A COLON (:)
   2.799  		<dd>
   2.800 -			Return a <a data-link-type=token href=#tokendef-colon>〈colon〉</a>.
   2.801 +			Return a <a class=css-code data-link-type=token href=#tokendef-colon>〈colon〉</a>.
   2.802  
   2.803  		<dt>U+003B SEMICOLON (;)
   2.804  		<dd>
   2.805 -			Return a <a data-link-type=token href=#tokendef-semicolon>〈semicolon〉</a>.
   2.806 +			Return a <a class=css-code data-link-type=token href=#tokendef-semicolon>〈semicolon〉</a>.
   2.807  
   2.808  		<dt>U+003C LESS-THAN SIGN (&lt;)
   2.809  		<dd>
   2.810 @@ -903,10 +909,10 @@
   2.811  			U+002D HYPHEN-MINUS
   2.812  			(!--),
   2.813  			consume them
   2.814 -			and return a <a data-link-type=token href=#tokendef-cdo>〈CDO〉</a>.
   2.815 +			and return a <a class=css-code data-link-type=token href=#tokendef-cdo>〈CDO〉</a>.
   2.816  
   2.817  <p>			Otherwise,
   2.818 -			return a <a data-link-type=token href=#tokendef-delim>〈delim〉</a>
   2.819 +			return a <a class=css-code data-link-type=token href=#tokendef-delim>〈delim〉</a>
   2.820  			with its value set to the <a href=#current-input-code-point>current input code point</a>.
   2.821  
   2.822  		<dt>U+0040 COMMERCIAL AT (@)
   2.823 @@ -914,16 +920,16 @@
   2.824  			If the <a href=#next-input-code-point title="next input code point">next 3 input code points</a>
   2.825  			<a href=#check-if-three-code-points-would-start-an-identifier0>would start an identifier</a>,
   2.826  			<a href=#consume-a-name0>consume a name</a>,
   2.827 -			create an <a data-link-type=token href=#tokendef-at-keyword>〈at-keyword〉</a> with its value set to the returned value,
   2.828 +			create an <a class=css-code data-link-type=token href=#tokendef-at-keyword>〈at-keyword〉</a> with its value set to the returned value,
   2.829  			and return it.
   2.830  
   2.831  <p>			Otherwise,
   2.832 -			return a <a data-link-type=token href=#tokendef-delim>〈delim〉</a>
   2.833 +			return a <a class=css-code data-link-type=token href=#tokendef-delim>〈delim〉</a>
   2.834  			with its value set to the <a href=#current-input-code-point>current input code point</a>.
   2.835  
   2.836  		<dt>U+005B LEFT SQUARE BRACKET ([)
   2.837  		<dd>
   2.838 -			Return a <a data-link-type=token href=#tokendef-open-square>〈[〉</a>.
   2.839 +			Return a <a class=css-code data-link-type=token href=#tokendef-open-square>〈[〉</a>.
   2.840  
   2.841  		<dt>U+005C REVERSE SOLIDUS (\)
   2.842  		<dd>
   2.843 @@ -934,31 +940,31 @@
   2.844  
   2.845  <p>			Otherwise,
   2.846  			this is a <a href=#parse-errors>parse error</a>.
   2.847 -			Return a <a data-link-type=token href=#tokendef-delim>〈delim〉</a>
   2.848 +			Return a <a class=css-code data-link-type=token href=#tokendef-delim>〈delim〉</a>
   2.849  			with its value set to the <a href=#current-input-code-point>current input code point</a>.
   2.850  
   2.851  		<dt>U+005D RIGHT SQUARE BRACKET (])
   2.852  		<dd>
   2.853 -			Return a <a data-link-type=token href=#tokendef-close-square>〈]〉</a>.
   2.854 +			Return a <a class=css-code data-link-type=token href=#tokendef-close-square>〈]〉</a>.
   2.855  
   2.856  		<dt>U+005E CIRCUMFLEX ACCENT (^)
   2.857  		<dd>
   2.858  			If the <a href=#next-input-code-point>next input code point</a> is
   2.859  			U+003D EQUALS SIGN (=),
   2.860  			consume it
   2.861 -			and return a <a data-link-type=token href=#tokendef-prefix-match>〈prefix-match〉</a>.
   2.862 +			and return a <a class=css-code data-link-type=token href=#tokendef-prefix-match>〈prefix-match〉</a>.
   2.863  
   2.864  <p>			Otherwise,
   2.865 -			return a <a data-link-type=token href=#tokendef-delim>〈delim〉</a>
   2.866 +			return a <a class=css-code data-link-type=token href=#tokendef-delim>〈delim〉</a>
   2.867  			with its value set to the <a href=#current-input-code-point>current input code point</a>.
   2.868  
   2.869  		<dt>U+007B LEFT CURLY BRACKET ({)
   2.870  		<dd>
   2.871 -			Return a <a data-link-type=token href=#tokendef-open-curly>〈{〉</a>.
   2.872 +			Return a <a class=css-code data-link-type=token href=#tokendef-open-curly>〈{〉</a>.
   2.873  
   2.874  		<dt>U+007D RIGHT CURLY BRACKET (})
   2.875  		<dd>
   2.876 -			Return a <a data-link-type=token href=#tokendef-close-curly>〈}〉</a>.
   2.877 +			Return a <a class=css-code data-link-type=token href=#tokendef-close-curly>〈}〉</a>.
   2.878  
   2.879  		<dt><a href=#digit>digit</a>
   2.880  		<dd>
   2.881 @@ -973,7 +979,7 @@
   2.882  			followed by a <a href=#hex-digit>hex digit</a>
   2.883  			or U+003F QUESTION MARK (?),
   2.884  			consume the <a href=#next-input-code-point>next input code point</a>.
   2.885 -			<span class=note>Note: don't consume both of them.</span>
   2.886 +			<span class=note>Note: don’t consume both of them.</span>
   2.887  			<a href=#consume-a-unicode-range-token0>Consume a unicode-range token</a>
   2.888  			and return it.
   2.889  
   2.890 @@ -993,16 +999,16 @@
   2.891  			If the <a href=#next-input-code-point>next input code point</a> is
   2.892  			U+003D EQUALS SIGN (=),
   2.893  			consume it
   2.894 -			and return a <a data-link-type=token href=#tokendef-dash-match>〈dash-match〉</a>.
   2.895 +			and return a <a class=css-code data-link-type=token href=#tokendef-dash-match>〈dash-match〉</a>.
   2.896  
   2.897  <p>			Otherwise,
   2.898  			if the <a href=#next-input-code-point>next input code point</a> is
   2.899  			U+0073 VERTICAL LINE (|),
   2.900  			consume it
   2.901 -			and return a <a data-link-type=token href=#tokendef-column>〈column〉</a>.
   2.902 +			and return a <a class=css-code data-link-type=token href=#tokendef-column>〈column〉</a>.
   2.903  
   2.904  <p>			Otherwise,
   2.905 -			return a <a data-link-type=token href=#tokendef-delim>〈delim〉</a>
   2.906 +			return a <a class=css-code data-link-type=token href=#tokendef-delim>〈delim〉</a>
   2.907  			with its value set to the <a href=#current-input-code-point>current input code point</a>.
   2.908  
   2.909  		<dt>U+007E TILDE (~)
   2.910 @@ -1010,30 +1016,30 @@
   2.911  			If the <a href=#next-input-code-point>next input code point</a> is
   2.912  			U+003D EQUALS SIGN (=),
   2.913  			consume it
   2.914 -			and return an <a data-link-type=token href=#tokendef-include-match>〈include-match〉</a>.
   2.915 +			and return an <a class=css-code data-link-type=token href=#tokendef-include-match>〈include-match〉</a>.
   2.916  
   2.917  <p>			Otherwise,
   2.918 -			return a <a data-link-type=token href=#tokendef-delim>〈delim〉</a>
   2.919 +			return a <a class=css-code data-link-type=token href=#tokendef-delim>〈delim〉</a>
   2.920  			with its value set to the <a href=#current-input-code-point>current input code point</a>.
   2.921  
   2.922  		<dt>EOF
   2.923  		<dd>
   2.924 -			Return an <a data-link-type=token href=#tokendef-eof>〈EOF〉</a> token.
   2.925 +			Return an <a class=css-code data-link-type=token href=#tokendef-eof>〈EOF〉</a> token.
   2.926  
   2.927  		<dt>anything else
   2.928  		<dd>
   2.929 -			Return a <a data-link-type=token href=#tokendef-delim>〈delim〉</a>
   2.930 +			Return a <a class=css-code data-link-type=token href=#tokendef-delim>〈delim〉</a>
   2.931  			with its value set to the <a href=#current-input-code-point>current input code point</a>.
   2.932  	</dl>
   2.933  
   2.934  
   2.935  
   2.936  
   2.937 -<h4 data-level=4.3.2 id=consume-a-numeric-token><span class=secno>4.3.2 </span><span class=content>
   2.938 -<dfn data-dfn-type=dfn data-noexport="" id=consume-a-numeric-token0>Consume a numeric token</dfn></span><a class=section-link href=#consume-a-numeric-token>§</a></h4>
   2.939 +<h4 class="heading settled heading" data-level=4.3.2 id=consume-a-numeric-token><span class=secno>4.3.2 </span><span class=content>
   2.940 +<dfn data-dfn-type=dfn data-noexport="" id=consume-a-numeric-token0>Consume a numeric token<a class=self-link href=#consume-a-numeric-token0></a></dfn></span><a class=self-link href=#consume-a-numeric-token></a></h4>
   2.941  
   2.942  <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.943 -	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.944 +	It returns either a <a class=css-code data-link-type=token href=#tokendef-number>〈number〉</a>, <a class=css-code data-link-type=token href=#tokendef-percentage>〈percentage〉</a>, or <a class=css-code data-link-type=token href=#tokendef-dimension>〈dimension〉</a>.
   2.945  
   2.946  <p>	<a href=#consume-a-number0>Consume a number</a>.
   2.947  
   2.948 @@ -1041,35 +1047,35 @@
   2.949  	then:
   2.950  
   2.951  	<ol>
   2.952 -		<li>Create a <a data-link-type=token href=#tokendef-dimension>〈dimension〉</a> with the same representation, value, and type flag as the returned number,
   2.953 +		<li>Create a <a class=css-code data-link-type=token href=#tokendef-dimension>〈dimension〉</a> with the same representation, value, and type flag as the returned number,
   2.954  			and a unit set initially to the empty string.
   2.955  
   2.956  		<li><a href=#consume-a-name0>Consume a name</a>.
   2.957 -			Set the <a data-link-type=token href=#tokendef-dimension>〈dimension〉</a>’s unit to the returned value.
   2.958 -
   2.959 -		<li>Return the <a data-link-type=token href=#tokendef-dimension>〈dimension〉</a>.
   2.960 +			Set the <a class=css-code data-link-type=token href=#tokendef-dimension>〈dimension〉</a>’s unit to the returned value.
   2.961 +
   2.962 +		<li>Return the <a class=css-code data-link-type=token href=#tokendef-dimension>〈dimension〉</a>.
   2.963  	</ol>
   2.964  
   2.965  <p>	Otherwise,
   2.966  	if the <a href=#next-input-code-point>next input code point</a> is U+0025 PERCENTAGE SIGN (%),
   2.967  	consume it.
   2.968 -	Create a <a data-link-type=token href=#tokendef-percentage>〈percentage〉</a> with the same representation and value as the returned number,
   2.969 +	Create a <a class=css-code data-link-type=token href=#tokendef-percentage>〈percentage〉</a> with the same representation and value as the returned number,
   2.970  	and return it.
   2.971  
   2.972  <p>	Otherwise,
   2.973 -	create a <a data-link-type=token href=#tokendef-number>〈number〉</a> with the same representation, value, and type flag as the returned number,
   2.974 +	create a <a class=css-code data-link-type=token href=#tokendef-number>〈number〉</a> with the same representation, value, and type flag as the returned number,
   2.975  	and return it.
   2.976  
   2.977  
   2.978 -<h4 data-level=4.3.3 id=consume-an-ident-like-token><span class=secno>4.3.3 </span><span class=content>
   2.979 -<dfn data-dfn-type=dfn data-noexport="" 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.980 +<h4 class="heading settled heading" data-level=4.3.3 id=consume-an-ident-like-token><span class=secno>4.3.3 </span><span class=content>
   2.981 +<dfn data-dfn-type=dfn data-noexport="" id=consume-an-ident-like-token0>Consume an ident-like token<a class=self-link href=#consume-an-ident-like-token0></a></dfn></span><a class=self-link href=#consume-an-ident-like-token></a></h4>
   2.982  
   2.983  <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.984 -	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.985 +	It returns an <a class=css-code data-link-type=token href=#tokendef-ident>〈ident〉</a>, <a class=css-code data-link-type=token href=#tokendef-function>〈function〉</a>, <a class=css-code data-link-type=token href=#tokendef-url>〈url〉</a>, or <a class=css-code data-link-type=token href=#tokendef-bad-url>〈bad-url〉</a>.
   2.986  
   2.987  <p>	<a href=#consume-a-name0>Consume a name</a>.
   2.988  
   2.989 -<p>	If the returned string's value is an <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for "url",
   2.990 +<p>	If the returned string’s value is an <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for "url",
   2.991  	and the <a href=#next-input-code-point>next input code point</a> is U+0028 LEFT PARENTHESIS ((),
   2.992  	consume it.
   2.993  	<a href=#consume-a-url-token0>Consume a url token</a>,
   2.994 @@ -1078,26 +1084,26 @@
   2.995  <p>	Otherwise,
   2.996  	if the <a href=#next-input-code-point>next input code point</a> is U+0028 LEFT PARENTHESIS ((),
   2.997  	consume it.
   2.998 -	Create a <a data-link-type=token href=#tokendef-function>〈function〉</a> token
   2.999 +	Create a <a class=css-code data-link-type=token href=#tokendef-function>〈function〉</a> token
  2.1000  	with its value set to the returned string
  2.1001  	and return it.
  2.1002  
  2.1003  <p>	Otherwise,
  2.1004 -	create an <a data-link-type=token href=#tokendef-ident>〈ident〉</a> token
  2.1005 +	create an <a class=css-code data-link-type=token href=#tokendef-ident>〈ident〉</a> token
  2.1006  	with its value set to the returned string
  2.1007  	and return it.
  2.1008  
  2.1009  
  2.1010 -<h4 data-level=4.3.4 id=consume-a-string-token><span class=secno>4.3.4 </span><span class=content>
  2.1011 -<dfn data-dfn-type=dfn data-noexport="" id=consume-a-string-token0>Consume a string token</dfn></span><a class=section-link href=#consume-a-string-token>§</a></h4>
  2.1012 +<h4 class="heading settled heading" data-level=4.3.4 id=consume-a-string-token><span class=secno>4.3.4 </span><span class=content>
  2.1013 +<dfn data-dfn-type=dfn data-noexport="" id=consume-a-string-token0>Consume a string token<a class=self-link href=#consume-a-string-token0></a></dfn></span><a class=self-link href=#consume-a-string-token></a></h4>
  2.1014  
  2.1015  <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.1016 -	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.1017 +	It returns either a <a class=css-code data-link-type=token href=#tokendef-string>〈string〉</a> or <a class=css-code data-link-type=token href=#tokendef-bad-string>〈bad-string〉</a>.
  2.1018  
  2.1019  <p>	This algorithm must be called with an <var>ending code point</var>,
  2.1020  	which denotes the <a href=#code-point>code point</a> that ends the string.
  2.1021  
  2.1022 -<p>	Initially create a <a data-link-type=token href=#tokendef-string>〈string〉</a> with its value set to the empty string.
  2.1023 +<p>	Initially create a <a class=css-code data-link-type=token href=#tokendef-string>〈string〉</a> with its value set to the empty string.
  2.1024  
  2.1025  <p>	Repeatedly consume the <a href=#next-input-code-point>next input code point</a> from the stream:
  2.1026  
  2.1027 @@ -1105,13 +1111,13 @@
  2.1028  		<dt><var>ending code point</var>
  2.1029  		<dt>EOF
  2.1030  		<dd>
  2.1031 -			Return the <a data-link-type=token href=#tokendef-string>〈string〉</a>.
  2.1032 +			Return the <a class=css-code data-link-type=token href=#tokendef-string>〈string〉</a>.
  2.1033  
  2.1034  		<dt><a href=#newline>newline</a>
  2.1035  		<dd>
  2.1036  			This is a <a href=#parse-errors>parse error</a>.
  2.1037  			<a href=#reconsume-the-current-input-code-point>Reconsume the current input code point</a>,
  2.1038 -			create a <a data-link-type=token href=#tokendef-bad-string>〈bad-string〉</a>, and return it.
  2.1039 +			create a <a class=css-code data-link-type=token href=#tokendef-bad-string>〈bad-string〉</a>, and return it.
  2.1040  
  2.1041  		<dt>U+005C REVERSE SOLIDUS (\)
  2.1042  		<dd>
  2.1043 @@ -1125,19 +1131,19 @@
  2.1044  <p>			Otherwise,
  2.1045  			if the stream <a href=#check-if-two-code-points-are-a-valid-escape0>starts with a valid escape</a>,
  2.1046  			<a href=#consume-an-escaped-code-point0>consume an escaped code point</a>
  2.1047 -			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.1048 +			and append the returned <a href=#code-point>code point</a> to the <a class=css-code data-link-type=token href=#tokendef-string>〈string〉</a>’s value.
  2.1049  
  2.1050  		<dt>anything else
  2.1051  		<dd>
  2.1052 -			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.1053 +			Append the <a href=#current-input-code-point>current input code point</a> to the <a class=css-code data-link-type=token href=#tokendef-string>〈string〉</a>’s value.
  2.1054  	</dl>
  2.1055  
  2.1056  
  2.1057 -<h4 data-level=4.3.5 id=consume-a-url-token><span class=secno>4.3.5 </span><span class=content>
  2.1058 -<dfn data-dfn-type=dfn data-noexport="" id=consume-a-url-token0>Consume a url token</dfn></span><a class=section-link href=#consume-a-url-token>§</a></h4>
  2.1059 +<h4 class="heading settled heading" data-level=4.3.5 id=consume-a-url-token><span class=secno>4.3.5 </span><span class=content>
  2.1060 +<dfn data-dfn-type=dfn data-noexport="" id=consume-a-url-token0>Consume a url token<a class=self-link href=#consume-a-url-token0></a></dfn></span><a class=self-link href=#consume-a-url-token></a></h4>
  2.1061  
  2.1062  <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.1063 -	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.1064 +	It returns either a <a class=css-code data-link-type=token href=#tokendef-url>〈url〉</a> or a <a class=css-code data-link-type=token href=#tokendef-bad-url>〈bad-url〉</a>.
  2.1065  
  2.1066  <p class=note>	Note: This algorithm assumes that the initial "url(" has already been consumed.
  2.1067  
  2.1068 @@ -1145,14 +1151,14 @@
  2.1069  
  2.1070  	<ol>
  2.1071  		<li>
  2.1072 -			Initially create a <a data-link-type=token href=#tokendef-url>〈url〉</a> with its value set to the empty string.
  2.1073 +			Initially create a <a class=css-code data-link-type=token href=#tokendef-url>〈url〉</a> with its value set to the empty string.
  2.1074  
  2.1075  		<li>
  2.1076  			Consume as much <a href=#whitespace>whitespace</a> as possible.
  2.1077  
  2.1078  		<li>
  2.1079  			If the <a href=#next-input-code-point>next input code point</a> is EOF,
  2.1080 -			return the <a data-link-type=token href=#tokendef-url>〈url〉</a>.
  2.1081 +			return the <a class=css-code data-link-type=token href=#tokendef-url>〈url〉</a>.
  2.1082  
  2.1083  		<li>
  2.1084  			If the <a href=#next-input-code-point>next input code point</a> is a U+0022 QUOTATION MARK (") or U+0027 APOSTROPHE ('),
  2.1085 @@ -1163,23 +1169,23 @@
  2.1086  					<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.1087  
  2.1088  				<li>
  2.1089 -					If a <a data-link-type=token href=#tokendef-bad-string>〈bad-string〉</a> was returned,
  2.1090 +					If a <a class=css-code data-link-type=token href=#tokendef-bad-string>〈bad-string〉</a> was returned,
  2.1091  					<a href=#consume-the-remnants-of-a-bad-url0>consume the remnants of a bad url</a>,
  2.1092 -					create a <a data-link-type=token href=#tokendef-bad-url>〈bad-url〉</a>,
  2.1093 +					create a <a class=css-code data-link-type=token href=#tokendef-bad-url>〈bad-url〉</a>,
  2.1094  					and return it.
  2.1095  
  2.1096  				<li>
  2.1097 -					Set the <a data-link-type=token href=#tokendef-url>〈url〉</a>’s value to the returned <a data-link-type=token href=#tokendef-string>〈string〉</a>’s value.
  2.1098 +					Set the <a class=css-code data-link-type=token href=#tokendef-url>〈url〉</a>’s value to the returned <a class=css-code data-link-type=token href=#tokendef-string>〈string〉</a>’s value.
  2.1099  
  2.1100  				<li>
  2.1101  					Consume as much <a href=#whitespace>whitespace</a> as possible.
  2.1102  
  2.1103  				<li>
  2.1104  					If the <a href=#next-input-code-point>next input code point</a> is U+0029 RIGHT PARENTHESIS ()) or EOF,
  2.1105 -					consume it and return the <a data-link-type=token href=#tokendef-url>〈url〉</a>;
  2.1106 +					consume it and return the <a class=css-code data-link-type=token href=#tokendef-url>〈url〉</a>;
  2.1107  					otherwise,
  2.1108  					<a href=#consume-the-remnants-of-a-bad-url0>consume the remnants of a bad url</a>,
  2.1109 -					create a <a data-link-type=token href=#tokendef-bad-url>〈bad-url〉</a>,
  2.1110 +					create a <a class=css-code data-link-type=token href=#tokendef-bad-url>〈bad-url〉</a>,
  2.1111  					and return it.
  2.1112  			</ol>
  2.1113  
  2.1114 @@ -1190,16 +1196,16 @@
  2.1115  				<dt>U+0029 RIGHT PARENTHESIS ())
  2.1116  				<dt>EOF
  2.1117  				<dd>
  2.1118 -					Return the <a data-link-type=token href=#tokendef-url>〈url〉</a>.
  2.1119 +					Return the <a class=css-code data-link-type=token href=#tokendef-url>〈url〉</a>.
  2.1120  
  2.1121  				<dt><a href=#whitespace>whitespace</a>
  2.1122  				<dd>
  2.1123  					Consume as much <a href=#whitespace>whitespace</a> as possible.
  2.1124  					If the <a href=#next-input-code-point>next input code point</a> is U+0029 RIGHT PARENTHESIS ()) or EOF,
  2.1125 -					consume it and return the <a data-link-type=token href=#tokendef-url>〈url〉</a>;
  2.1126 +					consume it and return the <a class=css-code data-link-type=token href=#tokendef-url>〈url〉</a>;
  2.1127  					otherwise,
  2.1128  					<a href=#consume-the-remnants-of-a-bad-url0>consume the remnants of a bad url</a>,
  2.1129 -					create a <a data-link-type=token href=#tokendef-bad-url>〈bad-url〉</a>,
  2.1130 +					create a <a class=css-code data-link-type=token href=#tokendef-bad-url>〈bad-url〉</a>,
  2.1131  					and return it.
  2.1132  
  2.1133  				<dt>U+0022 QUOTATION MARK (")
  2.1134 @@ -1209,34 +1215,34 @@
  2.1135  				<dd>
  2.1136  					This is a <a href=#parse-errors>parse error</a>.
  2.1137  					<a href=#consume-the-remnants-of-a-bad-url0>Consume the remnants of a bad url</a>,
  2.1138 -					create a <a data-link-type=token href=#tokendef-bad-url>〈bad-url〉</a>,
  2.1139 +					create a <a class=css-code data-link-type=token href=#tokendef-bad-url>〈bad-url〉</a>,
  2.1140  					and return it.
  2.1141  
  2.1142  				<dt>U+005C REVERSE SOLIDUS
  2.1143  				<dd>
  2.1144  					If the stream <a href=#check-if-two-code-points-are-a-valid-escape0>starts with a valid escape</a>,
  2.1145  					<a href=#consume-an-escaped-code-point0>consume an escaped code point</a>
  2.1146 -					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.1147 +					and append the returned <a href=#code-point>code point</a> to the <a class=css-code data-link-type=token href=#tokendef-url>〈url〉</a>’s value.
  2.1148  
  2.1149  <p>					Otherwise,
  2.1150  					this is a <a href=#parse-errors>parse error</a>.
  2.1151  					<a href=#consume-the-remnants-of-a-bad-url0>Consume the remnants of a bad url</a>,
  2.1152 -					create a <a data-link-type=token href=#tokendef-bad-url>〈bad-url〉</a>,
  2.1153 +					create a <a class=css-code data-link-type=token href=#tokendef-bad-url>〈bad-url〉</a>,
  2.1154  					and return it.
  2.1155  
  2.1156  				<dt>anything else
  2.1157  				<dd>
  2.1158  					Append the <a href=#current-input-code-point>current input code point</a>
  2.1159 -					to the <a data-link-type=token href=#tokendef-url>〈url〉</a>’s value.
  2.1160 +					to the <a class=css-code data-link-type=token href=#tokendef-url>〈url〉</a>’s value.
  2.1161  			</dl>
  2.1162  	</ol>
  2.1163  
  2.1164  
  2.1165 -<h4 data-level=4.3.6 id=consume-a-unicode-range-token><span class=secno>4.3.6 </span><span class=content>
  2.1166 -<dfn data-dfn-type=dfn data-noexport="" id=consume-a-unicode-range-token0>Consume a unicode-range token</dfn></span><a class=section-link href=#consume-a-unicode-range-token>§</a></h4>
  2.1167 +<h4 class="heading settled heading" data-level=4.3.6 id=consume-a-unicode-range-token><span class=secno>4.3.6 </span><span class=content>
  2.1168 +<dfn data-dfn-type=dfn data-noexport="" id=consume-a-unicode-range-token0>Consume a unicode-range token<a class=self-link href=#consume-a-unicode-range-token0></a></dfn></span><a class=self-link href=#consume-a-unicode-range-token></a></h4>
  2.1169  
  2.1170  <p>	This section describes how to <a href=#consume-a-unicode-range-token0>consume a unicode-range token</a>.
  2.1171 -	It returns a <a data-link-type=token href=#tokendef-unicode-range>〈unicode-range〉</a> token.
  2.1172 +	It returns a <a class=css-code data-link-type=token href=#tokendef-unicode-range>〈unicode-range〉</a> token.
  2.1173  
  2.1174  <p class=note>	Note: This algorithm assumes that the initial "u+" has been consumed,
  2.1175  	and the next <a href=#code-point>code point</a> verified to be a <a href=#hex-digit>hex digit</a> or a "?".
  2.1176 @@ -1245,36 +1251,13 @@
  2.1177  
  2.1178  	<ol>
  2.1179  		<li>
  2.1180 -			Create a new <a data-link-type=token href=#tokendef-unicode-range>〈unicode-range〉</a>
  2.1181 -			with an empty range.
  2.1182 +			Consume as many <a href=#hex-digit>hex digits</a> or U+003F QUESTION MARK (?) as possible,
  2.1183 +			but no more than 6.
  2.1184  
  2.1185  		<li>
  2.1186 -			Consume as many <a href=#hex-digit>hex digits</a> as possible, but no more than 6.
  2.1187 -			If less than 6 <a href=#hex-digit>hex digits</a> were consumed,
  2.1188 -			consume as many U+003F QUESTION MARK (?) <a href=#code-point>code points</a> as possible,
  2.1189 -			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.1190 -
  2.1191 -<p>			If any U+003F QUESTION MARK (?) <a href=#code-point>code points</a> were consumed,
  2.1192 -			then:
  2.1193 -
  2.1194 -			<ol>
  2.1195 -				<li>
  2.1196 -					Interpret the consumed <a href=#code-point>code points</a> as a hexadecimal number,
  2.1197 -					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.1198 -					This is the <a href=#start-of-the-range>start of the range</a>.
  2.1199 -
  2.1200 -				<li>
  2.1201 -					Interpret the consumed <a href=#code-point>code points</a> as a hexadecimal number again,
  2.1202 -					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.1203 -					This is the <a href=#end-of-the-range>end of the range</a>.
  2.1204 -
  2.1205 -				<li>
  2.1206 -					<a href=#set-the-unicode-ranges-range0>Set the unicode-range’s range</a>, then return it.
  2.1207 -			</ol>
  2.1208 -
  2.1209 -<p>			Otherwise,
  2.1210 -			interpret the digits as a hexadecimal number.
  2.1211 -			This is the <a href=#start-of-the-range>start of the range</a>.
  2.1212 +			Create a new <a class=css-code data-link-type=token href=#tokendef-unicode-range>〈unicode-range〉</a>
  2.1213 +			with its <a href=#unicode-range-start title=unicode-range-start>start</a> set to the result of the previous step,
  2.1214 +			and with its <a href=#unicode-range-end title=unicode-range-end>end</a> initially unset.
  2.1215  
  2.1216  		<li>
  2.1217  			If the <a href=#next-input-code-point title="next input code point">next 2 input code point</a> are
  2.1218 @@ -1282,23 +1265,21 @@
  2.1219  			then:
  2.1220  
  2.1221  			<ol>
  2.1222 -				<li>Consume the <a href=#next-input-code-point>next input code point</a>.
  2.1223 +				<li>
  2.1224 +					Consume the <a href=#next-input-code-point>next input code point</a>.
  2.1225  
  2.1226  				<li>
  2.1227  					Consume as many <a href=#hex-digit>hex digits</a> as possible, but no more than 6.
  2.1228 -					Interpret the digits as a hexadecimal number.
  2.1229 -					This is the <a href=#end-of-the-range>end of the range</a>.
  2.1230 -					<a href=#set-the-unicode-ranges-range0>Set the unicode-range’s range</a>, then return it.
  2.1231 +					Set the <a href=#unicode-range-end title=unicode-range-end>unicode-range’s end</a> to the result.
  2.1232  			</ol>
  2.1233  
  2.1234  		<li>
  2.1235 -			<a href=#set-the-unicode-ranges-range0>Set the unicode-range’s range</a>
  2.1236 -			and return it.
  2.1237 +			Return the token.
  2.1238  	</ol>
  2.1239  
  2.1240  
  2.1241 -<h4 data-level=4.3.7 id=consume-an-escaped-code-point><span class=secno>4.3.7 </span><span class=content>
  2.1242 -<dfn data-dfn-type=dfn data-noexport="" 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.1243 +<h4 class="heading settled heading" data-level=4.3.7 id=consume-an-escaped-code-point><span class=secno>4.3.7 </span><span class=content>
  2.1244 +<dfn data-dfn-type=dfn data-noexport="" id=consume-an-escaped-code-point0>Consume an escaped code point<a class=self-link href=#consume-an-escaped-code-point0></a></dfn></span><a class=self-link href=#consume-an-escaped-code-point></a></h4>
  2.1245  
  2.1246  <p>	This section describes how to <a href=#consume-an-escaped-code-point0>consume an escaped code point</a>.
  2.1247  	It assumes that the U+005C REVERSE SOLIDUS (\) has already been consumed
  2.1248 @@ -1333,8 +1314,8 @@
  2.1249  	</dl>
  2.1250  
  2.1251  
  2.1252 -<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.1253 -<dfn data-dfn-type=dfn data-noexport="" 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.1254 +<h4 class="heading settled heading" 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.1255 +<dfn data-dfn-type=dfn data-noexport="" 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<a class=self-link href=#check-if-two-code-points-are-a-valid-escape0></a></dfn></span><a class=self-link href=#check-if-two-code-points-are-a-valid-escape></a></h4>
  2.1256  
  2.1257  <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.1258  	The algorithm described here can be called explicitly with two <a href=#code-point>code points</a>,
  2.1259 @@ -1356,8 +1337,8 @@
  2.1260  <p>	Otherwise, return true.
  2.1261  
  2.1262  
  2.1263 -<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.1264 -<dfn data-dfn-type=dfn data-noexport="" 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.1265 +<h4 class="heading settled heading" 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.1266 +<dfn data-dfn-type=dfn data-noexport="" 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<a class=self-link href=#check-if-three-code-points-would-start-an-identifier0></a></dfn></span><a class=self-link href=#check-if-three-code-points-would-start-an-identifier></a></h4>
  2.1267  
  2.1268  <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.1269  	The algorithm described here can be called explicitly with three <a href=#code-point>code points</a>,
  2.1270 @@ -1390,8 +1371,8 @@
  2.1271  			Otherwise, return false.
  2.1272  	</dl>
  2.1273  
  2.1274 -<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.1275 -<dfn data-dfn-type=dfn data-noexport="" 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.1276 +<h4 class="heading settled heading" 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.1277 +<dfn data-dfn-type=dfn data-noexport="" 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<a class=self-link href=#check-if-three-code-points-would-start-a-number0></a></dfn></span><a class=self-link href=#check-if-three-code-points-would-start-a-number></a></h4>
  2.1278  
  2.1279  <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.1280  	The algorithm described here can be called explicitly with three <a href=#code-point>code points</a>,
  2.1281 @@ -1439,15 +1420,15 @@
  2.1282  	</dl>
  2.1283  
  2.1284  
  2.1285 -<h4 data-level=4.3.11 id=consume-a-name><span class=secno>4.3.11 </span><span class=content>
  2.1286 -<dfn data-dfn-type=dfn data-noexport="" id=consume-a-name0>Consume a name</dfn></span><a class=section-link href=#consume-a-name>§</a></h4>
  2.1287 +<h4 class="heading settled heading" data-level=4.3.11 id=consume-a-name><span class=secno>4.3.11 </span><span class=content>
  2.1288 +<dfn data-dfn-type=dfn data-noexport="" id=consume-a-name0>Consume a name<a class=self-link href=#consume-a-name0></a></dfn></span><a class=self-link href=#consume-a-name></a></h4>
  2.1289  
  2.1290  <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.1291  	It returns a string containing
  2.1292  	the largest name that can be formed from adjacent <a href=#code-point>code points</a> in the stream, starting from the first.
  2.1293  
  2.1294  <p class=note>	Note: This algorithm does not do the verification of the first few <a href=#code-point>code points</a>
  2.1295 -	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.1296 +	that are necessary to ensure the returned <a href=#code-point>code points</a> would constitute an <a class=css-code data-link-type=token href=#tokendef-ident>〈ident〉</a>.
  2.1297  	If that is the intended use,
  2.1298  	ensure that the stream <a href=#check-if-three-code-points-would-start-an-identifier0>starts with an identifier</a>
  2.1299  	before calling this algorithm.
  2.1300 @@ -1472,8 +1453,8 @@
  2.1301  	</dl>
  2.1302  
  2.1303  
  2.1304 -<h4 data-level=4.3.12 id=consume-a-number><span class=secno>4.3.12 </span><span class=content>
  2.1305 -<dfn data-dfn-type=dfn data-noexport="" id=consume-a-number0>Consume a number</dfn></span><a class=section-link href=#consume-a-number>§</a></h4>
  2.1306 +<h4 class="heading settled heading" data-level=4.3.12 id=consume-a-number><span class=secno>4.3.12 </span><span class=content>
  2.1307 +<dfn data-dfn-type=dfn data-noexport="" id=consume-a-number0>Consume a number<a class=self-link href=#consume-a-number0></a></dfn></span><a class=self-link href=#consume-a-number></a></h4>
  2.1308  
  2.1309  <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.1310  	It returns a 3-tuple of
  2.1311 @@ -1536,8 +1517,8 @@
  2.1312  	</ol>
  2.1313  
  2.1314  
  2.1315 -<h4 data-level=4.3.13 id=convert-a-string-to-a-number><span class=secno>4.3.13 </span><span class=content>
  2.1316 -<dfn data-dfn-type=dfn data-noexport="" id=convert-a-string-to-a-number0>Convert a string to a number</dfn></span><a class=section-link href=#convert-a-string-to-a-number>§</a></h4>
  2.1317 +<h4 class="heading settled heading" data-level=4.3.13 id=convert-a-string-to-a-number><span class=secno>4.3.13 </span><span class=content>
  2.1318 +<dfn data-dfn-type=dfn data-noexport="" id=convert-a-string-to-a-number0>Convert a string to a number<a class=self-link href=#convert-a-string-to-a-number0></a></dfn></span><a class=self-link href=#convert-a-string-to-a-number></a></h4>
  2.1319  
  2.1320  <p>	This section describes how to <a href=#convert-a-string-to-a-number0>convert a string to a number</a>.
  2.1321  	It returns a number.
  2.1322 @@ -1593,11 +1574,11 @@
  2.1323  <p>	Return the number <code>s·(i + f·10<sup>-d</sup>)·10<sup>te</sup></code>.
  2.1324  
  2.1325  
  2.1326 -<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.1327 -<dfn data-dfn-type=dfn data-noexport="" 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.1328 +<h4 class="heading settled heading" data-level=4.3.14 id=consume-the-remnants-of-a-bad-url><span class=secno>4.3.14 </span><span class=content>
  2.1329 +<dfn data-dfn-type=dfn data-noexport="" id=consume-the-remnants-of-a-bad-url0>Consume the remnants of a bad url<a class=self-link href=#consume-the-remnants-of-a-bad-url0></a></dfn></span><a class=self-link href=#consume-the-remnants-of-a-bad-url></a></h4>
  2.1330  
  2.1331  <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.1332 -	"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.1333 +	"cleaning up" after the tokenizer realizes that it’s in the middle of a <a class=css-code data-link-type=token href=#tokendef-bad-url>〈bad-url〉</a> rather than a <a class=css-code data-link-type=token href=#tokendef-url>〈url〉</a>.
  2.1334  	It returns nothing;
  2.1335  	its sole use is to consume enough of the input stream to reach a recovery point
  2.1336  	where normal tokenizing can resume.
  2.1337 @@ -1613,7 +1594,7 @@
  2.1338  		<dt>the input stream <a href=#check-if-two-code-points-are-a-valid-escape0>starts with a valid escape</a>
  2.1339  		<dd>
  2.1340  			<a href=#consume-an-escaped-code-point0>consume an escaped code point</a>.
  2.1341 -			<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.1342 +			<span class=note>This allows an escaped right parenthesis ("\)") to be encountered without ending the <a class=css-code data-link-type=token href=#tokendef-bad-url>〈bad-url〉</a>.
  2.1343  				This is otherwise identical to the "anything else" clause.</span>
  2.1344  
  2.1345  		<dt>anything else
  2.1346 @@ -1621,38 +1602,6 @@
  2.1347  			Do nothing.
  2.1348  	</dl>
  2.1349  
  2.1350 -<h4 data-level=4.3.15 id=set-the-unicode-ranges-range><span class=secno>4.3.15 </span><span class=content>
  2.1351 -<dfn data-dfn-type=dfn data-noexport="" id=set-the-unicode-ranges-range0>Set the unicode-range’s range</dfn></span><a class=section-link href=#set-the-unicode-ranges-range>§</a></h4>
  2.1352 -
  2.1353 -<p>	This section describes how to set a <a data-link-type=token href=#tokendef-unicode-range>〈unicode-range〉</a>’s range
  2.1354 -	so that the range it describes
  2.1355 -	is within the supported range of unicode <a href=#code-point>code points</a>.
  2.1356 -
  2.1357 -<p>	It assumes that the <dfn data-dfn-type=dfn data-noexport="" id=start-of-the-range>start of the range</dfn> has been defined,
  2.1358 -	the <dfn data-dfn-type=dfn data-noexport="" id=end-of-the-range>end of the range</dfn> might be defined,
  2.1359 -	and both are non-negative integers.
  2.1360 -
  2.1361 -<p>	If the <a href=#start-of-the-range>start of the range</a> is greater than
  2.1362 -	the <a href=#maximum-allowed-code-point>maximum allowed code point</a>,
  2.1363 -	the <a data-link-type=token href=#tokendef-unicode-range>〈unicode-range〉</a>’s range is empty.
  2.1364 -
  2.1365 -<p>	If the <a href=#end-of-the-range>end of the range</a> is defined,
  2.1366 -	and it is less than the <a href=#start-of-the-range>start of the range</a>,
  2.1367 -	the <a data-link-type=token href=#tokendef-unicode-range>〈unicode-range〉</a>’s range is empty.
  2.1368 -
  2.1369 -<p>	If the <a href=#end-of-the-range>end of the range</a> is not defined,
  2.1370 -	the <a data-link-type=token href=#tokendef-unicode-range>〈unicode-range〉</a>’s range
  2.1371 -	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.1372 -
  2.1373 -<p>	Otherwise,
  2.1374 -	if the <a href=#end-of-the-range>end of the range</a> is greater than
  2.1375 -	the <a href=#maximum-allowed-code-point>maximum allowed code point</a>,
  2.1376 -	change it to the <a href=#maximum-allowed-code-point>maximum allowed code point</a>.
  2.1377 -	The <a data-link-type=token href=#tokendef-unicode-range>〈unicode-range〉</a>’s range
  2.1378 -	is all <a href=#code-point>code points</a> between
  2.1379 -	the <a href=#code-point>code point</a> whose value is the <a href=#start-of-the-range>start of the range</a>
  2.1380 -	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.1381 -
  2.1382  
  2.1383  <!--
  2.1384  PPPPPPPPPPPPPPPPP        AAA               RRRRRRRRRRRRRRRRR      SSSSSSSSSSSSSSS EEEEEEEEEEEEEEEEEEEEEERRRRRRRRRRRRRRRRR
  2.1385 @@ -1673,8 +1622,8 @@
  2.1386  PPPPPPPPPPAAAAAAA                   AAAAAAARRRRRRRR     RRRRRRR SSSSSSSSSSSSSSS   EEEEEEEEEEEEEEEEEEEEEERRRRRRRR     RRRRRRR
  2.1387  -->
  2.1388  
  2.1389 -<h2 data-level=5 id=parsing><span class=secno>5 </span><span class=content>
  2.1390 -Parsing</span><a class=section-link href=#parsing>§</a></h2>
  2.1391 +<h2 class="heading settled heading" data-level=5 id=parsing><span class=secno>5 </span><span class=content>
  2.1392 +Parsing</span><a class=self-link href=#parsing></a></h2>
  2.1393  
  2.1394  <p>	The input to the parsing stage is a stream or list of tokens from the tokenization stage.
  2.1395  	The output depends on how the parser is invoked,
  2.1396 @@ -1683,29 +1632,29 @@
  2.1397  	qualified rules,
  2.1398  	and/or declarations.
  2.1399  
  2.1400 -<p>	The parser's output is constructed according to the fundamental syntax of CSS,
  2.1401 +<p>	The parser’s output is constructed according to the fundamental syntax of CSS,
  2.1402  	without regards for the validity of any specific item.
  2.1403  	Implementations may check the validity of items as they are returned by the various parser algorithms
  2.1404 -	and treat the algorithm as returning nothing if the item was invalid according to the implementation's own grammar knowledge,
  2.1405 +	and treat the algorithm as returning nothing if the item was invalid according to the implementation’s own grammar knowledge,
  2.1406  	or may construct a full tree as specified
  2.1407  	and "clean up" afterwards by removing any invalid items.
  2.1408  
  2.1409  <p>	The items that can appear in the tree are:
  2.1410  
  2.1411  	<dl>
  2.1412 -		<dt><dfn data-dfn-type=dfn data-noexport="" id=at-rule>at-rule</dfn>
  2.1413 +		<dt><dfn data-dfn-type=dfn data-noexport="" id=at-rule>at-rule<a class=self-link href=#at-rule></a></dfn>
  2.1414  		<dd>
  2.1415  			An at-rule has a name,
  2.1416  			a prelude consisting of a list of component values,
  2.1417  			and an optional block consisting of a simple {} block.
  2.1418  
  2.1419 -<p class=note>			Note: This specification places no limits on what an at-rule's block may contain.
  2.1420 +<p class=note>			Note: This specification places no limits on what an at-rule’s block may contain.
  2.1421  			Individual at-rules must define whether they accept a block,
  2.1422  			and if so,
  2.1423  			how to parse it
  2.1424  			(preferably using one of the parser algorithms or entry points defined in this specification).
  2.1425  
  2.1426 -		<dt><dfn data-dfn-type=dfn data-noexport="" id=qualified-rule>qualified rule</dfn>
  2.1427 +		<dt><dfn data-dfn-type=dfn data-noexport="" id=qualified-rule>qualified rule<a class=self-link href=#qualified-rule></a></dfn>
  2.1428  		<dd>
  2.1429  			A qualified rule has
  2.1430  			a prelude consisting of a list of component values,
  2.1431 @@ -1715,13 +1664,13 @@
  2.1432  			where the prelude is a selector <a data-biblio-type=informative data-link-type=biblio href=#select title=SELECT>[SELECT]</a>
  2.1433  			and the block a <a href=#parse-a-list-of-declarations0 title="parse a list of declarations">list of declarations</a>.
  2.1434  
  2.1435 -		<dt><dfn data-dfn-type=dfn data-noexport="" id=declaration>declaration</dfn>
  2.1436 +		<dt><dfn data-dfn-type=dfn data-noexport="" id=declaration>declaration<a class=self-link href=#declaration></a></dfn>
  2.1437  		<dd>
  2.1438  			A declaration has a name,
  2.1439  			a value consisting of a list of component values,
  2.1440  			and an <var>important</var> flag which is initially unset.
  2.1441  
  2.1442 -			<p class=issue>
  2.1443 +			<p class=issue id=issue-a4ffb0dd><a class=self-link href=#issue-a4ffb0dd></a>
  2.1444  				Should we go ahead and generalize the important flag to be a list of bang values?
  2.1445  				Suggested by Zack Weinburg.
  2.1446  
  2.1447 @@ -1732,43 +1681,43 @@
  2.1448  			instead, it is a product of where the declaration appears,
  2.1449  			and is defined by the respective specifications defining the given rule.)
  2.1450  
  2.1451 -		<dt><dfn data-dfn-type=dfn data-noexport="" id=component-value>component value</dfn>
  2.1452 +		<dt><dfn data-dfn-type=dfn data-noexport="" id=component-value>component value<a class=self-link href=#component-value></a></dfn>
  2.1453  		<dd>
  2.1454  			A component value is one of the preserved tokens,
  2.1455  			a function,
  2.1456  			or a simple block.
  2.1457  
  2.1458 -		<dt><dfn data-dfn-type=dfn data-noexport="" id=preserved-tokens>preserved tokens</dfn>
  2.1459 +		<dt><dfn data-dfn-type=dfn data-noexport="" id=preserved-tokens>preserved tokens<a class=self-link href=#preserved-tokens></a></dfn>
  2.1460  		<dd>
  2.1461  			Any token produced by the tokenizer
  2.1462 -			except for <a data-link-type=token href=#tokendef-function>〈function〉</a>s,
  2.1463 -			<a data-link-type=token href=#tokendef-open-curly>〈{〉</a>s,
  2.1464 -			<a data-link-type=token href=#tokendef-open-paren>〈(〉</a>s,
  2.1465 -			and <a data-link-type=token href=#tokendef-open-square>〈[〉</a>s.
  2.1466 +			except for <a class=css-code data-link-type=token href=#tokendef-function>〈function〉</a>s,
  2.1467 +			<a class=css-code data-link-type=token href=#tokendef-open-curly>〈{〉</a>s,
  2.1468 +			<a class=css-code data-link-type=token href=#tokendef-open-paren>〈(〉</a>s,
  2.1469 +			and <a class=css-code data-link-type=token href=#tokendef-open-square>〈[〉</a>s.
  2.1470  
  2.1471  <p class=note>			Note: The non-preserved tokens listed above are always consumed into higher-level objects,
  2.1472  			either functions or simple blocks,
  2.1473  			and so never appear in any parser output themselves.
  2.1474  
  2.1475 -<p class=note>			Note: The tokens <a data-link-type=token href=#tokendef-close-curly>〈}〉</a>s, <a data-link-type=token href=#tokendef-close-paren>〈)〉</a>s, <a data-link-type=token href=#tokendef-close-square>〈]〉</a>, <a data-link-type=token href=#tokendef-bad-string>〈bad-string〉</a>, and <a data-link-type=token href=#tokendef-bad-url>〈bad-url〉</a> are always parse errors,
  2.1476 +<p class=note>			Note: The tokens <a class=css-code data-link-type=token href=#tokendef-close-curly>〈}〉</a>s, <a class=css-code data-link-type=token href=#tokendef-close-paren>〈)〉</a>s, <a class=css-code data-link-type=token href=#tokendef-close-square>〈]〉</a>, <a class=css-code data-link-type=token href=#tokendef-bad-string>〈bad-string〉</a>, and <a class=css-code data-link-type=token href=#tokendef-bad-url>〈bad-url〉</a> are always parse errors,
  2.1477  			but they are preserved in the token stream by this specification to allow other specs,
  2.1478  			such as Media Queries,
  2.1479  			to define more fine-grainted error-handling
  2.1480  			than just dropping an entire declaration or block.
  2.1481  
  2.1482 -		<dt><dfn data-dfn-type=dfn data-noexport="" id=function>function</dfn>
  2.1483 +		<dt><dfn data-dfn-type=dfn data-noexport="" id=function>function<a class=self-link href=#function></a></dfn>
  2.1484  		<dd>
  2.1485  			A function has a name
  2.1486  			and a value consisting of a list of component values.
  2.1487  
  2.1488 -		<dt><dfn data-dfn-type=dfn data-noexport="" id=simple-block>simple block</dfn>
  2.1489 +		<dt><dfn data-dfn-type=dfn data-noexport="" id=simple-block>simple block<a class=self-link href=#simple-block></a></dfn>
  2.1490  		<dd>
  2.1491 -			A simple block has an associated token (either a <a data-link-type=token href=#tokendef-open-square>〈[〉</a>, <a data-link-type=token href=#tokendef-open-paren>〈(〉</a>, or <a data-link-type=token href=#tokendef-open-curly>〈{〉</a>)
  2.1492 +			A simple block has an associated token (either a <a class=css-code data-link-type=token href=#tokendef-open-square>〈[〉</a>, <a class=css-code data-link-type=token href=#tokendef-open-paren>〈(〉</a>, or <a class=css-code data-link-type=token href=#tokendef-open-curly>〈{〉</a>)
  2.1493  			and a value consisting of a list of component values.
  2.1494  	</dl>
  2.1495  
  2.1496 -<h3 data-level=5.1 id=parser-diagrams><span class=secno>5.1 </span><span class=content>
  2.1497 -Parser Railroad Diagrams</span><a class=section-link href=#parser-diagrams>§</a></h3>
  2.1498 +<h3 class="heading settled heading" data-level=5.1 id=parser-diagrams><span class=secno>5.1 </span><span class=content>
  2.1499 +Parser Railroad Diagrams</span><a class=self-link href=#parser-diagrams></a></h3>
  2.1500  
  2.1501  <p>	<em>This section is non-normative.</em>
  2.1502  
  2.1503 @@ -1789,79 +1738,79 @@
  2.1504  	-->
  2.1505  
  2.1506  	<dl>
  2.1507 -		<dt id=stylesheet-diagram>Stylesheet</dt>
  2.1508 +		<dt id=stylesheet-diagram><a class=self-link href=#stylesheet-diagram></a>Stylesheet</dt>
  2.1509  		<dd><svg class=railroad-diagram height=200 width=313><g transform="translate(.5 .5)"><path d="M 20 121 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><g><path d="M40 131h0"></path><path d="M272 131h0"></path><path d="M40 131a10 10 0 0 0 10 -10v-89a10 10 0 0 1 10 -10"></path><g><path d="M60 22h192"></path></g><path d="M252 22a10 10 0 0 1 10 10v89a10 10 0 0 0 10 10"></path><path d="M40 131h20"></path><g><path d="M60 131h0"></path><path d="M252 131h0"></path><path d="M60 131h10"></path><g><path d="M70 131h0"></path><path d="M242 131h0"></path><path d="M70 131a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10"></path><g><path d="M90 101h8"></path><path d="M214 101h8"></path><rect height=22 width=116 x=98 y=90></rect><text x=156 y=105>〈whitespace〉</text></g><path d="M222 101a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10"></path><path d="M70 131a10 10 0 0 0 10 -10v-40a10 10 0 0 1 10 -10"></path><g><path d="M90 71h36"></path><path d="M186 71h36"></path><rect height=22 width=60 x=126 y=60></rect><text x=156 y=75>〈CDC〉</text></g><path d="M222 71a10 10 0 0 1 10 10v40a10 10 0 0 0 10 10"></path><path d="M70 131a10 10 0 0 0 10 -10v-70a10 10 0 0 1 10 -10"></path><g><path d="M90 41h36"></path><path d="M186 41h36"></path><rect height=22 width=60 x=126 y=30></rect><text x=156 y=45>〈CDO〉</text></g><path d="M222 41a10 10 0 0 1 10 10v70a10 10 0 0 0 10 10"></path><path d="M70 131h20"></path><g><path d="M90 131h0"></path><path d="M222 131h0"></path><rect height=22 width=132 x=90 y=120></rect><text x=156 y=135>Qualified rule</text></g><path d="M222 131h20"></path><path d="M70 131a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10"></path><g><path d="M90 161h28"></path><path d="M194 161h28"></path><rect height=22 width=76 x=118 y=150></rect><text x=156 y=165>At-rule</text></g><path d="M222 161a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10"></path></g><path d="M242 131h10"></path><path d="M70 131a10 10 0 0 0 -10 10v29a10 10 0 0 0 10 10"></path><g><path d="M70 180h172"></path></g><path d="M242 180a10 10 0 0 0 10 -10v-29a10 10 0 0 0 -10 -10"></path></g><path d="M252 131h20"></path></g><path d="M 272 131 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
  2.1510  
  2.1511 -		<dt id=rule-list-diagram>Rule list</dt>
  2.1512 +		<dt id=rule-list-diagram><a class=self-link href=#rule-list-diagram></a>Rule list</dt>
  2.1513  		<dd><svg class=railroad-diagram height=140 width=313><g transform="translate(.5 .5)"><path d="M 20 61 v 20 m 10 -20 v 20 m -10 -10 h 20.5"></path><g><path d="M40 71h0"></path><path d="M272 71h0"></path><path d="M40 71a10 10 0 0 0 10 -10v-29a10 10 0 0 1 10 -10"></path><g><path d="M60 22h192"></path></g><path d="M252 22a10 10 0 0 1 10 10v29a10 10 0 0 0 10 10"></path><path d="M40 71h20"></path><g><path d="M60 71h0"></path><path d="M252 71h0"></path><path d="M60 71h10"></path><g><path d="M70 71h0"></path><path d="M242 71h0"></path><path d="M70 71a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10"></path><g><path d="M90 41h8"></path><path d="M214 41h8"></path><rect height=22 width=116 x=98 y=30></rect><text x=156 y=45>〈whitespace〉</text></g><path d="M222 41a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10"></path><path d="M70 71h20"></path><g><path d="M90 71h0"></path><path d="M222 71h0"></path><rect height=22 width=132 x=90 y=60></rect><text x=156 y=75>Qualified rule</text></g><path d="M222 71h20"></path><path d="M70 71a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10"></path><g><path d="M90 101h28"></path><path d="M194 101h28"></path><rect height=22 width=76 x=118 y=90></rect><text x=156 y=105>At-rule</text></g><path d="M222 101a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10"></path></g><path d="M242 71h10"></path><path d="M70 71a10 10 0 0 0 -10 10v29a10 10 0 0 0 10 10"></path><g><path d="M70 120h172"></path></g><path d="M242 120a10 10 0 0 0 10 -10v-29a10 10 0 0 0 -10 -10"></path></g><path d="M252 71h20"></path></g><path d="M 272 71 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
  2.1514  
  2.1515 -		<dt id=at-rule-diagram>At-rule</dt>
  2.1516 +		<dt id=at-rule-diagram><a class=self-link href=#at-rule-diagram></a>At-rule</dt>
  2.1517  		<dd><svg class=railroad-diagram height=102 width=541><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="M166 41h0"></path><rect height=22 width=116 x=50 y=30></rect><text x=108 y=45>〈at-keyword〉</text></g><path d="M166 41h10"></path><g><path d="M176 41h0"></path><path d="M376 41h0"></path><path d="M176 41a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path><g><path d="M196 21h160"></path></g><path d="M356 21a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><path d="M176 41h20"></path><g><path d="M196 41h0"></path><path d="M356 41h0"></path><path d="M196 41h10"></path><g><path d="M206 41h0"></path><path d="M346 41h0"></path><rect height=22 width=140 x=206 y=30></rect><text x=276 y=45>Component value</text></g><path d="M346 41h10"></path><path d="M206 41a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10"></path><g><path d="M206 61h140"></path></g><path d="M346 61a10 10 0 0 0 10 -10v0a10 10 0 0 0 -10 -10"></path></g><path d="M356 41h20"></path></g><g><path d="M376 41h0"></path><path d="M500 41h0"></path><path d="M376 41h20"></path><g><path d="M396 41h0"></path><path d="M480 41h0"></path><rect height=22 width=84 x=396 y=30></rect><text x=438 y=45>{} block</text></g><path d="M480 41h20"></path><path d="M376 41a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10"></path><g><path d="M396 71h28"></path><path d="M452 71h28"></path><rect height=22 rx=10 ry=10 width=28 x=424 y=60></rect><text x=438 y=75>;</text></g><path d="M480 71a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10"></path></g><path d="M 500 41 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
  2.1518  
  2.1519 -		<dt id=qualified-rule-diagram>Qualified rule</dt>
  2.1520 +		<dt id=qualified-rule-diagram><a class=self-link href=#qualified-rule-diagram></a>Qualified rule</dt>
  2.1521  		<dd><svg class=railroad-diagram height=81 width=385><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="M240 41h0"></path><path d="M40 41a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path><g><path d="M60 21h160"></path></g><path d="M220 21a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><path d="M40 41h20"></path><g><path d="M60 41h0"></path><path d="M220 41h0"></path><path d="M60 41h10"></path><g><path d="M70 41h0"></path><path d="M210 41h0"></path><rect height=22 width=140 x=70 y=30></rect><text x=140 y=45>Component value</text></g><path d="M210 41h10"></path><path d="M70 41a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10"></path><g><path d="M70 61h140"></path></g><path d="M210 61a10 10 0 0 0 10 -10v0a10 10 0 0 0 -10 -10"></path></g><path d="M220 41h20"></path></g><path d="M240 41h10"></path><g><path d="M250 41h0"></path><path d="M334 41h0"></path><rect height=22 width=84 x=250 y=30></rect><text x=292 y=45>{} block</text></g><path d="M334 41h10"></path><path d="M 344 41 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
  2.1522  
  2.1523 -		<dt id=declaration-list-diagram>Declaration list</dt>
  2.1524 +		<dt id=declaration-list-diagram><a class=self-link href=#declaration-list-diagram></a>Declaration list</dt>
  2.1525  		<dd><svg class=railroad-diagram height=102 width=589><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="M94 41h0"></path><rect height=22 width=44 x=50 y=30></rect><text x=72 y=45>ws*</text></g><path d="M94 41h10"></path><g><path d="M104 41h0"></path><path d="M548 41h0"></path><path d="M104 41h20"></path><g><path d="M124 41h0"></path><path d="M528 41h0"></path><g><path d="M124 41h0"></path><path d="M272 41h0"></path><path d="M124 41a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path><g><path d="M144 21h108"></path></g><path d="M252 21a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><path d="M124 41h20"></path><g><path d="M144 41h0"></path><path d="M252 41h0"></path><rect height=22 width=108 x=144 y=30></rect><text x=198 y=45>Declaration</text></g><path d="M252 41h20"></path></g><g><path d="M272 41h0"></path><path d="M528 41h0"></path><path d="M272 41a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path><g><path d="M292 21h216"></path></g><path d="M508 21a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><path d="M272 41h20"></path><g><path d="M292 41h0"></path><path d="M508 41h0"></path><path d="M292 41h10"></path><g><path d="M302 41h0"></path><path d="M330 41h0"></path><rect height=22 rx=10 ry=10 width=28 x=302 y=30></rect><text x=316 y=45>;</text></g><path d="M330 41h10"></path><path d="M340 41h10"></path><g><path d="M350 41h0"></path><path d="M498 41h0"></path><rect height=22 width=148 x=350 y=30></rect><text x=424 y=45>Declaration list</text></g><path d="M498 41h10"></path></g><path d="M508 41h20"></path></g></g><path d="M528 41h20"></path><path d="M104 41a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10"></path><g><path d="M124 71h70"></path><path d="M458 71h70"></path><path d="M194 71h10"></path><g><path d="M204 71h0"></path><path d="M280 71h0"></path><rect height=22 width=76 x=204 y=60></rect><text x=242 y=75>At-rule</text></g><path d="M280 71h10"></path><path d="M290 71h10"></path><g><path d="M300 71h0"></path><path d="M448 71h0"></path><rect height=22 width=148 x=300 y=60></rect><text x=374 y=75>Declaration list</text></g><path d="M448 71h10"></path></g><path d="M528 71a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10"></path></g><path d="M 548 41 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
  2.1526  
  2.1527 -		<dt id=declaration-diagram>Declaration</dt>
  2.1528 +		<dt id=declaration-diagram><a class=self-link href=#declaration-diagram></a>Declaration</dt>
  2.1529  		<dd><svg class=railroad-diagram height=81 width=629><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="M126 41h0"></path><rect height=22 width=76 x=50 y=30></rect><text x=88 y=45>〈ident〉</text></g><path d="M126 41h10"></path><path d="M136 41h10"></path><g><path d="M146 41h0"></path><path d="M190 41h0"></path><rect height=22 width=44 x=146 y=30></rect><text x=168 y=45>ws*</text></g><path d="M190 41h10"></path><path d="M200 41h10"></path><g><path d="M210 41h0"></path><path d="M238 41h0"></path><rect height=22 rx=10 ry=10 width=28 x=210 y=30></rect><text x=224 y=45>:</text></g><path d="M238 41h10"></path><g><path d="M248 41h0"></path><path d="M448 41h0"></path><path d="M248 41a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path><g><path d="M268 21h160"></path></g><path d="M428 21a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><path d="M248 41h20"></path><g><path d="M268 41h0"></path><path d="M428 41h0"></path><path d="M268 41h10"></path><g><path d="M278 41h0"></path><path d="M418 41h0"></path><rect height=22 width=140 x=278 y=30></rect><text x=348 y=45>Component value</text></g><path d="M418 41h10"></path><path d="M278 41a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10"></path><g><path d="M278 61h140"></path></g><path d="M418 61a10 10 0 0 0 10 -10v0a10 10 0 0 0 -10 -10"></path></g><path d="M428 41h20"></path></g><g><path d="M448 41h0"></path><path d="M588 41h0"></path><path d="M448 41a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path><g><path d="M468 21h100"></path></g><path d="M568 21a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><path d="M448 41h20"></path><g><path d="M468 41h0"></path><path d="M568 41h0"></path><rect height=22 width=100 x=468 y=30></rect><text x=518 y=45>!important</text></g><path d="M568 41h20"></path></g><path d="M 588 41 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
  2.1530  
  2.1531 -		<dt id=important-diagram>!important</dt>
  2.1532 +		<dt id=important-diagram><a class=self-link href=#important-diagram></a>!important</dt>
  2.1533  		<dd><svg class=railroad-diagram height=62 width=449><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="M142 31h0"></path><rect height=22 width=44 x=98 y=20></rect><text x=120 y=35>ws*</text></g><path d="M142 31h10"></path><path d="M152 31h10"></path><g><path d="M162 31h0"></path><path d="M334 31h0"></path><rect height=22 width=172 x=162 y=20></rect><text x=248 y=35>〈ident "important"〉</text></g><path d="M334 31h10"></path><path d="M344 31h10"></path><g><path d="M354 31h0"></path><path d="M398 31h0"></path><rect height=22 width=44 x=354 y=20></rect><text x=376 y=35>ws*</text></g><path d="M398 31h10"></path><path d="M 408 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
  2.1534  
  2.1535 -		<dt id=ws-diagram>ws*</dt>
  2.1536 +		<dt id=ws-diagram><a class=self-link href=#ws-diagram></a>ws*</dt>
  2.1537  		<dd><svg class=railroad-diagram height=81 width=257><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="M216 41h0"></path><path d="M40 41a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path><g><path d="M60 21h136"></path></g><path d="M196 21a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><path d="M40 41h20"></path><g><path d="M60 41h0"></path><path d="M196 41h0"></path><path d="M60 41h10"></path><g><path d="M70 41h0"></path><path d="M186 41h0"></path><rect height=22 width=116 x=70 y=30></rect><text x=128 y=45>〈whitespace〉</text></g><path d="M186 41h10"></path><path d="M70 41a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10"></path><g><path d="M70 61h116"></path></g><path d="M186 61a10 10 0 0 0 10 -10v0a10 10 0 0 0 -10 -10"></path></g><path d="M196 41h20"></path></g><path d="M 216 41 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
  2.1538  
  2.1539 -		<dt id=component-value-diagram>Component value</dt>
  2.1540 +		<dt id=component-value-diagram><a class=self-link href=#component-value-diagram></a>Component value</dt>
  2.1541  		<dd><svg class=railroad-diagram height=182 width=261><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="M220 31h0"></path><path d="M40 31h20"></path><g><path d="M60 31h0"></path><path d="M200 31h0"></path><rect height=22 width=140 x=60 y=20></rect><text x=130 y=35>Preserved token</text></g><path d="M200 31h20"></path><path d="M40 31a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10"></path><g><path d="M60 61h28"></path><path d="M172 61h28"></path><rect height=22 width=84 x=88 y=50></rect><text x=130 y=65>{} block</text></g><path d="M200 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 91h28"></path><path d="M172 91h28"></path><rect height=22 width=84 x=88 y=80></rect><text x=130 y=95>() block</text></g><path d="M200 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 121h28"></path><path d="M172 121h28"></path><rect height=22 width=84 x=88 y=110></rect><text x=130 y=125>[] block</text></g><path d="M200 121a10 10 0 0 0 10 -10v-70a10 10 0 0 1 10 -10"></path><path d="M40 31a10 10 0 0 1 10 10v100a10 10 0 0 0 10 10"></path><g><path d="M60 151h4"></path><path d="M196 151h4"></path><rect height=22 width=132 x=64 y=140></rect><text x=130 y=155>Function block</text></g><path d="M200 151a10 10 0 0 0 10 -10v-100a10 10 0 0 1 10 -10"></path></g><path d="M 220 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
  2.1542  
  2.1543 -		<dt id={}-block-diagram>{} block</dt>
  2.1544 +		<dt id={}-block-diagram><a class=self-link href=#{}-block-diagram></a>{} block</dt>
  2.1545  		<dd><svg class=railroad-diagram height=81 width=377><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="M78 41h0"></path><rect height=22 rx=10 ry=10 width=28 x=50 y=30></rect><text x=64 y=45>{</text></g><path d="M78 41h10"></path><g><path d="M88 41h0"></path><path d="M288 41h0"></path><path d="M88 41a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path><g><path d="M108 21h160"></path></g><path d="M268 21a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><path d="M88 41h20"></path><g><path d="M108 41h0"></path><path d="M268 41h0"></path><path d="M108 41h10"></path><g><path d="M118 41h0"></path><path d="M258 41h0"></path><rect height=22 width=140 x=118 y=30></rect><text x=188 y=45>Component value</text></g><path d="M258 41h10"></path><path d="M118 41a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10"></path><g><path d="M118 61h140"></path></g><path d="M258 61a10 10 0 0 0 10 -10v0a10 10 0 0 0 -10 -10"></path></g><path d="M268 41h20"></path></g><path d="M288 41h10"></path><g><path d="M298 41h0"></path><path d="M326 41h0"></path><rect height=22 rx=10 ry=10 width=28 x=298 y=30></rect><text x=312 y=45>}</text></g><path d="M326 41h10"></path><path d="M 336 41 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
  2.1546  
  2.1547 -		<dt id=()-block-diagram>() block</dt>
  2.1548 +		<dt id=()-block-diagram><a class=self-link href=#()-block-diagram></a>() block</dt>
  2.1549  		<dd><svg class=railroad-diagram height=81 width=377><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="M78 41h0"></path><rect height=22 rx=10 ry=10 width=28 x=50 y=30></rect><text x=64 y=45>(</text></g><path d="M78 41h10"></path><g><path d="M88 41h0"></path><path d="M288 41h0"></path><path d="M88 41a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path><g><path d="M108 21h160"></path></g><path d="M268 21a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><path d="M88 41h20"></path><g><path d="M108 41h0"></path><path d="M268 41h0"></path><path d="M108 41h10"></path><g><path d="M118 41h0"></path><path d="M258 41h0"></path><rect height=22 width=140 x=118 y=30></rect><text x=188 y=45>Component value</text></g><path d="M258 41h10"></path><path d="M118 41a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10"></path><g><path d="M118 61h140"></path></g><path d="M258 61a10 10 0 0 0 10 -10v0a10 10 0 0 0 -10 -10"></path></g><path d="M268 41h20"></path></g><path d="M288 41h10"></path><g><path d="M298 41h0"></path><path d="M326 41h0"></path><rect height=22 rx=10 ry=10 width=28 x=298 y=30></rect><text x=312 y=45>)</text></g><path d="M326 41h10"></path><path d="M 336 41 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
  2.1550  
  2.1551 -		<dt id=[]-block-diagram>[] block</dt>
  2.1552 +		<dt id=[]-block-diagram><a class=self-link href=#[]-block-diagram></a>[] block</dt>
  2.1553  		<dd><svg class=railroad-diagram height=81 width=377><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="M78 41h0"></path><rect height=22 rx=10 ry=10 width=28 x=50 y=30></rect><text x=64 y=45>[</text></g><path d="M78 41h10"></path><g><path d="M88 41h0"></path><path d="M288 41h0"></path><path d="M88 41a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path><g><path d="M108 21h160"></path></g><path d="M268 21a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><path d="M88 41h20"></path><g><path d="M108 41h0"></path><path d="M268 41h0"></path><path d="M108 41h10"></path><g><path d="M118 41h0"></path><path d="M258 41h0"></path><rect height=22 width=140 x=118 y=30></rect><text x=188 y=45>Component value</text></g><path d="M258 41h10"></path><path d="M118 41a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10"></path><g><path d="M118 61h140"></path></g><path d="M258 61a10 10 0 0 0 10 -10v0a10 10 0 0 0 -10 -10"></path></g><path d="M268 41h20"></path></g><path d="M288 41h10"></path><g><path d="M298 41h0"></path><path d="M326 41h0"></path><rect height=22 rx=10 ry=10 width=28 x=298 y=30></rect><text x=312 y=45>]</text></g><path d="M326 41h10"></path><path d="M 336 41 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
  2.1554  
  2.1555 -		<dt id=function-block-diagram>Function block</dt>
  2.1556 +		<dt id=function-block-diagram><a class=self-link href=#function-block-diagram></a>Function block</dt>
  2.1557  		<dd><svg class=railroad-diagram height=81 width=449><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="M150 41h0"></path><rect height=22 width=100 x=50 y=30></rect><text x=100 y=45>〈function〉</text></g><path d="M150 41h10"></path><g><path d="M160 41h0"></path><path d="M360 41h0"></path><path d="M160 41a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path><g><path d="M180 21h160"></path></g><path d="M340 21a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><path d="M160 41h20"></path><g><path d="M180 41h0"></path><path d="M340 41h0"></path><path d="M180 41h10"></path><g><path d="M190 41h0"></path><path d="M330 41h0"></path><rect height=22 width=140 x=190 y=30></rect><text x=260 y=45>Component value</text></g><path d="M330 41h10"></path><path d="M190 41a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10"></path><g><path d="M190 61h140"></path></g><path d="M330 61a10 10 0 0 0 10 -10v0a10 10 0 0 0 -10 -10"></path></g><path d="M340 41h20"></path></g><path d="M360 41h10"></path><g><path d="M370 41h0"></path><path d="M398 41h0"></path><rect height=22 rx=10 ry=10 width=28 x=370 y=30></rect><text x=384 y=45>)</text></g><path d="M398 41h10"></path><path d="M 408 41 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
  2.1558  
  2.1559  	</dl>
  2.1560  
  2.1561 -<h3 data-level=5.2 id=definitions><span class=secno>5.2 </span><span class=content>
  2.1562 -Definitions</span><a class=section-link href=#definitions>§</a></h3>
  2.1563 +<h3 class="heading settled heading" data-level=5.2 id=definitions><span class=secno>5.2 </span><span class=content>
  2.1564 +Definitions</span><a class=self-link href=#definitions></a></h3>
  2.1565  
  2.1566  	<dl>
  2.1567 -		<dt><dfn data-dfn-type=dfn data-noexport="" id=current-input-token>current input token</dfn>
  2.1568 +		<dt><dfn data-dfn-type=dfn data-noexport="" id=current-input-token>current input token<a class=self-link href=#current-input-token></a></dfn>
  2.1569  		<dd>
  2.1570  			The token or <a href=#component-value>component value</a> currently being operated on, from the list of tokens produced by the tokenizer.
  2.1571  
  2.1572 -		<dt><dfn data-dfn-type=dfn data-noexport="" id=next-input-token>next input token</dfn>
  2.1573 +		<dt><dfn data-dfn-type=dfn data-noexport="" id=next-input-token>next input token<a class=self-link href=#next-input-token></a></dfn>
  2.1574  		<dd>
  2.1575  			The token or <a href=#component-value>component value</a> following the <a href=#current-input-token>current input token</a> in the list of tokens produced by the tokenizer.
  2.1576 -			If there isn't a token following the <a href=#current-input-token>current input token</a>,
  2.1577 -			the <a href=#next-input-token>next input token</a> is an <a data-link-type=token href=#tokendef-eof>〈EOF〉</a>.
  2.1578 -
  2.1579 -		<dt><dfn data-dfn-type=token data-export="" id=tokendef-eof><a data-link-type=token href=#tokendef-eof>〈EOF〉</a></dfn>
  2.1580 +			If there isn’t a token following the <a href=#current-input-token>current input token</a>,
  2.1581 +			the <a href=#next-input-token>next input token</a> is an <a class=css-code data-link-type=token href=#tokendef-eof>〈EOF〉</a>.
  2.1582 +
  2.1583 +		<dt><dfn class=css-code data-dfn-type=token data-export="" id=tokendef-eof><a class=css-code data-link-type=token href=#tokendef-eof>〈EOF〉</a><a class=self-link href=#tokendef-eof></a></dfn>
  2.1584  		<dd>
  2.1585  			A conceptual token representing the end of the list of tokens.
  2.1586  			Whenever the list of tokens is empty,
  2.1587 -			the <a href=#next-input-token>next input token</a> is always an <a data-link-type=token href=#tokendef-eof>〈EOF〉</a>.
  2.1588 -
  2.1589 -		<dt><dfn data-dfn-type=dfn data-noexport="" id=consume-the-next-input-token>consume the next input token</dfn>
  2.1590 +			the <a href=#next-input-token>next input token</a> is always an <a class=css-code data-link-type=token href=#tokendef-eof>〈EOF〉</a>.
  2.1591 +
  2.1592 +		<dt><dfn data-dfn-type=dfn data-noexport="" id=consume-the-next-input-token>consume the next input token<a class=self-link href=#consume-the-next-input-token></a></dfn>
  2.1593  		<dd>
  2.1594  			Let the <a href=#current-input-token>current input token</a> be the current <a href=#next-input-token>next input token</a>,
  2.1595  			adjusting the <a href=#next-input-token>next input token</a> accordingly.
  2.1596  
  2.1597 -		<dt><dfn data-dfn-type=dfn data-noexport="" id=reconsume-the-current-input-token>reconsume the current input token</dfn>
  2.1598 +		<dt><dfn data-dfn-type=dfn data-noexport="" id=reconsume-the-current-input-token>reconsume the current input token<a class=self-link href=#reconsume-the-current-input-token></a></dfn>
  2.1599  		<dd>
  2.1600  			The next time an algorithm instructs you to <a href=#consume-the-next-input-token>consume the next input token</a>,
  2.1601  			instead do nothing
  2.1602  			(retain the <a href=#current-input-token>current input token</a> unchanged).
  2.1603  
  2.1604 -		<dt><dfn data-dfn-type=dfn data-noexport="" id=ascii-case-insensitive>ASCII case-insensitive</dfn>
  2.1605 +		<dt><dfn data-dfn-type=dfn data-noexport="" id=ascii-case-insensitive>ASCII case-insensitive<a class=self-link href=#ascii-case-insensitive></a></dfn>
  2.1606  		<dd>
  2.1607  			When two strings are to be matched ASCII case-insensitively,
  2.1608  			temporarily convert both of them to ASCII lower-case form
  2.1609 @@ -1874,8 +1823,8 @@
  2.1610  
  2.1611  
  2.1612  
  2.1613 -<h3 data-level=5.3 id=parser-entry-points><span class=secno>5.3 </span><span class=content>
  2.1614 -Parser Entry Points</span><a class=section-link href=#parser-entry-points>§</a></h3>
  2.1615 +<h3 class="heading settled heading" data-level=5.3 id=parser-entry-points><span class=secno>5.3 </span><span class=content>
  2.1616 +Parser Entry Points</span><a class=self-link href=#parser-entry-points></a></h3>
  2.1617  
  2.1618  <p>	The algorithms defined in this section produce high-level CSS objects
  2.1619  	from lower-level objects.
  2.1620 @@ -1895,9 +1844,9 @@
  2.1621  
  2.1622  <p class=note>	Note: Other specs can define additional entry points for their own purposes.
  2.1623  
  2.1624 -	<div class=issue>
  2.1625 +	<div class=issue id=issue-c8316c9e><a class=self-link href=#issue-c8316c9e></a>
  2.1626  		The following notes should probably be translated into normative text in the relevant specs,
  2.1627 -		hooking this spec's terms:
  2.1628 +		hooking this spec’s terms:
  2.1629  
  2.1630  <p>		<ul>
  2.1631  			<li>
  2.1632 @@ -1906,7 +1855,7 @@
  2.1633  
  2.1634  			<li>
  2.1635  				"<a href=#parse-a-list-of-rules0>Parse a list of rules</a>" is intended for the content of at-rules such as <span class=css data-link-type=maybe>@media</span>.
  2.1636 -				It differs from "<a href=#parse-a-stylesheet0>Parse a stylesheet</a>" in the handling of <a data-link-type=token href=#tokendef-cdo>〈CDO〉</a> and <a data-link-type=token href=#tokendef-cdc>〈CDC〉</a>.
  2.1637 +				It differs from "<a href=#parse-a-stylesheet0>Parse a stylesheet</a>" in the handling of <a class=css-code data-link-type=token href=#tokendef-cdo>〈CDO〉</a> and <a class=css-code data-link-type=token href=#tokendef-cdc>〈CDC〉</a>.
  2.1638  
  2.1639  			<li>
  2.1640  				"<a href=#parse-a-rule0>Parse a rule</a>" is intended for use by the <code>CSSStyleSheet#insertRule</code> method,
  2.1641 @@ -1926,7 +1875,7 @@
  2.1642  
  2.1643  			<li>
  2.1644  				"<a href=#parse-a-list-of-component-values0>Parse a list of component values</a>" is for the contents of presentational attributes,
  2.1645 -				which parse text into a single declaration's value,
  2.1646 +				which parse text into a single declaration’s value,
  2.1647  				or for parsing a stand-alone selector <a data-biblio-type=informative data-link-type=biblio href=#select title=SELECT>[SELECT]</a> or list of Media Queries <a data-biblio-type=informative data-link-type=biblio href=#mediaq title=MEDIAQ>[MEDIAQ]</a>,
  2.1648  				as in <a href=http://www.w3.org/TR/selectors-api/>Selectors API</a>
  2.1649  				or the <code>media</code> HTML attribute.
  2.1650 @@ -1937,8 +1886,8 @@
  2.1651  	Either way produces an identical result.
  2.1652  
  2.1653  
  2.1654 -<h4 data-level=5.3.1 id=parse-a-stylesheet><span class=secno>5.3.1 </span><span class=content>
  2.1655 -<dfn data-dfn-type=dfn data-noexport="" id=parse-a-stylesheet0>Parse a stylesheet</dfn></span><a class=section-link href=#parse-a-stylesheet>§</a></h4>
  2.1656 +<h4 class="heading settled heading" data-level=5.3.1 id=parse-a-stylesheet><span class=secno>5.3.1 </span><span class=content>
  2.1657 +<dfn data-dfn-type=dfn data-noexport="" id=parse-a-stylesheet0>Parse a stylesheet<a class=self-link href=#parse-a-stylesheet0></a></dfn></span><a class=self-link href=#parse-a-stylesheet></a></h4>
  2.1658  
  2.1659  <p>	To <a href=#parse-a-stylesheet0>parse a stylesheet</a> from a stream of tokens:
  2.1660  
  2.1661 @@ -1950,14 +1899,14 @@
  2.1662  			<a href=#consume-a-list-of-rules0>Consume a list of rules</a> from the stream of tokens, with the <var>top-level flag</var> set.
  2.1663  
  2.1664  		<li>
  2.1665 -			Assign the returned value to the stylesheet's value.
  2.1666 +			Assign the returned value to the stylesheet’s value.
  2.1667  
  2.1668  		<li>
  2.1669  			Return the stylesheet.
  2.1670  	</ol>
  2.1671  
  2.1672 -<h4 data-level=5.3.2 id=parse-a-list-of-rules><span class=secno>5.3.2 </span><span class=content>
  2.1673 -<dfn data-dfn-type=dfn data-noexport="" id=parse-a-list-of-rules0>Parse a list of rules</dfn></span><a class=section-link href=#parse-a-list-of-rules>§</a></h4>
  2.1674 +<h4 class="heading settled heading" data-level=5.3.2 id=parse-a-list-of-rules><span class=secno>5.3.2 </span><span class=content>
  2.1675 +<dfn data-dfn-type=dfn data-noexport="" id=parse-a-list-of-rules0>Parse a list of rules<a class=self-link href=#parse-a-list-of-rules0></a></dfn></span><a class=self-link href=#parse-a-list-of-rules></a></h4>
  2.1676  
  2.1677  <p>	To <a href=#parse-a-list-of-rules0>parse a list of rules</a> from a stream of tokens:
  2.1678  
  2.1679 @@ -1969,8 +1918,8 @@
  2.1680  			Return the returned list.
  2.1681  	</ol>
  2.1682  
  2.1683 -<h4 data-level=5.3.3 id=parse-a-rule><span class=secno>5.3.3 </span><span class=content>
  2.1684 -<dfn data-dfn-type=dfn data-noexport="" id=parse-a-rule0>Parse a rule</dfn></span><a class=section-link href=#parse-a-rule>§</a></h4>
  2.1685 +<h4 class="heading settled heading" data-level=5.3.3 id=parse-a-rule><span class=secno>5.3.3 </span><span class=content>
  2.1686 +<dfn data-dfn-type=dfn data-noexport="" id=parse-a-rule0>Parse a rule<a class=self-link href=#parse-a-rule0></a></dfn></span><a class=self-link href=#parse-a-rule></a></h4>
  2.1687  
  2.1688  <p>	To <a href=#parse-a-rule0>parse a rule</a> from a stream of tokens:
  2.1689  
  2.1690 @@ -1979,15 +1928,15 @@
  2.1691  			<a href=#consume-the-next-input-token>Consume the next input token</a>.
  2.1692  
  2.1693  		<li>
  2.1694 -			While the <a href=#current-input-token>current input token</a> is a <a data-link-type=token href=#tokendef-whitespace>〈whitespace〉</a>,
  2.1695 +			While the <a href=#current-input-token>current input token</a> is a <a class=css-code data-link-type=token href=#tokendef-whitespace>〈whitespace〉</a>,
  2.1696  			<a href=#consume-the-next-input-token>consume the next input token</a>.
  2.1697  
  2.1698  		<li>
  2.1699 -			If the <a href=#current-input-token>current input token</a> is an <a data-link-type=token href=#tokendef-eof>〈EOF〉</a>,
  2.1700 +			If the <a href=#current-input-token>current input token</a> is an <a class=css-code data-link-type=token href=#tokendef-eof>〈EOF〉</a>,
  2.1701  			return a syntax error.
  2.1702  
  2.1703  <p>			Otherwise,
  2.1704 -			if the <a href=#current-input-token>current input token</a> is an <a data-link-type=token href=#tokendef-at-keyword>〈at-keyword〉</a>,
  2.1705 +			if the <a href=#current-input-token>current input token</a> is an <a class=css-code data-link-type=token href=#tokendef-at-keyword>〈at-keyword〉</a>,
  2.1706  			<a href=#consume-an-at-rule0>consume an at-rule</a>.
  2.1707  
  2.1708  <p>			Otherwise,
  2.1709 @@ -1996,17 +1945,17 @@
  2.1710  			return a syntax error.
  2.1711  
  2.1712  		<li>
  2.1713 -			While the <a href=#current-input-token>current input token</a> is a <a data-link-type=token href=#tokendef-whitespace>〈whitespace〉</a>,
  2.1714 +			While the <a href=#current-input-token>current input token</a> is a <a class=css-code data-link-type=token href=#tokendef-whitespace>〈whitespace〉</a>,
  2.1715  			<a href=#consume-the-next-input-token>consume the next input token</a>.
  2.1716  
  2.1717  		<li>
  2.1718 -			If the <a href=#current-input-token>current input token</a> is an <a data-link-type=token href=#tokendef-eof>〈EOF〉</a>,
  2.1719 +			If the <a href=#current-input-token>current input token</a> is an <a class=css-code data-link-type=token href=#tokendef-eof>〈EOF〉</a>,
  2.1720  			return the rule obtained in step 2.
  2.1721  			Otherwise, return a syntax error.
  2.1722  	</ol>
  2.1723  
  2.1724 -<h4 data-level=5.3.4 id=parse-a-declaration><span class=secno>5.3.4 </span><span class=content>
  2.1725 -<dfn data-dfn-type=dfn data-noexport="" id=parse-a-declaration0>Parse a declaration</dfn></span><a class=section-link href=#parse-a-declaration>§</a></h4>
  2.1726 +<h4 class="heading settled heading" data-level=5.3.4 id=parse-a-declaration><span class=secno>5.3.4 </span><span class=content>
  2.1727 +<dfn data-dfn-type=dfn data-noexport="" id=parse-a-declaration0>Parse a declaration<a class=self-link href=#parse-a-declaration0></a></dfn></span><a class=self-link href=#parse-a-declaration></a></h4>
  2.1728  
  2.1729  <p class=note>	Note: Unlike "<a href=#parse-a-list-of-declarations0>Parse a list of declarations</a>",
  2.1730  	this parses only a declaration and not an at-rule.
  2.1731 @@ -2018,7 +1967,7 @@
  2.1732  			<a href=#consume-the-next-input-token>Consume the next input token</a>.
  2.1733  
  2.1734  		<li>
  2.1735 -			While the <a href=#current-input-token>current input token</a> is a <a data-link-type=token href=#tokendef-whitespace>〈whitespace〉</a>,
  2.1736 +			While the <a href=#current-input-token>current input token</a> is a <a class=css-code data-link-type=token href=#tokendef-whitespace>〈whitespace〉</a>,
  2.1737  			<a href=#consume-the-next-input-token>consume the next input token</a>.
  2.1738  
  2.1739  		<li>
  2.1740 @@ -2027,8 +1976,8 @@
  2.1741  			Otherwise, return a syntax error.
  2.1742  	</ol>
  2.1743  
  2.1744 -<h4 data-level=5.3.5 id=parse-a-list-of-declarations><span class=secno>5.3.5 </span><span class=content>
  2.1745 -<dfn data-dfn-type=dfn data-noexport="" id=parse-a-list-of-declarations0>Parse a list of declarations</dfn></span><a class=section-link href=#parse-a-list-of-declarations>§</a></h4>
  2.1746 +<h4 class="heading settled heading" data-level=5.3.5 id=parse-a-list-of-declarations><span class=secno>5.3.5 </span><span class=content>
  2.1747 +<dfn data-dfn-type=dfn data-noexport="" id=parse-a-list-of-declarations0>Parse a list of declarations<a class=self-link href=#parse-a-list-of-declarations0></a></dfn></span><a class=self-link href=#parse-a-list-of-declarations></a></h4>
  2.1748  
  2.1749  <p class=note>	Note: Despite the name,
  2.1750  	this actually parses a mixed list of declarations and at-rules,
  2.1751 @@ -2046,8 +1995,8 @@
  2.1752  			Return the returned list.
  2.1753  	</ol>
  2.1754  
  2.1755 -<h4 data-level=5.3.6 id=parse-a-component-value><span class=secno>5.3.6 </span><span class=content>
  2.1756 -<dfn data-dfn-type=dfn data-noexport="" id=parse-a-component-value0>Parse a component value</dfn></span><a class=section-link href=#parse-a-component-value>§</a></h4>
  2.1757 +<h4 class="heading settled heading" data-level=5.3.6 id=parse-a-component-value><span class=secno>5.3.6 </span><span class=content>
  2.1758 +<dfn data-dfn-type=dfn data-noexport="" id=parse-a-component-value0>Parse a component value<a class=self-link href=#parse-a-component-value0></a></dfn></span><a class=self-link href=#parse-a-component-value></a></h4>
  2.1759  
  2.1760  <p>	To <a href=#parse-a-component-value0>parse a component value</a>:
  2.1761  
  2.1762 @@ -2056,11 +2005,11 @@
  2.1763  			<a href=#consume-the-next-input-token>Consume the next input token</a>.
  2.1764  
  2.1765  		<li>
  2.1766 -			While the <a href=#current-input-token>current input token</a> is a <a data-link-type=token href=#tokendef-whitespace>〈whitespace〉</a>,
  2.1767 +			While the <a href=#current-input-token>current input token</a> is a <a class=css-code data-link-type=token href=#tokendef-whitespace>〈whitespace〉</a>,
  2.1768  			<a href=#consume-the-next-input-token>consume the next input token</a>.
  2.1769  
  2.1770  		<li>
  2.1771 -			If the <a href=#current-input-token>current input token</a> is an <a data-link-type=token href=#tokendef-eof>〈EOF〉</a>,
  2.1772 +			If the <a href=#current-input-token>current input token</a> is an <a class=css-code data-link-type=token href=#tokendef-eof>〈EOF〉</a>,
  2.1773  			return a syntax error.
  2.1774  
  2.1775  		<li>
  2.1776 @@ -2070,30 +2019,30 @@
  2.1777  			return a syntax error.
  2.1778  
  2.1779  		<li>
  2.1780 -			While the <a href=#current-input-token>current input token</a> is a <a data-link-type=token href=#tokendef-whitespace>〈whitespace〉</a>,
  2.1781 +			While the <a href=#current-input-token>current input token</a> is a <a class=css-code data-link-type=token href=#tokendef-whitespace>〈whitespace〉</a>,
  2.1782  			<a href=#consume-the-next-input-token>consume the next input token</a>.
  2.1783  
  2.1784  		<li>
  2.1785 -			If the <a href=#current-input-token>current input token</a> is an <a data-link-type=token href=#tokendef-eof>〈EOF〉</a>,
  2.1786 +			If the <a href=#current-input-token>current input token</a> is an <a class=css-code data-link-type=token href=#tokendef-eof>〈EOF〉</a>,
  2.1787  			return the <a href=#component-value>component value</a> returned in step 3.
  2.1788  			Otherwise,
  2.1789  			return a syntax error.
  2.1790  	</ol>
  2.1791  
  2.1792 -<h4 data-level=5.3.7 id=parse-a-list-of-component-values><span class=secno>5.3.7 </span><span class=content>
  2.1793 -<dfn data-dfn-type=dfn data-noexport="" id=parse-a-list-of-component-values0>Parse a list of component values</dfn></span><a class=section-link href=#parse-a-list-of-component-values>§</a></h4>
  2.1794 +<h4 class="heading settled heading" data-level=5.3.7 id=parse-a-list-of-component-values><span class=secno>5.3.7 </span><span class=content>
  2.1795 +<dfn data-dfn-type=dfn data-noexport="" id=parse-a-list-of-component-values0>Parse a list of component values<a class=self-link href=#parse-a-list-of-component-values0></a></dfn></span><a class=self-link href=#parse-a-list-of-component-values></a></h4>
  2.1796  
  2.1797  <p>	To <a href=#parse-a-list-of-component-values0>parse a list of component values</a>:
  2.1798  
  2.1799  	<ol>
  2.1800  		<li>
  2.1801 -			Repeatedly <a href=#consume-a-component-value0>consume a component value</a> until an <a data-link-type=token href=#tokendef-eof>〈EOF〉</a> is returned,
  2.1802 -			appending the returned values (except the final <a data-link-type=token href=#tokendef-eof>〈EOF〉</a>) into a list.
  2.1803 +			Repeatedly <a href=#consume-a-component-value0>consume a component value</a> until an <a class=css-code data-link-type=token href=#tokendef-eof>〈EOF〉</a> is returned,
  2.1804 +			appending the returned values (except the final <a class=css-code data-link-type=token href=#tokendef-eof>〈EOF〉</a>) into a list.
  2.1805  			Return the list.
  2.1806  	</ol>
  2.1807  
  2.1808 -<h3 data-level=5.4 id=parser-algorithms><span class=secno>5.4 </span><span class=content>
  2.1809 -Parser Algorithms</span><a class=section-link href=#parser-algorithms>§</a></h3>
  2.1810 +<h3 class="heading settled heading" data-level=5.4 id=parser-algorithms><span class=secno>5.4 </span><span class=content>
  2.1811 +Parser Algorithms</span><a class=self-link href=#parser-algorithms></a></h3>
  2.1812  
  2.1813  <p>	The following algorithms comprise the parser.
  2.1814  	They are called by the parser entry points above.
  2.1815 @@ -2101,36 +2050,36 @@
  2.1816  <p>	These algorithms may be called with a list of either tokens or of component values.
  2.1817  	(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.1818  	Similar to how the input stream returned EOF code points to represent when it was empty during the tokenization stage,
  2.1819 -	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.1820 +	the lists in this stage must return an <a class=css-code data-link-type=token href=#tokendef-eof>〈EOF〉</a> when the next token is requested but they are empty.
  2.1821  
  2.1822  <p>	An algorithm may be invoked with a specific list,
  2.1823  	in which case it consumes only that list
  2.1824  	(and when that list is exhausted,
  2.1825 -	it begins returning <a data-link-type=token href=#tokendef-eof>〈EOF〉</a>s).
  2.1826 +	it begins returning <a class=css-code data-link-type=token href=#tokendef-eof>〈EOF〉</a>s).
  2.1827  	Otherwise,
  2.1828  	it is implicitly invoked with the same list as the invoking algorithm.
  2.1829  
  2.1830  
  2.1831 -<h4 data-level=5.4.1 id=consume-a-list-of-rules><span class=secno>5.4.1 </span><span class=content>
  2.1832 -<dfn data-dfn-type=dfn data-noexport="" id=consume-a-list-of-rules0>Consume a list of rules</dfn></span><a class=section-link href=#consume-a-list-of-rules>§</a></h4>
  2.1833 +<h4 class="heading settled heading" data-level=5.4.1 id=consume-a-list-of-rules><span class=secno>5.4.1 </span><span class=content>
  2.1834 +<dfn data-dfn-type=dfn data-noexport="" id=consume-a-list-of-rules0>Consume a list of rules<a class=self-link href=#consume-a-list-of-rules0></a></dfn></span><a class=self-link href=#consume-a-list-of-rules></a></h4>
  2.1835  
  2.1836  <p>	Create an initially empty list of rules.
  2.1837  
  2.1838  <p>	Repeatedly consume the <a href=#next-input-token>next input token</a>:
  2.1839  
  2.1840  	<dl>
  2.1841 -		<dt><a data-link-type=token href=#tokendef-whitespace>〈whitespace〉</a>
  2.1842 +		<dt><a class=css-code data-link-type=token href=#tokendef-whitespace>〈whitespace〉</a>
  2.1843  		<dd>
  2.1844  			Do nothing.
  2.1845  
  2.1846 -		<dt><a data-link-type=token href=#tokendef-eof>〈EOF〉</a>
  2.1847 +		<dt><a class=css-code data-link-type=token href=#tokendef-eof>〈EOF〉</a>
  2.1848  		<dd>
  2.1849  			Return the list of rules.
  2.1850  
  2.1851 -		<dt><a data-link-type=token href=#tokendef-cdo>〈CDO〉</a>
  2.1852 -		<dt><a data-link-type=token href=#tokendef-cdc>〈CDC〉</a>
  2.1853 +		<dt><a class=css-code data-link-type=token href=#tokendef-cdo>〈CDO〉</a>
  2.1854 +		<dt><a class=css-code data-link-type=token href=#tokendef-cdc>〈CDC〉</a>
  2.1855  		<dd>
  2.1856 -			If the <dfn data-dfn-type=dfn data-noexport="" id=top-level-flag><var>top-level flag</var></dfn> is set,
  2.1857 +			If the <dfn data-dfn-type=dfn data-noexport="" id=top-level-flag><var>top-level flag</var><a class=self-link href=#top-level-flag></a></dfn> is set,
  2.1858  			do nothing.
  2.1859  
  2.1860  <p>			Otherwise,
  2.1861 @@ -2139,7 +2088,7 @@
  2.1862  			If anything is returned,
  2.1863  			append it to the list of rules.
  2.1864  
  2.1865 -		<dt><a data-link-type=token href=#tokendef-at-keyword>〈at-keyword〉</a>
  2.1866 +		<dt><a class=css-code data-link-type=token href=#tokendef-at-keyword>〈at-keyword〉</a>
  2.1867  		<dd>
  2.1868  			<a href=#reconsume-the-current-input-token>Reconsume the current input token</a>.
  2.1869  			<a href=#consume-an-at-rule0>Consume an at-rule</a>.
  2.1870 @@ -2155,8 +2104,8 @@
  2.1871  	</dl>
  2.1872  
  2.1873  
  2.1874 -<h4 data-level=5.4.2 id=consume-an-at-rule><span class=secno>5.4.2 </span><span class=content>
  2.1875 -<dfn data-dfn-type=dfn data-noexport="" id=consume-an-at-rule0>Consume an at-rule</dfn></span><a class=section-link href=#consume-an-at-rule>§</a></h4>
  2.1876 +<h4 class="heading settled heading" data-level=5.4.2 id=consume-an-at-rule><span class=secno>5.4.2 </span><span class=content>
  2.1877 +<dfn data-dfn-type=dfn data-noexport="" id=consume-an-at-rule0>Consume an at-rule<a class=self-link href=#consume-an-at-rule0></a></dfn></span><a class=self-link href=#consume-an-at-rule></a></h4>
  2.1878  
  2.1879  <p>	Create a new at-rule
  2.1880  	with its name set to the value of the <a href=#current-input-token>current input token</a>,
  2.1881 @@ -2166,32 +2115,32 @@
  2.1882  <p>	Repeatedly consume the <a href=#next-input-token>next input token</a>:
  2.1883  
  2.1884  	<dl>
  2.1885 -		<dt><a data-link-type=token href=#tokendef-semicolon>〈semicolon〉</a>
  2.1886 -		<dt><a data-link-type=token href=#tokendef-eof>〈EOF〉</a>
  2.1887 +		<dt><a class=css-code data-link-type=token href=#tokendef-semicolon>〈semicolon〉</a>
  2.1888 +		<dt><a class=css-code data-link-type=token href=#tokendef-eof>〈EOF〉</a>
  2.1889  		<dd>
  2.1890  			Return the at-rule.
  2.1891  
  2.1892 -		<dt><a data-link-type=token href=#tokendef-open-curly>〈{〉</a>
  2.1893 +		<dt><a class=css-code data-link-type=token href=#tokendef-open-curly>〈{〉</a>
  2.1894  		<dd>
  2.1895  			<a href=#consume-a-simple-block0>Consume a simple block</a>
  2.1896 -			and assign it to the at-rule's block.
  2.1897 +			and assign it to the at-rule’s block.
  2.1898  			Return the at-rule.
  2.1899  
  2.1900 -		<dt><a href=#simple-block>simple block</a> with an associated token of <a data-link-type=token href=#tokendef-open-curly>〈{〉</a>
  2.1901 +		<dt><a href=#simple-block>simple block</a> with an associated token of <a class=css-code data-link-type=token href=#tokendef-open-curly>〈{〉</a>
  2.1902  		<dd>
  2.1903 -			Assign the block to the at-rule's block.
  2.1904 +			Assign the block to the at-rule’s block.
  2.1905  			Return the at-rule.
  2.1906  
  2.1907  		<dt>anything else
  2.1908  		<dd>
  2.1909  			<a href=#reconsume-the-current-input-token>Reconsume the current input token</a>.
  2.1910  			<a href=#consume-a-component-value0>Consume a component value</a>.
  2.1911 -			Append the returned value to the at-rule's prelude.
  2.1912 +			Append the returned value to the at-rule’s prelude.
  2.1913  	</dl>
  2.1914  
  2.1915  
  2.1916 -<h4 data-level=5.4.3 id=consume-a-qualified-rule><span class=secno>5.4.3 </span><span class=content>
  2.1917 -<dfn data-dfn-type=dfn data-noexport="" id=consume-a-qualified-rule0>Consume a qualified rule</dfn></span><a class=section-link href=#consume-a-qualified-rule>§</a></h4>
  2.1918 +<h4 class="heading settled heading" data-level=5.4.3 id=consume-a-qualified-rule><span class=secno>5.4.3 </span><span class=content>
  2.1919 +<dfn data-dfn-type=dfn data-noexport="" id=consume-a-qualified-rule0>Consume a qualified rule<a class=self-link href=#consume-a-qualified-rule0></a></dfn></span><a class=self-link href=#consume-a-qualified-rule></a></h4>
  2.1920  
  2.1921  <p>	Create a new qualified rule
  2.1922  	with its prelude initially set to an empty list,
  2.1923 @@ -2200,57 +2149,57 @@
  2.1924  <p>	Repeatedly consume the <a href=#next-input-token>next input token</a>:
  2.1925  
  2.1926  	<dl>
  2.1927 -		<dt><a data-link-type=token href=#tokendef-eof>〈EOF〉</a>
  2.1928 +		<dt><a class=css-code data-link-type=token href=#tokendef-eof>〈EOF〉</a>
  2.1929  		<dd>
  2.1930  			This is a <a href=#parse-errors>parse error</a>.
  2.1931  			Return nothing.
  2.1932  
  2.1933 -		<dt><a data-link-type=token href=#tokendef-open-curly>〈{〉</a>
  2.1934 +		<dt><a class=css-code data-link-type=token href=#tokendef-open-curly>〈{〉</a>
  2.1935  		<dd>
  2.1936  			<a href=#consume-a-simple-block0>Consume a simple block</a>
  2.1937 -			and assign it to the qualified rule's block.
  2.1938 +			and assign it to the qualified rule’s block.
  2.1939  			Return the qualified rule.
  2.1940  
  2.1941 -		<dt><a href=#simple-block>simple block</a> with an associated token of <a data-link-type=token href=#tokendef-open-curly>〈{〉</a>
  2.1942 +		<dt><a href=#simple-block>simple block</a> with an associated token of <a class=css-code data-link-type=token href=#tokendef-open-curly>〈{〉</a>
  2.1943  		<dd>
  2.1944 -			Assign the block to the qualified rule's block.
  2.1945 +			Assign the block to the qualified rule’s block.
  2.1946  			Return the qualified rule.
  2.1947  
  2.1948  		<dt>anything else
  2.1949  		<dd>
  2.1950  			<a href=#reconsume-the-current-input-token>Reconsume the current input token</a>.
  2.1951  			<a href=#consume-a-component-value0>Consume a component value</a>.
  2.1952 -			Append the returned value to the qualified rule's prelude.
  2.1953 +			Append the returned value to the qualified rule’s prelude.
  2.1954  	</dl>
  2.1955  
  2.1956  
  2.1957 -<h4 data-level=5.4.4 id=consume-a-list-of-declarations><span class=secno>5.4.4 </span><span class=content>
  2.1958 -<dfn data-dfn-type=dfn data-noexport="" id=consume-a-list-of-declarations0>Consume a list of declarations</dfn></span><a class=section-link href=#consume-a-list-of-declarations>§</a></h4>
  2.1959 +<h4 class="heading settled heading" data-level=5.4.4 id=consume-a-list-of-declarations><span class=secno>5.4.4 </span><span class=content>
  2.1960 +<dfn data-dfn-type=dfn data-noexport="" id=consume-a-list-of-declarations0>Consume a list of declarations<a class=self-link href=#consume-a-list-of-declarations0></a></dfn></span><a class=self-link href=#consume-a-list-of-declarations></a></h4>
  2.1961  
  2.1962  <p>	Create an initially empty list of declarations.
  2.1963  
  2.1964  <p>	Repeatedly consume the <a href=#next-input-token>next input token</a>:
  2.1965  
  2.1966  	<dl>
  2.1967 -		<dt><a data-link-type=token href=#tokendef-whitespace>〈whitespace〉</a>
  2.1968 -		<dt><a data-link-type=token href=#tokendef-semicolon>〈semicolon〉</a>
  2.1969 +		<dt><a class=css-code data-link-type=token href=#tokendef-whitespace>〈whitespace〉</a>
  2.1970 +		<dt><a class=css-code data-link-type=token href=#tokendef-semicolon>〈semicolon〉</a>
  2.1971  		<dd>
  2.1972  			Do nothing.
  2.1973  
  2.1974 -		<dt><a data-link-type=token href=#tokendef-eof>〈EOF〉</a>
  2.1975 +		<dt><a class=css-code data-link-type=token href=#tokendef-eof>〈EOF〉</a>
  2.1976  		<dd>
  2.1977  			Return the list of declarations.
  2.1978  
  2.1979 -		<dt><a data-link-type=token href=#tokendef-at-keyword>〈at-keyword〉</a>
  2.1980 +		<dt><a class=css-code data-link-type=token href=#tokendef-at-keyword>〈at-keyword〉</a>
  2.1981  		<dd>
  2.1982  			<a href=#consume-an-at-rule0>Consume an at-rule</a>.
  2.1983  			Append the returned rule to the list of declarations.
  2.1984  
  2.1985 -		<dt><a data-link-type=token href=#tokendef-ident>〈ident〉</a>
  2.1986 +		<dt><a class=css-code data-link-type=token href=#tokendef-ident>〈ident〉</a>
  2.1987  		<dd>
  2.1988  			Initialize a temporary list initially filled with the <a href=#current-input-token>current input token</a>.
  2.1989  			<a href=#consume-the-next-input-token>Consume the next input token</a>.
  2.1990 -			While the <a href=#current-input-token>current input token</a> is anything other than a <a data-link-type=token href=#tokendef-semicolon>〈semicolon〉</a> or <a data-link-type=token href=#tokendef-eof>〈EOF〉</a>,
  2.1991 +			While the <a href=#current-input-token>current input token</a> is anything other than a <a class=css-code data-link-type=token href=#tokendef-semicolon>〈semicolon〉</a> or <a class=css-code data-link-type=token href=#tokendef-eof>〈EOF〉</a>,
  2.1992  			append it to the temporary list
  2.1993  			and <a href=#consume-the-next-input-token>consume the next input token</a>.
  2.1994  			<a href=#consume-a-declaration0>Consume a declaration</a> from the temporary list.
  2.1995 @@ -2261,12 +2210,12 @@
  2.1996  		<dd>
  2.1997  			This is a <a href=#parse-errors>parse error</a>.
  2.1998  			Repeatedly <a href=#consume-a-component-value0>consume a component value</a>
  2.1999 -			until it is a <a data-link-type=token href=#tokendef-semicolon>〈semicolon〉</a> or <a data-link-type=token href=#tokendef-eof>〈EOF〉</a>.
  2.2000 +			until it is a <a class=css-code data-link-type=token href=#tokendef-semicolon>〈semicolon〉</a> or <a class=css-code data-link-type=token href=#tokendef-eof>〈EOF〉</a>.
  2.2001  	</dl>
  2.2002  
  2.2003  
  2.2004 -<h4 data-level=5.4.5 id=consume-a-declaration><span class=secno>5.4.5 </span><span class=content>
  2.2005 -<dfn data-dfn-type=dfn data-noexport="" id=consume-a-declaration0>Consume a declaration</dfn></span><a class=section-link href=#consume-a-declaration>§</a></h4>
  2.2006 +<h4 class="heading settled heading" data-level=5.4.5 id=consume-a-declaration><span class=secno>5.4.5 </span><span class=content>
  2.2007 +<dfn data-dfn-type=dfn data-noexport="" id=consume-a-declaration0>Consume a declaration<a class=self-link href=#consume-a-declaration0></a></dfn></span><a class=self-link href=#consume-a-declaration></a></h4>
  2.2008  
  2.2009  <p>	Create a new declaration
  2.2010  	with its name set to the value of the <a href=#current-input-token>current input token</a>
  2.2011 @@ -2277,60 +2226,60 @@
  2.2012  			<a href=#consume-the-next-input-token>Consume the next input token</a>.
  2.2013  
  2.2014  		<li>
  2.2015 -			While the <a href=#current-input-token>current input token</a> is a <a data-link-type=token href=#tokendef-whitespace>〈whitespace〉</a>,
  2.2016 +			While the <a href=#current-input-token>current input token</a> is a <a class=css-code data-link-type=token href=#tokendef-whitespace>〈whitespace〉</a>,
  2.2017  			<a href=#consume-the-next-input-token>consume the next input token</a>.
  2.2018  
  2.2019  		<li>
  2.2020 -			If the <a href=#current-input-token>current input token</a> is anything other than a <a data-link-type=token href=#tokendef-colon>〈colon〉</a>,
  2.2021 +			If the <a href=#current-input-token>current input token</a> is anything other than a <a class=css-code data-link-type=token href=#tokendef-colon>〈colon〉</a>,
  2.2022  			this is a <a href=#parse-errors>parse error</a>.
  2.2023  			Return nothing.
  2.2024  
  2.2025  <p>			Otherwise, <a href=#consume-the-next-input-token>consume the next input token</a>.
  2.2026  
  2.2027  		<li>
  2.2028 -			While the <a href=#current-input-token>current input token</a> is anything other than an <a data-link-type=token href=#tokendef-eof>〈EOF〉</a>,
  2.2029 -			append it to the declaration's value
  2.2030 +			While the <a href=#current-input-token>current input token</a> is anything other than an <a class=css-code data-link-type=token href=#tokendef-eof>〈EOF〉</a>,
  2.2031 +			append it to the declaration’s value
  2.2032  			and <a href=#consume-the-next-input-token>consume the next input token</a>.
  2.2033  
  2.2034  		<li>
  2.2035 -			If the last two non-<a data-link-type=token href=#tokendef-whitespace>〈whitespace〉</a>s in the declaration's value are
  2.2036 -			a <a data-link-type=token href=#tokendef-delim>〈delim〉</a> with the value "!"
  2.2037 -			followed by an <a data-link-type=token href=#tokendef-ident>〈ident〉</a> with a value that is an <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for "important",
  2.2038 -			remove them from the declaration's value
  2.2039 -			and set the declaration's <var>important</var> flag to true.
  2.2040 +			If the last two non-<a class=css-code data-link-type=token href=#tokendef-whitespace>〈whitespace〉</a>s in the declaration’s value are
  2.2041 +			a <a class=css-code data-link-type=token href=#tokendef-delim>〈delim〉</a> with the value "!"
  2.2042 +			followed by an <a class=css-code data-link-type=token href=#tokendef-ident>〈ident〉</a> with a value that is an <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for "important",
  2.2043 +			remove them from the declaration’s value
  2.2044 +			and set the declaration’s <var>important</var> flag to true.
  2.2045  
  2.2046  		<li>
  2.2047  			Return the declaration.
  2.2048  	</ol>
  2.2049  
  2.2050  
  2.2051 -<h4 data-level=5.4.6 id=consume-a-component-value><span class=secno>5.4.6 </span><span class=content>
  2.2052 -<dfn data-dfn-type=dfn data-noexport="" id=consume-a-component-value0>Consume a component value</dfn></span><a class=section-link href=#consume-a-component-value>§</a></h4>
  2.2053 +<h4 class="heading settled heading" data-level=5.4.6 id=consume-a-component-value><span class=secno>5.4.6 </span><span class=content>
  2.2054 +<dfn data-dfn-type=dfn data-noexport="" id=consume-a-component-value0>Consume a component value<a class=self-link href=#consume-a-component-value0></a></dfn></span><a class=self-link href=#consume-a-component-value></a></h4>
  2.2055  
  2.2056  <p>	This section describes how to <a href=#consume-a-component-value0>consume a component value</a>.
  2.2057  
  2.2058  <p>	<a href=#consume-the-next-input-token>Consume the next input token</a>.
  2.2059  
  2.2060  <p>	If the <a href=#current-input-token>current input token</a>
  2.2061 -	is a <a data-link-type=token href=#tokendef-open-curly>〈{〉</a>, <a data-link-type=token href=#tokendef-open-square>〈[〉</a>, or <a data-link-type=token href=#tokendef-open-paren>〈(〉</a>,
  2.2062 +	is a <a class=css-code data-link-type=token href=#tokendef-open-curly>〈{〉</a>, <a class=css-code data-link-type=token href=#tokendef-open-square>〈[〉</a>, or <a class=css-code data-link-type=token href=#tokendef-open-paren>〈(〉</a>,
  2.2063  	<a href=#consume-a-simple-block0>consume a simple block</a>
  2.2064  	and return it.
  2.2065  
  2.2066  <p>	Otherwise, if the <a href=#current-input-token>current input token</a>
  2.2067 -	is a <a data-link-type=token href=#tokendef-function>〈function〉</a>,
  2.2068 +	is a <a class=css-code data-link-type=token href=#tokendef-function>〈function〉</a>,
  2.2069  	<a href=#consume-a-function0>consume a function</a>
  2.2070  	and return it.
  2.2071  
  2.2072  <p>	Otherwise, return the <a href=#current-input-token>current input token</a>.
  2.2073  
  2.2074  
  2.2075 -<h4 data-level=5.4.7 id=consume-a-simple-block><span class=secno>5.4.7 </span><span class=content>
  2.2076 -<dfn data-dfn-type=dfn data-noexport="" id=consume-a-simple-block0>Consume a simple block</dfn></span><a class=section-link href=#consume-a-simple-block>§</a></h4>
  2.2077 +<h4 class="heading settled heading" data-level=5.4.7 id=consume-a-simple-block><span class=secno>5.4.7 </span><span class=content>
  2.2078 +<dfn data-dfn-type=dfn data-noexport="" id=consume-a-simple-block0>Consume a simple block<a class=self-link href=#consume-a-simple-block0></a></dfn></span><a class=self-link href=#consume-a-simple-block></a></h4>
  2.2079  
  2.2080  <p>	This section describes how to <a href=#consume-a-simple-block0>consume a simple block</a>.
  2.2081  
  2.2082 -<p>	The <dfn data-dfn-type=dfn data-noexport="" id=ending-token>ending token</dfn> is the mirror variant of the <a href=#current-input-token>current input token</a>.
  2.2083 -	(E.g. if it was called with <a data-link-type=token href=#tokendef-open-square>〈[〉</a>, the <a href=#ending-token>ending token</a> is <a data-link-type=token href=#tokendef-close-square>〈]〉</a>.)
  2.2084 +<p>	The <dfn data-dfn-type=dfn data-noexport="" id=ending-token>ending token<a class=self-link href=#ending-token></a></dfn> is the mirror variant of the <a href=#current-input-token>current input token</a>.
  2.2085 +	(E.g. if it was called with <a class=css-code data-link-type=token href=#tokendef-open-square>〈[〉</a>, the <a href=#ending-token>ending token</a> is <a class=css-code data-link-type=token href=#tokendef-close-square>〈]〉</a>.)
  2.2086  
  2.2087  <p>	Create a <a href=#simple-block>simple block</a> with its associated token set to the <a href=#current-input-token>current input token</a>
  2.2088  	and with a value with is initially an empty list.
  2.2089 @@ -2338,7 +2287,7 @@
  2.2090  <p>	Repeatedly consume the <a href=#next-input-token>next input token</a> and process it as follows:
  2.2091  
  2.2092  	<dl>
  2.2093 -		<dt><a data-link-type=token href=#tokendef-eof>〈EOF〉</a>
  2.2094 +		<dt><a class=css-code data-link-type=token href=#tokendef-eof>〈EOF〉</a>
  2.2095  		<dt><a href=#ending-token>ending token</a>
  2.2096  		<dd>
  2.2097  			Return the block.
  2.2098 @@ -2351,8 +2300,8 @@
  2.2099  	</dl>
  2.2100  
  2.2101  
  2.2102 -<h4 data-level=5.4.8 id=consume-a-function><span class=secno>5.4.8 </span><span class=content>
  2.2103 -<dfn data-dfn-type=dfn data-noexport="" id=consume-a-function0>Consume a function</dfn></span><a class=section-link href=#consume-a-function>§</a></h4>
  2.2104 +<h4 class="heading settled heading" data-level=5.4.8 id=consume-a-function><span class=secno>5.4.8 </span><span class=content>
  2.2105 +<dfn data-dfn-type=dfn data-noexport="" id=consume-a-function0>Consume a function<a class=self-link href=#consume-a-function0></a></dfn></span><a class=self-link href=#consume-a-function></a></h4>
  2.2106  
  2.2107  <p>	This section describes how to <a href=#consume-a-function0>consume a function</a>.
  2.2108  
  2.2109 @@ -2362,8 +2311,8 @@
  2.2110  <p>	Repeatedly consume the <a href=#next-input-token>next input token</a> and process it as follows:
  2.2111  
  2.2112  	<dl>
  2.2113 -		<dt><a data-link-type=token href=#tokendef-eof>〈EOF〉</a>
  2.2114 -		<dt><a data-link-type=token href=#tokendef-close-paren>〈)〉</a>
  2.2115 +		<dt><a class=css-code data-link-type=token href=#tokendef-eof>〈EOF〉</a>
  2.2116 +		<dt><a class=css-code data-link-type=token href=#tokendef-close-paren>〈)〉</a>
  2.2117  		<dd>
  2.2118  			Return the function.
  2.2119  
  2.2120 @@ -2372,13 +2321,13 @@
  2.2121  			<a href=#reconsume-the-current-input-token>Reconsume the current input token</a>.
  2.2122  			<a href=#consume-a-component-value0>Consume a component value</a>
  2.2123  			and append the returned value
  2.2124 -			to the function's value.
  2.2125 +			to the function’s value.
  2.2126  	</dl>
  2.2127  
  2.2128  
  2.2129  
  2.2130 -<h2 data-level=6 id=anb><span class=secno>6 </span><span class=content>
  2.2131 -The <var>An+B</var> microsyntax</span><a class=section-link href=#anb>§</a></h2>
  2.2132 +<h2 class="heading settled heading" data-level=6 id=anb><span class=secno>6 </span><span class=content>
  2.2133 +The <var>An+B</var> microsyntax</span><a class=self-link href=#anb></a></h2>
  2.2134  
  2.2135  <p>	Several things in CSS,
  2.2136  	such as the <a class=css data-link-type=maybe href=http://dev.w3.org/csswg/selectors-4/#nth-child-pseudo>:nth-child()</a> pseudoclass,
  2.2137 @@ -2387,7 +2336,7 @@
  2.2138  	allowing an author to easily indicate single elements
  2.2139  	or all elements at regularly-spaced intervals in a list.
  2.2140  
  2.2141 -<p>	The <dfn data-dfn-type=dfn data-noexport="" id=anb0>An+B</dfn> notation defines an integer step (<dfn data-dfn-type=dfn data-noexport="" id=a>A</dfn>) and offset (<dfn data-dfn-type=dfn data-noexport="" id=b>B</dfn>),
  2.2142 +<p>	The <dfn data-dfn-type=dfn data-noexport="" id=anb0>An+B<a class=self-link href=#anb0></a></dfn> notation defines an integer step (<dfn data-dfn-type=dfn data-noexport="" id=a>A<a class=self-link href=#a></a></dfn>) and offset (<dfn data-dfn-type=dfn data-noexport="" id=b>B<a class=self-link href=#b></a></dfn>),
  2.2143  	and represents the <var>An+B</var>th elements in a list,
  2.2144  	for every positive integer or zero value of <var>n</var>,
  2.2145  	with the first element in the list having index 1 (not 0).
  2.2146 @@ -2421,8 +2370,8 @@
  2.2147  <p>	If both <var>A</var> and <var>B</var> are 0,
  2.2148  	the pseudo-class represents no element in the list.
  2.2149  
  2.2150 -<h3 data-level=6.1 id=anb-syntax><span class=secno>6.1 </span><span class=content>
  2.2151 -Informal Syntax Description</span><a class=section-link href=#anb-syntax>§</a></h3>
  2.2152 +<h3 class="heading settled heading" data-level=6.1 id=anb-syntax><span class=secno>6.1 </span><span class=content>
  2.2153 +Informal Syntax Description</span><a class=self-link href=#anb-syntax></a></h3>
  2.2154  
  2.2155  <p>	<em>This section is non-normative.</em>
  2.2156  
  2.2157 @@ -2487,8 +2436,8 @@
  2.2158  -->+ 2</pre>	</div>
  2.2159  
  2.2160  
  2.2161 -<h3 data-level=6.2 id=the-anb-type><span class=secno>6.2 </span><span class=content>
  2.2162 -The <code>&lt;an+b&gt;</code> type</span><a class=section-link href=#the-anb-type>§</a></h3>
  2.2163 +<h3 class="heading settled heading" data-level=6.2 id=the-anb-type><span class=secno>6.2 </span><span class=content>
  2.2164 +The <code>&lt;an+b&gt;</code> type</span><a class=self-link href=#the-anb-type></a></h3>
  2.2165  
  2.2166  <p>	The <var>An+B</var> notation was originally defined using a slightly different tokenizer than the rest of CSS,
  2.2167  	resulting in a somewhat odd definition when expressed in terms of CSS tokens.
  2.2168 @@ -2500,7 +2449,7 @@
  2.2169  	(using the <a href=http://www.w3.org/TR/css3-values/#value-defs>Value Definition Syntax in the Values &amp; Units spec</a>)
  2.2170  	as:
  2.2171  
  2.2172 -	<pre class=prod>  <dfn data-dfn-type=type data-export="" id=anb-production>&lt;an+b&gt;</dfn> =
  2.2173 +	<pre class=prod>  <dfn class=css-code data-dfn-type=type data-export="" id=anb-production>&lt;an+b&gt;<a class=self-link href=#anb-production></a></dfn> =
  2.2174      odd | even |
  2.2175      <var>&lt;integer&gt;</var> |
  2.2176  
  2.2177 @@ -2527,14 +2476,14 @@
  2.2178  <p>	where:
  2.2179  
  2.2180  <p>	<ul>
  2.2181 -		<li><dfn data-dfn-type=type data-export="" id=typedef-n-dimension><code>&lt;n-dimension&gt;</code></dfn> is a <a data-link-type=token href=#tokendef-dimension>〈dimension〉</a> with its type flag set to "integer", and a unit that is an <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for "n"
  2.2182 -		<li><dfn data-dfn-type=type data-export="" id=typedef-ndash-dimension><code>&lt;ndash-dimension&gt;</code></dfn> is a <a data-link-type=token href=#tokendef-dimension>〈dimension〉</a> with its type flag set to "integer", and a unit that is an <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for "n-"
  2.2183 -		<li><dfn data-dfn-type=type data-export="" id=typedef-ndashdigit-dimension><code>&lt;ndashdigit-dimension&gt;</code></dfn> is a <a data-link-type=token href=#tokendef-dimension>〈dimension〉</a> with its type flag set to "integer", and a unit that is an <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for "n-*", where "*" is a series of one or more <a href=#digit>digits</a>
  2.2184 -		<li><dfn data-dfn-type=type data-export="" id=typedef-ndashdigit-ident><code>&lt;ndashdigit-ident&gt;</code></dfn> is an <a data-link-type=token href=#tokendef-ident>〈ident〉</a> whose value is an <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for "n-*", where "*" is a series of one or more <a href=#digit>digits</a>
  2.2185 -		<li><dfn data-dfn-type=type data-export="" id=typedef-dashndashdigit-ident><code>&lt;dashndashdigit-ident&gt;</code></dfn> is an <a data-link-type=token href=#tokendef-ident>〈ident〉</a> whose value is an <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for "-n-*", where "*" is a series of one or more <a href=#digit>digits</a>
  2.2186 -		<li><dfn data-dfn-type=type data-export="" id=typedef-integer><code>&lt;integer&gt;</code></dfn> is a <a data-link-type=token href=#tokendef-number>〈number〉</a> with its type flag set to "integer"
  2.2187 -		<li><dfn data-dfn-type=type data-export="" id=typedef-signed-integer><code>&lt;signed-integer&gt;</code></dfn> is a <a data-link-type=token href=#tokendef-number>〈number〉</a> with its type flag set to "integer", and whose representation starts with "+" or "-"
  2.2188 -		<li><dfn data-dfn-type=type data-export="" id=typedef-signless-integer><code>&lt;signless-integer&gt;</code></dfn> is a <a data-link-type=token href=#tokendef-number>〈number〉</a> with its type flag set to "integer", and whose representation start with a <a href=#digit>digit</a>
  2.2189 +		<li><dfn class=css-code data-dfn-type=type data-export="" id=typedef-n-dimension><code>&lt;n-dimension&gt;</code><a class=self-link href=#typedef-n-dimension></a></dfn> is a <a class=css-code data-link-type=token href=#tokendef-dimension>〈dimension〉</a> with its type flag set to "integer", and a unit that is an <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for "n"
  2.2190 +		<li><dfn class=css-code data-dfn-type=type data-export="" id=typedef-ndash-dimension><code>&lt;ndash-dimension&gt;</code><a class=self-link href=#typedef-ndash-dimension></a></dfn> is a <a class=css-code data-link-type=token href=#tokendef-dimension>〈dimension〉</a> with its type flag set to "integer", and a unit that is an <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for "n-"
  2.2191 +		<li><dfn class=css-code data-dfn-type=type data-export="" id=typedef-ndashdigit-dimension><code>&lt;ndashdigit-dimension&gt;</code><a class=self-link href=#typedef-ndashdigit-dimension></a></dfn> is a <a class=css-code data-link-type=token href=#tokendef-dimension>〈dimension〉</a> with its type flag set to "integer", and a unit that is an <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for "n-*", where "*" is a series of one or more <a href=#digit>digits</a>
  2.2192 +		<li><dfn class=css-code data-dfn-type=type data-export="" id=typedef-ndashdigit-ident><code>&lt;ndashdigit-ident&gt;</code><a class=self-link href=#typedef-ndashdigit-ident></a></dfn> is an <a class=css-code data-link-type=token href=#tokendef-ident>〈ident〉</a> whose value is an <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for "n-*", where "*" is a series of one or more <a href=#digit>digits</a>
  2.2193 +		<li><dfn class=css-code data-dfn-type=type data-export="" id=typedef-dashndashdigit-ident><code>&lt;dashndashdigit-ident&gt;</code><a class=self-link href=#typedef-dashndashdigit-ident></a></dfn> is an <a class=css-code data-link-type=token href=#tokendef-ident>〈ident〉</a> whose value is an <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for "-n-*", where "*" is a series of one or more <a href=#digit>digits</a>
  2.2194 +		<li><dfn class=css-code data-dfn-type=type data-export="" id=typedef-integer><code>&lt;integer&gt;</code><a class=self-link href=#typedef-integer></a></dfn> is a <a class=css-code data-link-type=token href=#tokendef-number>〈number〉</a> with its type flag set to "integer"
  2.2195 +		<li><dfn class=css-code data-dfn-type=type data-export="" id=typedef-signed-integer><code>&lt;signed-integer&gt;</code><a class=self-link href=#typedef-signed-integer></a></dfn> is a <a class=css-code data-link-type=token href=#tokendef-number>〈number〉</a> with its type flag set to "integer", and whose representation starts with "+" or "-"
  2.2196 +		<li><dfn class=css-code data-dfn-type=type data-export="" id=typedef-signless-integer><code>&lt;signless-integer&gt;</code><a class=self-link href=#typedef-signless-integer></a></dfn> is a <a class=css-code data-link-type=token href=#tokendef-number>〈number〉</a> with its type flag set to "integer", and whose representation start with a <a href=#digit>digit</a>
  2.2197  	</ul>
  2.2198  
  2.2199  	<p id=anb-plus>
  2.2200 @@ -2561,50 +2510,50 @@
  2.2201  		<dt><code>'+'? n</code>
  2.2202  		<dt><code>-n</code>
  2.2203  		<dd>
  2.2204 -			<var>A</var> is the dimension's value, 1, or -1, respectively.
  2.2205 +			<var>A</var> is the dimension’s value, 1, or -1, respectively.
  2.2206  			<var>B</var> is 0.
  2.2207  
  2.2208  		<dt><code><var>&lt;ndashdigit-dimension&gt;</var></code>
  2.2209  		<dt><code>'+'? <var>&lt;ndashdigit-ident&gt;</var></code>
  2.2210  		<dd>
  2.2211 -			<var>A</var> is the dimension's value or 1, respectively.
  2.2212 -			<var>B</var> is the dimension's unit or ident's value, respectively,
  2.2213 +			<var>A</var> is the dimension’s value or 1, respectively.
  2.2214 +			<var>B</var> is the dimension’s unit or ident’s value, respectively,
  2.2215  			with the first <a href=#code-point>code point</a> removed and the remainder interpreted as a base-10 number.
  2.2216  			<span class=note>B is negative.</span>
  2.2217  
  2.2218  		<dt><code><var>&lt;dashndashdigit-ident&gt;</var></code>
  2.2219  		<dd>
  2.2220  			<var>A</var> is -1.
  2.2221 -			<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.2222 +			<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.2223  			<span class=note>B is negative.</span>
  2.2224  
  2.2225  		<dt><code><var>&lt;n-dimension&gt;</var> <var>&lt;signed-integer&gt;</var></code>
  2.2226  		<dt><code>'+'? n <var>&lt;signed-integer&gt;</var></code>
  2.2227  		<dt><code>-n <var>&lt;signed-integer&gt;</var></code>
  2.2228  		<dd>
  2.2229 -			<var>A</var> is the dimension's value, 1, or -1, respectively.
  2.2230 +			<var>A</var> is the dimension’s value, 1, or -1, respectively.
  2.2231  			<var>B</var> is the integer’s value.
  2.2232  
  2.2233  		<dt><code><var>&lt;ndash-dimension&gt;</var> <var>&lt;signless-integer&gt;</var></code>
  2.2234  		<dt><code>'+'? n- <var>&lt;signless-integer&gt;</var></code>
  2.2235  		<dt><code>-n- <var>&lt;signless-integer&gt;</var></code>
  2.2236  		<dd>
  2.2237 -			<var>A</var> is the dimension's value, 1, or -1, respectively.
  2.2238 +			<var>A</var> is the dimension’s value, 1, or -1, respectively.
  2.2239  			<var>B</var> is the negation of the integer’s value.
  2.2240  
  2.2241  		<dt><code><var>&lt;n-dimension&gt;</var> ['+' | '-'] <var>&lt;signless-integer&gt;</var></code>
  2.2242  		<dt><code>'+'? n ['+' | '-'] <var>&lt;signless-integer&gt;</var></code>
  2.2243  		<dt><code>-n ['+' | '-'] <var>&lt;signless-integer&gt;</var></code>
  2.2244  		<dd>
  2.2245 -			<var>A</var> is the dimension's value, 1, or -1, respectively.
  2.2246 +			<var>A</var> is the dimension’s value, 1, or -1, respectively.
  2.2247  			<var>B</var> is the integer’s value.
  2.2248  			If a '-' was provided between the two, <var>B</var> is instead the negation of the integer’s value.
  2.2249  	</dl>
  2.2250  
  2.2251  
  2.2252  
  2.2253 -<h2 data-level=7 id=rule-defs><span class=secno>7 </span><span class=content>
  2.2254 -Defining Grammars for Rules and Other Values</span><a class=section-link href=#rule-defs>§</a></h2>
  2.2255 +<h2 class="heading settled heading" data-level=7 id=rule-defs><span class=secno>7 </span><span class=content>
  2.2256 +Defining Grammars for Rules and Other Values</span><a class=self-link href=#rule-defs></a></h2>
  2.2257  
  2.2258  <p>	The <a href=http://www.w3.org/TR/css3-values/>Values</a> spec defines how to specify a grammar for properties.
  2.2259  	This section does the same, but for rules.
  2.2260 @@ -2617,10 +2566,10 @@
  2.2261  <p>	Several types of tokens are written literally, without quotes:
  2.2262  
  2.2263  <p>	<ul>
  2.2264 -		<li><a data-link-type=token href=#tokendef-ident>〈ident〉</a>s (such as <span class=css data-link-type=maybe>auto</span>, <span class=css data-link-type=maybe>disc</span>, etc), which are simply written as their value.
  2.2265 -		<li><a data-link-type=token href=#tokendef-at-keyword>〈at-keyword〉</a>s, which are written as an @ character followed by the token's value, like "@media".
  2.2266 -		<li><a data-link-type=token href=#tokendef-function>〈function〉</a>s, which are written as the function name followed by a ( character, like "translate(".
  2.2267 -		<li>The <a data-link-type=token href=#tokendef-colon>〈colon〉</a> (written as <code>:</code>), <a data-link-type=token href=#tokendef-comma>〈comma〉</a> (written as <code>,</code>), <a data-link-type=token href=#tokendef-semicolon>〈semicolon〉</a> (written as <code>;</code>), <a data-link-type=token href=#tokendef-open-paren>〈(〉</a>, <a data-link-type=token href=#tokendef-close-paren>〈)〉</a>, <a data-link-type=token href=#tokendef-open-curly>〈{〉</a>, and <a data-link-type=token href=#tokendef-close-curly>〈}〉</a>s.
  2.2268 +		<li><a class=css-code data-link-type=token href=#tokendef-ident>〈ident〉</a>s (such as <span class=css data-link-type=maybe>auto</span>, <span class=css data-link-type=maybe>disc</span>, etc), which are simply written as their value.
  2.2269 +		<li><a class=css-code data-link-type=token href=#tokendef-at-keyword>〈at-keyword〉</a>s, which are written as an @ character followed by the token’s value, like "@media".
  2.2270 +		<li><a class=css-code data-link-type=token href=#tokendef-function>〈function〉</a>s, which are written as the function name followed by a ( character, like "translate(".
  2.2271 +		<li>The <a class=css-code data-link-type=token href=#tokendef-colon>〈colon〉</a> (written as <code>:</code>), <a class=css-code data-link-type=token href=#tokendef-comma>〈comma〉</a> (written as <code>,</code>), <a class=css-code data-link-type=token href=#tokendef-semicolon>〈semicolon〉</a> (written as <code>;</code>), <a class=css-code data-link-type=token href=#tokendef-open-paren>〈(〉</a>, <a class=css-code data-link-type=token href=#tokendef-close-paren>〈)〉</a>, <a class=css-code data-link-type=token href=#tokendef-open-curly>〈{〉</a>, and <a class=css-code data-link-type=token href=#tokendef-close-curly>〈}〉</a>s.
  2.2272  	</ul>
  2.2273  
  2.2274  <p>	Tokens match if their value is an <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match
  2.2275 @@ -2628,90 +2577,90 @@
  2.2276  
  2.2277  	<p class=note>
  2.2278  		Although it is possible, with <a href=#escaping0>escaping</a>,
  2.2279 -		to construct an <a data-link-type=token href=#tokendef-ident>〈ident〉</a> whose value starts with <code>@</code> or ends with <code>(</code>,
  2.2280 -		such a tokens is not an <a data-link-type=token href=#tokendef-at-keyword>〈at-keyword〉</a> or a <a data-link-type=token href=#tokendef-function>〈function〉</a>
  2.2281 +		to construct an <a class=css-code data-link-type=token href=#tokendef-ident>〈ident〉</a> whose value starts with <code>@</code> or ends with <code>(</code>,
  2.2282 +		such a tokens is not an <a class=css-code data-link-type=token href=#tokendef-at-keyword>〈at-keyword〉</a> or a <a class=css-code data-link-type=token href=#tokendef-function>〈function〉</a>
  2.2283  		and does not match corresponding grammar definitions.
  2.2284  
  2.2285 -	<a data-link-type=token href=#tokendef-delim>〈delim〉</a>s are written with their value enclosed in single quotes.
  2.2286 -	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.2287 -	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.2288 -	as they're used by the syntax of the grammar itself to group clauses.
  2.2289 -	<a data-link-type=token href=#tokendef-whitespace>〈whitespace〉</a> is never indicated in the grammar;
  2.2290 -	<a data-link-type=token href=#tokendef-whitespace>〈whitespace〉</a>s are allowed before, after, and between any two tokens,
  2.2291 +	<a class=css-code data-link-type=token href=#tokendef-delim>〈delim〉</a>s are written with their value enclosed in single quotes.
  2.2292 +	For example, a <a class=css-code data-link-type=token href=#tokendef-delim>〈delim〉</a> containing the "+" <a href=#code-point>code point</a> is written as <code>'+'</code>.
  2.2293 +	Similarly, the <a class=css-code data-link-type=token href=#tokendef-open-square>〈[〉</a> and <a class=css-code data-link-type=token href=#tokendef-close-square>〈]〉</a>s must be written in single quotes,
  2.2294 +	as they’re used by the syntax of the grammar itself to group clauses.
  2.2295 +	<a class=css-code data-link-type=token href=#tokendef-whitespace>〈whitespace〉</a> is never indicated in the grammar;
  2.2296 +	<a class=css-code data-link-type=token href=#tokendef-whitespace>〈whitespace〉</a>s are allowed before, after, and between any two tokens,
  2.2297  	unless explicitly specified otherwise in prose definitions.
  2.2298  	(For example, if the prelude of a rule is a selector,
  2.2299  	whitespace is significant.)
  2.2300  
  2.2301  <p>	When defining a function or a block,
  2.2302  	the ending token must be specified in the grammar,
  2.2303 -	but if it's not present in the eventual token stream,
  2.2304 +	but if it’s not present in the eventual token stream,
  2.2305  	it still matches.
  2.2306  
  2.2307  	<div class=example>
  2.2308  		For example, the syntax of the <span class=css data-link-type=maybe>translateX()</span> function is:
  2.2309  
  2.2310 -<pre>translateX( <a class=production data-link-type=type>&lt;translation-value&gt;</a> )</pre>
  2.2311 +<pre>translateX( <a class="production css-code" data-link-type=type>&lt;translation-value&gt;</a> )</pre>
  2.2312  <p>		However, the stylesheet may end with the function unclosed, like:
  2.2313  
  2.2314  <pre>.foo { transform: translate(50px</pre>
  2.2315  <p>		The CSS parser parses this as a style rule containing one declaration,
  2.2316  		whose value is a function named "translate".
  2.2317  		This matches the above grammar,
  2.2318 -		even though the ending token didn't appear in the token stream,
  2.2319 +		even though the ending token didn’t appear in the token stream,
  2.2320  		because by the time the parser is finished,
  2.2321  		the presence of the ending token is no longer possible to determine;
  2.2322 -		all you have is the fact that there's a block and a function.
  2.2323 +		all you have is the fact that there’s a block and a function.
  2.2324  	</div>
  2.2325  
  2.2326 -<h3 data-level=7.1 id=declaration-rule-list><span class=secno>7.1 </span><span class=content>
  2.2327 -Defining Block Contents: the <a class=production data-link-type=type href=#typedef-declaration-list>&lt;declaration-list&gt;</a>, <a class=production data-link-type=type href=#typedef-rule-list>&lt;rule-list&gt;</a>, and <a class=production data-link-type=type href=#typedef-stylesheet>&lt;stylesheet&gt;</a> productions</span><a class=section-link href=#declaration-rule-list>§</a></h3>
  2.2328 +<h3 class="heading settled heading" data-level=7.1 id=declaration-rule-list><span class=secno>7.1 </span><span class=content>
  2.2329 +Defining Block Contents: the <a class="production css-code" data-link-type=type href=#typedef-declaration-list>&lt;declaration-list&gt;</a>, <a class="production css-code" data-link-type=type href=#typedef-rule-list>&lt;rule-list&gt;</a>, and <a class="production css-code" data-link-type=type href=#typedef-stylesheet>&lt;stylesheet&gt;</a> productions</span><a class=self-link href=#declaration-rule-list></a></h3>
  2.2330  
  2.2331  <p>	The CSS parser is agnostic as to the contents of blocks,
  2.2332  	such as those that come at the end of some at-rules.
  2.2333  	Defining the generic grammar of the blocks in terms of tokens is non-trivial,
  2.2334  	but there are dedicated and unambiguous algorithms defined for parsing this.
  2.2335  
  2.2336 -<p>	The <dfn data-dfn-type=type data-export="" id=typedef-declaration-list>&lt;declaration-list&gt;</dfn> production represents a list of declarations.
  2.2337 +<p>	The <dfn class=css-code data-dfn-type=type data-export="" id=typedef-declaration-list>&lt;declaration-list&gt;<a class=self-link href=#typedef-declaration-list></a></dfn> production represents a list of declarations.
  2.2338  	It may only be used in grammars as the sole value in a block,
  2.2339  	and represents that the contents of the block must be parsed using the <a href=#consume-a-list-of-declarations0>consume a list of declarations</a> algorithm.
  2.2340  
  2.2341 -<p>	Similarly, the <dfn data-dfn-type=type data-export="" id=typedef-rule-list>&lt;rule-list&gt;</dfn> production represents a list of rules,
  2.2342 +<p>	Similarly, the <dfn class=css-code data-dfn-type=type data-export="" id=typedef-rule-list>&lt;rule-list&gt;<a class=self-link href=#typedef-rule-list></a></dfn> production represents a list of rules,
  2.2343  	and may only be used in grammars as the sole value in a block.
  2.2344  	It represents that the contents of the block must be parsed using the <a href=#consume-a-list-of-rules0>consume a list of rules</a> algorithm.
  2.2345  
  2.2346 -<p>	Finally, the <dfn data-dfn-type=type data-export="" id=typedef-stylesheet>&lt;stylesheet&gt;</dfn> production represents a list of rules.
  2.2347 -	It is identical to <a class=production data-link-type=type href=#typedef-rule-list>&lt;rule-list&gt;</a>,
  2.2348 +<p>	Finally, the <dfn class=css-code data-dfn-type=type data-export="" id=typedef-stylesheet>&lt;stylesheet&gt;<a class=self-link href=#typedef-stylesheet></a></dfn> production represents a list of rules.
  2.2349 +	It is identical to <a class="production css-code" data-link-type=type href=#typedef-rule-list>&lt;rule-list&gt;</a>,
  2.2350  	except that blocks using it default to accepting all rules
  2.2351 -	that aren't otherwise limited to a particular context.
  2.2352 +	that aren’t otherwise limited to a particular context.
  2.2353  
  2.2354  	<div class=example>
  2.2355  		For example, the <a class=css data-link-type=maybe href=http://dev.w3.org/csswg/css-fonts-3/#at-font-face-rule>@font-face</a> rule is defined to have an empty prelude,
  2.2356  		and to contain a list of declarations.
  2.2357  		This is expressed with the following grammar:
  2.2358  
  2.2359 -<pre>@font-face { <a class=production data-link-type=type href=#typedef-declaration-list>&lt;declaration-list&gt;</a> }</pre>
  2.2360 -<p>		This is a complete and sufficient definition of the rule's grammar.
  2.2361 +<pre>@font-face { <a class="production css-code" data-link-type=type href=#typedef-declaration-list>&lt;declaration-list&gt;</a> }</pre>
  2.2362 +<p>		This is a complete and sufficient definition of the rule’s grammar.
  2.2363  
  2.2364  <p>		For another example,
  2.2365  		<span class=css data-link-type=maybe>@keyframes</span> rules are more complex,
  2.2366  		interpreting their prelude as a name and containing keyframes rules in their block
  2.2367  		Their grammar is:
  2.2368  
  2.2369 -<pre>@keyframes <a class=production data-link-type=type>&lt;keyframes-name&gt;</a> { <a class=production data-link-type=type href=#typedef-rule-list>&lt;rule-list&gt;</a> }</pre>	</div>
  2.2370 -
  2.2371 -<p>	For rules that use <a class=production data-link-type=type href=#typedef-declaration-list>&lt;declaration-list&gt;</a>,
  2.2372 +<pre>@keyframes <a class="production css-code" data-link-type=type>&lt;keyframes-name&gt;</a> { <a class="production css-code" data-link-type=type href=#typedef-rule-list>&lt;rule-list&gt;</a> }</pre>	</div>
  2.2373 +
  2.2374 +<p>	For rules that use <a class="production css-code" data-link-type=type href=#typedef-declaration-list>&lt;declaration-list&gt;</a>,
  2.2375  	the spec for the rule must define which properties, descriptors, and/or at-rules are valid inside the rule;
  2.2376  	this may be as simple as saying "The @foo rule accepts the properties/descriptors defined in this specification/section.",
  2.2377  	and extension specs may simply say "The @foo rule additionally accepts the following properties/descriptors.".
  2.2378  	Any declarations or at-rules found inside the block that are not defined as valid
  2.2379 -	must be removed from the rule's value.
  2.2380 -
  2.2381 -<p>	Within a <a class=production data-link-type=type href=#typedef-declaration-list>&lt;declaration-list&gt;</a>,
  2.2382 +	must be removed from the rule’s value.
  2.2383 +
  2.2384 +<p>	Within a <a class="production css-code" data-link-type=type href=#typedef-declaration-list>&lt;declaration-list&gt;</a>,
  2.2385  	<code>!important</code> is automatically invalid on any descriptors.
  2.2386  	If the rule accepts properties,
  2.2387  	the spec for the rule must define whether the properties interact with the cascade,
  2.2388  	and with what specificity.
  2.2389 -	If they don't interact with the cascade,
  2.2390 +	If they don’t interact with the cascade,
  2.2391  	properties containing <code>!important</code> are automatically invalid;
  2.2392  	otherwise using <code>!important</code> is valid and has its usual effect on the cascade origin of the property.
  2.2393  
  2.2394 @@ -2721,25 +2670,25 @@
  2.2395  		define that the allowed declarations are the descriptors defined in the Fonts spec.
  2.2396  	</div>
  2.2397  
  2.2398 -<p>	For rules that use <a class=production data-link-type=type href=#typedef-rule-list>&lt;rule-list&gt;</a>,
  2.2399 +<p>	For rules that use <a class="production css-code" data-link-type=type href=#typedef-rule-list>&lt;rule-list&gt;</a>,
  2.2400  	the spec for the rule must define what types of rules are valid inside the rule,
  2.2401 -	same as <a class=production data-link-type=type href=#typedef-declaration-list>&lt;declaration-list&gt;</a>,
  2.2402 -	and unrecognized rules must similarly be removed from the rule's value.
  2.2403 +	same as <a class="production css-code" data-link-type=type href=#typedef-declaration-list>&lt;declaration-list&gt;</a>,
  2.2404 +	and unrecognized rules must similarly be removed from the rule’s value.
  2.2405  
  2.2406  	<div class=example>
  2.2407  		For example, the grammar for <span class=css data-link-type=maybe>@keyframes</span> in the previous example must,
  2.2408  		in addition to what is written there,
  2.2409 -		define that the only allowed rules are <a class=production data-link-type=type>&lt;keyframe-rule&gt;</a>s,
  2.2410 +		define that the only allowed rules are <a class="production css-code" data-link-type=type>&lt;keyframe-rule&gt;</a>s,
  2.2411  		which are defined as:
  2.2412  
  2.2413 -<pre><a class=production data-link-type=type>&lt;keyframe-rule&gt;</a> = <a class=production data-link-type=type>&lt;keyframe-selector&gt;</a> { <a class=production data-link-type=type href=#typedef-declaration-list>&lt;declaration-list&gt;</a> }</pre>
  2.2414 +<pre><a class="production css-code" data-link-type=type>&lt;keyframe-rule&gt;</a> = <a class="production css-code" data-link-type=type>&lt;keyframe-selector&gt;</a> { <a class="production css-code" data-link-type=type href=#typedef-declaration-list>&lt;declaration-list&gt;</a> }</pre>
  2.2415  <p>		Keyframe rules, then,
  2.2416  		must further define that they accept as declarations all animatable CSS properties,
  2.2417  		plus the <a class=property data-link-type=propdesc href=http://dev.w3.org/csswg/css-animations-1/#animation-timing-function title=animation-timing-function>animation-timing-function</a> property,
  2.2418  		but that they do not interact with the cascade.
  2.2419  	</div>
  2.2420  
  2.2421 -<p>	For rules that use <a class=production data-link-type=type href=#typedef-stylesheet>&lt;stylesheet&gt;</a>,
  2.2422 +<p>	For rules that use <a class="production css-code" data-link-type=type href=#typedef-stylesheet>&lt;stylesheet&gt;</a>,
  2.2423  	all rules are allowed by default,
  2.2424  	but the spec for the rule may define what types of rules are <em>invalid</em> inside the rule.
  2.2425  
  2.2426 @@ -2748,14 +2697,14 @@
  2.2427  		except more <span class=css data-link-type=maybe>@media</span> rules.
  2.2428  		As such, its grammar is:
  2.2429  
  2.2430 -<pre>@media <a class=production data-link-type=type>&lt;media-query-list&gt;</a> { <a class=production data-link-type=type href=#typedef-stylesheet>&lt;stylesheet&gt;</a> }</pre>
  2.2431 -<p>		It additionally defines a restriction that the <a class=production data-link-type=type href=#typedef-stylesheet>&lt;stylesheet&gt;</a> can not contain <span class=css data-link-type=maybe>@media</span> rules,
  2.2432 -		which causes them to be dropped from the outer rule's value if they appear.
  2.2433 +<pre>@media <a class="production css-code" data-link-type=type>&lt;media-query-list&gt;</a> { <a class="production css-code" data-link-type=type href=#typedef-stylesheet>&lt;stylesheet&gt;</a> }</pre>
  2.2434 +<p>		It additionally defines a restriction that the <a class="production css-code" data-link-type=type href=#typedef-stylesheet>&lt;stylesheet&gt;</a> can not contain <span class=css data-link-type=maybe>@media</span> rules,
  2.2435 +		which causes them to be dropped from the outer rule’s value if they appear.
  2.2436  	</div>
  2.2437  
  2.2438  
  2.2439 -<h2 data-level=8 id=css-stylesheets><span class=secno>8 </span><span class=content>
  2.2440 -CSS stylesheets</span><a class=section-link href=#css-stylesheets>§</a></h2>
  2.2441 +<h2 class="heading settled heading" data-level=8 id=css-stylesheets><span class=secno>8 </span><span class=content>
  2.2442 +CSS stylesheets</span><a class=self-link href=#css-stylesheets></a></h2>
  2.2443  
  2.2444  <p>	To parse a CSS stylesheet,
  2.2445  	first <a href=#parse-a-stylesheet0>parse a stylesheet</a>.
  2.2446 @@ -2763,13 +2712,13 @@
  2.2447  
  2.2448  <p>	If any style rule is invalid,
  2.2449  	or any at-rule is not recognized or is invalid according to its grammar or context,
  2.2450 -	it's a <a href=#parse-errors>parse error</a>.
  2.2451 +	it’s a <a href=#parse-errors>parse error</a>.
  2.2452  	Discard that rule.
  2.2453  
  2.2454 -<h3 data-level=8.1 id=style-rules><span class=secno>8.1 </span><span class=content>
  2.2455 -Style rules</span><a class=section-link href=#style-rules>§</a></h3>
  2.2456 -
  2.2457 -<p>	A <dfn data-dfn-type=dfn data-noexport="" id=style-rule>style rule</dfn> is a <a href=#qualified-rule>qualified rule</a>
  2.2458 +<h3 class="heading settled heading" data-level=8.1 id=style-rules><span class=secno>8.1 </span><span class=content>
  2.2459 +Style rules</span><a class=self-link href=#style-rules></a></h3>
  2.2460 +
  2.2461 +<p>	A <dfn data-dfn-type=dfn data-noexport="" id=style-rule>style rule<a class=self-link href=#style-rule></a></dfn> is a <a href=#qualified-rule>qualified rule</a>
  2.2462  	that associates a <a href=http://dev.w3.org/csswg/selectors4/#selector-list>selector list</a> <a data-biblio-type=normative data-link-type=biblio href=#select title=SELECT>[SELECT]</a>
  2.2463  	with a list of property declarations.
  2.2464  	They are also called
  2.2465 @@ -2802,35 +2751,35 @@
  2.2466  		For example, qualified rules inside <span class=css data-link-type=maybe>@media</span> rules <a data-biblio-type=informative data-link-type=biblio href=#css3-conditional title=CSS3-CONDITIONAL>[CSS3-CONDITIONAL]</a> are style rules,
  2.2467  		but qualified rules inside <span class=css data-link-type=maybe>@keyframes</span> rules are not <a data-biblio-type=informative data-link-type=biblio href=#css3-animations title=CSS3-ANIMATIONS>[CSS3-ANIMATIONS]</a>.
  2.2468  
  2.2469 -<h3 data-level=8.2 id=the-charset-rule><span class=secno>8.2 </span><span class=content>
  2.2470 -The <a class=css data-link-type=maybe href=#at-ruledef-charset>@charset</a> Rule</span><a class=section-link href=#the-charset-rule>§</a></h3>
  2.2471 -
  2.2472 -<p>	The <dfn data-dfn-type=at-rule data-export="" id=at-ruledef-charset><a class=css data-link-type=maybe href=#at-ruledef-charset>@charset</a></dfn> rule is a very special <a href=#at-rule>at-rule</a> associated with determining the character encoding of the stylesheet.
  2.2473 +<h3 class="heading settled heading" data-level=8.2 id=the-charset-rule><span class=secno>8.2 </span><span class=content>
  2.2474 +The <a class=css data-link-type=maybe href=#at-ruledef-charset>@charset</a> Rule</span><a class=self-link href=#the-charset-rule></a></h3>
  2.2475 +
  2.2476 +<p>	The <dfn class=css-code data-dfn-type=at-rule data-export="" id=at-ruledef-charset><a class=css data-link-type=maybe href=#at-ruledef-charset>@charset</a><a class=self-link href=#at-ruledef-charset></a></dfn> rule is a very special <a href=#at-rule>at-rule</a> associated with determining the character encoding of the stylesheet.
  2.2477  	In general, its grammar is:
  2.2478  
  2.2479 -<pre class=prod><dfn data-dfn-type=type data-export="" id=typedef-at-charset-rule>&lt;at-charset-rule&gt;</dfn> = @charset <a class=production data-link-type=type href=http://dev.w3.org/csswg/css-values-3/#string-value>&lt;string&gt;</a>;</pre>
  2.2480 +<pre class=prod><dfn class=css-code data-dfn-type=type data-export="" id=typedef-at-charset-rule>&lt;at-charset-rule&gt;<a class=self-link href=#typedef-at-charset-rule></a></dfn> = @charset <a class="production css-code" data-link-type=type href=http://dev.w3.org/csswg/css-values-3/#string-value>&lt;string&gt;</a>;</pre>
  2.2481  <p>	Additionally, an <a class=css data-link-type=maybe href=#at-ruledef-charset>@charset</a> rule is invalid if it is not at the top-level of a stylesheet,
  2.2482  	or if it is not the very first rule of a stylesheet.
  2.2483  
  2.2484 -<p>	<a class=css data-link-type=maybe href=#at-ruledef-charset>@charset</a> rules have an <dfn data-dfn-type=dfn data-noexport="" id=encoding>encoding</dfn>,
  2.2485 -	given by the value of the <a class=production data-link-type=type href=http://dev.w3.org/csswg/css-values-3/#string-value>&lt;string&gt;</a>.
  2.2486 +<p>	<a class=css data-link-type=maybe href=#at-ruledef-charset>@charset</a> rules have an <dfn data-dfn-type=dfn data-noexport="" id=encoding>encoding<a class=self-link href=#encoding></a></dfn>,
  2.2487 +	given by the value of the <a class="production css-code" data-link-type=type href=http://dev.w3.org/csswg/css-values-3/#string-value>&lt;string&gt;</a>.
  2.2488  
  2.2489  <p>	The <a class=css data-link-type=maybe href=#at-ruledef-charset>@charset</a> rule has <strong>no effect on a stylesheet</strong>.
  2.2490  
  2.2491  <p class=note>	Note: However, the algorithm to <a href=#determine-the-fallback-encoding>determine the fallback encoding</a>
  2.2492  	looks at the first several bytes of the stylesheet
  2.2493 -	to see if they're a match for the ASCII characters <code>@charset "XXX";</code>,
  2.2494 +	to see if they’re a match for the ASCII characters <code>@charset "XXX";</code>,
  2.2495  	where XXX is a sequence of bytes other than 22 (ASCII for <code>"</code>).
  2.2496  	While this resembles an <a class=css data-link-type=maybe href=#at-ruledef-charset>@charset</a> rule,
  2.2497 -	it's not actually the same thing.
  2.2498 +	it’s not actually the same thing.
  2.2499  	For example, the necessary sequence of bytes will spell out something entirely different
  2.2500 -	if the stylesheet is in an encoding that's not ASCII-compatible,
  2.2501 +	if the stylesheet is in an encoding that’s not ASCII-compatible,
  2.2502  	such as UTF-16.
  2.2503  
  2.2504  
  2.2505  
  2.2506 -<h2 data-level=9 id=serialization><span class=secno>9 </span><span class=content>
  2.2507 -Serialization</span><a class=section-link href=#serialization>§</a></h2>
  2.2508 +<h2 class="heading settled heading" data-level=9 id=serialization><span class=secno>9 </span><span class=content>
  2.2509 +Serialization</span><a class=self-link href=#serialization></a></h2>
  2.2510  
  2.2511  <p>	This specification does not define how to serialize CSS in general,
  2.2512  	leaving that task to the CSSOM and individual feature specifications.
  2.2513 @@ -2852,38 +2801,38 @@
  2.2514  
  2.2515  <p>	<ul>
  2.2516  		<li>
  2.2517 -			a <a data-link-type=token href=#tokendef-hash>〈hash〉</a> or <a data-link-type=token href=#tokendef-at-keyword>〈at-keyword〉</a> followed by a <a data-link-type=token href=#tokendef-number>〈number〉</a>, <a data-link-type=token href=#tokendef-percentage>〈percentage〉</a>, <a data-link-type=token href=#tokendef-ident>〈ident〉</a>, <a data-link-type=token href=#tokendef-dimension>〈dimension〉</a>, <a data-link-type=token href=#tokendef-unicode-range>〈unicode-range〉</a>, <a data-link-type=token href=#tokendef-url>〈url〉</a>, or a <a data-link-type=token href=#tokendef-function>〈function〉</a> token;
  2.2518 +			a <a class=css-code data-link-type=token href=#tokendef-hash>〈hash〉</a> or <a class=css-code data-link-type=token href=#tokendef-at-keyword>〈at-keyword〉</a> followed by a <a class=css-code data-link-type=token href=#tokendef-number>〈number〉</a>, <a class=css-code data-link-type=token href=#tokendef-percentage>〈percentage〉</a>, <a class=css-code data-link-type=token href=#tokendef-ident>〈ident〉</a>, <a class=css-code data-link-type=token href=#tokendef-dimension>〈dimension〉</a>, <a class=css-code data-link-type=token href=#tokendef-unicode-range>〈unicode-range〉</a>, <a class=css-code data-link-type=token href=#tokendef-url>〈url〉</a>, or a <a class=css-code data-link-type=token href=#tokendef-function>〈function〉</a> token;
  2.2519  
  2.2520  		<li>
  2.2521 -			<a data-link-type=token href=#tokendef-number>〈number〉</a>s, <a data-link-type=token href=#tokendef-ident>〈ident〉</a>s, and <a data-link-type=token href=#tokendef-dimension>〈dimension〉</a>s in any combination;
  2.2522 +			<a class=css-code data-link-type=token href=#tokendef-number>〈number〉</a>s, <a class=css-code data-link-type=token href=#tokendef-ident>〈ident〉</a>s, and <a class=css-code data-link-type=token href=#tokendef-dimension>〈dimension〉</a>s in any combination;
  2.2523  
  2.2524  		<li>
  2.2525 -			a <a data-link-type=token href=#tokendef-number>〈number〉</a>, <a data-link-type=token href=#tokendef-ident>〈ident〉</a>, or <a data-link-type=token href=#tokendef-dimension>〈dimension〉</a> followed by a <a data-link-type=token href=#tokendef-percentage>〈percentage〉</a>, <a data-link-type=token href=#tokendef-unicode-range>〈unicode-range〉</a>, <a data-link-type=token href=#tokendef-url>〈url〉</a>, or <a data-link-type=token href=#tokendef-function>〈function〉</a>;
  2.2526 +			a <a class=css-code data-link-type=token href=#tokendef-number>〈number〉</a>, <a class=css-code data-link-type=token href=#tokendef-ident>〈ident〉</a>, or <a class=css-code data-link-type=token href=#tokendef-dimension>〈dimension〉</a> followed by a <a class=css-code data-link-type=token href=#tokendef-percentage>〈percentage〉</a>, <a class=css-code data-link-type=token href=#tokendef-unicode-range>〈unicode-range〉</a>, <a class=css-code data-link-type=token href=#tokendef-url>〈url〉</a>, or <a class=css-code data-link-type=token href=#tokendef-function>〈function〉</a>;
  2.2527  
  2.2528  		<li>
  2.2529 -			an <a data-link-type=token href=#tokendef-ident>〈ident〉</a> followed by a <a data-link-type=token href=#tokendef-open-paren>〈(〉</a>;
  2.2530 +			an <a class=css-code data-link-type=token href=#tokendef-ident>〈ident〉</a> followed by a <a class=css-code data-link-type=token href=#tokendef-open-paren>〈(〉</a>;
  2.2531  
  2.2532  		<li>
  2.2533 -			a <a data-link-type=token href=#tokendef-delim>〈delim〉</a> containing "#" or "@" followed by any token except <a data-link-type=token href=#tokendef-whitespace>〈whitespace〉</a>;
  2.2534 +			a <a class=css-code data-link-type=token href=#tokendef-delim>〈delim〉</a> containing "#" or "@" followed by any token except <a class=css-code data-link-type=token href=#tokendef-whitespace>〈whitespace〉</a>;
  2.2535  
  2.2536  		<li>
  2.2537 -			a <a data-link-type=token href=#tokendef-delim>〈delim〉</a> containing "-", "+", ".", "&lt;", "&gt;", or "!" following or followed by any token except <a data-link-type=token href=#tokendef-whitespace>〈whitespace〉</a>;
  2.2538 +			a <a class=css-code data-link-type=token href=#tokendef-delim>〈delim〉</a> containing "-", "+", ".", "&lt;", "&gt;", or "!" following or followed by any token except <a class=css-code data-link-type=token href=#tokendef-whitespace>〈whitespace〉</a>;
  2.2539  
  2.2540  		<li>
  2.2541 -			a <a data-link-type=token href=#tokendef-delim>〈delim〉</a> containing "/" following or followed by a <a data-link-type=token href=#tokendef-delim>〈delim〉</a> containing "*".
  2.2542 +			a <a class=css-code data-link-type=token href=#tokendef-delim>〈delim〉</a> containing "/" following or followed by a <a class=css-code data-link-type=token href=#tokendef-delim>〈delim〉</a> containing "*".
  2.2543  	</ul>
  2.2544  
  2.2545  <p class=note>	Note: The preceding pairs of tokens can only be adjacent due to comments in the original text,
  2.2546  	so the above rule reinserts the minimum number of comments into the serialized text to ensure an accurate round-trip.
  2.2547 -	(Roughly.  The <a data-link-type=token href=#tokendef-delim>〈delim〉</a> rules are slightly too powerful, for simplicity.)
  2.2548 -
  2.2549 -<p class=note>	Note: No comment is inserted between consecutive <a data-link-type=token href=#tokendef-whitespace>〈whitespace〉</a>.
  2.2550 +	(Roughly.  The <a class=css-code data-link-type=token href=#tokendef-delim>〈delim〉</a> rules are slightly too powerful, for simplicity.)
  2.2551 +
  2.2552 +<p class=note>	Note: No comment is inserted between consecutive <a class=css-code data-link-type=token href=#tokendef-whitespace>〈whitespace〉</a>.
  2.2553  	As a consequence such token sequences will not "round-trip" exactly.
  2.2554  	This shouldn’t be an issue as CSS grammars always interpret
  2.2555  	any amount of whitespace as identical to a single space.
  2.2556  
  2.2557 -<h3 data-level=9.1 id=serializing-anb><span class=secno>9.1 </span><span class=content>
  2.2558 -Serializing <var>&lt;an+b&gt;</var></span><a class=section-link href=#serializing-anb>§</a></h3>
  2.2559 +<h3 class="heading settled heading" data-level=9.1 id=serializing-anb><span class=secno>9.1 </span><span class=content>
  2.2560 +Serializing <var>&lt;an+b&gt;</var></span><a class=self-link href=#serializing-anb></a></h3>
  2.2561  
  2.2562  <p>	To serialize an <var>&lt;an+b&gt;</var> value,
  2.2563  	let <var>s</var> initially be the empty string:
  2.2564 @@ -2913,16 +2862,16 @@
  2.2565  
  2.2566  <p>		Return <var>s</var>.
  2.2567  
  2.2568 -<h2 data-level=10 id=changes><span class=secno>10 </span><span class=content>Changes from CSS 2.1 and Selectors Level 3</span><a class=section-link href=#changes>§</a></h2>
  2.2569 +<h2 class="heading settled heading" data-level=10 id=changes><span class=secno>10 </span><span class=content>Changes from CSS 2.1 and Selectors Level 3</span><a class=self-link href=#changes></a></h2>
  2.2570  
  2.2571  <p>	<em>This section is non-normative.</em>
  2.2572  
  2.2573  <p class=note>	Note: The point of this spec is to match reality;
  2.2574 -	changes from CSS2.1 are nearly always because CSS 2.1 specified something that doesn't match actual browser behavior,
  2.2575 +	changes from CSS2.1 are nearly always because CSS 2.1 specified something that doesn’t match actual browser behavior,
  2.2576  	or left something unspecified.
  2.2577 -	If some detail doesn't match browsers,
  2.2578 +	If some detail doesn’t match browsers,
  2.2579  	please let me know
  2.2580 -	as it's almost certainly unintentional.
  2.2581 +	as it’s almost certainly unintentional.
  2.2582  
  2.2583  <p>	Changes in decoding from a byte stream:
  2.2584  
  2.2585 @@ -2958,7 +2907,7 @@
  2.2586  			The definition of <a href=#non-ascii-code-point>non-ASCII code point</a> was changed
  2.2587  			to be consistent with every definition of ASCII.
  2.2588  			This affects <a href=#code-point>code points</a> U+0080 to U+009F,
  2.2589 -			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.2590 +			which are now <a href=#name-code-point>name code points</a> rather than <a class=css-code data-link-type=token href=#tokendef-delim>〈delim〉</a>s,
  2.2591  			like the rest of <a href=#non-ascii-code-point>non-ASCII code points</a>.
  2.2592  
  2.2593  		<li>
  2.2594 @@ -2966,38 +2915,33 @@
  2.2595  			BAD_COMMENT is now considered the same as normal token (not an error.)
  2.2596  			<a href=#serialization>Serialization</a> is responsible
  2.2597  			for inserting comments as necessary between tokens that need to be separated,
  2.2598 -			e.g. two consecutive <a data-link-type=token href=#tokendef-ident>〈ident〉</a>s.
  2.2599 -
  2.2600 -		<li>
  2.2601 -			The <a data-link-type=token href=#tokendef-unicode-range>〈unicode-range〉</a> token is now more restrictive.
  2.2602 -			<span class=issue>Should it? I can’t find a case where this change is even testable.</span>
  2.2603 -			<span class=issue>Align the definition with the Fonts spec.</span>
  2.2604 +			e.g. two consecutive <a class=css-code data-link-type=token href=#tokendef-ident>〈ident〉</a>s.
  2.2605  
  2.2606  		<li>
  2.2607  			Apply the <a href=http://www.w3.org/TR/CSS21/syndata.html#unexpected-eof>EOF error handling rule</a> in the tokenizer
  2.2608 -			and emit normal <a data-link-type=token href=#tokendef-string>〈string〉</a> and <a data-link-type=token href=#tokendef-url>〈url〉</a> tokens rather than BAD_STRING or BAD_URI
  2.2609 +			and emit normal <a class=css-code data-link-type=token href=#tokendef-string>〈string〉</a> and <a class=css-code data-link-type=token href=#tokendef-url>〈url〉</a> tokens rather than BAD_STRING or BAD_URI
  2.2610  			on EOF.
  2.2611  
  2.2612  		<li>
  2.2613 -			The <a data-link-type=token href=#tokendef-prefix-match>〈prefix-match〉</a>, <a data-link-type=token href=#tokendef-suffix-match>〈suffix-match〉</a>, and <a data-link-type=token href=#tokendef-substring-match>〈substring-match〉</a> tokens have been imported from Selectors 3.
  2.2614 +			The <a class=css-code data-link-type=token href=#tokendef-prefix-match>〈prefix-match〉</a>, <a class=css-code data-link-type=token href=#tokendef-suffix-match>〈suffix-match〉</a>, and <a class=css-code data-link-type=token href=#tokendef-substring-match>〈substring-match〉</a> tokens have been imported from Selectors 3.
  2.2615  
  2.2616  		<li>
  2.2617 -			The BAD_URI token (now <a data-link-type=token href=#tokendef-bad-url>〈bad-url〉</a>) is "self-contained".
  2.2618 -			In other words, once the tokenizer realizes it's in 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.2619 +			The BAD_URI token (now <a class=css-code data-link-type=token href=#tokendef-bad-url>〈bad-url〉</a>) is "self-contained".
  2.2620 +			In other words, once the tokenizer realizes it’s in a <a class=css-code data-link-type=token href=#tokendef-bad-url>〈bad-url〉</a> rather than a <a class=css-code data-link-type=token href=#tokendef-url>〈url〉</a>,
  2.2621  			it just seeks forward to look for the closing ),
  2.2622  			ignoring everything else.
  2.2623 -			This behavior is simpler than treating it like a <a data-link-type=token href=#tokendef-function>〈function〉</a>
  2.2624 +			This behavior is simpler than treating it like a <a class=css-code data-link-type=token href=#tokendef-function>〈function〉</a>
  2.2625  			and paying attention to opened blocks and such.
  2.2626  			Only WebKit exhibits this behavior,
  2.2627 -			but it doesn't appear that we've gotten any compat bugs from it.
  2.2628 +			but it doesn’t appear that we’ve gotten any compat bugs from it.
  2.2629  
  2.2630  		<li>
  2.2631 -			The <a data-link-type=token href=#tokendef-comma>〈comma〉</a> has been added.
  2.2632 +			The <a class=css-code data-link-type=token href=#tokendef-comma>〈comma〉</a> has been added.
  2.2633  
  2.2634  		<li>
  2.2635 -			The <a data-link-type=token href=#tokendef-number>〈number〉</a>, <a data-link-type=token href=#tokendef-number>〈number〉</a>, and <a data-link-type=token href=#tokendef-dimension>〈dimension〉</a> tokens have been changed
  2.2636 +			The <a class=css-code data-link-type=token href=#tokendef-number>〈number〉</a>, <a class=css-code data-link-type=token href=#tokendef-number>〈number〉</a>, and <a class=css-code data-link-type=token href=#tokendef-dimension>〈dimension〉</a> tokens have been changed
  2.2637  			to include the preceding +/- sign as part of their value
  2.2638 -			(rather than as a separate <a data-link-type=token href=#tokendef-delim>〈delim〉</a> that needs to be manually handled every time the token is mentioned in other specs).
  2.2639 +			(rather than as a separate <a class=css-code data-link-type=token href=#tokendef-delim>〈delim〉</a> that needs to be manually handled every time the token is mentioned in other specs).
  2.2640  			The only consequence of this is that comments can no longer be inserted between the sign and the number.
  2.2641  
  2.2642  		<li>
  2.2643 @@ -3005,7 +2949,7 @@
  2.2644  			per WG resolution.
  2.2645  
  2.2646  		<li>
  2.2647 -			<a data-link-type=token href=#tokendef-column>〈column〉</a> has been added,
  2.2648 +			<a class=css-code data-link-type=token href=#tokendef-column>〈column〉</a> has been added,
  2.2649  			to keep Selectors parsing in single-token lookahead.
  2.2650  
  2.2651  		<li>
  2.2652 @@ -3023,26 +2967,26 @@
  2.2653  			This makes a difference in error handling
  2.2654  			even if no such at-rules are defined yet:
  2.2655  			an at-rule, valid or not, ends and lets the next declaration being
  2.2656 -			at a {} block without a <a data-link-type=token href=#tokendef-semicolon>〈semicolon〉</a>.
  2.2657 +			at a {} block without a <a class=css-code data-link-type=token href=#tokendef-semicolon>〈semicolon〉</a>.
  2.2658  
  2.2659  		<li>
  2.2660  			The handling of some miscellanous "special" tokens
  2.2661 -			(like an unmatched <a data-link-type=token href=#tokendef-close-curly>〈}〉</a>)
  2.2662 +			(like an unmatched <a class=css-code data-link-type=token href=#tokendef-close-curly>〈}〉</a>)
  2.2663  			showing up in various places in the grammar
  2.2664  			has been specified with some reasonable behavior shown by at least one browser.
  2.2665 -			Previously, stylesheets with those tokens in those places just didn't match the stylesheet grammar at all,
  2.2666 +			Previously, stylesheets with those tokens in those places just didn’t match the stylesheet grammar at all,
  2.2667  			so their handling was totally undefined.
  2.2668  			Specifically:
  2.2669  
  2.2670  <p>			<ul>
  2.2671  				<li>
  2.2672 -					[] blocks, () blocks and functions can now contain {} blocks, <a data-link-type=token href=#tokendef-at-keyword>〈at-keyword〉</a>s or <a data-link-type=token href=#tokendef-semicolon>〈semicolon〉</a>s
  2.2673 +					[] blocks, () blocks and functions can now contain {} blocks, <a class=css-code data-link-type=token href=#tokendef-at-keyword>〈at-keyword〉</a>s or <a class=css-code data-link-type=token href=#tokendef-semicolon>〈semicolon〉</a>s
  2.2674  
  2.2675  				<li>
  2.2676  					Qualified rule preludes can now contain semicolons
  2.2677  
  2.2678  				<li>
  2.2679 -					Qualified rule and at-rule preludes can now contain <a data-link-type=token href=#tokendef-at-keyword>〈at-keyword〉</a>s
  2.2680 +					Qualified rule and at-rule preludes can now contain <a class=css-code data-link-type=token href=#tokendef-at-keyword>〈at-keyword〉</a>s
  2.2681  			</ul>
  2.2682  
  2.2683  	</ul>
  2.2684 @@ -3058,24 +3002,24 @@
  2.2685  <p>			<ul>
  2.2686  				<li>
  2.2687  					In some cases, minus signs or digits can be escaped
  2.2688 -					(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.2689 +					(when they appear as part of the unit of a <a class=css-code data-link-type=token href=#tokendef-dimension>〈dimension〉</a> or <a class=css-code data-link-type=token href=#tokendef-ident>〈ident〉</a>).
  2.2690  			</ul>
  2.2691  	</ul>
  2.2692  
  2.2693 -<h2 class=no-num id=acknowledgments><span class=content>
  2.2694 -Acknowledgments</span><a class=section-link href=#acknowledgments>§</a></h2>
  2.2695 +<h2 class="no-num heading settled heading" id=acknowledgments><span class=content>
  2.2696 +Acknowledgments</span><a class=self-link href=#acknowledgments></a></h2>
  2.2697  
  2.2698  	<p>
  2.2699  		Thanks for feedback and contributions from
  2.2700  		David Baron,
  2.2701  		呂康豪 (Kang-Hao Lu),
  2.2702 -		and Marc O'Morain.
  2.2703 -
  2.2704 -<h2 class="no-ref no-num" id=conformance><span class=content>
  2.2705 -Conformance</span><a class=section-link href=#conformance>§</a></h2>
  2.2706 -
  2.2707 -<h3 class=no-ref id=conventions><span class=content>
  2.2708 -Document conventions</span><a class=section-link href=#conventions>§</a></h3>
  2.2709 +		and Marc O’Morain.
  2.2710 +
  2.2711 +<h2 class="no-ref no-num heading settled heading" id=conformance><span class=content>
  2.2712 +Conformance</span><a class=self-link href=#conformance></a></h2>
  2.2713 +
  2.2714 +<h3 class="no-ref heading settled heading" id=conventions><span class=content>
  2.2715 +Document conventions</span><a class=self-link href=#conventions></a></h3>
  2.2716  
  2.2717      <p>Conformance requirements are expressed with a combination of
  2.2718      descriptive assertions and RFC 2119 terminology. The key words "MUST",
  2.2719 @@ -3101,8 +3045,8 @@
  2.2720  
  2.2721      <p class=note>Note, this is an informative note.</p>
  2.2722  
  2.2723 -<h3 class=no-ref id=conformance-classes><span class=content>
  2.2724 -Conformance classes</span><a class=section-link href=#conformance-classes>§</a></h3>
  2.2725 +<h3 class="no-ref heading settled heading" id=conformance-classes><span class=content>
  2.2726 +Conformance classes</span><a class=self-link href=#conformance-classes></a></h3>
  2.2727  
  2.2728      <p>Conformance to this specification
  2.2729      is defined for three conformance classes:
  2.2730 @@ -3139,8 +3083,8 @@
  2.2731      this module, and meet all other conformance requirements of style sheets
  2.2732      as described in this module.
  2.2733  
  2.2734 -<h3 class=no-ref id=partial><span class=content>
  2.2735 -Partial implementations</span><a class=section-link href=#partial>§</a></h3>
  2.2736 +<h3 class="no-ref heading settled heading" id=partial><span class=content>
  2.2737 +Partial implementations</span><a class=self-link href=#partial></a></h3>
  2.2738  
  2.2739      <p>So that authors can exploit the forward-compatible parsing rules to
  2.2740      assign fallback values, CSS renderers <strong>must</strong>
  2.2741 @@ -3153,8 +3097,8 @@
  2.2742      (as unsupported values must be), CSS requires that the entire declaration
  2.2743      be ignored.</p>
  2.2744  
  2.2745 -<h3 class=no-ref id=experimental><span class=content>
  2.2746 -Experimental implementations</span><a class=section-link href=#experimental>§</a></h3>
  2.2747 +<h3 class="no-ref heading settled heading" id=experimental><span class=content>
  2.2748 +Experimental implementations</span><a class=self-link href=#experimental></a></h3>
  2.2749  
  2.2750      <p>To avoid clashes with future CSS features, the CSS2.1 specification
  2.2751      reserves a <a href=http://www.w3.org/TR/CSS21/syndata.html#vendor-keywords>prefixed
  2.2752 @@ -3168,8 +3112,8 @@
  2.2753      in the draft.
  2.2754      </p>
  2.2755  
  2.2756 -<h3 class=no-ref id=testing><span class=content>
  2.2757 -Non-experimental implementations</span><a class=section-link href=#testing>§</a></h3>
  2.2758 +<h3 class="no-ref heading settled heading" id=testing><span class=content>
  2.2759 +Non-experimental implementations</span><a class=self-link href=#testing></a></h3>
  2.2760  
  2.2761      <p>Once a specification reaches the Candidate Recommendation stage,
  2.2762      non-experimental implementations are possible, and implementors should
  2.2763 @@ -3185,25 +3129,25 @@
  2.2764      Working Group.
  2.2765  
  2.2766      <p>Further information on submitting testcases and implementation reports
  2.2767 -    can be found from on the CSS Working Group's website at
  2.2768 +    can be found from on the CSS Working Group’s website at
  2.2769      <a href=http://www.w3.org/Style/CSS/Test/>http://www.w3.org/Style/CSS/Test/</a>.
  2.2770      Questions should be directed to the
  2.2771      <a href=http://lists.w3.org/Archives/Public/public-css-testsuite>public-css-testsuite@w3.org</a>
  2.2772      mailing list.
  2.2773  
  2.2774 -<h2 class="no-num no-ref" id=references><span class=content>
  2.2775 -References</span><a class=section-link href=#references>§</a></h2>
  2.2776 -
  2.2777 -<h3 class="no-num no-ref" id=normative><span class=content>
  2.2778 -Normative References</span><a class=section-link href=#normative>§</a></h3>
  2.2779 -<div data-fill-with=normative-references><dl><dt id=css21 title=CSS21>[CSS21]<dd>Bert Bos; et al. <a href=http://www.w3.org/TR/2011/REC-CSS2-20110607/>Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification</a>. 7 June 2011. W3C Recommendation. URL: <a href=http://www.w3.org/TR/2011/REC-CSS2-20110607/>http://www.w3.org/TR/2011/REC-CSS2-20110607/</a><dt id=css3cascade title=CSS3CASCADE>[CSS3CASCADE]<dd>Håkon Wium Lie; Elika J. Etemad; Tab Atkins Jr.. <a href=http://www.w3.org/TR/2013/WD-css3-cascade-20130103/>CSS Cascading and Inheritance Level 3</a>. 3 January 2013. W3C Working Draft. (Work in progress.) URL: <a href=http://www.w3.org/TR/2013/WD-css3-cascade-20130103/>http://www.w3.org/TR/2013/WD-css3-cascade-20130103/</a><dt id=rfc2119 title=RFC2119>[RFC2119]<dd>S. Bradner. <a href=http://www.ietf.org/rfc/rfc2119.txt>Key words for use in RFCs to Indicate Requirement Levels</a>. URL: <a href=http://www.ietf.org/rfc/rfc2119.txt>http://www.ietf.org/rfc/rfc2119.txt</a><dt id=select title=SELECT>[SELECT]<dd>Tantek Çelik; et al. <a href=http://www.w3.org/TR/2011/REC-css3-selectors-20110929/>Selectors Level 3</a>. 29 September 2011. W3C Recommendation. URL: <a href=http://www.w3.org/TR/2011/REC-css3-selectors-20110929/>http://www.w3.org/TR/2011/REC-css3-selectors-20110929/</a></dl></div>
  2.2780 -
  2.2781 -<h3 class="no-num no-ref" id=informative><span class=content>
  2.2782 -Informative References</span><a class=section-link href=#informative>§</a></h3>
  2.2783 -<div data-fill-with=informative-references><dl><dt id=css-variables title=CSS-VARIABLES>[CSS-VARIABLES]<dd>Luke Macpherson; Tab Atkins Jr.; Daniel Glazman. <a href=http://www.w3.org/TR/2012/WD-css-variables-20120410/>CSS Variables Module Level 1</a>. 10 April 2012. W3C Working Draft. (Work in progress.) URL: <a href=http://www.w3.org/TR/2012/WD-css-variables-20120410/>http://www.w3.org/TR/2012/WD-css-variables-20120410/</a><dt id=css3-animations title=CSS3-ANIMATIONS>[CSS3-ANIMATIONS]<dd>Dean Jackson; et al. <a href=http://www.w3.org/TR/2012/WD-css3-animations-20120403/>CSS Animations</a>. 3 April 2012. W3C Working Draft. (Work in progress.) URL: <a href=http://www.w3.org/TR/2012/WD-css3-animations-20120403/>http://www.w3.org/TR/2012/WD-css3-animations-20120403/</a><dt id=css3-conditional title=CSS3-CONDITIONAL>[CSS3-CONDITIONAL]<dd>L. David Baron. <a href=http://www.w3.org/TR/2012/WD-css3-conditional-20121213/>CSS Conditional Rules Module Level 3</a>. 13 December 2012. W3C Working Draft. (Work in progress.) URL: <a href=http://www.w3.org/TR/2012/WD-css3-conditional-20121213/>http://www.w3.org/TR/2012/WD-css3-conditional-20121213/</a><dt id=mediaq title=MEDIAQ>[MEDIAQ]<dd>Florian Rivoal. <a href=http://www.w3.org/TR/2012/REC-css3-mediaqueries-20120619/>Media Queries</a>. 19 June 2012. W3C Recommendation. URL: <a href=http://www.w3.org/TR/2012/REC-css3-mediaqueries-20120619/>http://www.w3.org/TR/2012/REC-css3-mediaqueries-20120619/</a></dl></div>
  2.2784 -
  2.2785 -<h2 class="no-num no-ref" id=index><span class=content>
  2.2786 -Index</span><a class=section-link href=#index>§</a></h2>
  2.2787 +<h2 class="no-num no-ref heading settled heading" id=references><span class=content>
  2.2788 +References</span><a class=self-link href=#references></a></h2>
  2.2789 +
  2.2790 +<h3 class="no-num no-ref heading settled heading" id=normative><span class=content>
  2.2791 +Normative References</span><a class=self-link href=#normative></a></h3>
  2.2792 +<div data-fill-with=normative-references><dl><dt id=css21 title=CSS21><a class=self-link href=#css21></a>[CSS21]<dd>Bert Bos; et al. <a href=http://www.w3.org/TR/2011/REC-CSS2-20110607/>Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification</a>. 7 June 2011. W3C Recommendation. URL: <a href=http://www.w3.org/TR/2011/REC-CSS2-20110607/>http://www.w3.org/TR/2011/REC-CSS2-20110607/</a><dt id=css3cascade title=CSS3CASCADE><a class=self-link href=#css3cascade></a>[CSS3CASCADE]<dd>Håkon Wium Lie; Elika J. Etemad; Tab Atkins Jr.. <a href=http://www.w3.org/TR/2013/WD-css3-cascade-20130103/>CSS Cascading and Inheritance Level 3</a>. 3 January 2013. W3C Working Draft. (Work in progress.) URL: <a href=http://www.w3.org/TR/2013/WD-css3-cascade-20130103/>http://www.w3.org/TR/2013/WD-css3-cascade-20130103/</a><dt id=rfc2119 title=RFC2119><a class=self-link href=#rfc2119></a>[RFC2119]<dd>S. Bradner. <a href=http://www.ietf.org/rfc/rfc2119.txt>Key words for use in RFCs to Indicate Requirement Levels</a>. URL: <a href=http://www.ietf.org/rfc/rfc2119.txt>http://www.ietf.org/rfc/rfc2119.txt</a><dt id=select title=SELECT><a class=self-link href=#select></a>[SELECT]<dd>Tantek Çelik; et al. <a href=http://www.w3.org/TR/2011/REC-css3-selectors-20110929/>Selectors Level 3</a>. 29 September 2011. W3C Recommendation. URL: <a href=http://www.w3.org/TR/2011/REC-css3-selectors-20110929/>http://www.w3.org/TR/2011/REC-css3-selectors-20110929/</a></dl></div>
  2.2793 +
  2.2794 +<h3 class="no-num no-ref heading settled heading" id=informative><span class=content>
  2.2795 +Informative References</span><a class=self-link href=#informative></a></h3>
  2.2796 +<div data-fill-with=informative-references><dl><dt id=css-variables title=CSS-VARIABLES><a class=self-link href=#css-variables></a>[CSS-VARIABLES]<dd>Luke Macpherson; Tab Atkins Jr.; Daniel Glazman. <a href=http://www.w3.org/TR/2012/WD-css-variables-20120410/>CSS Variables Module Level 1</a>. 10 April 2012. W3C Working Draft. (Work in progress.) URL: <a href=http://www.w3.org/TR/2012/WD-css-variables-20120410/>http://www.w3.org/TR/2012/WD-css-variables-20120410/</a><dt id=css3-animations title=CSS3-ANIMATIONS><a class=self-link href=#css3-animations></a>[CSS3-ANIMATIONS]<dd>Dean Jackson; et al. <a href=http://www.w3.org/TR/2012/WD-css3-animations-20120403/>CSS Animations</a>. 3 April 2012. W3C Working Draft. (Work in progress.) URL: <a href=http://www.w3.org/TR/2012/WD-css3-animations-20120403/>http://www.w3.org/TR/2012/WD-css3-animations-20120403/</a><dt id=css3-conditional title=CSS3-CONDITIONAL><a class=self-link href=#css3-conditional></a>[CSS3-CONDITIONAL]<dd>L. David Baron. <a href=http://www.w3.org/TR/2012/WD-css3-conditional-20121213/>CSS Conditional Rules Module Level 3</a>. 13 December 2012. W3C Working Draft. (Work in progress.) URL: <a href=http://www.w3.org/TR/2012/WD-css3-conditional-20121213/>http://www.w3.org/TR/2012/WD-css3-conditional-20121213/</a><dt id=css3-fonts title=CSS3-FONTS><a class=self-link href=#css3-fonts></a>[CSS3-FONTS]<dd>John Daggett. <a href=http://www.w3.org/TR/2012/WD-css3-fonts-20121211/>CSS Fonts Module Level 3</a>. 11 December 2012. W3C Working Draft. (Work in progress.) URL: <a href=http://www.w3.org/TR/2012/WD-css3-fonts-20121211/>http://www.w3.org/TR/2012/WD-css3-fonts-20121211/</a><dt id=mediaq title=MEDIAQ><a class=self-link href=#mediaq></a>[MEDIAQ]<dd>Florian Rivoal. <a href=http://www.w3.org/TR/2012/REC-css3-mediaqueries-20120619/>Media Queries</a>. 19 June 2012. W3C Recommendation. URL: <a href=http://www.w3.org/TR/2012/REC-css3-mediaqueries-20120619/>http://www.w3.org/TR/2012/REC-css3-mediaqueries-20120619/</a></dl></div>
  2.2797 +
  2.2798 +<h2 class="no-num no-ref heading settled heading" id=index><span class=content>
  2.2799 +Index</span><a class=self-link href=#index></a></h2>
  2.2800  <div data-fill-with=index><ul class=indexlist>
  2.2801  <li>〈[〉, <a href=#tokendef-open-square title="section 4">4</a>
  2.2802  <li>〈]〉, <a href=#tokendef-close-square title="section 4">4</a>
  2.2803 @@ -3266,7 +3210,6 @@
  2.2804  <li>〈dimension〉, <a href=#tokendef-dimension title="section 4">4</a>
  2.2805  <li>encoding, <a href=#encoding title="section 8.2">8.2</a>
  2.2806  <li>ending token, <a href=#ending-token title="section 5.4.7">5.4.7</a>
  2.2807 -<li>end of the range, <a href=#end-of-the-range title="section 4.3.15">4.3.15</a>
  2.2808  <li>〈EOF〉, <a href=#tokendef-eof title="section 5.2">5.2</a>
  2.2809  <li>EOF code point, <a href=#eof-code-point title="section 4.2">4.2</a>
  2.2810  <li>escaping, <a href=#escaping0 title="section 2.1">2.1</a>
  2.2811 @@ -3309,11 +3252,9 @@
  2.2812  <li>reconsume the current input token, <a href=#reconsume-the-current-input-token title="section 5.2">5.2</a>
  2.2813  <li>&lt;rule-list&gt;, <a href=#typedef-rule-list title="section 7.1">7.1</a>
  2.2814  <li>〈semicolon〉, <a href=#tokendef-semicolon title="section 4">4</a>
  2.2815 -<li>Set the unicode-range’s range, <a href=#set-the-unicode-ranges-range0 title="section 4.3.15">4.3.15</a>
  2.2816  <li>&lt;signed-integer&gt;, <a href=#typedef-signed-integer title="section 6.2">6.2</a>
  2.2817  <li>&lt;signless-integer&gt;, <a href=#typedef-signless-integer title="section 6.2">6.2</a>
  2.2818  <li>simple block, <a href=#simple-block title="section 5">5</a>
  2.2819 -<li>start of the range, <a href=#start-of-the-range title="section 4.3.15">4.3.15</a>
  2.2820  <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.2821  <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.2822  <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.2823 @@ -3327,6 +3268,8 @@
  2.2824  <li>surrogate code point, <a href=#surrogate-code-point title="section 4.2">4.2</a>
  2.2825  <li>top-level flag, <a href=#top-level-flag title="section 5.4.1">5.4.1</a>
  2.2826  <li>〈unicode-range〉, <a href=#tokendef-unicode-range title="section 4">4</a>
  2.2827 +<li>unicode-range-end, <a href=#unicode-range-end title="section 4">4</a>
  2.2828 +<li>unicode-range-start, <a href=#unicode-range-start title="section 4">4</a>
  2.2829  <li>uppercase letter, <a href=#uppercase-letter title="section 4.2">4.2</a>
  2.2830  <li>〈url〉, <a href=#tokendef-url title="section 4">4</a>
  2.2831  <li>〈whitespace〉, <a href=#tokendef-whitespace title="section 4">4</a>
  2.2832 @@ -3335,8 +3278,60 @@
  2.2833  <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.2834  </ul></div>
  2.2835  
  2.2836 -<h2 class="no-num no-ref" id=property-index><span class=content>
  2.2837 -Property index</span><a class=section-link href=#property-index>§</a></h2>
  2.2838 +<h2 class="no-num no-ref heading settled heading" id=property-index><span class=content>
  2.2839 +Property index</span><a class=self-link href=#property-index></a></h2>
  2.2840  <div data-fill-with=property-index><p>No properties defined.</div>
  2.2841  
  2.2842  
  2.2843 +<h2 class="no-num heading settled" id=issues-index><span class=content>Issues Index</span><a class=self-link href=#issues-index></a></h2><div style="counter-reset: issue"><p class=issue>
  2.2844 +		Anne says that steps 3/4 should be an input to this algorithm from the specs that define importing stylesheet,
  2.2845 +		to make the algorithm as a whole cleaner.
  2.2846 +		Perhaps abstract it into the concept of an "environment charset" or something?
  2.2847 +
  2.2848 +	<a href=#issue-b26a56fd> ↵ </a><p class=issue>
  2.2849 +		Should we only take the charset from the referring document if it’s same-origin?
  2.2850 +
  2.2851 +
  2.2852 +<a href=#issue-ab273e4b> ↵ </a><p class=issue>
  2.2853 +				Should we go ahead and generalize the important flag to be a list of bang values?
  2.2854 +				Suggested by Zack Weinburg.
  2.2855 +
  2.2856 +<a href=#issue-a4ffb0dd> ↵ </a><div class=issue>
  2.2857 +		The following notes should probably be translated into normative text in the relevant specs,
  2.2858 +		hooking this spec’s terms:
  2.2859 +
  2.2860 +<p>		<ul>
  2.2861 +			<li>
  2.2862 +				"<a href=#parse-a-stylesheet0>Parse a stylesheet</a>" is intended to be the normal parser entry point,
  2.2863 +				for parsing stylesheets.
  2.2864 +
  2.2865 +			<li>
  2.2866 +				"<a href=#parse-a-list-of-rules0>Parse a list of rules</a>" is intended for the content of at-rules such as <span class=css data-link-type=maybe>@media</span>.
  2.2867 +				It differs from "<a href=#parse-a-stylesheet0>Parse a stylesheet</a>" in the handling of <a class=css-code data-link-type=token href=#tokendef-cdo>〈CDO〉</a> and <a class=css-code data-link-type=token href=#tokendef-cdc>〈CDC〉</a>.
  2.2868 +
  2.2869 +			<li>
  2.2870 +				"<a href=#parse-a-rule0>Parse a rule</a>" is intended for use by the <code>CSSStyleSheet#insertRule</code> method,
  2.2871 +				and similar functions which might exist,
  2.2872 +				which parse text into a single rule.
  2.2873 +
  2.2874 +			<li>
  2.2875 +				"<a href=#parse-a-declaration0>Parse a declaration</a>" is used in <span class=css data-link-type=maybe>@supports</span> conditions. <a data-biblio-type=informative data-link-type=biblio href=#css3-conditional title=CSS3-CONDITIONAL>[CSS3-CONDITIONAL]</a>
  2.2876 +
  2.2877 +			<li>
  2.2878 +				"<a href=#parse-a-list-of-declarations0>Parse a list of declarations</a>" is for the contents of a <code>style</code> attribute,
  2.2879 +				which parses text into the contents of a single style rule.
  2.2880 +
  2.2881 +			<li>
  2.2882 +				"<a href=#parse-a-component-value0>Parse a component value</a>" is for things that need to consume a single value,
  2.2883 +				like the parsing rules for <a class=css data-link-type=maybe href=http://dev.w3.org/csswg/css-values-3/#attr>attr()</a>.
  2.2884 +
  2.2885 +			<li>
  2.2886 +				"<a href=#parse-a-list-of-component-values0>Parse a list of component values</a>" is for the contents of presentational attributes,
  2.2887 +				which parse text into a single declaration’s value,
  2.2888 +				or for parsing a stand-alone selector <a data-biblio-type=informative data-link-type=biblio href=#select title=SELECT>[SELECT]</a> or list of Media Queries <a data-biblio-type=informative data-link-type=biblio href=#mediaq title=MEDIAQ>[MEDIAQ]</a>,
  2.2889 +				as in <a href=http://www.w3.org/TR/selectors-api/>Selectors API</a>
  2.2890 +				or the <code>media</code> HTML attribute.
  2.2891 +		</ul>
  2.2892 +	<a href=#issue-c8316c9e> ↵ </a></div>
  2.2893 +
  2.2894 +</div>
  2.2895 \ No newline at end of file
     3.1 --- a/css-syntax/Overview.src.html	Fri Aug 30 16:02:46 2013 -0700
     3.2 +++ b/css-syntax/Overview.src.html	Sun Sep 01 16:18:24 2013 +0100
     3.3 @@ -409,12 +409,19 @@
     3.4  			<<<dimension>>> tokens additionally have a unit composed of one or more <a>code points</a>.
     3.5  
     3.6  		<li>
     3.7 -			<<<unicode-range>>> tokens have a range of <a>code points</a>.
     3.8 +			<<<unicode-range>>> tokens have
     3.9 +			a <dfn id=unicode-range-start title=unicode-range-start>start</dfn> made of one to six <a>hex digits</a> or U+003F QUESTION MARK (?) code points,
    3.10 +			and and optional <dfn id=unicode-range-end title=unicode-range-end>end</dfn> made of one to six <a>hex digits</a>.
    3.11  	</ul>
    3.12  
    3.13  	Note: The type flag of hash tokens is used in the Selectors syntax [[SELECT]].
    3.14  	Only hash tokens with the "id" type are valid <a href="http://www.w3.org/TR/selectors/#id-selectors">ID selectors</a>.
    3.15  
    3.16 +	Note: The syntax of <<<unicode-range>>> tokens defined in this specification
    3.17 +	is a super-set of the <<urange>> value accepted by ''@font-face''’s 'unicode-range' descriptor. [[CSS3-FONTS]]
    3.18 +	For example, ''U+4??6'' and ''U+1??-300'' are valid <<<unicode-range>>> tokens
    3.19 +	but not valid <<urange>> values.
    3.20 +
    3.21  	Note: As a technical note,
    3.22  	the tokenizer defined here requires only three <a>code points</a> of look-ahead.
    3.23  	The tokens it produces are designed to allow Selectors to be parsed with one token of look-ahead,
    3.24 @@ -444,7 +451,6 @@
    3.25  		The generated SVG is copied here so that JavaScript is not required
    3.26  		to view the spec.
    3.27  	-->
    3.28 -
    3.29  	<dl>
    3.30  		<dt id="comment-diagram">comment</dt>
    3.31  		<dd><svg class="railroad-diagram" width="497" height="81"><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="M86 41h0"></path><rect x="50" y="30" width="36" height="22" rx="10" ry="10"></rect><text x="68" y="45">/*</text></g><path d="M86 41h10"></path><g><path d="M96 41h0"></path><path d="M400 41h0"></path><path d="M96 41a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path><g><path d="M116 21h264"></path></g><path d="M380 21a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><path d="M96 41h20"></path><g><path d="M116 41h0"></path><path d="M380 41h0"></path><path d="M116 41h10"></path><g><path d="M126 41h0"></path><path d="M370 41h0"></path><rect x="126" y="30" width="244" height="22"></rect><text x="248" y="45">anything but * followed by /</text></g><path d="M370 41h10"></path><path d="M126 41a10 10 0 0 0 -10 10v0a10 10 0 0 0 10 10"></path><g><path d="M126 61h244"></path></g><path d="M370 61a10 10 0 0 0 10 -10v0a10 10 0 0 0 -10 -10"></path></g><path d="M380 41h20"></path></g><path d="M400 41h10"></path><g><path d="M410 41h0"></path><path d="M446 41h0"></path><rect x="410" y="30" width="36" height="22" rx="10" ry="10"></rect><text x="428" y="45">*/</text></g><path d="M446 41h10"></path><path d="M 456 41 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
    3.32 @@ -455,6 +461,9 @@
    3.33  		<dt id="whitespace-diagram">whitespace</dt>
    3.34  		<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.35  
    3.36 +		<dt id="hex-digit-diagram">hex digit</dt>
    3.37 +		<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="M182 31h0"></path><rect x="50" y="20" width="132" height="22"></rect><text x="116" y="35">0-9 a-f or A-F</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.38 +
    3.39  		<dt id="escape-diagram">escape</dt>
    3.40  		<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.41  
    3.42 @@ -492,7 +501,7 @@
    3.43  		<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.44  
    3.45  		<dt id="〈unicode-range〉-diagram">〈unicode-range〉</dt>
    3.46 -		<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.47 +		<dd><svg class="railroad-diagram" width="589" height="132"><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 41h0"></path><path d="M88 41h0"></path><rect x="60" y="30" width="28" height="22" rx="10" ry="10"></rect><text x="74" y="45">U</text></g><path d="M88 41h20"></path><path d="M40 41a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10"></path><g><path d="M60 71h0"></path><path d="M88 71h0"></path><rect x="60" y="60" width="28" height="22" rx="10" ry="10"></rect><text x="74" y="75">u</text></g><path d="M88 71a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10"></path></g><path d="M108 41h10"></path><g><path d="M118 41h0"></path><path d="M146 41h0"></path><rect x="118" y="30" width="28" height="22" rx="10" ry="10"></rect><text x="132" y="45">+</text></g><path d="M146 41h10"></path><g><path d="M156 41h0"></path><path d="M328 41h0"></path><path d="M156 41h10"></path><g><path d="M166 41h0"></path><path d="M318 41h0"></path><path d="M166 41h10"></path><g><path d="M176 41h0"></path><path d="M308 41h0"></path><path d="M176 41h20"></path><g><path d="M196 41h0"></path><path d="M288 41h0"></path><rect x="196" y="30" width="92" height="22"></rect><text x="242" y="45">hex digit</text></g><path d="M288 41h20"></path><path d="M176 41a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10"></path><g><path d="M196 71h32"></path><path d="M256 71h32"></path><rect x="228" y="60" width="28" height="22" rx="10" ry="10"></rect><text x="242" y="75">?</text></g><path d="M288 71a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10"></path></g><path d="M308 41h10"></path><path d="M176 41a10 10 0 0 0 -10 10v40a10 10 0 0 0 10 10"></path><g><path d="M176 101h29.5"></path><path d="M278.5 101h29.5"></path><text x="242" y="106" class="comment">1-6 times</text></g><path d="M308 101a10 10 0 0 0 10 -10v-40a10 10 0 0 0 -10 -10"></path></g><path d="M318 41h10"></path></g><g><path d="M328 41h0"></path><path d="M548 41h0"></path><path d="M328 41a10 10 0 0 0 10 -10v0a10 10 0 0 1 10 -10"></path><g><path d="M348 21h180"></path></g><path d="M528 21a10 10 0 0 1 10 10v0a10 10 0 0 0 10 10"></path><path d="M328 41h20"></path><g><path d="M348 41h0"></path><path d="M528 41h0"></path><path d="M348 41h10"></path><g><path d="M358 41h0"></path><path d="M386 41h0"></path><rect x="358" y="30" width="28" height="22" rx="10" ry="10"></rect><text x="372" y="45">-</text></g><path d="M386 41h10"></path><path d="M396 41h10"></path><g><path d="M406 41h0"></path><path d="M518 41h0"></path><path d="M406 41h10"></path><g><path d="M416 41h0"></path><path d="M508 41h0"></path><rect x="416" y="30" width="92" height="22"></rect><text x="462" y="45">hex digit</text></g><path d="M508 41h10"></path><path d="M416 41a10 10 0 0 0 -10 10v10a10 10 0 0 0 10 10"></path><g><path d="M416 71h9.5"></path><path d="M498.5 71h9.5"></path><text x="462" y="76" class="comment">1-6 times</text></g><path d="M508 71a10 10 0 0 0 10 -10v-10a10 10 0 0 0 -10 -10"></path></g><path d="M518 41h10"></path></g><path d="M528 41h20"></path></g><path d="M 548 41 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg></dd>
    3.48  
    3.49  		<dt id="〈include-match〉-diagram">〈include-match〉</dt>
    3.50  		<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.51 @@ -520,8 +529,6 @@
    3.52  
    3.53  	</dl>
    3.54  
    3.55 -	</dl>
    3.56 -
    3.57  <h3>
    3.58  Definitions</h3>
    3.59  
    3.60 @@ -1128,36 +1135,13 @@
    3.61  
    3.62  	<ol>
    3.63  		<li>
    3.64 +			Consume as many <a>hex digits</a> or U+003F QUESTION MARK (?) as possible,
    3.65 +			but no more than 6.
    3.66 +
    3.67 +		<li>
    3.68  			Create a new <<<unicode-range>>>
    3.69 -			with an empty range.
    3.70 -
    3.71 -		<li>
    3.72 -			Consume as many <a>hex digits</a> as possible, but no more than 6.
    3.73 -			If less than 6 <a>hex digits</a> were consumed,
    3.74 -			consume as many U+003F QUESTION MARK (?) <a>code points</a> as possible,
    3.75 -			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.76 -
    3.77 -			If any U+003F QUESTION MARK (?) <a>code points</a> were consumed,
    3.78 -			then:
    3.79 -
    3.80 -			<ol>
    3.81 -				<li>
    3.82 -					Interpret the consumed <a>code points</a> as a hexadecimal number,
    3.83 -					with the U+003F QUESTION MARK (?) <a>code points</a> replaced by U+0030 DIGIT ZERO (0) <a>code points</a>.
    3.84 -					This is the <a>start of the range</a>.
    3.85 -
    3.86 -				<li>
    3.87 -					Interpret the consumed <a>code points</a> as a hexadecimal number again,
    3.88 -					with the U+003F QUESTION MARK (?) <a>code point</a> replaced by U+0046 LATIN CAPITAL LETTER F (F) <a>code points</a>.
    3.89 -					This is the <a>end of the range</a>.
    3.90 -
    3.91 -				<li>
    3.92 -					<a>Set the unicode-range’s range</a>, then return it.
    3.93 -			</ol>
    3.94 -
    3.95 -			Otherwise,
    3.96 -			interpret the digits as a hexadecimal number.
    3.97 -			This is the <a>start of the range</a>.
    3.98 +			with its <a title=unicode-range-start>start</a> set to the result of the previous step,
    3.99 +			and with its <a title=unicode-range-end>end</a> initially unset.
   3.100  
   3.101  		<li>
   3.102  			If the <a title="next input code point">next 2 input code point</a> are
   3.103 @@ -1165,18 +1149,16 @@
   3.104  			then:
   3.105  
   3.106  			<ol>
   3.107 -				<li>Consume the <a>next input code point</a>.
   3.108 +				<li>
   3.109 +					Consume the <a>next input code point</a>.
   3.110  
   3.111  				<li>
   3.112  					Consume as many <a>hex digits</a> as possible, but no more than 6.
   3.113 -					Interpret the digits as a hexadecimal number.
   3.114 -					This is the <a>end of the range</a>.
   3.115 -					<a>Set the unicode-range’s range</a>, then return it.
   3.116 +					Set the <a title=unicode-range-end>unicode-range’s end</a> to the result.
   3.117  			</ol>
   3.118  
   3.119  		<li>
   3.120 -			<a>Set the unicode-range’s range</a>
   3.121 -			and return it.
   3.122 +			Return the token.
   3.123  	</ol>
   3.124  
   3.125  
   3.126 @@ -1504,38 +1486,6 @@
   3.127  			Do nothing.
   3.128  	</dl>
   3.129  
   3.130 -<h4>
   3.131 -<dfn>Set the unicode-range’s range</dfn></h4>
   3.132 -
   3.133 -	This section describes how to set a <<<unicode-range>>>’s range
   3.134 -	so that the range it describes
   3.135 -	is within the supported range of unicode <a>code points</a>.
   3.136 -
   3.137 -	It assumes that the <dfn>start of the range</dfn> has been defined,
   3.138 -	the <dfn>end of the range</dfn> might be defined,
   3.139 -	and both are non-negative integers.
   3.140 -
   3.141 -	If the <a>start of the range</a> is greater than
   3.142 -	the <a>maximum allowed code point</a>,
   3.143 -	the <<<unicode-range>>>’s range is empty.
   3.144 -
   3.145 -	If the <a>end of the range</a> is defined,
   3.146 -	and it is less than the <a>start of the range</a>,
   3.147 -	the <<<unicode-range>>>’s range is empty.
   3.148 -
   3.149 -	If the <a>end of the range</a> is not defined,
   3.150 -	the <<<unicode-range>>>’s range
   3.151 -	is the single <a>code point</a> whose value is the <a>start of the range</a>.
   3.152 -
   3.153 -	Otherwise,
   3.154 -	if the <a>end of the range</a> is greater than
   3.155 -	the <a>maximum allowed code point</a>,
   3.156 -	change it to the <a>maximum allowed code point</a>.
   3.157 -	The <<<unicode-range>>>’s range
   3.158 -	is all <a>code points</a> between
   3.159 -	the <a>code point</a> whose value is the <a>start of the range</a>
   3.160 -	and the <a>code point</a> whose value is the <a>end of the range</a>.
   3.161 -
   3.162  
   3.163  <!--
   3.164  PPPPPPPPPPPPPPPPP        AAA               RRRRRRRRRRRRRRRRR      SSSSSSSSSSSSSSS EEEEEEEEEEEEEEEEEEEEEERRRRRRRRRRRRRRRRR
   3.165 @@ -2857,11 +2807,6 @@
   3.166  			e.g. two consecutive <<<ident>>>s.
   3.167  
   3.168  		<li>
   3.169 -			The <<<unicode-range>>> token is now more restrictive.
   3.170 -			<span class="issue">Should it? I can’t find a case where this change is even testable.</span>
   3.171 -			<span class="issue">Align the definition with the Fonts spec.</span>
   3.172 -
   3.173 -		<li>
   3.174  			Apply the <a href="http://www.w3.org/TR/CSS21/syndata.html#unexpected-eof">EOF error handling rule</a> in the tokenizer
   3.175  			and emit normal <<<string>>> and <<<url>>> tokens rather than BAD_STRING or BAD_URI
   3.176  			on EOF.

mercurial