--- a/rdf-turtle/n-prime-bnf.html Tue May 01 13:11:19 2012 -0700
+++ b/rdf-turtle/n-prime-bnf.html Tue May 01 13:11:31 2012 -0700
@@ -1,107 +1,97 @@
<table class="grammar">
- <tbody>
- <tr id="grammar-production-ntriplesDoc" data-grammar-original="[1] ntriplesDoc ::= triple? (EOL triple)* EOL?" data-grammar-expression="(',', [('?', ('id', 'triple')), ('*', (',', [('id', 'EOL'), ('id', 'triple')])), ('?', ('id', 'EOL'))])" >
+ <tbody class="grammar-productions">
+ <tr id="grammar-production-ntriplesDoc" data-grammar-original="[1] ntriplesDoc ::= triple? (EOL triple)* EOL?" data-grammar-expression="(',', [('?', ('id', 'triple')), ('*', (',', [('id', 'EOL'), ('id', 'triple')])), ('?', ('id', 'EOL'))])" >
<td>[1]<td>
<td><code>ntriplesDoc</code><td>
<td>::=</td>
<td>(<a href='#grammar-production-triple'>triple</a>)? (<a href='#grammar-production-EOL'>EOL</a> <a href='#grammar-production-triple'>triple</a>)<code class='grammar-star'>*</code> (<a href='#grammar-production-EOL'>EOL</a>)?</td>
</tr>
- <tr id="grammar-production-triple" data-grammar-original="[2] triple ::= subj pred obj '.'" data-grammar-expression="(',', [('id', 'subj'), ('id', 'pred'), ('id', 'obj'), ("'", '.')])" >
+ <tr id="grammar-production-triple" data-grammar-original="[2] triple ::= subj pred obj '.'" data-grammar-expression="(',', [('id', 'subj'), ('id', 'pred'), ('id', 'obj'), ("'", '.')])" >
<td>[2]<td>
<td><code>triple</code><td>
<td>::=</td>
<td><a href='#grammar-production-subj'>subj</a> <a href='#grammar-production-pred'>pred</a> <a href='#grammar-production-obj'>obj</a> '<code class='grammar-literal'>.</code>'</td>
</tr>
- <tr id="grammar-production-subj" data-grammar-original="[3] subj ::= IRI_REF | BLANK_NODE_LABEL" data-grammar-expression="('|', [('id', 'IRI_REF'), ('id', 'BLANK_NODE_LABEL')])" >
+ <tr id="grammar-production-subjects" data-grammar-original="[3] subjects ::= IRIREF | BLANK_NODE_LABEL" data-grammar-expression="('|', [('id', 'IRIREF'), ('id', 'BLANK_NODE_LABEL')])" >
<td>[3]<td>
- <td><code>subj</code><td>
+ <td><code>subjects</code><td>
<td>::=</td>
- <td>(<a href='#grammar-production-IRI_REF'>IRI_REF</a> <code>|</code> <a href='#grammar-production-BLANK_NODE_LABEL'>BLANK_NODE_LABEL</a>)</td>
-</tr>
- <tr id="grammar-production-pred" data-grammar-original="[4] pred ::= IRI_REF" data-grammar-expression="('id', 'IRI_REF')" >
- <td>[4]<td>
- <td><code>pred</code><td>
- <td>::=</td>
- <td><a href='#grammar-production-IRI_REF'>IRI_REF</a></td>
+ <td>(<a href='#grammar-production-IRIREF'>IRIREF</a> <code>|</code> <a href='#grammar-production-BLANK_NODE_LABEL'>BLANK_NODE_LABEL</a>)</td>
</tr>
- <tr id="grammar-production-obj" data-grammar-original="[5] obj ::= IRI_REF | BLANK_NODE_LABEL | lit" data-grammar-expression="('|', [('id', 'IRI_REF'), ('id', 'BLANK_NODE_LABEL'), ('id', 'lit')])" >
- <td>[5]<td>
- <td><code>obj</code><td>
+ <tr id="grammar-production-predicate" data-grammar-original="[4] predicate ::= IRIREF" data-grammar-expression="('id', 'IRIREF')" >
+ <td>[4]<td>
+ <td><code>predicate</code><td>
<td>::=</td>
- <td>(<a href='#grammar-production-IRI_REF'>IRI_REF</a> <code>|</code> <a href='#grammar-production-BLANK_NODE_LABEL'>BLANK_NODE_LABEL</a> <code>|</code> <a href='#grammar-production-lit'>lit</a>)</td>
+ <td><a href='#grammar-production-IRIREF'>IRIREF</a></td>
</tr>
- <tr id="grammar-production-lit" data-grammar-original="[6] lit ::= STRING_LITERAL2 ('^^' IRI_REF | ('@' LANG) )?" data-grammar-expression="(',', [('id', 'STRING_LITERAL2'), ('?', ('|', [(',', [("'", '^^'), ('id', 'IRI_REF')]), (',', [("'", '@'), ('id', 'LANG')])]))])" >
+ <tr id="grammar-production-object" data-grammar-original="[5] object ::= IRIREF | BLANK_NODE_LABEL | lit" data-grammar-expression="('|', [('id', 'IRIREF'), ('id', 'BLANK_NODE_LABEL'), ('id', 'lit')])" >
+ <td>[5]<td>
+ <td><code>object</code><td>
+ <td>::=</td>
+ <td>(<a href='#grammar-production-IRIREF'>IRIREF</a> <code>|</code> <a href='#grammar-production-BLANK_NODE_LABEL'>BLANK_NODE_LABEL</a> <code>|</code> <a href='#grammar-production-lit'>lit</a>)</td>
+</tr>
+ <tr id="grammar-production-literal" data-grammar-original="[6] literal ::= STRING_LITERAL2 ('^^' IRIREF | ('@' LANG) )?" data-grammar-expression="(',', [('id', 'STRING_LITERAL2'), ('?', ('|', [(',', [("'", '^^'), ('id', 'IRIREF')]), (',', [("'", '@'), ('id', 'LANG')])]))])" >
<td>[6]<td>
- <td><code>lit</code><td>
+ <td><code>literal</code><td>
<td>::=</td>
- <td><a href='#grammar-production-STRING_LITERAL2'>STRING_LITERAL2</a> (('<code class='grammar-literal'>^^</code>' <a href='#grammar-production-IRI_REF'>IRI_REF</a> <code>|</code> '<code class='grammar-literal'>@</code>' <a href='#grammar-production-LANG'>LANG</a>))?</td>
+ <td><a href='#grammar-production-STRING_LITERAL2'>STRING_LITERAL2</a> (('<code class='grammar-literal'>^^</code>' <a href='#grammar-production-IRIREF'>IRIREF</a> <code>|</code> '<code class='grammar-literal'>@</code>' <a href='#grammar-production-LANG'>LANG</a>))?</td>
</tr>
- <tr id="grammar-production-LANG" data-grammar-original="[7] LANG ::= [a-zA-Z]+ ( "-" [a-zA-Z0-9]+ )*" data-grammar-expression="(',', [('+', ('[', 'a-zA-Z')), ('*', (',', [("'", '-'), ('+', ('[', 'a-zA-Z0-9'))]))])" class='grammar-token'>
+ </tbody>
+ <tbody class="grammar-terminals">
+ <tr id="grammar-production-LANG" data-grammar-original="[7] LANG ::= [a-zA-Z]+ ( "-" [a-zA-Z0-9]+ )*" data-grammar-expression="(',', [('+', ('[', 'a-zA-Z')), ('*', (',', [("'", '-'), ('+', ('[', 'a-zA-Z0-9'))]))])" class='grammar-token'>
<td>[7]<td>
<td><code>LANG</code><td>
<td>::=</td>
<td>([<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-EOL" data-grammar-original="[8] EOL ::= [\r\n]+" data-grammar-expression="('+', ('[', '\\r\\n'))" class='grammar-token'>
+ <tr id="grammar-production-EOL" data-grammar-original="[8] EOL ::= [\r\n]+" data-grammar-expression="('+', ('[', '\\r\\n'))" class='grammar-token'>
<td>[8]<td>
<td><code>EOL</code><td>
<td>::=</td>
<td>([<code class='grammar-chars'>\r\n</code>])<code class='grammar-plus'>+</code></td>
</tr>
- <tr id="grammar-production-IRI_REF" data-grammar-original="[70s] IRI_REF ::= '<' ([^<>"{}|^`\]-[#x00-#x20] | UCHAR )* '>'" data-grammar-expression="(',', [("'", '<'), ('*', ('|', [('-', [('[', '^<>"{}|^`\\'), ('[', '#x00-#x20')]), ('id', 'UCHAR')])), ("'", '>')])" class='grammar-token'>
- <td>[70s]<td>
- <td><code>IRI_REF</code><td>
+ <tr id="grammar-production-IRIREF" data-grammar-original="[132s] IRIREF ::= '<' ([^<>"{}|^`\]-[#x00-#x20])* | UCHAR '>'" data-grammar-expression="('|', [(',', [("'", '<'), ('*', ('-', [('[', '^<>"{}|^`\\'), ('[', '#x00-#x20')]))]), (',', [('id', 'UCHAR'), ("'", '>')])])" class='grammar-token'>
+ <td>[132s]<td>
+ <td><code>IRIREF</code><td>
<td>::=</td>
- <td>'<code class='grammar-literal'><</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'>></code>'</td>
+ <td>('<code class='grammar-literal'><</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'>></code>')</td>
</tr>
- <tr id="grammar-production-BLANK_NODE_LABEL" data-grammar-original="[73s] BLANK_NODE_LABEL ::= "_:" PN_LOCAL" data-grammar-expression="(',', [("'", '_:'), ('id', 'PN_LOCAL')])" class='grammar-token'>
- <td>[73s]<td>
+ <tr id="grammar-production-BLANK_NODE_LABEL" data-grammar-original="[135s] 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'>
+ <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-STRING_LITERAL2" data-grammar-original="[88s] STRING_LITERAL2 ::= '"' ( ( [^\"\\\n\r] ) | ECHAR | UCHAR )* '"'" data-grammar-expression="(',', [("'", '"'), ('*', ('|', [('[', '^\\"\\\\\\n\\r'), ('id', 'ECHAR'), ('id', 'UCHAR')])), ("'", '"')])" class='grammar-token'>
- <td>[88s]<td>
+ <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'>^\"\\\n\r</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-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'>
+ <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="[91s] ECHAR ::= "\\" [tbnrf\\\"']" data-grammar-expression="(',', [("'", '\\\\'), ('[', 'tbnrf\\\\\\"\'')])" class='grammar-token'>
- <td>[91s]<td>
+ <tr id="grammar-production-ECHAR" data-grammar-original="[153s] ECHAR ::= "\" [tbnrf\"']" data-grammar-expression="(',', [("'", '\\'), ('[', 'tbnrf\\"\'')])" 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-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="('|', [('[', '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'>
- <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="('|', [('[', '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'>
+ <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| "_"" data-grammar-expression="('|', [('id', 'PN_CHARS_BASE'), ("'", '_')])" class='grammar-token'>
- <td>[96s]<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="[98s] 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>[98s]<td>
+ <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>
</tr>
- <tr id="grammar-production-PN_LOCAL" data-grammar-original="[100s] PN_LOCAL ::= ( 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'>
- <td>[100s]<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>]) (((<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-HEX" data-grammar-original="[162s] HEX ::= [0-9] | [A-F] | [a-f]" data-grammar-expression="('|', [('[', '0-9'), ('[', 'A-F'), ('[', 'a-f')])" class='grammar-token'>
<td>[162s]<td>
<td><code>HEX</code><td>