--- a/rdf-turtle/turtle-bnf.html Fri Jun 15 08:55:36 2012 -0400
+++ b/rdf-turtle/turtle-bnf.html Fri Jun 15 14:52:51 2012 -0400
@@ -97,35 +97,23 @@
<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-RDFLiteral" data-grammar-original="[60s] RDFLiteral ::= String ( LANGTAG | ( "^^" iri ) )?" data-grammar-expression="(',', [('id', 'String'), ('?', ('|', [('id', 'LANGTAG'), (',', [("'", '^^'), ('id', 'iri')])]))])" >
- <td>[60s]</td>
+ <td>[17]</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-LanguageTag'>LanguageTag</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>
+ <tr id="grammar-production-RDFLiteral" data-grammar-original="[60s] RDFLiteral ::= String ( LANGTAG | ( "^^" iri ) )?" data-grammar-expression="(',', [('id', 'String'), ('?', ('|', [('id', 'LANGTAG'), (',', [("'", '^^'), ('id', 'iri')])]))])" >
+ <td>[18]</td>
+ <td><code>LanguageTag</code></td>
+ <td>::=</td>
+ <td><a href='#grammar-production-BASE'>BASE</a> <code>| </code><a href='#grammar-production-PREFIX'>PREFIX</a> <code>| </code><a href='#grammar-production-LANGTAG'>LANGTAG</a></td>
+</tr>
+ <tr id="grammar-production-RDFLiteral" data-grammar-original="[60s] RDFLiteral ::= String ( LANGTAG | ( "^^" iri ) )?" data-grammar-expression="(',', [('id', 'String'), ('?', ('|', [('id', 'LANGTAG'), (',', [("'", '^^'), ('id', 'iri')])]))])" >
+ <td>[19]</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>
-</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>
</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>
-</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>
-</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>
@@ -160,13 +148,13 @@
<p>Terminals:</p>
<tbody class="grammar-terminals">
<tr id="grammar-production-BASE" data-grammar-original="@@" data-grammar-expression="@@" class='grammar-token'>
- <td>[17]</td>
+ <td>[20]</td>
<td><code>BASE</code></td>
<td>::=</td>
<td>'<code class='grammar-literal'>@base</code>'</td>
</tr>
<tr id="grammar-production-prefix" data-grammar-original="@@" data-grammar-expression="@@" class='grammar-token'>
- <td>[18]</td>
+ <td>[21]</td>
<td><code>PREFIX</code></td>
<td>::=</td>
<td>'<code class='grammar-literal'>@prefix</code>'</td>
@@ -196,28 +184,28 @@
<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>
+ <td>[22]</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>
+ <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'>
- <td>[20]</td>
+ <td>[23]</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'>
- <td>[21]</td>
+ <td>[24]</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>
+ <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'>
- <td>[22]</td>
+ <td>[25]</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> <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-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> <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>
@@ -226,31 +214,31 @@
<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="[149s] STRING_LITERAL1 ::= '"' ( ( [^#x27#x5C#xA#xD]) | ECHAR | UCHAR )* '"'" data-grammar-expression="(',', [("'", '"'), ('*', ('|', [('[', '^#x27#x5C#xA#xD'), ('id', 'ECHAR'), ('id', 'UCHAR')])), ("'", '"')])" class='grammar-token'>
- <td>[149s]</td>
+ <td>[155s]</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>[156s]</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>[157s]</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>[158s]</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="[23] 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>[23]</td>
+ <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>