--- a/rdf-turtle/turtle-bnf.html Wed May 16 07:01:23 2012 -0700
+++ b/rdf-turtle/turtle-bnf.html Wed May 16 07:06:03 2012 -0700
@@ -10,13 +10,13 @@
<td>[2]<td>
<td><code>statement</code><td>
<td>::=</td>
- <td>(<a href='#grammar-production-directive'>directive</a> '<code class='grammar-literal'>.</code>' <code>|</code> <a href='#grammar-production-triples'>triples</a> '<code class='grammar-literal'>.</code>')</td>
+ <td><a href='#grammar-production-directive'>directive</a> '<code class='grammar-literal'>.</code>' <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" data-grammar-expression="('|', [('id', 'prefixID'), ('id', 'base')])" >
<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>)</td>
+ <td><a href='#grammar-production-prefixID'>prefixID</a> <code>|</code> <a href='#grammar-production-base'>base</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')])" >
<td>[4]<td>
@@ -34,7 +34,7 @@
<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>
+ <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')])), ('?', ("'", ';'))])" >
<td>[7]<td>
@@ -52,13 +52,13 @@
<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>
+ <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')])" >
<td>[10]<td>
<td><code>subject</code><td>
<td>::=</td>
- <td>(<a href='#grammar-production-iri'>iri</a> <code>|</code> <a href='#grammar-production-blank'>blank</a>)</td>
+ <td><a href='#grammar-production-iri'>iri</a> <code>|</code> <a href='#grammar-production-blank'>blank</a></td>
</tr>
<tr id="grammar-production-predicate" data-grammar-original="[11] predicate ::= iri" data-grammar-expression="('id', 'iri')" >
<td>[11]<td>
@@ -70,19 +70,19 @@
<td>[12]<td>
<td><code>object</code><td>
<td>::=</td>
- <td>(<a href='#grammar-production-iri'>iri</a> <code>|</code> <a href='#grammar-production-blank'>blank</a> <code>|</code> <a href='#grammar-production-literal'>literal</a>)</td>
+ <td><a href='#grammar-production-iri'>iri</a> <code>|</code> <a href='#grammar-production-blank'>blank</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')])" >
<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>
+ <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-blank" data-grammar-original="[14] blank ::= BlankNode| blankNodePropertyList| collection" data-grammar-expression="('|', [('id', 'BlankNode'), ('id', 'blankNodePropertyList'), ('id', 'collection')])" >
<td>[14]<td>
<td><code>blank</code><td>
<td>::=</td>
- <td>(<a href='#grammar-production-BlankNode'>BlankNode</a> <code>|</code> <a href='#grammar-production-blankNodePropertyList'>blankNodePropertyList</a> <code>|</code> <a href='#grammar-production-collection'>collection</a>)</td>
+ <td><a href='#grammar-production-BlankNode'>BlankNode</a> <code>|</code> <a href='#grammar-production-blankNodePropertyList'>blankNodePropertyList</a> <code>|</code> <a href='#grammar-production-collection'>collection</a></td>
</tr>
<tr id="grammar-production-blankNodePropertyList" data-grammar-original="[15] blankNodePropertyList ::= "[" predicateObjectList "]"" data-grammar-expression="(',', [("'", '['), ('id', 'predicateObjectList'), ("'", ']')])" >
<td>[15]<td>
@@ -100,61 +100,61 @@
<td>[60s]<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>
+ <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-NumericLiteral" data-grammar-original="[61s] NumericLiteral ::= NumericLiteralUnsigned| NumericLiteralPositive| NumericLiteralNegative" data-grammar-expression="('|', [('id', 'NumericLiteralUnsigned'), ('id', 'NumericLiteralPositive'), ('id', 'NumericLiteralNegative')])" >
<td>[61s]<td>
<td><code>NumericLiteral</code><td>
<td>::=</td>
- <td>(<a href='#grammar-production-NumericLiteralUnsigned'>NumericLiteralUnsigned</a> <code>|</code> <a href='#grammar-production-NumericLiteralPositive'>NumericLiteralPositive</a> <code>|</code> <a href='#grammar-production-NumericLiteralNegative'>NumericLiteralNegative</a>)</td>
+ <td><a href='#grammar-production-NumericLiteralUnsigned'>NumericLiteralUnsigned</a> <code>|</code> <a href='#grammar-production-NumericLiteralPositive'>NumericLiteralPositive</a> <code>|</code> <a href='#grammar-production-NumericLiteralNegative'>NumericLiteralNegative</a></td>
</tr>
<tr id="grammar-production-NumericLiteralUnsigned" data-grammar-original="[62s] NumericLiteralUnsigned ::= INTEGER| DECIMAL| DOUBLE" data-grammar-expression="('|', [('id', 'INTEGER'), ('id', 'DECIMAL'), ('id', 'DOUBLE')])" >
<td>[62s]<td>
<td><code>NumericLiteralUnsigned</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>
+ <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-NumericLiteralPositive" data-grammar-original="[63s] NumericLiteralPositive ::= INTEGER_POSITIVE| DECIMAL_POSITIVE| DOUBLE_POSITIVE" data-grammar-expression="('|', [('id', 'INTEGER_POSITIVE'), ('id', 'DECIMAL_POSITIVE'), ('id', 'DOUBLE_POSITIVE')])" >
<td>[63s]<td>
<td><code>NumericLiteralPositive</code><td>
<td>::=</td>
- <td>(<a href='#grammar-production-INTEGER_POSITIVE'>INTEGER_POSITIVE</a> <code>|</code> <a href='#grammar-production-DECIMAL_POSITIVE'>DECIMAL_POSITIVE</a> <code>|</code> <a href='#grammar-production-DOUBLE_POSITIVE'>DOUBLE_POSITIVE</a>)</td>
+ <td><a href='#grammar-production-INTEGER_POSITIVE'>INTEGER_POSITIVE</a> <code>|</code> <a href='#grammar-production-DECIMAL_POSITIVE'>DECIMAL_POSITIVE</a> <code>|</code> <a href='#grammar-production-DOUBLE_POSITIVE'>DOUBLE_POSITIVE</a></td>
</tr>
<tr id="grammar-production-NumericLiteralNegative" data-grammar-original="[64s] NumericLiteralNegative ::= INTEGER_NEGATIVE| DECIMAL_NEGATIVE| DOUBLE_NEGATIVE" data-grammar-expression="('|', [('id', 'INTEGER_NEGATIVE'), ('id', 'DECIMAL_NEGATIVE'), ('id', 'DOUBLE_NEGATIVE')])" >
<td>[64s]<td>
<td><code>NumericLiteralNegative</code><td>
<td>::=</td>
- <td>(<a href='#grammar-production-INTEGER_NEGATIVE'>INTEGER_NEGATIVE</a> <code>|</code> <a href='#grammar-production-DECIMAL_NEGATIVE'>DECIMAL_NEGATIVE</a> <code>|</code> <a href='#grammar-production-DOUBLE_NEGATIVE'>DOUBLE_NEGATIVE</a>)</td>
+ <td><a href='#grammar-production-INTEGER_NEGATIVE'>INTEGER_NEGATIVE</a> <code>|</code> <a href='#grammar-production-DECIMAL_NEGATIVE'>DECIMAL_NEGATIVE</a> <code>|</code> <a href='#grammar-production-DOUBLE_NEGATIVE'>DOUBLE_NEGATIVE</a></td>
</tr>
<tr id="grammar-production-BooleanLiteral" data-grammar-original="[65s] BooleanLiteral ::= "true"| "false"" data-grammar-expression="('|', [("'", 'true'), ("'", 'false')])" >
<td>[65s]<td>
<td><code>BooleanLiteral</code><td>
<td>::=</td>
- <td>('<code class='grammar-literal'>true</code>' <code>|</code> '<code class='grammar-literal'>false</code>')</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="[66s] String ::= STRING_LITERAL1| STRING_LITERAL2| STRING_LITERAL_LONG1| STRING_LITERAL_LONG2" data-grammar-expression="('|', [('id', 'STRING_LITERAL1'), ('id', 'STRING_LITERAL2'), ('id', 'STRING_LITERAL_LONG1'), ('id', 'STRING_LITERAL_LONG2')])" >
<td>[66s]<td>
<td><code>String</code><td>
<td>::=</td>
- <td>(<a href='#grammar-production-STRING_LITERAL1'>STRING_LITERAL1</a> <code>|</code> <a href='#grammar-production-STRING_LITERAL2'>STRING_LITERAL2</a> <code>|</code> <a href='#grammar-production-STRING_LITERAL_LONG1'>STRING_LITERAL_LONG1</a> <code>|</code> <a href='#grammar-production-STRING_LITERAL_LONG2'>STRING_LITERAL_LONG2</a>)</td>
+ <td><a href='#grammar-production-STRING_LITERAL1'>STRING_LITERAL1</a> <code>|</code> <a href='#grammar-production-STRING_LITERAL2'>STRING_LITERAL2</a> <code>|</code> <a href='#grammar-production-STRING_LITERAL_LONG1'>STRING_LITERAL_LONG1</a> <code>|</code> <a href='#grammar-production-STRING_LITERAL_LONG2'>STRING_LITERAL_LONG2</a></td>
</tr>
<tr id="grammar-production-iri" data-grammar-original="[67s] iri ::= IRIREF| PrefixedName" data-grammar-expression="('|', [('id', 'IRIREF'), ('id', 'PrefixedName')])" >
<td>[67s]<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>
+ <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="[68s] PrefixedName ::= PNAME_LN| PNAME_NS" data-grammar-expression="('|', [('id', 'PNAME_LN'), ('id', 'PNAME_NS')])" >
<td>[68s]<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>
+ <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="[69s] BlankNode ::= BLANK_NODE_LABEL| ANON" data-grammar-expression="('|', [('id', 'BLANK_NODE_LABEL'), ('id', 'ANON')])" >
<td>[69s]<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>
+ <td><a href='#grammar-production-BLANK_NODE_LABEL'>BLANK_NODE_LABEL</a> <code>|</code> <a href='#grammar-production-ANON'>ANON</a></td>
</tr>
</tbody>
<tbody class="grammar-terminals">
@@ -162,7 +162,7 @@
<td>[132s]<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>'</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>'</td>
</tr>
<tr id="grammar-production-PNAME_NS" data-grammar-original="[133s] PNAME_NS ::= PN_PREFIX? ":"" data-grammar-expression="(',', [('?', ('id', 'PN_PREFIX')), ("'", ':')])" class='grammar-token'>
<td>[133s]<td>
@@ -180,7 +180,7 @@
<td>[135s]<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>
+ <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="[19] LANGTAG ::= "@" [a-zA-Z]+ ( "-" [a-zA-Z0-9]+ )*" data-grammar-expression="(',', [("'", '@'), ('+', ('[', 'a-zA-Z')), ('*', (',', [("'", '-'), ('+', ('[', 'a-zA-Z0-9'))]))])" class='grammar-token'>
<td>[19]<td>
@@ -198,13 +198,13 @@
<td>[21]<td>
<td><code>DECIMAL</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-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="[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'>
<td>[22]<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-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>
+ <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-EXPONENT" data-grammar-original="[148s] EXPONENT ::= [eE] [+-]? [0-9]+" data-grammar-expression="(',', [('[', 'eE'), ('?', ('[', '+-')), ('+', ('[', '0-9'))])" class='grammar-token'>
<td>[148s]<td>
@@ -216,31 +216,31 @@
<td>[149s]<td>
<td><code>STRING_LITERAL1</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>'</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>'</td>
</tr>
<tr id="grammar-production-STRING_LITERAL2" data-grammar-original="[150s] STRING_LITERAL2 ::= "'" ( ( [^#x22#x5C#xA#xD]) | ECHAR | UCHAR )* "'"" data-grammar-expression="(',', [("'", "'"), ('*', ('|', [('[', '^#x22#x5C#xA#xD'), ('id', 'ECHAR'), ('id', 'UCHAR')])), ("'", "'")])" class='grammar-token'>
<td>[150s]<td>
<td><code>STRING_LITERAL2</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>"</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>"</td>
</tr>
<tr id="grammar-production-STRING_LITERAL_LONG1" data-grammar-original="[151s] STRING_LITERAL_LONG1 ::= "'''" ( ( "'" | "''" )? ( [^'\] | ECHAR | UCHAR ) )* "'''"" data-grammar-expression="(',', [("'", "'''"), ('*', (',', [('?', ('|', [("'", "'"), ("'", "''")])), ('|', [('[', "^'\\"), ('id', 'ECHAR'), ('id', 'UCHAR')])])), ("'", "'''")])" class='grammar-token'>
<td>[151s]<td>
<td><code>STRING_LITERAL_LONG1</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>
+ <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_LONG2" data-grammar-original="[152s] STRING_LITERAL_LONG2 ::= '"""' ( ( '"' | '""' )? ( [^"\] | ECHAR | UCHAR ) )* '"""'" data-grammar-expression="(',', [("'", '"""'), ('*', (',', [('?', ('|', [("'", '"'), ("'", '""')])), ('|', [('[', '^"\\'), ('id', 'ECHAR'), ('id', 'UCHAR')])])), ("'", '"""')])" class='grammar-token'>
<td>[152s]<td>
<td><code>STRING_LITERAL_LONG2</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>
+ <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="[19] 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'>
<td>[19]<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>
+ <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="[153s] ECHAR ::= "\" [tbnrf\"']" data-grammar-expression="(',', [("'", '\\'), ('[', 'tbnrf\\"\'')])" class='grammar-token'>
<td>[153s]<td>
@@ -258,7 +258,7 @@
<td>[155s]<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>)</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="[156s] ANON ::= "[" (WS)* "]"" data-grammar-expression="(',', [("'", '['), ('*', ('id', 'WS')), ("'", ']')])" class='grammar-token'>
<td>[156s]<td>
@@ -270,37 +270,37 @@
<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>
+ <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="[158s] PN_CHARS_U ::= PN_CHARS_BASE| '_'| ':'" data-grammar-expression="('|', [('id', 'PN_CHARS_BASE'), ("'", '_'), ("'", ':')])" 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>
+ <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="[160s] 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'>
<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>
+ <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="[161s] 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'>
<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>
+ <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="[162s] 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'>
<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>
+ <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="[163s] PLX ::= PERCENT | PN_LOCAL_ESC" data-grammar-expression="('|', [('id', 'PERCENT'), ('id', 'PN_LOCAL_ESC')])" 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>
+ <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="[164s] PERCENT ::= '%' HEX HEX" data-grammar-expression="(',', [("'", '%'), ('id', 'HEX'), ('id', 'HEX')])" class='grammar-token'>
<td>[164s]<td>
@@ -312,13 +312,13 @@
<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>
+ <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="[166s] PN_LOCAL_ESC ::= '\' ( '_' | '~' | '.' | '-' | '!' | '$' | '&' | "'" | '(' | ')' | '*' | '+' | ',' | ';' | '=' | '/' | '?' | '#' | '@' | '%' )" data-grammar-expression="(',', [("'", '\\'), ('|', [("'", '_'), ("'", '~'), ("'", '.'), ("'", '-'), ("'", '!'), ("'", '$'), ("'", '&'), ("'", "'"), ("'", '('), ("'", ')'), ("'", '*'), ("'", '+'), ("'", ','), ("'", ';'), ("'", '='), ("'", '/'), ("'", '?'), ("'", '#'), ("'", '@'), ("'", '%')])])" 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'>&</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>' <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'>&</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>' <code>|</code> '<code class='grammar-literal'>%</code>'</td>
</tr>
</tbody>
</table>