Regenerate HTML from BNF
authorGavin Carothers <gavin@carothers.name>
Mon, 30 Apr 2012 18:24:36 -0700
changeset 269 f836b229a938
parent 268 d301f1691179
child 270 88567e6fe9cc
Regenerate HTML from BNF
rdf-turtle/turtle-bnf.html
--- a/rdf-turtle/turtle-bnf.html	Mon Apr 30 18:24:16 2012 -0700
+++ b/rdf-turtle/turtle-bnf.html	Mon Apr 30 18:24:36 2012 -0700
@@ -170,119 +170,83 @@
     <td>::=</td>
     <td>'<code class='grammar-literal'>@prefix</code>'</td>
 </tr>
-            <tr id="grammar-production-IRIREF" data-grammar-original="[70s] IRIREF ::= &quot;&lt;&quot; ( [^&lt;&gt;\&quot;{}|^`\\] - [#x00-#x20] | UCHAR )* &quot;&gt;&quot;" data-grammar-expression="(&#x27;,&#x27;, [(&quot;&#x27;&quot;, &#x27;&lt;&#x27;), (&#x27;*&#x27;, (&#x27;|&#x27;, [(&#x27;-&#x27;, [(&#x27;[&#x27;, &#x27;^&lt;&gt;\\&quot;{}|^`\\\\&#x27;), (&#x27;[&#x27;, &#x27;#x00-#x20&#x27;)]), (&#x27;id&#x27;, &#x27;UCHAR&#x27;)])), (&quot;&#x27;&quot;, &#x27;&gt;&#x27;)])" class='grammar-token'>
-    <td>[70s]<td>
+            <tr id="grammar-production-IRIREF" data-grammar-original="[132s] IRIREF ::= &#x27;&lt;&#x27; ([^&lt;&gt;&quot;{}|^`\]-[#x00-#x20])* | UCHAR &#x27;&gt;&#x27;" data-grammar-expression="(&#x27;|&#x27;, [(&#x27;,&#x27;, [(&quot;&#x27;&quot;, &#x27;&lt;&#x27;), (&#x27;*&#x27;, (&#x27;-&#x27;, [(&#x27;[&#x27;, &#x27;^&lt;&gt;&quot;{}|^`\\&#x27;), (&#x27;[&#x27;, &#x27;#x00-#x20&#x27;)]))]), (&#x27;,&#x27;, [(&#x27;id&#x27;, &#x27;UCHAR&#x27;), (&quot;&#x27;&quot;, &#x27;&gt;&#x27;)])])" class='grammar-token'>
+    <td>[132s]<td>
     <td><code>IRIREF</code><td>
     <td>::=</td>
-    <td>'<code class='grammar-literal'>&lt;</code>' (([<code class='grammar-chars'>^<>\"{}|^`\\</code>]<code class='grammar-diff'>-</code>[<code class='grammar-chars'>#x00-#x20</code>] <code>|</code> <a href='#grammar-production-UCHAR'>UCHAR</a>))<code class='grammar-star'>*</code> '<code class='grammar-literal'>&gt;</code>'</td>
+    <td>('<code class='grammar-literal'>&lt;</code>' ([<code class='grammar-chars'>^<>"{}|^`\</code>]<code class='grammar-diff'>-</code>[<code class='grammar-chars'>#x00-#x20</code>])<code class='grammar-star'>*</code> <code>|</code> <a href='#grammar-production-UCHAR'>UCHAR</a> '<code class='grammar-literal'>&gt;</code>')</td>
 </tr>
-            <tr id="grammar-production-PNAME_NS" data-grammar-original="[71s] PNAME_NS ::= (PN_PREFIX)? &quot;:&quot;" data-grammar-expression="(&#x27;,&#x27;, [(&#x27;?&#x27;, (&#x27;id&#x27;, &#x27;PN_PREFIX&#x27;)), (&quot;&#x27;&quot;, &#x27;:&#x27;)])" class='grammar-token'>
-    <td>[71s]<td>
+            <tr id="grammar-production-PNAME_NS" data-grammar-original="[133s] PNAME_NS ::= PN_PREFIX? &quot;:&quot;" data-grammar-expression="(&#x27;,&#x27;, [(&#x27;?&#x27;, (&#x27;id&#x27;, &#x27;PN_PREFIX&#x27;)), (&quot;&#x27;&quot;, &#x27;:&#x27;)])" class='grammar-token'>
+    <td>[133s]<td>
     <td><code>PNAME_NS</code><td>
     <td>::=</td>
     <td>(<a href='#grammar-production-PN_PREFIX'>PN_PREFIX</a>)? '<code class='grammar-literal'>:</code>'</td>
 </tr>
-            <tr id="grammar-production-PNAME_LN" data-grammar-original="[72s] PNAME_LN ::= PNAME_NS PN_LOCAL" data-grammar-expression="(&#x27;,&#x27;, [(&#x27;id&#x27;, &#x27;PNAME_NS&#x27;), (&#x27;id&#x27;, &#x27;PN_LOCAL&#x27;)])" class='grammar-token'>
-    <td>[72s]<td>
+            <tr id="grammar-production-PNAME_LN" data-grammar-original="[134s] PNAME_LN ::= PNAME_NS PN_LOCAL" data-grammar-expression="(&#x27;,&#x27;, [(&#x27;id&#x27;, &#x27;PNAME_NS&#x27;), (&#x27;id&#x27;, &#x27;PN_LOCAL&#x27;)])" class='grammar-token'>
+    <td>[134s]<td>
     <td><code>PNAME_LN</code><td>
     <td>::=</td>
     <td><a href='#grammar-production-PNAME_NS'>PNAME_NS</a> <a href='#grammar-production-PN_LOCAL'>PN_LOCAL</a></td>
 </tr>
-            <tr id="grammar-production-BLANK_NODE_LABEL" data-grammar-original="[73s] BLANK_NODE_LABEL ::= &quot;_:&quot; PN_LOCAL" data-grammar-expression="(&#x27;,&#x27;, [(&quot;&#x27;&quot;, &#x27;_:&#x27;), (&#x27;id&#x27;, &#x27;PN_LOCAL&#x27;)])" class='grammar-token'>
-    <td>[73s]<td>
+            <tr id="grammar-production-BLANK_NODE_LABEL" data-grammar-original="[135s] BLANK_NODE_LABEL ::= &#x27;_:&#x27; ( PN_CHARS_U | [0-9] ) ((PN_CHARS|&#x27;.&#x27;)* PN_CHARS)?" data-grammar-expression="(&#x27;,&#x27;, [(&quot;&#x27;&quot;, &#x27;_:&#x27;), (&#x27;|&#x27;, [(&#x27;id&#x27;, &#x27;PN_CHARS_U&#x27;), (&#x27;[&#x27;, &#x27;0-9&#x27;)]), (&#x27;?&#x27;, (&#x27;,&#x27;, [(&#x27;*&#x27;, (&#x27;|&#x27;, [(&#x27;id&#x27;, &#x27;PN_CHARS&#x27;), (&quot;&#x27;&quot;, &#x27;.&#x27;)])), (&#x27;id&#x27;, &#x27;PN_CHARS&#x27;)]))])" class='grammar-token'>
+    <td>[135s]<td>
     <td><code>BLANK_NODE_LABEL</code><td>
     <td>::=</td>
-    <td>'<code class='grammar-literal'>_:</code>' <a href='#grammar-production-PN_LOCAL'>PN_LOCAL</a></td>
+    <td>'<code class='grammar-literal'>_:</code>' (<a href='#grammar-production-PN_CHARS_U'>PN_CHARS_U</a> <code>|</code> [<code class='grammar-chars'>0-9</code>]) (((<a href='#grammar-production-PN_CHARS'>PN_CHARS</a> <code>|</code> '<code class='grammar-literal'>.</code>'))<code class='grammar-star'>*</code> <a href='#grammar-production-PN_CHARS'>PN_CHARS</a>)?</td>
 </tr>
-            <tr id="grammar-production-LANGTAG" data-grammar-original="[76s] LANGTAG ::= BASE| PREFIX| &quot;@&quot; [a-zA-Z]+ ( &quot;-&quot; [a-zA-Z0-9]+ )*" data-grammar-expression="(&#x27;|&#x27;, [(&#x27;id&#x27;, &#x27;BASE&#x27;), (&#x27;id&#x27;, &#x27;PREFIX&#x27;), (&#x27;,&#x27;, [(&quot;&#x27;&quot;, &#x27;@&#x27;), (&#x27;+&#x27;, (&#x27;[&#x27;, &#x27;a-zA-Z&#x27;)), (&#x27;*&#x27;, (&#x27;,&#x27;, [(&quot;&#x27;&quot;, &#x27;-&#x27;), (&#x27;+&#x27;, (&#x27;[&#x27;, &#x27;a-zA-Z0-9&#x27;))]))])])" class='grammar-token'>
-    <td>[76s]<td>
+            <tr id="grammar-production-LANGTAG" data-grammar-original="[19] LANGTAG ::= BASE| PREFIX| &quot;@&quot; [a-zA-Z]+ ( &quot;-&quot; [a-zA-Z0-9]+ )*" data-grammar-expression="(&#x27;|&#x27;, [(&#x27;id&#x27;, &#x27;BASE&#x27;), (&#x27;id&#x27;, &#x27;PREFIX&#x27;), (&#x27;,&#x27;, [(&quot;&#x27;&quot;, &#x27;@&#x27;), (&#x27;+&#x27;, (&#x27;[&#x27;, &#x27;a-zA-Z&#x27;)), (&#x27;*&#x27;, (&#x27;,&#x27;, [(&quot;&#x27;&quot;, &#x27;-&#x27;), (&#x27;+&#x27;, (&#x27;[&#x27;, &#x27;a-zA-Z0-9&#x27;))]))])])" class='grammar-token'>
+    <td>[19]<td>
     <td><code>LANGTAG</code><td>
     <td>::=</td>
     <td>(<a href='#grammar-production-BASE'>BASE</a> <code>|</code> <a href='#grammar-production-PREFIX'>PREFIX</a> <code>|</code> '<code class='grammar-literal'>@</code>' ([<code class='grammar-chars'>a-zA-Z</code>])<code class='grammar-plus'>+</code> ('<code class='grammar-literal'>-</code>' ([<code class='grammar-chars'>a-zA-Z0-9</code>])<code class='grammar-plus'>+</code>)<code class='grammar-star'>*</code>)</td>
 </tr>
-            <tr id="grammar-production-INTEGER" data-grammar-original="[77s] INTEGER ::= [0-9]+" data-grammar-expression="(&#x27;+&#x27;, (&#x27;[&#x27;, &#x27;0-9&#x27;))" class='grammar-token'>
-    <td>[77s]<td>
+            <tr id="grammar-production-INTEGER" data-grammar-original="[20] INTEGER ::= [+-]? [0-9]+" data-grammar-expression="(&#x27;,&#x27;, [(&#x27;?&#x27;, (&#x27;[&#x27;, &#x27;+-&#x27;)), (&#x27;+&#x27;, (&#x27;[&#x27;, &#x27;0-9&#x27;))])" class='grammar-token'>
+    <td>[20]<td>
     <td><code>INTEGER</code><td>
     <td>::=</td>
-    <td>([<code class='grammar-chars'>0-9</code>])<code class='grammar-plus'>+</code></td>
+    <td>([<code class='grammar-chars'>+-</code>])? ([<code class='grammar-chars'>0-9</code>])<code class='grammar-plus'>+</code></td>
 </tr>
-            <tr id="grammar-production-DECIMAL" data-grammar-original="[78s] DECIMAL ::= [0-9]+ &quot;.&quot; [0-9]+| &quot;.&quot; [0-9]+" data-grammar-expression="(&#x27;|&#x27;, [(&#x27;,&#x27;, [(&#x27;+&#x27;, (&#x27;[&#x27;, &#x27;0-9&#x27;)), (&quot;&#x27;&quot;, &#x27;.&#x27;), (&#x27;+&#x27;, (&#x27;[&#x27;, &#x27;0-9&#x27;))]), (&#x27;,&#x27;, [(&quot;&#x27;&quot;, &#x27;.&#x27;), (&#x27;+&#x27;, (&#x27;[&#x27;, &#x27;0-9&#x27;))])])" class='grammar-token'>
-    <td>[78s]<td>
+            <tr id="grammar-production-DECIMAL" data-grammar-original="[21] DECIMAL ::= [+-]? [0-9]+ &quot;.&quot; [0-9]+| &quot;.&quot; [0-9]+" data-grammar-expression="(&#x27;|&#x27;, [(&#x27;,&#x27;, [(&#x27;?&#x27;, (&#x27;[&#x27;, &#x27;+-&#x27;)), (&#x27;+&#x27;, (&#x27;[&#x27;, &#x27;0-9&#x27;)), (&quot;&#x27;&quot;, &#x27;.&#x27;), (&#x27;+&#x27;, (&#x27;[&#x27;, &#x27;0-9&#x27;))]), (&#x27;,&#x27;, [(&quot;&#x27;&quot;, &#x27;.&#x27;), (&#x27;+&#x27;, (&#x27;[&#x27;, &#x27;0-9&#x27;))])])" class='grammar-token'>
+    <td>[21]<td>
     <td><code>DECIMAL</code><td>
     <td>::=</td>
-    <td>(([<code class='grammar-chars'>0-9</code>])<code class='grammar-plus'>+</code> '<code class='grammar-literal'>.</code>' ([<code class='grammar-chars'>0-9</code>])<code class='grammar-plus'>+</code> <code>|</code> '<code class='grammar-literal'>.</code>' ([<code class='grammar-chars'>0-9</code>])<code class='grammar-plus'>+</code>)</td>
+    <td>(([<code class='grammar-chars'>+-</code>])? ([<code class='grammar-chars'>0-9</code>])<code class='grammar-plus'>+</code> '<code class='grammar-literal'>.</code>' ([<code class='grammar-chars'>0-9</code>])<code class='grammar-plus'>+</code> <code>|</code> '<code class='grammar-literal'>.</code>' ([<code class='grammar-chars'>0-9</code>])<code class='grammar-plus'>+</code>)</td>
 </tr>
-            <tr id="grammar-production-DOUBLE" data-grammar-original="[79s] DOUBLE ::= [0-9]+ &quot;.&quot; [0-9]+ EXPONENT| &quot;.&quot; ( [0-9] )+ EXPONENT| ( [0-9] )+ EXPONENT" data-grammar-expression="(&#x27;|&#x27;, [(&#x27;,&#x27;, [(&#x27;+&#x27;, (&#x27;[&#x27;, &#x27;0-9&#x27;)), (&quot;&#x27;&quot;, &#x27;.&#x27;), (&#x27;+&#x27;, (&#x27;[&#x27;, &#x27;0-9&#x27;)), (&#x27;id&#x27;, &#x27;EXPONENT&#x27;)]), (&#x27;,&#x27;, [(&quot;&#x27;&quot;, &#x27;.&#x27;), (&#x27;+&#x27;, (&#x27;[&#x27;, &#x27;0-9&#x27;)), (&#x27;id&#x27;, &#x27;EXPONENT&#x27;)]), (&#x27;,&#x27;, [(&#x27;+&#x27;, (&#x27;[&#x27;, &#x27;0-9&#x27;)), (&#x27;id&#x27;, &#x27;EXPONENT&#x27;)])])" class='grammar-token'>
-    <td>[79s]<td>
+            <tr id="grammar-production-DOUBLE" data-grammar-original="[22] DOUBLE ::= [+-]? [0-9]+ &quot;.&quot; [0-9]+ EXPONENT| &quot;.&quot; ( [0-9] )+ EXPONENT| ( [0-9] )+ EXPONENT" data-grammar-expression="(&#x27;|&#x27;, [(&#x27;,&#x27;, [(&#x27;?&#x27;, (&#x27;[&#x27;, &#x27;+-&#x27;)), (&#x27;+&#x27;, (&#x27;[&#x27;, &#x27;0-9&#x27;)), (&quot;&#x27;&quot;, &#x27;.&#x27;), (&#x27;+&#x27;, (&#x27;[&#x27;, &#x27;0-9&#x27;)), (&#x27;id&#x27;, &#x27;EXPONENT&#x27;)]), (&#x27;,&#x27;, [(&quot;&#x27;&quot;, &#x27;.&#x27;), (&#x27;+&#x27;, (&#x27;[&#x27;, &#x27;0-9&#x27;)), (&#x27;id&#x27;, &#x27;EXPONENT&#x27;)]), (&#x27;,&#x27;, [(&#x27;+&#x27;, (&#x27;[&#x27;, &#x27;0-9&#x27;)), (&#x27;id&#x27;, &#x27;EXPONENT&#x27;)])])" class='grammar-token'>
+    <td>[22]<td>
     <td><code>DOUBLE</code><td>
     <td>::=</td>
-    <td>(([<code class='grammar-chars'>0-9</code>])<code class='grammar-plus'>+</code> '<code class='grammar-literal'>.</code>' ([<code class='grammar-chars'>0-9</code>])<code class='grammar-plus'>+</code> <a href='#grammar-production-EXPONENT'>EXPONENT</a> <code>|</code> '<code class='grammar-literal'>.</code>' ([<code class='grammar-chars'>0-9</code>])<code class='grammar-plus'>+</code> <a href='#grammar-production-EXPONENT'>EXPONENT</a> <code>|</code> ([<code class='grammar-chars'>0-9</code>])<code class='grammar-plus'>+</code> <a href='#grammar-production-EXPONENT'>EXPONENT</a>)</td>
-</tr>
-            <tr id="grammar-production-INTEGER_POSITIVE" data-grammar-original="[80s] INTEGER_POSITIVE ::= &quot;+&quot; INTEGER" data-grammar-expression="(&#x27;,&#x27;, [(&quot;&#x27;&quot;, &#x27;+&#x27;), (&#x27;id&#x27;, &#x27;INTEGER&#x27;)])" class='grammar-token'>
-    <td>[80s]<td>
-    <td><code>INTEGER_POSITIVE</code><td>
-    <td>::=</td>
-    <td>'<code class='grammar-literal'>+</code>' <a href='#grammar-production-INTEGER'>INTEGER</a></td>
-</tr>
-            <tr id="grammar-production-DECIMAL_POSITIVE" data-grammar-original="[81s] DECIMAL_POSITIVE ::= &quot;+&quot; DECIMAL" data-grammar-expression="(&#x27;,&#x27;, [(&quot;&#x27;&quot;, &#x27;+&#x27;), (&#x27;id&#x27;, &#x27;DECIMAL&#x27;)])" class='grammar-token'>
-    <td>[81s]<td>
-    <td><code>DECIMAL_POSITIVE</code><td>
-    <td>::=</td>
-    <td>'<code class='grammar-literal'>+</code>' <a href='#grammar-production-DECIMAL'>DECIMAL</a></td>
-</tr>
-            <tr id="grammar-production-DOUBLE_POSITIVE" data-grammar-original="[82s] DOUBLE_POSITIVE ::= &quot;+&quot; DOUBLE" data-grammar-expression="(&#x27;,&#x27;, [(&quot;&#x27;&quot;, &#x27;+&#x27;), (&#x27;id&#x27;, &#x27;DOUBLE&#x27;)])" class='grammar-token'>
-    <td>[82s]<td>
-    <td><code>DOUBLE_POSITIVE</code><td>
-    <td>::=</td>
-    <td>'<code class='grammar-literal'>+</code>' <a href='#grammar-production-DOUBLE'>DOUBLE</a></td>
+    <td>(([<code class='grammar-chars'>+-</code>])? ([<code class='grammar-chars'>0-9</code>])<code class='grammar-plus'>+</code> '<code class='grammar-literal'>.</code>' ([<code class='grammar-chars'>0-9</code>])<code class='grammar-plus'>+</code> <a href='#grammar-production-EXPONENT'>EXPONENT</a> <code>|</code> '<code class='grammar-literal'>.</code>' ([<code class='grammar-chars'>0-9</code>])<code class='grammar-plus'>+</code> <a href='#grammar-production-EXPONENT'>EXPONENT</a> <code>|</code> ([<code class='grammar-chars'>0-9</code>])<code class='grammar-plus'>+</code> <a href='#grammar-production-EXPONENT'>EXPONENT</a>)</td>
 </tr>
-            <tr id="grammar-production-INTEGER_NEGATIVE" data-grammar-original="[83s] INTEGER_NEGATIVE ::= &quot;-&quot; INTEGER" data-grammar-expression="(&#x27;,&#x27;, [(&quot;&#x27;&quot;, &#x27;-&#x27;), (&#x27;id&#x27;, &#x27;INTEGER&#x27;)])" class='grammar-token'>
-    <td>[83s]<td>
-    <td><code>INTEGER_NEGATIVE</code><td>
-    <td>::=</td>
-    <td>'<code class='grammar-literal'>-</code>' <a href='#grammar-production-INTEGER'>INTEGER</a></td>
-</tr>
-            <tr id="grammar-production-DECIMAL_NEGATIVE" data-grammar-original="[84s] DECIMAL_NEGATIVE ::= &quot;-&quot; DECIMAL" data-grammar-expression="(&#x27;,&#x27;, [(&quot;&#x27;&quot;, &#x27;-&#x27;), (&#x27;id&#x27;, &#x27;DECIMAL&#x27;)])" class='grammar-token'>
-    <td>[84s]<td>
-    <td><code>DECIMAL_NEGATIVE</code><td>
-    <td>::=</td>
-    <td>'<code class='grammar-literal'>-</code>' <a href='#grammar-production-DECIMAL'>DECIMAL</a></td>
-</tr>
-            <tr id="grammar-production-DOUBLE_NEGATIVE" data-grammar-original="[85s] DOUBLE_NEGATIVE ::= &quot;-&quot; DOUBLE" data-grammar-expression="(&#x27;,&#x27;, [(&quot;&#x27;&quot;, &#x27;-&#x27;), (&#x27;id&#x27;, &#x27;DOUBLE&#x27;)])" class='grammar-token'>
-    <td>[85s]<td>
-    <td><code>DOUBLE_NEGATIVE</code><td>
-    <td>::=</td>
-    <td>'<code class='grammar-literal'>-</code>' <a href='#grammar-production-DOUBLE'>DOUBLE</a></td>
-</tr>
-            <tr id="grammar-production-EXPONENT" data-grammar-original="[86s] EXPONENT ::= [eE] [+-]? [0-9]+" data-grammar-expression="(&#x27;,&#x27;, [(&#x27;[&#x27;, &#x27;eE&#x27;), (&#x27;?&#x27;, (&#x27;[&#x27;, &#x27;+-&#x27;)), (&#x27;+&#x27;, (&#x27;[&#x27;, &#x27;0-9&#x27;))])" class='grammar-token'>
-    <td>[86s]<td>
+            <tr id="grammar-production-EXPONENT" data-grammar-original="[148s] EXPONENT ::= [eE] [+-]? [0-9]+" data-grammar-expression="(&#x27;,&#x27;, [(&#x27;[&#x27;, &#x27;eE&#x27;), (&#x27;?&#x27;, (&#x27;[&#x27;, &#x27;+-&#x27;)), (&#x27;+&#x27;, (&#x27;[&#x27;, &#x27;0-9&#x27;))])" class='grammar-token'>
+    <td>[148s]<td>
     <td><code>EXPONENT</code><td>
     <td>::=</td>
     <td>[<code class='grammar-chars'>eE</code>] ([<code class='grammar-chars'>+-</code>])? ([<code class='grammar-chars'>0-9</code>])<code class='grammar-plus'>+</code></td>
 </tr>
-            <tr id="grammar-production-STRING_LITERAL1" data-grammar-original="[148s] STRING_LITERAL1 ::= &#x27;&quot;&#x27; ( ( [^#x27#x5C#xA#xD]) | ECHAR | UCHAR )* &#x27;&quot;&#x27;" data-grammar-expression="(&#x27;,&#x27;, [(&quot;&#x27;&quot;, &#x27;&quot;&#x27;), (&#x27;*&#x27;, (&#x27;|&#x27;, [(&#x27;[&#x27;, &#x27;^#x27#x5C#xA#xD&#x27;), (&#x27;id&#x27;, &#x27;ECHAR&#x27;), (&#x27;id&#x27;, &#x27;UCHAR&#x27;)])), (&quot;&#x27;&quot;, &#x27;&quot;&#x27;)])" class='grammar-token'>
-    <td>[148s]<td>
+            <tr id="grammar-production-STRING_LITERAL1" data-grammar-original="[149s] STRING_LITERAL1 ::= &#x27;&quot;&#x27; ( ( [^#x27#x5C#xA#xD]) | ECHAR | UCHAR )* &#x27;&quot;&#x27;" data-grammar-expression="(&#x27;,&#x27;, [(&quot;&#x27;&quot;, &#x27;&quot;&#x27;), (&#x27;*&#x27;, (&#x27;|&#x27;, [(&#x27;[&#x27;, &#x27;^#x27#x5C#xA#xD&#x27;), (&#x27;id&#x27;, &#x27;ECHAR&#x27;), (&#x27;id&#x27;, &#x27;UCHAR&#x27;)])), (&quot;&#x27;&quot;, &#x27;&quot;&#x27;)])" class='grammar-token'>
+    <td>[149s]<td>
     <td><code>STRING_LITERAL1</code><td>
     <td>::=</td>
     <td>'<code class='grammar-literal'>&quot;</code>' (([<code class='grammar-chars'>^#x27#x5C#xA#xD</code>] <code>|</code> <a href='#grammar-production-ECHAR'>ECHAR</a> <code>|</code> <a href='#grammar-production-UCHAR'>UCHAR</a>))<code class='grammar-star'>*</code> '<code class='grammar-literal'>&quot;</code>'</td>
 </tr>
-            <tr id="grammar-production-STRING_LITERAL2" data-grammar-original="[149s] STRING_LITERAL2 ::= &#x27;&quot;&#x27; ( ( [^#x22#x5C#xA#xD]) | ECHAR | UCHAR )* &#x27;&quot;&#x27;" data-grammar-expression="(&#x27;,&#x27;, [(&quot;&#x27;&quot;, &#x27;&quot;&#x27;), (&#x27;*&#x27;, (&#x27;|&#x27;, [(&#x27;[&#x27;, &#x27;^#x22#x5C#xA#xD&#x27;), (&#x27;id&#x27;, &#x27;ECHAR&#x27;), (&#x27;id&#x27;, &#x27;UCHAR&#x27;)])), (&quot;&#x27;&quot;, &#x27;&quot;&#x27;)])" class='grammar-token'>
-    <td>[149s]<td>
+            <tr id="grammar-production-STRING_LITERAL2" data-grammar-original="[150s] STRING_LITERAL2 ::= &#x27;&quot;&#x27; ( ( [^#x22#x5C#xA#xD]) | ECHAR | UCHAR )* &#x27;&quot;&#x27;" data-grammar-expression="(&#x27;,&#x27;, [(&quot;&#x27;&quot;, &#x27;&quot;&#x27;), (&#x27;*&#x27;, (&#x27;|&#x27;, [(&#x27;[&#x27;, &#x27;^#x22#x5C#xA#xD&#x27;), (&#x27;id&#x27;, &#x27;ECHAR&#x27;), (&#x27;id&#x27;, &#x27;UCHAR&#x27;)])), (&quot;&#x27;&quot;, &#x27;&quot;&#x27;)])" class='grammar-token'>
+    <td>[150s]<td>
     <td><code>STRING_LITERAL2</code><td>
     <td>::=</td>
     <td>'<code class='grammar-literal'>&quot;</code>' (([<code class='grammar-chars'>^#x22#x5C#xA#xD</code>] <code>|</code> <a href='#grammar-production-ECHAR'>ECHAR</a> <code>|</code> <a href='#grammar-production-UCHAR'>UCHAR</a>))<code class='grammar-star'>*</code> '<code class='grammar-literal'>&quot;</code>'</td>
 </tr>
-            <tr id="grammar-production-STRING_LITERAL_LONG1" data-grammar-original="[89s] STRING_LITERAL_LONG1 ::= &quot;&#x27;&#x27;&#x27;&quot; ( ( &quot;&#x27;&quot; | &quot;&#x27;&#x27;&quot; )? ( [^&#x27;\\] | ECHAR | UCHAR ) )* &quot;&#x27;&#x27;&#x27;&quot;" data-grammar-expression="(&#x27;,&#x27;, [(&quot;&#x27;&quot;, &quot;&#x27;&#x27;&#x27;&quot;), (&#x27;*&#x27;, (&#x27;,&#x27;, [(&#x27;?&#x27;, (&#x27;|&#x27;, [(&quot;&#x27;&quot;, &quot;&#x27;&quot;), (&quot;&#x27;&quot;, &quot;&#x27;&#x27;&quot;)])), (&#x27;|&#x27;, [(&#x27;[&#x27;, &quot;^&#x27;\\\\&quot;), (&#x27;id&#x27;, &#x27;ECHAR&#x27;), (&#x27;id&#x27;, &#x27;UCHAR&#x27;)])])), (&quot;&#x27;&quot;, &quot;&#x27;&#x27;&#x27;&quot;)])" class='grammar-token'>
-    <td>[89s]<td>
+            <tr id="grammar-production-STRING_LITERAL_LONG1" data-grammar-original="[151s] STRING_LITERAL_LONG1 ::= &quot;&#x27;&#x27;&#x27;&quot; ( ( &quot;&#x27;&quot; | &quot;&#x27;&#x27;&quot; )? ( [^&#x27;\] | ECHAR | UCHAR ) )* &quot;&#x27;&#x27;&#x27;&quot;" data-grammar-expression="(&#x27;,&#x27;, [(&quot;&#x27;&quot;, &quot;&#x27;&#x27;&#x27;&quot;), (&#x27;*&#x27;, (&#x27;,&#x27;, [(&#x27;?&#x27;, (&#x27;|&#x27;, [(&quot;&#x27;&quot;, &quot;&#x27;&quot;), (&quot;&#x27;&quot;, &quot;&#x27;&#x27;&quot;)])), (&#x27;|&#x27;, [(&#x27;[&#x27;, &quot;^&#x27;\\&quot;), (&#x27;id&#x27;, &#x27;ECHAR&#x27;), (&#x27;id&#x27;, &#x27;UCHAR&#x27;)])])), (&quot;&#x27;&quot;, &quot;&#x27;&#x27;&#x27;&quot;)])" class='grammar-token'>
+    <td>[151s]<td>
     <td><code>STRING_LITERAL_LONG1</code><td>
     <td>::=</td>
-    <td>'<code class='grammar-literal'>&#x27;&#x27;&#x27;</code>' ((('<code class='grammar-literal'>&#x27;</code>' <code>|</code> '<code class='grammar-literal'>&#x27;&#x27;</code>'))? ([<code class='grammar-chars'>^'\\</code>] <code>|</code> <a href='#grammar-production-ECHAR'>ECHAR</a> <code>|</code> <a href='#grammar-production-UCHAR'>UCHAR</a>))<code class='grammar-star'>*</code> '<code class='grammar-literal'>&#x27;&#x27;&#x27;</code>'</td>
+    <td>'<code class='grammar-literal'>&#x27;&#x27;&#x27;</code>' ((('<code class='grammar-literal'>&#x27;</code>' <code>|</code> '<code class='grammar-literal'>&#x27;&#x27;</code>'))? ([<code class='grammar-chars'>^'\</code>] <code>|</code> <a href='#grammar-production-ECHAR'>ECHAR</a> <code>|</code> <a href='#grammar-production-UCHAR'>UCHAR</a>))<code class='grammar-star'>*</code> '<code class='grammar-literal'>&#x27;&#x27;&#x27;</code>'</td>
 </tr>
-            <tr id="grammar-production-STRING_LITERAL_LONG2" data-grammar-original="[90s] STRING_LITERAL_LONG2 ::= &#x27;&quot;&quot;&quot;&#x27; ( ( &#x27;&quot;&#x27; | &#x27;&quot;&quot;&#x27; )? ( [^\&quot;\\] | ECHAR | UCHAR ) )* &#x27;&quot;&quot;&quot;&#x27;" data-grammar-expression="(&#x27;,&#x27;, [(&quot;&#x27;&quot;, &#x27;&quot;&quot;&quot;&#x27;), (&#x27;*&#x27;, (&#x27;,&#x27;, [(&#x27;?&#x27;, (&#x27;|&#x27;, [(&quot;&#x27;&quot;, &#x27;&quot;&#x27;), (&quot;&#x27;&quot;, &#x27;&quot;&quot;&#x27;)])), (&#x27;|&#x27;, [(&#x27;[&#x27;, &#x27;^\\&quot;\\\\&#x27;), (&#x27;id&#x27;, &#x27;ECHAR&#x27;), (&#x27;id&#x27;, &#x27;UCHAR&#x27;)])])), (&quot;&#x27;&quot;, &#x27;&quot;&quot;&quot;&#x27;)])" class='grammar-token'>
-    <td>[90s]<td>
+            <tr id="grammar-production-STRING_LITERAL_LONG2" data-grammar-original="[152s] STRING_LITERAL_LONG2 ::= &#x27;&quot;&quot;&quot;&#x27; ( ( &#x27;&quot;&#x27; | &#x27;&quot;&quot;&#x27; )? ( [^&quot;\] | ECHAR | UCHAR ) )* &#x27;&quot;&quot;&quot;&#x27;" data-grammar-expression="(&#x27;,&#x27;, [(&quot;&#x27;&quot;, &#x27;&quot;&quot;&quot;&#x27;), (&#x27;*&#x27;, (&#x27;,&#x27;, [(&#x27;?&#x27;, (&#x27;|&#x27;, [(&quot;&#x27;&quot;, &#x27;&quot;&#x27;), (&quot;&#x27;&quot;, &#x27;&quot;&quot;&#x27;)])), (&#x27;|&#x27;, [(&#x27;[&#x27;, &#x27;^&quot;\\&#x27;), (&#x27;id&#x27;, &#x27;ECHAR&#x27;), (&#x27;id&#x27;, &#x27;UCHAR&#x27;)])])), (&quot;&#x27;&quot;, &#x27;&quot;&quot;&quot;&#x27;)])" class='grammar-token'>
+    <td>[152s]<td>
     <td><code>STRING_LITERAL_LONG2</code><td>
     <td>::=</td>
-    <td>'<code class='grammar-literal'>&quot;&quot;&quot;</code>' ((('<code class='grammar-literal'>&quot;</code>' <code>|</code> '<code class='grammar-literal'>&quot;&quot;</code>'))? ([<code class='grammar-chars'>^\"\\</code>] <code>|</code> <a href='#grammar-production-ECHAR'>ECHAR</a> <code>|</code> <a href='#grammar-production-UCHAR'>UCHAR</a>))<code class='grammar-star'>*</code> '<code class='grammar-literal'>&quot;&quot;&quot;</code>'</td>
+    <td>'<code class='grammar-literal'>&quot;&quot;&quot;</code>' ((('<code class='grammar-literal'>&quot;</code>' <code>|</code> '<code class='grammar-literal'>&quot;&quot;</code>'))? ([<code class='grammar-chars'>^"\</code>] <code>|</code> <a href='#grammar-production-ECHAR'>ECHAR</a> <code>|</code> <a href='#grammar-production-UCHAR'>UCHAR</a>))<code class='grammar-star'>*</code> '<code class='grammar-literal'>&quot;&quot;&quot;</code>'</td>
 </tr>
             <tr id="grammar-production-UCHAR" data-grammar-original="[19] UCHAR ::= ( &quot;\\u&quot; HEX HEX HEX HEX )| ( &quot;\\U&quot; HEX HEX HEX HEX HEX HEX HEX HEX )" data-grammar-expression="(&#x27;|&#x27;, [(&#x27;,&#x27;, [(&quot;&#x27;&quot;, &#x27;\\\\u&#x27;), (&#x27;id&#x27;, &#x27;HEX&#x27;), (&#x27;id&#x27;, &#x27;HEX&#x27;), (&#x27;id&#x27;, &#x27;HEX&#x27;), (&#x27;id&#x27;, &#x27;HEX&#x27;)]), (&#x27;,&#x27;, [(&quot;&#x27;&quot;, &#x27;\\\\U&#x27;), (&#x27;id&#x27;, &#x27;HEX&#x27;), (&#x27;id&#x27;, &#x27;HEX&#x27;), (&#x27;id&#x27;, &#x27;HEX&#x27;), (&#x27;id&#x27;, &#x27;HEX&#x27;), (&#x27;id&#x27;, &#x27;HEX&#x27;), (&#x27;id&#x27;, &#x27;HEX&#x27;), (&#x27;id&#x27;, &#x27;HEX&#x27;), (&#x27;id&#x27;, &#x27;HEX&#x27;)])])" class='grammar-token'>
     <td>[19]<td>
@@ -290,83 +254,83 @@
     <td>::=</td>
     <td>('<code class='grammar-literal'>\\u</code>' <a href='#grammar-production-HEX'>HEX</a> <a href='#grammar-production-HEX'>HEX</a> <a href='#grammar-production-HEX'>HEX</a> <a href='#grammar-production-HEX'>HEX</a> <code>|</code> '<code class='grammar-literal'>\\U</code>' <a href='#grammar-production-HEX'>HEX</a> <a href='#grammar-production-HEX'>HEX</a> <a href='#grammar-production-HEX'>HEX</a> <a href='#grammar-production-HEX'>HEX</a> <a href='#grammar-production-HEX'>HEX</a> <a href='#grammar-production-HEX'>HEX</a> <a href='#grammar-production-HEX'>HEX</a> <a href='#grammar-production-HEX'>HEX</a>)</td>
 </tr>
-            <tr id="grammar-production-ECHAR" data-grammar-original="[91s] ECHAR ::= &quot;\\&quot; [tbnrf\\\&quot;&#x27;]" data-grammar-expression="(&#x27;,&#x27;, [(&quot;&#x27;&quot;, &#x27;\\\\&#x27;), (&#x27;[&#x27;, &#x27;tbnrf\\\\\\&quot;\&#x27;&#x27;)])" class='grammar-token'>
-    <td>[91s]<td>
+            <tr id="grammar-production-ECHAR" data-grammar-original="[153s] ECHAR ::= &quot;\&quot; [tbnrf\&quot;&#x27;]" data-grammar-expression="(&#x27;,&#x27;, [(&quot;&#x27;&quot;, &#x27;\\&#x27;), (&#x27;[&#x27;, &#x27;tbnrf\\&quot;\&#x27;&#x27;)])" class='grammar-token'>
+    <td>[153s]<td>
     <td><code>ECHAR</code><td>
     <td>::=</td>
-    <td>'<code class='grammar-literal'>\\</code>' [<code class='grammar-chars'>tbnrf\\\"'</code>]</td>
+    <td>'<code class='grammar-literal'>\</code>' [<code class='grammar-chars'>tbnrf\"'</code>]</td>
 </tr>
-            <tr id="grammar-production-NIL" data-grammar-original="[92s] NIL ::= &quot;(&quot; (WS)* &quot;)&quot;" data-grammar-expression="(&#x27;,&#x27;, [(&quot;&#x27;&quot;, &#x27;(&#x27;), (&#x27;*&#x27;, (&#x27;id&#x27;, &#x27;WS&#x27;)), (&quot;&#x27;&quot;, &#x27;)&#x27;)])" class='grammar-token'>
-    <td>[92s]<td>
+            <tr id="grammar-production-NIL" data-grammar-original="[154s] NIL ::= &quot;(&quot; (WS)* &quot;)&quot;" data-grammar-expression="(&#x27;,&#x27;, [(&quot;&#x27;&quot;, &#x27;(&#x27;), (&#x27;*&#x27;, (&#x27;id&#x27;, &#x27;WS&#x27;)), (&quot;&#x27;&quot;, &#x27;)&#x27;)])" class='grammar-token'>
+    <td>[154s]<td>
     <td><code>NIL</code><td>
     <td>::=</td>
     <td>'<code class='grammar-literal'>(</code>' (<a href='#grammar-production-WS'>WS</a>)<code class='grammar-star'>*</code> '<code class='grammar-literal'>)</code>'</td>
 </tr>
-            <tr id="grammar-production-WS" data-grammar-original="[93s] WS ::= &quot; &quot;| &quot;\t&quot;| &quot;\r&quot;| &quot;\n&quot;" data-grammar-expression="(&#x27;|&#x27;, [(&quot;&#x27;&quot;, &#x27; &#x27;), (&quot;&#x27;&quot;, &#x27;\\t&#x27;), (&quot;&#x27;&quot;, &#x27;\\r&#x27;), (&quot;&#x27;&quot;, &#x27;\\n&#x27;)])" class='grammar-token'>
-    <td>[93s]<td>
+            <tr id="grammar-production-WS" data-grammar-original="[155s] WS ::= #x20 | #x9 | #xD | #xA" data-grammar-expression="(&#x27;|&#x27;, [(&#x27;#&#x27;, &#x27;#x20&#x27;), (&#x27;#&#x27;, &#x27;#x9&#x27;), (&#x27;#&#x27;, &#x27;#xD&#x27;), (&#x27;#&#x27;, &#x27;#xA&#x27;)])" class='grammar-token'>
+    <td>[155s]<td>
     <td><code>WS</code><td>
     <td>::=</td>
-    <td>('<code class='grammar-literal'> </code>' <code>|</code> '<code class='grammar-literal'>\t</code>' <code>|</code> '<code class='grammar-literal'>\r</code>' <code>|</code> '<code class='grammar-literal'>\n</code>')</td>
+    <td>(<code class='grammar-char-escape'>#x20</code> <code>|</code> <code class='grammar-char-escape'>#x9</code> <code>|</code> <code class='grammar-char-escape'>#xD</code> <code>|</code> <code class='grammar-char-escape'>#xA</code>)</td>
 </tr>
-            <tr id="grammar-production-ANON" data-grammar-original="[94s] ANON ::= &quot;[&quot; (WS)* &quot;]&quot;" data-grammar-expression="(&#x27;,&#x27;, [(&quot;&#x27;&quot;, &#x27;[&#x27;), (&#x27;*&#x27;, (&#x27;id&#x27;, &#x27;WS&#x27;)), (&quot;&#x27;&quot;, &#x27;]&#x27;)])" class='grammar-token'>
-    <td>[94s]<td>
+            <tr id="grammar-production-ANON" data-grammar-original="[156s] ANON ::= &quot;[&quot; (WS)* &quot;]&quot;" data-grammar-expression="(&#x27;,&#x27;, [(&quot;&#x27;&quot;, &#x27;[&#x27;), (&#x27;*&#x27;, (&#x27;id&#x27;, &#x27;WS&#x27;)), (&quot;&#x27;&quot;, &#x27;]&#x27;)])" class='grammar-token'>
+    <td>[156s]<td>
     <td><code>ANON</code><td>
     <td>::=</td>
     <td>'<code class='grammar-literal'>[</code>' (<a href='#grammar-production-WS'>WS</a>)<code class='grammar-star'>*</code> '<code class='grammar-literal'>]</code>'</td>
 </tr>
-            <tr id="grammar-production-PN_CHARS_BASE" data-grammar-original="[95s] PN_CHARS_BASE ::= [A-Z]| [a-z]| [#00C0-#00D6]| [#00D8-#00F6]| [#00F8-#02FF]| [#0370-#037D]| [#037F-#1FFF]| [#200C-#200D]| [#2070-#218F]| [#2C00-#2FEF]| [#3001-#D7FF]| [#F900-#FDCF]| [#FDF0-#FFFD]| [#10000-#EFFFF]" data-grammar-expression="(&#x27;|&#x27;, [(&#x27;[&#x27;, &#x27;A-Z&#x27;), (&#x27;[&#x27;, &#x27;a-z&#x27;), (&#x27;[&#x27;, &#x27;#00C0-#00D6&#x27;), (&#x27;[&#x27;, &#x27;#00D8-#00F6&#x27;), (&#x27;[&#x27;, &#x27;#00F8-#02FF&#x27;), (&#x27;[&#x27;, &#x27;#0370-#037D&#x27;), (&#x27;[&#x27;, &#x27;#037F-#1FFF&#x27;), (&#x27;[&#x27;, &#x27;#200C-#200D&#x27;), (&#x27;[&#x27;, &#x27;#2070-#218F&#x27;), (&#x27;[&#x27;, &#x27;#2C00-#2FEF&#x27;), (&#x27;[&#x27;, &#x27;#3001-#D7FF&#x27;), (&#x27;[&#x27;, &#x27;#F900-#FDCF&#x27;), (&#x27;[&#x27;, &#x27;#FDF0-#FFFD&#x27;), (&#x27;[&#x27;, &#x27;#10000-#EFFFF&#x27;)])" class='grammar-token'>
-    <td>[95s]<td>
+            <tr id="grammar-production-PN_CHARS_BASE" data-grammar-original="[157s] PN_CHARS_BASE ::= [A-Z]| [a-z]| [#00C0-#00D6]| [#00D8-#00F6]| [#00F8-#02FF]| [#0370-#037D]| [#037F-#1FFF]| [#200C-#200D]| [#2070-#218F]| [#2C00-#2FEF]| [#3001-#D7FF]| [#F900-#FDCF]| [#FDF0-#FFFD]| [#10000-#EFFFF]" data-grammar-expression="(&#x27;|&#x27;, [(&#x27;[&#x27;, &#x27;A-Z&#x27;), (&#x27;[&#x27;, &#x27;a-z&#x27;), (&#x27;[&#x27;, &#x27;#00C0-#00D6&#x27;), (&#x27;[&#x27;, &#x27;#00D8-#00F6&#x27;), (&#x27;[&#x27;, &#x27;#00F8-#02FF&#x27;), (&#x27;[&#x27;, &#x27;#0370-#037D&#x27;), (&#x27;[&#x27;, &#x27;#037F-#1FFF&#x27;), (&#x27;[&#x27;, &#x27;#200C-#200D&#x27;), (&#x27;[&#x27;, &#x27;#2070-#218F&#x27;), (&#x27;[&#x27;, &#x27;#2C00-#2FEF&#x27;), (&#x27;[&#x27;, &#x27;#3001-#D7FF&#x27;), (&#x27;[&#x27;, &#x27;#F900-#FDCF&#x27;), (&#x27;[&#x27;, &#x27;#FDF0-#FFFD&#x27;), (&#x27;[&#x27;, &#x27;#10000-#EFFFF&#x27;)])" class='grammar-token'>
+    <td>[157s]<td>
     <td><code>PN_CHARS_BASE</code><td>
     <td>::=</td>
     <td>([<code class='grammar-chars'>A-Z</code>] <code>|</code> [<code class='grammar-chars'>a-z</code>] <code>|</code> [<code class='grammar-chars'>#00C0-#00D6</code>] <code>|</code> [<code class='grammar-chars'>#00D8-#00F6</code>] <code>|</code> [<code class='grammar-chars'>#00F8-#02FF</code>] <code>|</code> [<code class='grammar-chars'>#0370-#037D</code>] <code>|</code> [<code class='grammar-chars'>#037F-#1FFF</code>] <code>|</code> [<code class='grammar-chars'>#200C-#200D</code>] <code>|</code> [<code class='grammar-chars'>#2070-#218F</code>] <code>|</code> [<code class='grammar-chars'>#2C00-#2FEF</code>] <code>|</code> [<code class='grammar-chars'>#3001-#D7FF</code>] <code>|</code> [<code class='grammar-chars'>#F900-#FDCF</code>] <code>|</code> [<code class='grammar-chars'>#FDF0-#FFFD</code>] <code>|</code> [<code class='grammar-chars'>#10000-#EFFFF</code>])</td>
 </tr>
-            <tr id="grammar-production-PN_CHARS_U" data-grammar-original="[96s] PN_CHARS_U  ::=  PN_CHARS_BASE| &#x27;_&#x27;| &#x27;:&#x27;" data-grammar-expression="(&#x27;|&#x27;, [(&#x27;id&#x27;, &#x27;PN_CHARS_BASE&#x27;), (&quot;&#x27;&quot;, &#x27;_&#x27;), (&quot;&#x27;&quot;, &#x27;:&#x27;)])" class='grammar-token'>
-    <td>[96s]<td>
+            <tr id="grammar-production-PN_CHARS_U" data-grammar-original="[158s] PN_CHARS_U  ::=  PN_CHARS_BASE| &#x27;_&#x27;| &#x27;:&#x27;" data-grammar-expression="(&#x27;|&#x27;, [(&#x27;id&#x27;, &#x27;PN_CHARS_BASE&#x27;), (&quot;&#x27;&quot;, &#x27;_&#x27;), (&quot;&#x27;&quot;, &#x27;:&#x27;)])" class='grammar-token'>
+    <td>[158s]<td>
     <td><code>PN_CHARS_U</code><td>
     <td>::=</td>
     <td>(<a href='#grammar-production-PN_CHARS_BASE'>PN_CHARS_BASE</a> <code>|</code> '<code class='grammar-literal'>_</code>' <code>|</code> '<code class='grammar-literal'>:</code>')</td>
 </tr>
-            <tr id="grammar-production-PN_CHARS" data-grammar-original="[98s] PN_CHARS ::= PN_CHARS_U| &quot;-&quot;| [0-9]| #00B7| [#0300-#036F]| [#203F-#2040]" data-grammar-expression="(&#x27;|&#x27;, [(&#x27;id&#x27;, &#x27;PN_CHARS_U&#x27;), (&quot;&#x27;&quot;, &#x27;-&#x27;), (&#x27;[&#x27;, &#x27;0-9&#x27;), (&#x27;#&#x27;, &#x27;#00B7&#x27;), (&#x27;[&#x27;, &#x27;#0300-#036F&#x27;), (&#x27;[&#x27;, &#x27;#203F-#2040&#x27;)])" class='grammar-token'>
-    <td>[98s]<td>
+            <tr id="grammar-production-PN_CHARS" data-grammar-original="[160s] PN_CHARS ::= PN_CHARS_U| &quot;-&quot;| [0-9]| #00B7| [#0300-#036F]| [#203F-#2040]" data-grammar-expression="(&#x27;|&#x27;, [(&#x27;id&#x27;, &#x27;PN_CHARS_U&#x27;), (&quot;&#x27;&quot;, &#x27;-&#x27;), (&#x27;[&#x27;, &#x27;0-9&#x27;), (&#x27;#&#x27;, &#x27;#00B7&#x27;), (&#x27;[&#x27;, &#x27;#0300-#036F&#x27;), (&#x27;[&#x27;, &#x27;#203F-#2040&#x27;)])" class='grammar-token'>
+    <td>[160s]<td>
     <td><code>PN_CHARS</code><td>
     <td>::=</td>
     <td>(<a href='#grammar-production-PN_CHARS_U'>PN_CHARS_U</a> <code>|</code> '<code class='grammar-literal'>-</code>' <code>|</code> [<code class='grammar-chars'>0-9</code>] <code>|</code> <code class='grammar-char-escape'>#00B7</code> <code>|</code> [<code class='grammar-chars'>#0300-#036F</code>] <code>|</code> [<code class='grammar-chars'>#203F-#2040</code>])</td>
 </tr>
-            <tr id="grammar-production-PN_PREFIX" data-grammar-original="[99s] PN_PREFIX ::= PN_CHARS_BASE ( ( PN_CHARS | &quot;.&quot; )* PN_CHARS )?" data-grammar-expression="(&#x27;,&#x27;, [(&#x27;id&#x27;, &#x27;PN_CHARS_BASE&#x27;), (&#x27;?&#x27;, (&#x27;,&#x27;, [(&#x27;*&#x27;, (&#x27;|&#x27;, [(&#x27;id&#x27;, &#x27;PN_CHARS&#x27;), (&quot;&#x27;&quot;, &#x27;.&#x27;)])), (&#x27;id&#x27;, &#x27;PN_CHARS&#x27;)]))])" class='grammar-token'>
-    <td>[99s]<td>
+            <tr id="grammar-production-PN_PREFIX" data-grammar-original="[161s] PN_PREFIX ::= PN_CHARS_BASE ( ( PN_CHARS | &quot;.&quot; )* PN_CHARS )?" data-grammar-expression="(&#x27;,&#x27;, [(&#x27;id&#x27;, &#x27;PN_CHARS_BASE&#x27;), (&#x27;?&#x27;, (&#x27;,&#x27;, [(&#x27;*&#x27;, (&#x27;|&#x27;, [(&#x27;id&#x27;, &#x27;PN_CHARS&#x27;), (&quot;&#x27;&quot;, &#x27;.&#x27;)])), (&#x27;id&#x27;, &#x27;PN_CHARS&#x27;)]))])" class='grammar-token'>
+    <td>[161s]<td>
     <td><code>PN_PREFIX</code><td>
     <td>::=</td>
     <td><a href='#grammar-production-PN_CHARS_BASE'>PN_CHARS_BASE</a> (((<a href='#grammar-production-PN_CHARS'>PN_CHARS</a> <code>|</code> '<code class='grammar-literal'>.</code>'))<code class='grammar-star'>*</code> <a href='#grammar-production-PN_CHARS'>PN_CHARS</a>)?</td>
 </tr>
-            <tr id="grammar-production-PN_LOCAL" data-grammar-original="[100s] PN_LOCAL ::= ( PN_CHARS_U | [0-9] | PLX ) ( ( PN_CHARS | &#x27;.&#x27; | PLX )*  ( PN_CHARS | PLX ) ) ?" data-grammar-expression="(&#x27;,&#x27;, [(&#x27;|&#x27;, [(&#x27;id&#x27;, &#x27;PN_CHARS_U&#x27;), (&#x27;[&#x27;, &#x27;0-9&#x27;), (&#x27;id&#x27;, &#x27;PLX&#x27;)]), (&#x27;?&#x27;, (&#x27;,&#x27;, [(&#x27;*&#x27;, (&#x27;|&#x27;, [(&#x27;id&#x27;, &#x27;PN_CHARS&#x27;), (&quot;&#x27;&quot;, &#x27;.&#x27;), (&#x27;id&#x27;, &#x27;PLX&#x27;)])), (&#x27;|&#x27;, [(&#x27;id&#x27;, &#x27;PN_CHARS&#x27;), (&#x27;id&#x27;, &#x27;PLX&#x27;)])]))])" class='grammar-token'>
-    <td>[100s]<td>
+            <tr id="grammar-production-PN_LOCAL" data-grammar-original="[162s] PN_LOCAL ::= ( PN_CHARS_U | [0-9] | PLX ) ( ( PN_CHARS | &#x27;.&#x27; | PLX )*  ( PN_CHARS | PLX ) ) ?" data-grammar-expression="(&#x27;,&#x27;, [(&#x27;|&#x27;, [(&#x27;id&#x27;, &#x27;PN_CHARS_U&#x27;), (&#x27;[&#x27;, &#x27;0-9&#x27;), (&#x27;id&#x27;, &#x27;PLX&#x27;)]), (&#x27;?&#x27;, (&#x27;,&#x27;, [(&#x27;*&#x27;, (&#x27;|&#x27;, [(&#x27;id&#x27;, &#x27;PN_CHARS&#x27;), (&quot;&#x27;&quot;, &#x27;.&#x27;), (&#x27;id&#x27;, &#x27;PLX&#x27;)])), (&#x27;|&#x27;, [(&#x27;id&#x27;, &#x27;PN_CHARS&#x27;), (&#x27;id&#x27;, &#x27;PLX&#x27;)])]))])" class='grammar-token'>
+    <td>[162s]<td>
     <td><code>PN_LOCAL</code><td>
     <td>::=</td>
     <td>(<a href='#grammar-production-PN_CHARS_U'>PN_CHARS_U</a> <code>|</code> [<code class='grammar-chars'>0-9</code>] <code>|</code> <a href='#grammar-production-PLX'>PLX</a>) (((<a href='#grammar-production-PN_CHARS'>PN_CHARS</a> <code>|</code> '<code class='grammar-literal'>.</code>' <code>|</code> <a href='#grammar-production-PLX'>PLX</a>))<code class='grammar-star'>*</code> (<a href='#grammar-production-PN_CHARS'>PN_CHARS</a> <code>|</code> <a href='#grammar-production-PLX'>PLX</a>))?</td>
 </tr>
-            <tr id="grammar-production-PLX" data-grammar-original="[160s] PLX ::= PERCENT | PN_LOCAL_ESC" data-grammar-expression="(&#x27;|&#x27;, [(&#x27;id&#x27;, &#x27;PERCENT&#x27;), (&#x27;id&#x27;, &#x27;PN_LOCAL_ESC&#x27;)])" class='grammar-token'>
-    <td>[160s]<td>
+            <tr id="grammar-production-PLX" data-grammar-original="[163s] PLX ::= PERCENT | PN_LOCAL_ESC" data-grammar-expression="(&#x27;|&#x27;, [(&#x27;id&#x27;, &#x27;PERCENT&#x27;), (&#x27;id&#x27;, &#x27;PN_LOCAL_ESC&#x27;)])" class='grammar-token'>
+    <td>[163s]<td>
     <td><code>PLX</code><td>
     <td>::=</td>
     <td>(<a href='#grammar-production-PERCENT'>PERCENT</a> <code>|</code> <a href='#grammar-production-PN_LOCAL_ESC'>PN_LOCAL_ESC</a>)</td>
 </tr>
-            <tr id="grammar-production-PERCENT" data-grammar-original="[161s] PERCENT ::= &#x27;%&#x27; HEX HEX" data-grammar-expression="(&#x27;,&#x27;, [(&quot;&#x27;&quot;, &#x27;%&#x27;), (&#x27;id&#x27;, &#x27;HEX&#x27;), (&#x27;id&#x27;, &#x27;HEX&#x27;)])" class='grammar-token'>
-    <td>[161s]<td>
+            <tr id="grammar-production-PERCENT" data-grammar-original="[164s] PERCENT ::= &#x27;%&#x27; HEX HEX" data-grammar-expression="(&#x27;,&#x27;, [(&quot;&#x27;&quot;, &#x27;%&#x27;), (&#x27;id&#x27;, &#x27;HEX&#x27;), (&#x27;id&#x27;, &#x27;HEX&#x27;)])" class='grammar-token'>
+    <td>[164s]<td>
     <td><code>PERCENT</code><td>
     <td>::=</td>
     <td>'<code class='grammar-literal'>%</code>' <a href='#grammar-production-HEX'>HEX</a> <a href='#grammar-production-HEX'>HEX</a></td>
 </tr>
-            <tr id="grammar-production-HEX" data-grammar-original="[162s] HEX ::= [0-9] | [A-F] | [a-f]" data-grammar-expression="(&#x27;|&#x27;, [(&#x27;[&#x27;, &#x27;0-9&#x27;), (&#x27;[&#x27;, &#x27;A-F&#x27;), (&#x27;[&#x27;, &#x27;a-f&#x27;)])" class='grammar-token'>
-    <td>[162s]<td>
+            <tr id="grammar-production-HEX" data-grammar-original="[165s] HEX ::= [0-9] | [A-F] | [a-f]" data-grammar-expression="(&#x27;|&#x27;, [(&#x27;[&#x27;, &#x27;0-9&#x27;), (&#x27;[&#x27;, &#x27;A-F&#x27;), (&#x27;[&#x27;, &#x27;a-f&#x27;)])" class='grammar-token'>
+    <td>[165s]<td>
     <td><code>HEX</code><td>
     <td>::=</td>
     <td>([<code class='grammar-chars'>0-9</code>] <code>|</code> [<code class='grammar-chars'>A-F</code>] <code>|</code> [<code class='grammar-chars'>a-f</code>])</td>
 </tr>
-            <tr id="grammar-production-PN_LOCAL_ESC" data-grammar-original="[163s] PN_LOCAL_ESC ::= &#x27;\\&#x27; ( &#x27;_&#x27; | &#x27;~&#x27; | &#x27;.&#x27; | &#x27;-&#x27; | &#x27;!&#x27; | &#x27;$&#x27; | &#x27;&amp;&#x27; | &quot;&#x27;&quot; | &#x27;(&#x27; | &#x27;)&#x27; | &#x27;*&#x27; | &#x27;+&#x27; | &#x27;,&#x27; | &#x27;;&#x27; | &#x27;=&#x27; | &#x27;/&#x27; | &#x27;?&#x27; | &#x27;#&#x27; | &#x27;@&#x27; | &#x27;%&#x27; )" data-grammar-expression="(&#x27;,&#x27;, [(&quot;&#x27;&quot;, &#x27;\\\\&#x27;), (&#x27;|&#x27;, [(&quot;&#x27;&quot;, &#x27;_&#x27;), (&quot;&#x27;&quot;, &#x27;~&#x27;), (&quot;&#x27;&quot;, &#x27;.&#x27;), (&quot;&#x27;&quot;, &#x27;-&#x27;), (&quot;&#x27;&quot;, &#x27;!&#x27;), (&quot;&#x27;&quot;, &#x27;$&#x27;), (&quot;&#x27;&quot;, &#x27;&amp;&#x27;), (&quot;&#x27;&quot;, &quot;&#x27;&quot;), (&quot;&#x27;&quot;, &#x27;(&#x27;), (&quot;&#x27;&quot;, &#x27;)&#x27;), (&quot;&#x27;&quot;, &#x27;*&#x27;), (&quot;&#x27;&quot;, &#x27;+&#x27;), (&quot;&#x27;&quot;, &#x27;,&#x27;), (&quot;&#x27;&quot;, &#x27;;&#x27;), (&quot;&#x27;&quot;, &#x27;=&#x27;), (&quot;&#x27;&quot;, &#x27;/&#x27;), (&quot;&#x27;&quot;, &#x27;?&#x27;), (&quot;&#x27;&quot;, &#x27;#&#x27;), (&quot;&#x27;&quot;, &#x27;@&#x27;), (&quot;&#x27;&quot;, &#x27;%&#x27;)])])" class='grammar-token'>
-    <td>[163s]<td>
+            <tr id="grammar-production-PN_LOCAL_ESC" data-grammar-original="[166s] PN_LOCAL_ESC ::= &#x27;\&#x27; ( &#x27;_&#x27; | &#x27;~&#x27; | &#x27;.&#x27; | &#x27;-&#x27; | &#x27;!&#x27; | &#x27;$&#x27; | &#x27;&amp;&#x27; | &quot;&#x27;&quot; | &#x27;(&#x27; | &#x27;)&#x27; | &#x27;*&#x27; | &#x27;+&#x27; | &#x27;,&#x27; | &#x27;;&#x27; | &#x27;=&#x27; | &#x27;/&#x27; | &#x27;?&#x27; | &#x27;#&#x27; | &#x27;@&#x27; | &#x27;%&#x27; )" data-grammar-expression="(&#x27;,&#x27;, [(&quot;&#x27;&quot;, &#x27;\\&#x27;), (&#x27;|&#x27;, [(&quot;&#x27;&quot;, &#x27;_&#x27;), (&quot;&#x27;&quot;, &#x27;~&#x27;), (&quot;&#x27;&quot;, &#x27;.&#x27;), (&quot;&#x27;&quot;, &#x27;-&#x27;), (&quot;&#x27;&quot;, &#x27;!&#x27;), (&quot;&#x27;&quot;, &#x27;$&#x27;), (&quot;&#x27;&quot;, &#x27;&amp;&#x27;), (&quot;&#x27;&quot;, &quot;&#x27;&quot;), (&quot;&#x27;&quot;, &#x27;(&#x27;), (&quot;&#x27;&quot;, &#x27;)&#x27;), (&quot;&#x27;&quot;, &#x27;*&#x27;), (&quot;&#x27;&quot;, &#x27;+&#x27;), (&quot;&#x27;&quot;, &#x27;,&#x27;), (&quot;&#x27;&quot;, &#x27;;&#x27;), (&quot;&#x27;&quot;, &#x27;=&#x27;), (&quot;&#x27;&quot;, &#x27;/&#x27;), (&quot;&#x27;&quot;, &#x27;?&#x27;), (&quot;&#x27;&quot;, &#x27;#&#x27;), (&quot;&#x27;&quot;, &#x27;@&#x27;), (&quot;&#x27;&quot;, &#x27;%&#x27;)])])" class='grammar-token'>
+    <td>[166s]<td>
     <td><code>PN_LOCAL_ESC</code><td>
     <td>::=</td>
-    <td>'<code class='grammar-literal'>\\</code>' ('<code class='grammar-literal'>_</code>' <code>|</code> '<code class='grammar-literal'>~</code>' <code>|</code> '<code class='grammar-literal'>.</code>' <code>|</code> '<code class='grammar-literal'>-</code>' <code>|</code> '<code class='grammar-literal'>!</code>' <code>|</code> '<code class='grammar-literal'>$</code>' <code>|</code> '<code class='grammar-literal'>&amp;</code>' <code>|</code> '<code class='grammar-literal'>&#x27;</code>' <code>|</code> '<code class='grammar-literal'>(</code>' <code>|</code> '<code class='grammar-literal'>)</code>' <code>|</code> '<code class='grammar-literal'>*</code>' <code>|</code> '<code class='grammar-literal'>+</code>' <code>|</code> '<code class='grammar-literal'>,</code>' <code>|</code> '<code class='grammar-literal'>;</code>' <code>|</code> '<code class='grammar-literal'>=</code>' <code>|</code> '<code class='grammar-literal'>/</code>' <code>|</code> '<code class='grammar-literal'>?</code>' <code>|</code> '<code class='grammar-literal'>#</code>' <code>|</code> '<code class='grammar-literal'>@</code>' <code>|</code> '<code class='grammar-literal'>%</code>')</td>
+    <td>'<code class='grammar-literal'>\</code>' ('<code class='grammar-literal'>_</code>' <code>|</code> '<code class='grammar-literal'>~</code>' <code>|</code> '<code class='grammar-literal'>.</code>' <code>|</code> '<code class='grammar-literal'>-</code>' <code>|</code> '<code class='grammar-literal'>!</code>' <code>|</code> '<code class='grammar-literal'>$</code>' <code>|</code> '<code class='grammar-literal'>&amp;</code>' <code>|</code> '<code class='grammar-literal'>&#x27;</code>' <code>|</code> '<code class='grammar-literal'>(</code>' <code>|</code> '<code class='grammar-literal'>)</code>' <code>|</code> '<code class='grammar-literal'>*</code>' <code>|</code> '<code class='grammar-literal'>+</code>' <code>|</code> '<code class='grammar-literal'>,</code>' <code>|</code> '<code class='grammar-literal'>;</code>' <code>|</code> '<code class='grammar-literal'>=</code>' <code>|</code> '<code class='grammar-literal'>/</code>' <code>|</code> '<code class='grammar-literal'>?</code>' <code>|</code> '<code class='grammar-literal'>#</code>' <code>|</code> '<code class='grammar-literal'>@</code>' <code>|</code> '<code class='grammar-literal'>%</code>')</td>
 </tr>
     </tbody>
 </table>