--- a/rdf-turtle/turtle-bnf.html Fri Jan 03 16:07:16 2014 -0500
+++ b/rdf-turtle/turtle-bnf.html Fri Jan 03 16:34:03 2014 -0500
@@ -1,301 +1,301 @@
<table class="grammar">
<tbody class="grammar-productions">
- <tr id="grammar-production-turtleDoc" data-grammar-original="[1] turtleDoc ::= statement*" data-grammar-expression="('*', ('id', 'statement'))" >
+ <tr id="grammar-production-turtleDoc" >
<td>[1]</td>
<td><code>turtleDoc</code></td>
<td>::=</td>
<td><a href='#grammar-production-statement'>statement</a><code class='grammar-star'>*</code></td>
</tr>
- <tr id="grammar-production-statement" data-grammar-original="[2] statement ::= directive| triples "."" data-grammar-expression="('|', [('id', 'directive'), (',', [('id', 'triples'), ("'", '.')])])" >
+ <tr id="grammar-production-statement" >
<td>[2]</td>
<td><code>statement</code></td>
<td>::=</td>
<td><a href='#grammar-production-directive'>directive</a> <code>| </code> <a href='#grammar-production-triples'>triples</a> '<code class='grammar-literal'>.</code>'</td>
</tr>
- <tr id="grammar-production-directive" data-grammar-original="[3] directive ::= prefixID| base | sparqlPrefix | sparqlBase" data-grammar-expression="('|', [('id', 'prefixID'), ('id', 'base'), ('id', 'sparqlPrefix'), ('id', 'sparqlBase')])" >
+ <tr id="grammar-production-directive" >
<td>[3]</td>
<td><code>directive</code></td>
<td>::=</td>
<td><a href='#grammar-production-prefixID'>prefixID</a> <code>| </code> <a href='#grammar-production-base'>base</a> <code>| </code> <a href='#grammar-production-sparqlPrefix'>sparqlPrefix</a> <code>| </code> <a href='#grammar-production-sparqlBase'>sparqlBase</a></td>
</tr>
- <tr id="grammar-production-prefixID" data-grammar-original="[4] prefixID ::= '@prefix' PNAME_NS IRIREF "."" data-grammar-expression="(',', [("'", '@prefix'), ('id', 'PNAME_NS'), ('id', 'IRIREF'), ("'", '.')])" >
+ <tr id="grammar-production-prefixID" >
<td>[4]</td>
<td><code>prefixID</code></td>
<td>::=</td>
<td>'<code class='grammar-literal'>@prefix</code>' <a href='#grammar-production-PNAME_NS'>PNAME_NS</a> <a href='#grammar-production-IRIREF'>IRIREF</a> '<code class='grammar-literal'>.</code>'</td>
</tr>
- <tr id="grammar-production-base" data-grammar-original="[5] base ::= '@base' IRIREF "."" data-grammar-expression="(',', [("'", '@base'), ('id', 'IRIREF'), ("'", '.')])" >
+ <tr id="grammar-production-base" >
<td>[5]</td>
<td><code>base</code></td>
<td>::=</td>
<td>'<code class='grammar-literal'>@base</code>' <a href='#grammar-production-IRIREF'>IRIREF</a> '<code class='grammar-literal'>.</code>'</td>
</tr>
- <tr id="grammar-production-sparqlBase" data-grammar-original="[29*] sparqlBase ::= [Bb][Aa][Ss][Ee] IRIREF" data-grammar-expression="(',', [('[', 'Bb'), ('[', 'Aa'), ('[', 'Ss'), ('[', 'Ee'), ('id', 'IRIREF')])" >
+ <tr id="grammar-production-sparqlBase" >
<td>[5s]</td>
<td><code>sparqlBase</code></td>
<td>::=</td>
<td><span class="add">"<code class="grammar-literal">BASE</code>"</span> <a href="#grammar-production-IRIREF">IRIREF</a></td>
</tr>
- <tr id="grammar-production-sparqlPrefix" data-grammar-original="[28*] sparqlPrefix ::= [Pp][Rr][Ee][Ff][Ii][Xx] PNAME_NS IRIREF" data-grammar-expression="(',', [('[', 'Pp'), ('[', 'Rr'), ('[', 'Ee'), ('[', 'Ff'), ('[', 'Ii'), ('[', 'Xx'), ('id', 'PNAME_NS'), ('id', 'IRIREF')])" >
+ <tr id="grammar-production-sparqlPrefix" >
<td>[6s]</td>
<td><code>sparqlPrefix</code></td>
<td>::=</td>
<td><span class="add">"<code class="grammar-literal">PREFIX</code>"</span> <a href="#grammar-production-PNAME_NS">PNAME_NS</a> <a href="#grammar-production-IRIREF">IRIREF</a></td>
</tr>
- <tr id="grammar-production-triples" data-grammar-original="[6] triples ::= subject predicateObjectList |blankNodePropertyList predicateObjectList?" data-grammar-expression="('|', [(',', [('id', 'subject'), ('id', 'predicateObjectList')]), (',', [('id', 'blankNodePropertyList'), ('?', ('id', 'predicateObjectList'))])])" >
+ <tr id="grammar-production-triples" >
<td>[6]</td>
<td><code>triples</code></td>
<td>::=</td>
<td><a href='#grammar-production-subject'>subject</a> <a href='#grammar-production-predicateObjectList'>predicateObjectList</a> <code>| </code> <a href='#grammar-production-blankNodePropertyList'>blankNodePropertyList</a> <a href='#grammar-production-predicateObjectList'>predicateObjectList</a>?</td>
</tr>
- <tr id="grammar-production-predicateObjectList" data-grammar-original="[7] predicateObjectList ::= verb objectList (';' (verb objectList)? )*" data-grammar-expression="(',', [('id', 'verb'), ('id', 'objectList'), ('*', (',', [("'", ';'), ('?', (',', [('id', 'verb'), ('id', 'objectList')]))]))])" >
+ <tr id="grammar-production-predicateObjectList" >
<td>[7]</td>
<td><code>predicateObjectList</code></td>
<td>::=</td>
<td><a href='#grammar-production-verb'>verb</a> <a href='#grammar-production-objectList'>objectList</a> ('<code class='grammar-literal'>;</code>' (<a href='#grammar-production-verb'>verb</a> <a href='#grammar-production-objectList'>objectList</a>)?)<code class='grammar-star'>*</code></td>
</tr>
- <tr id="grammar-production-objectList" data-grammar-original="[8] objectList ::= object ( "," object )*" data-grammar-expression="(',', [('id', 'object'), ('*', (',', [("'", ','), ('id', 'object')]))])" >
+ <tr id="grammar-production-objectList" >
<td>[8]</td>
<td><code>objectList</code></td>
<td>::=</td>
<td><a href='#grammar-production-object'>object</a> ('<code class='grammar-literal'>,</code>' <a href='#grammar-production-object'>object</a>)<code class='grammar-star'>*</code></td>
</tr>
- <tr id="grammar-production-verb" data-grammar-original="[9] verb ::= predicate| "a"" data-grammar-expression="('|', [('id', 'predicate'), ("'", 'a')])" >
+ <tr id="grammar-production-verb" >
<td>[9]</td>
<td><code>verb</code></td>
<td>::=</td>
<td><a href='#grammar-production-predicate'>predicate</a> <code>| </code> '<code class='grammar-literal'>a</code>'</td>
</tr>
- <tr id="grammar-production-subject" data-grammar-original="[10] subject ::= iri| blank" data-grammar-expression="('|', [('id', 'iri'), ('id', 'blank')])" >
+ <tr id="grammar-production-subject" >
<td>[10]</td>
<td><code>subject</code></td>
<td>::=</td>
<td><a href="#grammar-production-iri">iri</a> <code>| </code> <a href="#grammar-production-BlankNode" class="add">BlankNode</a> <code class="add">| </code> <a href="#grammar-production-collection" class="add">collection</a></td>
</tr>
- <tr id="grammar-production-predicate" data-grammar-original="[11] predicate ::= iri" data-grammar-expression="('id', 'iri')" >
+ <tr id="grammar-production-predicate" >
<td>[11]</td>
<td><code>predicate</code></td>
<td>::=</td>
<td><a href='#grammar-production-iri'>iri</a></td>
</tr>
- <tr id="grammar-production-object" data-grammar-original="[12] object ::= iri| blank| blankNodePropertyList| literal" data-grammar-expression="('|', [('id', 'iri'), ('id', 'blank'), ('id', 'blankNodePropertyList'), ('id', 'literal')])" >
+ <tr id="grammar-production-object" >
<td>[12]</td>
<td><code>object</code></td>
<td>::=</td>
<td><a href="#grammar-production-iri">iri</a> <code>| </code> <a href="#grammar-production-BlankNode" class="add">BlankNode</a> <code class="add">| </code> <a href="#grammar-production-collection" class="add">collection</a> <code>| </code> <a href="#grammar-production-blankNodePropertyList">blankNodePropertyList</a> <code>| </code> <a href="#grammar-production-literal">literal</a></td>
</tr>
- <tr id="grammar-production-literal" data-grammar-original="[13] literal ::= RDFLiteral| NumericLiteral| BooleanLiteral" data-grammar-expression="('|', [('id', 'RDFLiteral'), ('id', 'NumericLiteral'), ('id', 'BooleanLiteral')])" >
+ <tr id="grammar-production-literal" >
<td>[13]</td>
<td><code>literal</code></td>
<td>::=</td>
<td><a href='#grammar-production-RDFLiteral'>RDFLiteral</a> <code>| </code> <a href='#grammar-production-NumericLiteral'>NumericLiteral</a> <code>| </code> <a href='#grammar-production-BooleanLiteral'>BooleanLiteral</a></td>
</tr>
- <tr id="grammar-production-blankNodePropertyList" data-grammar-original="[15] blankNodePropertyList ::= "[" predicateObjectList "]"" data-grammar-expression="(',', [("'", '['), ('id', 'predicateObjectList'), ("'", ']')])" >
+ <tr id="grammar-production-blankNodePropertyList" >
<td>[14]</td>
<td><code>blankNodePropertyList</code></td>
<td>::=</td>
<td>'<code class='grammar-literal'>[</code>' <a href='#grammar-production-predicateObjectList'>predicateObjectList</a> '<code class='grammar-literal'>]</code>'</td>
</tr>
- <tr id="grammar-production-collection" data-grammar-original="[16] collection ::= "(" object* ")"" data-grammar-expression="(',', [("'", '('), ('*', ('id', 'object')), ("'", ')')])" >
+ <tr id="grammar-production-collection" >
<td>[15]</td>
<td><code>collection</code></td>
<td>::=</td>
<td>'<code class='grammar-literal'>(</code>' <a href='#grammar-production-object'>object</a><code class='grammar-star'>*</code> '<code class='grammar-literal'>)</code>'</td>
</tr>
- <tr id="grammar-production-NumericLiteral" data-grammar-original="[17] NumericLiteral ::= INTEGER | DECIMAL | DOUBLE" data-grammar-expression="('|', [('id', 'INTEGER'), ('id', 'DECIMAL'), ('id', 'DOUBLE')])" >
+ <tr id="grammar-production-NumericLiteral" >
<td>[16]</td>
<td><code>NumericLiteral</code></td>
<td>::=</td>
<td><a href='#grammar-production-INTEGER'>INTEGER</a> <code>| </code> <a href='#grammar-production-DECIMAL'>DECIMAL</a> <code>| </code> <a href='#grammar-production-DOUBLE'>DOUBLE</a></td>
</tr>
- <tr id="grammar-production-RDFLiteral" data-grammar-original="[128s] RDFLiteral ::= String ( LANGTAG | ( "^^" iri ) )?" data-grammar-expression="(',', [('id', 'String'), ('?', ('|', [('id', 'LANGTAG'), (',', [("'", '^^'), ('id', 'iri')])]))])" >
+ <tr id="grammar-production-RDFLiteral" >
<td>[128s]</td>
<td><code>RDFLiteral</code></td>
<td>::=</td>
<td><a href='#grammar-production-String'>String</a> (<a href='#grammar-production-LANGTAG'>LANGTAG</a> <code>| </code> '<code class='grammar-literal'>^^</code>' <a href='#grammar-production-iri'>iri</a>)?</td>
</tr>
- <tr id="grammar-production-BooleanLiteral" data-grammar-original="[133s] BooleanLiteral ::= "true"| "false"" data-grammar-expression="('|', [("'", 'true'), ("'", 'false')])" >
+ <tr id="grammar-production-BooleanLiteral" >
<td>[133s]</td>
<td><code>BooleanLiteral</code></td>
<td>::=</td>
<td>'<code class='grammar-literal'>true</code>' <code>| </code> '<code class='grammar-literal'>false</code>'</td>
</tr>
- <tr id="grammar-production-String" data-grammar-original="[18] String ::= STRING_LITERAL_QUOTE| STRING_LITERAL_SINGLE_QUOTE| STRING_LITERAL_LONG_SINGLE_QUOTE| STRING_LITERAL_LONG_QUOTE" data-grammar-expression="('|', [('id', 'STRING_LITERAL_QUOTE'), ('id', 'STRING_LITERAL_SINGLE_QUOTE'), ('id', 'STRING_LITERAL_LONG_SINGLE_QUOTE'), ('id', 'STRING_LITERAL_LONG_QUOTE')])" >
+ <tr id="grammar-production-String" >
<td>[17]</td>
<td><code>String</code></td>
<td>::=</td>
<td><a href='#grammar-production-STRING_LITERAL_QUOTE'>STRING_LITERAL_QUOTE</a> <code>| </code> <a href='#grammar-production-STRING_LITERAL_SINGLE_QUOTE'>STRING_LITERAL_SINGLE_QUOTE</a> <code>| </code> <a href='#grammar-production-STRING_LITERAL_LONG_SINGLE_QUOTE'>STRING_LITERAL_LONG_SINGLE_QUOTE</a> <code>| </code> <a href='#grammar-production-STRING_LITERAL_LONG_QUOTE'>STRING_LITERAL_LONG_QUOTE</a></td>
</tr>
- <tr id="grammar-production-iri" data-grammar-original="[135s] iri ::= IRIREF| PrefixedName" data-grammar-expression="('|', [('id', 'IRIREF'), ('id', 'PrefixedName')])" >
+ <tr id="grammar-production-iri" >
<td>[135s]</td>
<td><code>iri</code></td>
<td>::=</td>
<td><a href='#grammar-production-IRIREF'>IRIREF</a> <code>| </code> <a href='#grammar-production-PrefixedName'>PrefixedName</a></td>
</tr>
- <tr id="grammar-production-PrefixedName" data-grammar-original="[136s] PrefixedName ::= PNAME_LN| PNAME_NS" data-grammar-expression="('|', [('id', 'PNAME_LN'), ('id', 'PNAME_NS')])" >
+ <tr id="grammar-production-PrefixedName" >
<td>[136s]</td>
<td><code>PrefixedName</code></td>
<td>::=</td>
<td><a href='#grammar-production-PNAME_LN'>PNAME_LN</a> <code>| </code> <a href='#grammar-production-PNAME_NS'>PNAME_NS</a></td>
</tr>
- <tr id="grammar-production-BlankNode" data-grammar-original="[137s] BlankNode ::= BLANK_NODE_LABEL| ANON" data-grammar-expression="('|', [('id', 'BLANK_NODE_LABEL'), ('id', 'ANON')])" >
+ <tr id="grammar-production-BlankNode" >
<td>[137s]</td>
<td><code>BlankNode</code></td>
<td>::=</td>
<td><a href='#grammar-production-BLANK_NODE_LABEL'>BLANK_NODE_LABEL</a> <code>| </code> <a href='#grammar-production-ANON'>ANON</a></td>
</tr>
-<tr><td colspan="5"><h4 id="terminals">Productions for terminals</h4></td></tr>
- <tr id="grammar-production-IRIREF" data-grammar-original="[19] IRIREF ::= '<' ([^#x00-#x20<>"{}|^`\] | UCHAR)* '>'" data-grammar-expression="(',', [("'", '<'), ('*', ('|', [('[', '^#x00-#x20<>\\"{}|^`\\'), ('id', 'UCHAR')])), ("'", '>')])" class='grammar-token'>
+<tr><td colspan="4"><h4 id="terminals">Productions for terminals</h4></td></tr>
+ <tr id="grammar-production-IRIREF" class='grammar-token'>
<td>[18]</td>
<td><code>IRIREF</code></td>
<td>::=</td>
<td>'<code class='grammar-literal'><</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'>></code>'<span class="grammar_comment"> /* #x00=NULL #01-#x1F=control codes #x20=space */</span></td>
</tr>
- <tr id="grammar-production-PNAME_NS" data-grammar-original="[139s] PNAME_NS ::= PN_PREFIX? ":"" data-grammar-expression="(',', [('?', ('id', 'PN_PREFIX')), ("'", ':')])" class='grammar-token'>
+ <tr id="grammar-production-PNAME_NS" class='grammar-token'>
<td>[139s]</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="[140s] PNAME_LN ::= PNAME_NS PN_LOCAL" data-grammar-expression="(',', [('id', 'PNAME_NS'), ('id', 'PN_LOCAL')])" class='grammar-token'>
+ <tr id="grammar-production-PNAME_LN" class='grammar-token'>
<td>[140s]</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="[141s] BLANK_NODE_LABEL ::= '_:' ( PN_CHARS_U | [0-9] ) ((PN_CHARS|'.')* PN_CHARS)?" data-grammar-expression="(',', [("'", '_:'), ('|', [('id', 'PN_CHARS_U'), ('[', '0-9')]), ('?', (',', [('*', ('|', [('id', 'PN_CHARS'), ("'", '.')])), ('id', 'PN_CHARS')]))])" class='grammar-token'>
+ <tr id="grammar-production-BLANK_NODE_LABEL" class='grammar-token'>
<td>[141s]</td>
<td><code>BLANK_NODE_LABEL</code></td>
<td>::=</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="[144s] LANGTAG ::= "@" [a-zA-Z]+ ( "-" [a-zA-Z0-9]+ )*" data-grammar-expression="(',', [("'", '@'), ('+', ('[', 'a-zA-Z')), ('*', (',', [("'", '-'), ('+', ('[', 'a-zA-Z0-9'))]))])" class='grammar-token'>
+ <tr id="grammar-production-LANGTAG" class='grammar-token'>
<td>[144s]</td>
<td><code>LANGTAG</code></td>
<td>::=</td>
<td>'<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="[20] INTEGER ::= [+-]? [0-9]+" data-grammar-expression="(',', [('?', ('[', '+-')), ('+', ('[', '0-9'))])" class='grammar-token'>
+ <tr id="grammar-production-INTEGER" class='grammar-token'>
<td>[19]</td>
<td><code>INTEGER</code></td>
<td>::=</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="[21] DECIMAL ::= [+-]? ( ([0-9])* '.' ([0-9])+ )" data-grammar-expression="(',', [('?', ('[', '+-')), (',', [('*', ('[', '0-9')), ("'", '.'), ('+', ('[', '0-9'))])])" class='grammar-token'>
+ <tr id="grammar-production-DECIMAL" class='grammar-token'>
<td>[20]</td>
<td><code>DECIMAL</code></td>
<td>::=</td>
<td>[<code class='grammar-chars'>+-</code>]? [<code class='grammar-chars'>0-9</code>]<code class='grammar-star'>*</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="[22] DOUBLE ::= [+-]? ( [0-9]+ '.' [0-9]* EXPONENT | '.' ([0-9])+ EXPONENT | ([0-9])+EXPONENT )" data-grammar-expression="(',', [('?', ('[', '+-')), ('|', [(',', [('+', ('[', '0-9')), ("'", '.'), ('*', ('[', '0-9')), ('id', 'EXPONENT')]), (',', [("'", '.'), ('+', ('[', '0-9')), ('id', 'EXPONENT')]), (',', [('+', ('[', '0-9')), ('id', 'EXPONENT')])])])" class='grammar-token'>
+ <tr id="grammar-production-DOUBLE" class='grammar-token'>
<td>[21]</td>
<td><code>DOUBLE</code></td>
<td>::=</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-star'>*</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></td>
</tr>
- <tr id="grammar-production-EXPONENT" data-grammar-original="[154s] EXPONENT ::= [eE] [+-]? [0-9]+" data-grammar-expression="(',', [('[', 'eE'), ('?', ('[', '+-')), ('+', ('[', '0-9'))])" class='grammar-token'>
+ <tr id="grammar-production-EXPONENT" class='grammar-token'>
<td>[154s]</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_LITERAL_QUOTE" data-grammar-original="[23] STRING_LITERAL_QUOTE ::= '"' ( [^#x22#x5C#xA#xD] | ECHAR | UCHAR )* '"'" data-grammar-expression="(',', [("'", '"'), ('*', ('|', [('[', '^#x22#x5C#xA#xD'), ('id', 'ECHAR'), ('id', 'UCHAR')])), ("'", '"')])" class='grammar-token'>
+ <tr id="grammar-production-STRING_LITERAL_QUOTE" class='grammar-token'>
<td>[22]</td>
<td><code>STRING_LITERAL_QUOTE</code></td>
<td>::=</td>
<td>'<code class='grammar-literal'>"</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'>"</code>'<span class="grammar_comment"> /* #x22=" #x5C=\ #xA=new line #xD=carriage return */</span></td>
</tr>
- <tr id="grammar-production-STRING_LITERAL_SINGLE_QUOTE" data-grammar-original="[24] STRING_LITERAL_SINGLE_QUOTE ::= "'" ( [^#x27#x5C#xA#xD] | ECHAR | UCHAR )* "'"" data-grammar-expression="(',', [("'", "'"), ('*', ('|', [('[', '^#x27#x5C#xA#xD'), ('id', 'ECHAR'), ('id', 'UCHAR')])), ("'", "'")])" class='grammar-token'>
+ <tr id="grammar-production-STRING_LITERAL_SINGLE_QUOTE" class='grammar-token'>
<td>[23]</td>
<td><code>STRING_LITERAL_SINGLE_QUOTE</code></td>
<td>::=</td>
<td>"<code class="grammar-literal">'</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">'</code>" <a href='#grammar-production-EXPONENT'>EXPONENT</a>)<span class="grammar_comment"> /* #x27=' #x5C=\ #xA=new line #xD=carriage return */</span></td>
</tr>
- <tr id="grammar-production-STRING_LITERAL_LONG_SINGLE_QUOTE" data-grammar-original="[25] STRING_LITERAL_LONG_SINGLE_QUOTE ::= "'''" ( ( "'" | "''" )? ( [^'\] | ECHAR | UCHAR ) )* "'''"" data-grammar-expression="(',', [("'", "'''"), ('*', (',', [('?', ('|', [("'", "'"), ("'", "''")])), ('|', [('[', "^'\\"), ('id', 'ECHAR'), ('id', 'UCHAR')])])), ("'", "'''")])" class='grammar-token'>
+ <tr id="grammar-production-STRING_LITERAL_LONG_SINGLE_QUOTE" class='grammar-token'>
<td>[24]</td>
<td><code>STRING_LITERAL_LONG_SINGLE_QUOTE</code></td>
<td>::=</td>
<td>"<code class="grammar-literal">'''</code>" (("<code class="grammar-literal">'</code>" <code>| </code> "<code class="grammar-literal">''</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">'''</code>"</td>
</tr>
- <tr id="grammar-production-STRING_LITERAL_LONG_QUOTE" data-grammar-original="[26] STRING_LITERAL_LONG_QUOTE ::= '"""' ( ( '"' | '""' )? ( [^"\] | ECHAR | UCHAR ) )* '"""'" data-grammar-expression="(',', [("'", '"""'), ('*', (',', [('?', ('|', [("'", '"'), ("'", '""')])), ('|', [('[', '^"\\'), ('id', 'ECHAR'), ('id', 'UCHAR')])])), ("'", '"""')])" class='grammar-token'>
+ <tr id="grammar-production-STRING_LITERAL_LONG_QUOTE" class='grammar-token'>
<td>[25]</td>
<td><code>STRING_LITERAL_LONG_QUOTE</code></td>
<td>::=</td>
<td>'<code class='grammar-literal'>"""</code>' (('<code class='grammar-literal'>"</code>' <code>| </code> '<code class='grammar-literal'>""</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'>"""</code>'</td>
</tr>
- <tr id="grammar-production-UCHAR" data-grammar-original="[27] UCHAR ::= ( "\u" HEX HEX HEX HEX )| ( "\U" HEX HEX HEX HEX HEX HEX HEX HEX )" data-grammar-expression="('|', [(',', [("'", '\\u'), ('id', 'HEX'), ('id', 'HEX'), ('id', 'HEX'), ('id', 'HEX')]), (',', [("'", '\\U'), ('id', 'HEX'), ('id', 'HEX'), ('id', 'HEX'), ('id', 'HEX'), ('id', 'HEX'), ('id', 'HEX'), ('id', 'HEX'), ('id', 'HEX')])])" class='grammar-token'>
+ <tr id="grammar-production-UCHAR" class='grammar-token'>
<td>[26]</td>
<td><code>UCHAR</code></td>
<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="[159s] ECHAR ::= "\" [tbnrf\"']" data-grammar-expression="(',', [("'", '\\'), ('[', 'tbnrf\\"\'')])" class='grammar-token'>
+ <tr id="grammar-production-ECHAR" class='grammar-token'>
<td>[159s]</td>
<td><code>ECHAR</code></td>
<td>::=</td>
<td>'<code class='grammar-literal'>\</code>' [<code class='grammar-chars'>tbnrf"'\</code>]</td>
</tr>
- <tr id="grammar-production-WS" data-grammar-original="[161s] WS ::= #x20 | #x9 | #xD | #xA" data-grammar-expression="('|', [('#', '#x20'), ('#', '#x9'), ('#', '#xD'), ('#', '#xA')])" class='grammar-token'>
+ <tr id="grammar-production-WS" class='grammar-token'>
<td>[161s]</td>
<td><code>WS</code></td>
<td>::=</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><span class="grammar_comment"> /* #x20=space #x9=character tabulation #xD=carriage return #xA=new line */</span></td>
</tr>
- <tr id="grammar-production-ANON" data-grammar-original="[162s] ANON ::= "[" WS* "]"" data-grammar-expression="(',', [("'", '['), ('*', ('id', 'WS')), ("'", ']')])" class='grammar-token'>
+ <tr id="grammar-production-ANON" class='grammar-token'>
<td>[162s]</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="[163s] 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="('|', [('[', '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')])" class='grammar-token'>
+ <tr id="grammar-production-PN_CHARS_BASE" class='grammar-token'>
<td>[163s]</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">#<span class="add">x</span>00C0-#<span class="add">x</span>00D6</code>] <code>| </code> [<code class="grammar-chars">#<span class="add">x</span>00D8-#<span class="add">x</span>00F6</code>] <code>| </code> [<code class="grammar-chars">#<span class="add">x</span>00F8-#<span class="add">x</span>02FF</code>] <code>| </code> [<code class="grammar-chars">#<span class="add">x</span>0370-#<span class="add">x</span>037D</code>] <code>| </code> [<code class="grammar-chars">#<span class="add">x</span>037F-#<span class="add">x</span>1FFF</code>] <code>| </code> [<code class="grammar-chars">#<span class="add">x</span>200C-#<span class="add">x</span>200D</code>] <code>| </code> [<code class="grammar-chars">#<span class="add">x</span>2070-#<span class="add">x</span>218F</code>] <code>| </code> [<code class="grammar-chars">#<span class="add">x</span>2C00-#<span class="add">x</span>2FEF</code>] <code>| </code> [<code class="grammar-chars">#<span class="add">x</span>3001-#<span class="add">x</span>D7FF</code>] <code>| </code> [<code class="grammar-chars">#<span class="add">x</span>F900-#<span class="add">x</span>FDCF</code>] <code>| </code> [<code class="grammar-chars">#<span class="add">x</span>FDF0-#<span class="add">x</span>FFFD</code>] <code>| </code> [<code class="grammar-chars">#<span class="add">x</span>10000-#<span class="add">x</span>EFFFF</code>]</td>
</tr>
- <tr id="grammar-production-PN_CHARS_U" data-grammar-original="[164s] PN_CHARS_U ::= PN_CHARS_BASE| '_'" data-grammar-expression="('|', [('id', 'PN_CHARS_BASE'), ("'", '_')])" class='grammar-token'>
+ <tr id="grammar-production-PN_CHARS_U" class='grammar-token'>
<td>[164s]</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>'</td>
</tr>
- <tr id="grammar-production-PN_CHARS" data-grammar-original="[166s] PN_CHARS ::= PN_CHARS_U| "-"| [0-9]| #00B7| [#0300-#036F]| [#203F-#2040]" data-grammar-expression="('|', [('id', 'PN_CHARS_U'), ("'", '-'), ('[', '0-9'), ('#', '#00B7'), ('[', '#0300-#036F'), ('[', '#203F-#2040')])" class='grammar-token'>
+ <tr id="grammar-production-PN_CHARS" class='grammar-token'>
<td>[166s]</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">#<span class="add">x</span>00B7</code> <code>| </code> [<code class="grammar-chars">#<span class="add">x</span>0300-#<span class="add">x</span>036F</code>] <code>| </code> [<code class="grammar-chars">#<span class="add">x</span>203F-#<span class="add">x</span>2040</code>]</td>
</tr>
- <tr id="grammar-production-PN_PREFIX" data-grammar-original="[167s] PN_PREFIX ::= PN_CHARS_BASE ( ( PN_CHARS | "." )* PN_CHARS )?" data-grammar-expression="(',', [('id', 'PN_CHARS_BASE'), ('?', (',', [('*', ('|', [('id', 'PN_CHARS'), ("'", '.')])), ('id', 'PN_CHARS')]))])" class='grammar-token'>
+ <tr id="grammar-production-PN_PREFIX" class='grammar-token'>
<td>[167s]</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="[168s] PN_LOCAL ::= ( PN_CHARS_U | ':' | [0-9] | PLX ) ( ( PN_CHARS | '.' | ':' | PLX )* ( PN_CHARS | ':' | PLX ) ) ?" data-grammar-expression="(',', [('|', [('id', 'PN_CHARS_U'), ("'", ':'), ('[', '0-9'), ('id', 'PLX')]), ('?', (',', [('*', ('|', [('id', 'PN_CHARS'), ("'", '.'), ("'", ':'), ('id', 'PLX')])), ('|', [('id', 'PN_CHARS'), ("'", ':'), ('id', 'PLX')])]))])" class='grammar-token'>
+ <tr id="grammar-production-PN_LOCAL" class='grammar-token'>
<td>[168s]</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-literal'>:</code>' <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> '<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> '<code class='grammar-literal'>:</code>' <code>| </code> <a href='#grammar-production-PLX'>PLX</a>))?</td>
</tr>
- <tr id="grammar-production-PLX" data-grammar-original="[169s] PLX ::= PERCENT | PN_LOCAL_ESC" data-grammar-expression="('|', [('id', 'PERCENT'), ('id', 'PN_LOCAL_ESC')])" class='grammar-token'>
+ <tr id="grammar-production-PLX" class='grammar-token'>
<td>[169s]</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="[170s] PERCENT ::= '%' HEX HEX" data-grammar-expression="(',', [("'", '%'), ('id', 'HEX'), ('id', 'HEX')])" class='grammar-token'>
+ <tr id="grammar-production-PERCENT" class='grammar-token'>
<td>[170s]</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="[171s] HEX ::= [0-9] | [A-F] | [a-f]" data-grammar-expression="('|', [('[', '0-9'), ('[', 'A-F'), ('[', 'a-f')])" class='grammar-token'>
+ <tr id="grammar-production-HEX" class='grammar-token'>
<td>[171s]</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="[172s] PN_LOCAL_ESC ::= '\' ( '_' | '~' | '.' | '-' | '!' | '$' | '&' | "'" | '(' | ')' | '*' | '+' | ',' | ';' | '=' | '/' | '?' | '#' | '@' | '%' )" data-grammar-expression="(',', [("'", '\\'), ('|', [("'", '_'), ("'", '~'), ("'", '.'), ("'", '-'), ("'", '!'), ("'", '$'), ("'", '&'), ("'", "'"), ("'", '('), ("'", ')'), ("'", '*'), ("'", '+'), ("'", ','), ("'", ';'), ("'", '='), ("'", '/'), ("'", '?'), ("'", '#'), ("'", '@'), ("'", '%')])])" class='grammar-token'>
+ <tr id="grammar-production-PN_LOCAL_ESC" class='grammar-token'>
<td>[172s]</td>
<td><code>PN_LOCAL_ESC</code></td>
<td>::=</td>