ebnf 2.3.3 → 2.3.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/etc/turtle.html CHANGED
@@ -1,35 +1,35 @@
1
-
1
+ <!-- Generated with ebnf version 2.3.4. See https://github.com/dryruby/ebnf. -->
2
2
  <table class="grammar">
3
3
  <tbody id="grammar-productions" class="ebnf">
4
4
  <tr id="grammar-production-turtleDoc">
5
5
  <td>[1]</td>
6
6
  <td><code>turtleDoc</code></td>
7
7
  <td>::=</td>
8
- <td><a href="#grammar-production-statement">statement</a><code>*</code></td>
8
+ <td><a href="#grammar-production-statement">statement</a><code class="grammar-star">*</code></td>
9
9
  </tr>
10
10
  <tr id="grammar-production-statement">
11
11
  <td>[2]</td>
12
12
  <td><code>statement</code></td>
13
13
  <td>::=</td>
14
- <td><a href="#grammar-production-directive">directive</a> <code>|</code> <code>(</code><a href="#grammar-production-triples">triples</a> "<code class="grammar-literal">.</code>"<code>)</code></td>
14
+ <td><a href="#grammar-production-directive">directive</a> <code class="grammar-alt">|</code> <code class="grammar-paren">(</code><a href="#grammar-production-triples">triples</a> "<code class="grammar-literal">.</code>"<code class="grammar-paren">)</code></td>
15
15
  </tr>
16
16
  <tr id="grammar-production-directive">
17
17
  <td>[3]</td>
18
18
  <td><code>directive</code></td>
19
19
  <td>::=</td>
20
- <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>
20
+ <td><a href="#grammar-production-prefixID">prefixID</a> <code class="grammar-alt">|</code> <a href="#grammar-production-base">base</a> <code class="grammar-alt">|</code> <a href="#grammar-production-sparqlPrefix">sparqlPrefix</a> <code class="grammar-alt">|</code> <a href="#grammar-production-sparqlBase">sparqlBase</a></td>
21
21
  </tr>
22
22
  <tr id="grammar-production-prefixID">
23
23
  <td>[4]</td>
24
24
  <td><code>prefixID</code></td>
25
25
  <td>::=</td>
26
- <td>&quot;@prefix&quot; <a href="#grammar-production-PNAME_NS">PNAME_NS</a> <a href="#grammar-production-IRIREF">IRIREF</a> "<code class="grammar-literal">.</code>"</td>
26
+ <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>
27
27
  </tr>
28
28
  <tr id="grammar-production-base">
29
29
  <td>[5]</td>
30
30
  <td><code>base</code></td>
31
31
  <td>::=</td>
32
- <td>&quot;@base&quot; <a href="#grammar-production-IRIREF">IRIREF</a> "<code class="grammar-literal">.</code>"</td>
32
+ <td>"<code class="grammar-literal">@base</code>" <a href="#grammar-production-IRIREF">IRIREF</a> "<code class="grammar-literal">.</code>"</td>
33
33
  </tr>
34
34
  <tr id="grammar-production-sparqlPrefix">
35
35
  <td>[28s]</td>
@@ -47,31 +47,31 @@
47
47
  <td>[6]</td>
48
48
  <td><code>triples</code></td>
49
49
  <td>::=</td>
50
- <td><code>(</code><a href="#grammar-production-subject">subject</a> <a href="#grammar-production-predicateObjectList">predicateObjectList</a><code>)</code> <code>|</code> <code>(</code><a href="#grammar-production-blankNodePropertyList">blankNodePropertyList</a> <a href="#grammar-production-predicateObjectList">predicateObjectList</a><code>?</code><code>)</code></td>
50
+ <td><code class="grammar-paren">(</code><a href="#grammar-production-subject">subject</a> <a href="#grammar-production-predicateObjectList">predicateObjectList</a><code class="grammar-paren">)</code> <code class="grammar-alt">|</code> <code class="grammar-paren">(</code><a href="#grammar-production-blankNodePropertyList">blankNodePropertyList</a> <a href="#grammar-production-predicateObjectList">predicateObjectList</a><code class="grammar-opt">?</code><code class="grammar-paren">)</code></td>
51
51
  </tr>
52
52
  <tr id="grammar-production-predicateObjectList">
53
53
  <td>[7]</td>
54
54
  <td><code>predicateObjectList</code></td>
55
55
  <td>::=</td>
56
- <td><a href="#grammar-production-verb">verb</a> <a href="#grammar-production-objectList">objectList</a> <code>(</code>"<code class="grammar-literal">;</code>" <code>(</code><a href="#grammar-production-verb">verb</a> <a href="#grammar-production-objectList">objectList</a><code>)</code><code>?</code><code>)</code><code>*</code></td>
56
+ <td><a href="#grammar-production-verb">verb</a> <a href="#grammar-production-objectList">objectList</a> <code class="grammar-paren">(</code>"<code class="grammar-literal">;</code>" <code class="grammar-paren">(</code><a href="#grammar-production-verb">verb</a> <a href="#grammar-production-objectList">objectList</a><code class="grammar-paren">)</code><code class="grammar-opt">?</code><code class="grammar-paren">)</code><code class="grammar-star">*</code></td>
57
57
  </tr>
58
58
  <tr id="grammar-production-objectList">
59
59
  <td>[8]</td>
60
60
  <td><code>objectList</code></td>
61
61
  <td>::=</td>
62
- <td><a href="#grammar-production-object">object</a> <code>(</code>"<code class="grammar-literal">,</code>" <a href="#grammar-production-object">object</a><code>)</code><code>*</code></td>
62
+ <td><a href="#grammar-production-object">object</a> <code class="grammar-paren">(</code>"<code class="grammar-literal">,</code>" <a href="#grammar-production-object">object</a><code class="grammar-paren">)</code><code class="grammar-star">*</code></td>
63
63
  </tr>
64
64
  <tr id="grammar-production-verb">
65
65
  <td>[9]</td>
66
66
  <td><code>verb</code></td>
67
67
  <td>::=</td>
68
- <td><a href="#grammar-production-predicate">predicate</a> <code>|</code> "<code class="grammar-literal">a</code>"</td>
68
+ <td><a href="#grammar-production-predicate">predicate</a> <code class="grammar-alt">|</code> "<code class="grammar-literal">a</code>"</td>
69
69
  </tr>
70
70
  <tr id="grammar-production-subject">
71
71
  <td>[10]</td>
72
72
  <td><code>subject</code></td>
73
73
  <td>::=</td>
74
- <td><a href="#grammar-production-iri">iri</a> <code>|</code> <a href="#grammar-production-BlankNode">BlankNode</a> <code>|</code> <a href="#grammar-production-collection">collection</a></td>
74
+ <td><a href="#grammar-production-iri">iri</a> <code class="grammar-alt">|</code> <a href="#grammar-production-BlankNode">BlankNode</a> <code class="grammar-alt">|</code> <a href="#grammar-production-collection">collection</a></td>
75
75
  </tr>
76
76
  <tr id="grammar-production-predicate">
77
77
  <td>[11]</td>
@@ -83,13 +83,13 @@
83
83
  <td>[12]</td>
84
84
  <td><code>object</code></td>
85
85
  <td>::=</td>
86
- <td><a href="#grammar-production-iri">iri</a> <code>|</code> <a href="#grammar-production-BlankNode">BlankNode</a> <code>|</code> <a href="#grammar-production-collection">collection</a> <code>|</code> <a href="#grammar-production-blankNodePropertyList">blankNodePropertyList</a> <code>|</code> <a href="#grammar-production-literal">literal</a></td>
86
+ <td><a href="#grammar-production-iri">iri</a> <code class="grammar-alt">|</code> <a href="#grammar-production-BlankNode">BlankNode</a> <code class="grammar-alt">|</code> <a href="#grammar-production-collection">collection</a> <code class="grammar-alt">|</code> <a href="#grammar-production-blankNodePropertyList">blankNodePropertyList</a> <code class="grammar-alt">|</code> <a href="#grammar-production-literal">literal</a></td>
87
87
  </tr>
88
88
  <tr id="grammar-production-literal">
89
89
  <td>[13]</td>
90
90
  <td><code>literal</code></td>
91
91
  <td>::=</td>
92
- <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>
92
+ <td><a href="#grammar-production-RDFLiteral">RDFLiteral</a> <code class="grammar-alt">|</code> <a href="#grammar-production-NumericLiteral">NumericLiteral</a> <code class="grammar-alt">|</code> <a href="#grammar-production-BooleanLiteral">BooleanLiteral</a></td>
93
93
  </tr>
94
94
  <tr id="grammar-production-blankNodePropertyList">
95
95
  <td>[14]</td>
@@ -101,52 +101,53 @@
101
101
  <td>[15]</td>
102
102
  <td><code>collection</code></td>
103
103
  <td>::=</td>
104
- <td>"<code class="grammar-literal">(</code>" <a href="#grammar-production-object">object</a><code>*</code> "<code class="grammar-literal">)</code>"</td>
104
+ <td>"<code class="grammar-literal">(</code>" <a href="#grammar-production-object">object</a><code class="grammar-star">*</code> "<code class="grammar-literal">)</code>"</td>
105
105
  </tr>
106
106
  <tr id="grammar-production-NumericLiteral">
107
107
  <td>[16]</td>
108
108
  <td><code>NumericLiteral</code></td>
109
109
  <td>::=</td>
110
- <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>
110
+ <td><a href="#grammar-production-INTEGER">INTEGER</a> <code class="grammar-alt">|</code> <a href="#grammar-production-DECIMAL">DECIMAL</a> <code class="grammar-alt">|</code> <a href="#grammar-production-DOUBLE">DOUBLE</a></td>
111
111
  </tr>
112
112
  <tr id="grammar-production-RDFLiteral">
113
113
  <td>[128s]</td>
114
114
  <td><code>RDFLiteral</code></td>
115
115
  <td>::=</td>
116
- <td><a href="#grammar-production-String">String</a> <code>(</code><a href="#grammar-production-LANGTAG">LANGTAG</a> <code>|</code> <code>(</code>&quot;^^&quot; <a href="#grammar-production-iri">iri</a><code>)</code><code>)</code><code>?</code></td>
116
+ <td><a href="#grammar-production-String">String</a> <code class="grammar-paren">(</code><a href="#grammar-production-LANGTAG">LANGTAG</a> <code class="grammar-alt">|</code> <code class="grammar-paren">(</code>"<code class="grammar-literal">^^</code>" <a href="#grammar-production-iri">iri</a><code class="grammar-paren">)</code><code class="grammar-paren">)</code><code class="grammar-opt">?</code></td>
117
117
  </tr>
118
118
  <tr id="grammar-production-BooleanLiteral">
119
119
  <td>[133s]</td>
120
120
  <td><code>BooleanLiteral</code></td>
121
121
  <td>::=</td>
122
- <td>&quot;true&quot; <code>|</code> &quot;false&quot;</td>
122
+ <td>"<code class="grammar-literal">true</code>" <code class="grammar-alt">|</code> "<code class="grammar-literal">false</code>"</td>
123
123
  </tr>
124
124
  <tr id="grammar-production-String">
125
125
  <td>[17]</td>
126
126
  <td><code>String</code></td>
127
127
  <td>::=</td>
128
- <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>
128
+ <td><a href="#grammar-production-STRING_LITERAL_QUOTE">STRING_LITERAL_QUOTE</a> <code class="grammar-alt">|</code> <a href="#grammar-production-STRING_LITERAL_SINGLE_QUOTE">STRING_LITERAL_SINGLE_QUOTE</a> <code class="grammar-alt">|</code> <a href="#grammar-production-STRING_LITERAL_LONG_SINGLE_QUOTE">STRING_LITERAL_LONG_SINGLE_QUOTE</a> <code class="grammar-alt">|</code> <a href="#grammar-production-STRING_LITERAL_LONG_QUOTE">STRING_LITERAL_LONG_QUOTE</a></td>
129
129
  </tr>
130
130
  <tr id="grammar-production-iri">
131
131
  <td>[135s]</td>
132
132
  <td><code>iri</code></td>
133
133
  <td>::=</td>
134
- <td><a href="#grammar-production-IRIREF">IRIREF</a> <code>|</code> <a href="#grammar-production-PrefixedName">PrefixedName</a></td>
134
+ <td><a href="#grammar-production-IRIREF">IRIREF</a> <code class="grammar-alt">|</code> <a href="#grammar-production-PrefixedName">PrefixedName</a></td>
135
135
  </tr>
136
136
  <tr id="grammar-production-PrefixedName">
137
137
  <td>[136s]</td>
138
138
  <td><code>PrefixedName</code></td>
139
139
  <td>::=</td>
140
- <td><a href="#grammar-production-PNAME_LN">PNAME_LN</a> <code>|</code> <a href="#grammar-production-PNAME_NS">PNAME_NS</a></td>
140
+ <td><a href="#grammar-production-PNAME_LN">PNAME_LN</a> <code class="grammar-alt">|</code> <a href="#grammar-production-PNAME_NS">PNAME_NS</a></td>
141
141
  </tr>
142
142
  <tr id="grammar-production-BlankNode">
143
143
  <td>[137s]</td>
144
144
  <td><code>BlankNode</code></td>
145
145
  <td>::=</td>
146
- <td><a href="#grammar-production-BLANK_NODE_LABEL">BLANK_NODE_LABEL</a> <code>|</code> <a href="#grammar-production-ANON">ANON</a></td>
146
+ <td><a href="#grammar-production-BLANK_NODE_LABEL">BLANK_NODE_LABEL</a> <code class="grammar-alt">|</code> <a href="#grammar-production-ANON">ANON</a></td>
147
147
  </tr>
148
- <tr>
149
- <td colspan=2>@terminals</td>
148
+ <tr id="grammar-declaration-terminals">
149
+ <td>@terminals</td>
150
+ <td><code></code></td>
150
151
  <td></td>
151
152
  <td><strong># Productions for terminals</strong></td>
152
153
  </tr>
@@ -154,13 +155,13 @@
154
155
  <td>[18]</td>
155
156
  <td><code>IRIREF</code></td>
156
157
  <td>::=</td>
157
- <td>"<code class="grammar-literal">&lt;</code>" <code>(</code><code>[</code><code class="grammar-literal">^&lt;&gt;&quot;{}|^`]-[</code><code class="grammar-char-escape"><abbr title="null">#x00</abbr></code><code class="grammar-literal">-</code><code class="grammar-char-escape"><abbr title="space">#x20</abbr></code><code>]</code> <code>|</code> <a href="#grammar-production-UCHAR">UCHAR</a><code>)</code><code>*</code> "<code class="grammar-literal">&gt;</code>"</td>
158
+ <td>"<code class="grammar-literal">&lt;</code>" <code class="grammar-paren">(</code><code class="grammar-paren">(</code><code class="grammar-brac">[</code><code class="grammar-literal">^&lt;&gt;&quot;{}|^`\</code><code class="grammar-brac">]</code> <code class="grammar-diff">-</code> <code class="grammar-brac">[</code><code class="grammar-char-escape"><abbr title="null">#x00</abbr></code><code class="grammar-literal">-</code><code class="grammar-char-escape"><abbr title="space">#x20</abbr></code><code class="grammar-brac">]</code><code class="grammar-paren">)</code> <code class="grammar-alt">|</code> <a href="#grammar-production-UCHAR">UCHAR</a><code class="grammar-paren">)</code><code class="grammar-star">*</code> "<code class="grammar-literal">&gt;</code>"</td>
158
159
  </tr>
159
160
  <tr id="grammar-production-PNAME_NS">
160
161
  <td>[139s]</td>
161
162
  <td><code>PNAME_NS</code></td>
162
163
  <td>::=</td>
163
- <td><a href="#grammar-production-PN_PREFIX">PN_PREFIX</a><code>?</code> "<code class="grammar-literal">:</code>"</td>
164
+ <td><a href="#grammar-production-PN_PREFIX">PN_PREFIX</a><code class="grammar-opt">?</code> "<code class="grammar-literal">:</code>"</td>
164
165
  </tr>
165
166
  <tr id="grammar-production-PNAME_LN">
166
167
  <td>[140s]</td>
@@ -172,198 +173,198 @@
172
173
  <td>[141s]</td>
173
174
  <td><code>BLANK_NODE_LABEL</code></td>
174
175
  <td>::=</td>
175
- <td>&quot;_:&quot; <code>(</code><a href="#grammar-production-PN_CHARS_U">PN_CHARS_U</a> <code>|</code> <code>[</code><code class="grammar-literal">0-9</code><code>]</code><code>)</code> <code>(</code><code>(</code><a href="#grammar-production-PN_CHARS">PN_CHARS</a> <code>|</code> "<code class="grammar-literal">.</code>"<code>)</code><code>*</code> <a href="#grammar-production-PN_CHARS">PN_CHARS</a><code>)</code><code>?</code></td>
176
+ <td>"<code class="grammar-literal">_:</code>" <code class="grammar-paren">(</code><a href="#grammar-production-PN_CHARS_U">PN_CHARS_U</a> <code class="grammar-alt">|</code> <code class="grammar-brac">[</code><code class="grammar-literal">0-9</code><code class="grammar-brac">]</code><code class="grammar-paren">)</code> <code class="grammar-paren">(</code><code class="grammar-paren">(</code><a href="#grammar-production-PN_CHARS">PN_CHARS</a> <code class="grammar-alt">|</code> "<code class="grammar-literal">.</code>"<code class="grammar-paren">)</code><code class="grammar-star">*</code> <a href="#grammar-production-PN_CHARS">PN_CHARS</a><code class="grammar-paren">)</code><code class="grammar-opt">?</code></td>
176
177
  </tr>
177
178
  <tr id="grammar-production-LANGTAG">
178
179
  <td>[144s]</td>
179
180
  <td><code>LANGTAG</code></td>
180
181
  <td>::=</td>
181
- <td>"<code class="grammar-literal">@</code>" <code>[</code><code class="grammar-literal">a-zA-Z</code><code>]</code><code>+</code> <code>(</code>"<code class="grammar-literal">-</code>" <code>[</code><code class="grammar-literal">a-zA-Z0-9</code><code>]</code><code>+</code><code>)</code><code>*</code></td>
182
+ <td>"<code class="grammar-literal">@</code>" <code class="grammar-brac">[</code><code class="grammar-literal">a-zA-Z</code><code class="grammar-brac">]</code><code class="grammar-plus">+</code> <code class="grammar-paren">(</code>"<code class="grammar-literal">-</code>" <code class="grammar-brac">[</code><code class="grammar-literal">a-zA-Z0-9</code><code class="grammar-brac">]</code><code class="grammar-plus">+</code><code class="grammar-paren">)</code><code class="grammar-star">*</code></td>
182
183
  </tr>
183
184
  <tr id="grammar-production-INTEGER">
184
185
  <td>[19]</td>
185
186
  <td><code>INTEGER</code></td>
186
187
  <td>::=</td>
187
- <td><code>[</code><code class="grammar-literal">+-</code><code>]</code><code>?</code> <code>[</code><code class="grammar-literal">0-9</code><code>]</code><code>+</code></td>
188
+ <td><code class="grammar-brac">[</code><code class="grammar-literal">+-</code><code class="grammar-brac">]</code><code class="grammar-opt">?</code> <code class="grammar-brac">[</code><code class="grammar-literal">0-9</code><code class="grammar-brac">]</code><code class="grammar-plus">+</code></td>
188
189
  </tr>
189
190
  <tr id="grammar-production-DECIMAL">
190
191
  <td>[20]</td>
191
192
  <td><code>DECIMAL</code></td>
192
193
  <td>::=</td>
193
- <td><code>[</code><code class="grammar-literal">+-</code><code>]</code><code>?</code> <code>(</code><code>[</code><code class="grammar-literal">0-9</code><code>]</code><code>*</code> "<code class="grammar-literal">.</code>" <code>[</code><code class="grammar-literal">0-9</code><code>]</code><code>+</code><code>)</code></td>
194
+ <td><code class="grammar-brac">[</code><code class="grammar-literal">+-</code><code class="grammar-brac">]</code><code class="grammar-opt">?</code> <code class="grammar-paren">(</code><code class="grammar-brac">[</code><code class="grammar-literal">0-9</code><code class="grammar-brac">]</code><code class="grammar-star">*</code> "<code class="grammar-literal">.</code>" <code class="grammar-brac">[</code><code class="grammar-literal">0-9</code><code class="grammar-brac">]</code><code class="grammar-plus">+</code><code class="grammar-paren">)</code></td>
194
195
  </tr>
195
196
  <tr id="grammar-production-DOUBLE">
196
197
  <td>[21]</td>
197
198
  <td><code>DOUBLE</code></td>
198
199
  <td>::=</td>
199
- <td><code>[</code><code class="grammar-literal">+-</code><code>]</code><code>?</code> <code>(</code><code>(</code><code>[</code><code class="grammar-literal">0-9</code><code>]</code><code>+</code> "<code class="grammar-literal">.</code>" <code>[</code><code class="grammar-literal">0-9</code><code>]</code><code>*</code> <a href="#grammar-production-EXPONENT">EXPONENT</a><code>)</code> <code>|</code> <code>(</code>"<code class="grammar-literal">.</code>" <code>[</code><code class="grammar-literal">0-9</code><code>]</code><code>+</code> <a href="#grammar-production-EXPONENT">EXPONENT</a><code>)</code> <code>|</code> <code>(</code><code>[</code><code class="grammar-literal">0-9</code><code>]</code><code>+</code> <a href="#grammar-production-EXPONENT">EXPONENT</a><code>)</code><code>)</code></td>
200
+ <td><code class="grammar-brac">[</code><code class="grammar-literal">+-</code><code class="grammar-brac">]</code><code class="grammar-opt">?</code> <code class="grammar-paren">(</code><code class="grammar-paren">(</code><code class="grammar-brac">[</code><code class="grammar-literal">0-9</code><code class="grammar-brac">]</code><code class="grammar-plus">+</code> "<code class="grammar-literal">.</code>" <code class="grammar-brac">[</code><code class="grammar-literal">0-9</code><code class="grammar-brac">]</code><code class="grammar-star">*</code> <a href="#grammar-production-EXPONENT">EXPONENT</a><code class="grammar-paren">)</code> <code class="grammar-alt">|</code> <code class="grammar-paren">(</code>"<code class="grammar-literal">.</code>" <code class="grammar-brac">[</code><code class="grammar-literal">0-9</code><code class="grammar-brac">]</code><code class="grammar-plus">+</code> <a href="#grammar-production-EXPONENT">EXPONENT</a><code class="grammar-paren">)</code> <code class="grammar-alt">|</code> <code class="grammar-paren">(</code><code class="grammar-brac">[</code><code class="grammar-literal">0-9</code><code class="grammar-brac">]</code><code class="grammar-plus">+</code> <a href="#grammar-production-EXPONENT">EXPONENT</a><code class="grammar-paren">)</code><code class="grammar-paren">)</code></td>
200
201
  </tr>
201
202
  <tr id="grammar-production-EXPONENT">
202
203
  <td>[154s]</td>
203
204
  <td><code>EXPONENT</code></td>
204
205
  <td>::=</td>
205
- <td><code>[</code><code class="grammar-literal">eE</code><code>]</code> <code>[</code><code class="grammar-literal">+-</code><code>]</code><code>?</code> <code>[</code><code class="grammar-literal">0-9</code><code>]</code><code>+</code></td>
206
+ <td><code class="grammar-brac">[</code><code class="grammar-literal">eE</code><code class="grammar-brac">]</code> <code class="grammar-brac">[</code><code class="grammar-literal">+-</code><code class="grammar-brac">]</code><code class="grammar-opt">?</code> <code class="grammar-brac">[</code><code class="grammar-literal">0-9</code><code class="grammar-brac">]</code><code class="grammar-plus">+</code></td>
206
207
  </tr>
207
208
  <tr id="grammar-production-STRING_LITERAL_QUOTE">
208
209
  <td>[22]</td>
209
210
  <td><code>STRING_LITERAL_QUOTE</code></td>
210
211
  <td>::=</td>
211
- <td>'<code class="grammar-literal">&quot;</code>' <code>(</code><code>[</code><code class="grammar-literal">^</code><code class="grammar-char-escape"><abbr title="quot">>&quot;</abbr></code><code class="grammar-char-escape"><abbr title="ascii '\'">#x5C</abbr></code><code class="grammar-char-escape"><abbr title="new line">#x0A</abbr></code><code class="grammar-char-escape"><abbr title="carriage return">#x0D</abbr></code><code>]</code> <code>|</code> <a href="#grammar-production-ECHAR">ECHAR</a> <code>|</code> <a href="#grammar-production-UCHAR">UCHAR</a><code>)</code><code>*</code> '<code class="grammar-literal">&quot;</code>'</td>
212
+ <td>'<code class="grammar-literal">&quot;</code>' <code class="grammar-paren">(</code><code class="grammar-brac">[</code><code class="grammar-literal">^</code><code class="grammar-char-escape"><abbr title="dquote">#x22</abbr></code><code class="grammar-char-escape"><abbr title="back slash">#x5C</abbr></code><code class="grammar-char-escape"><abbr title="new line">#x0A</abbr></code><code class="grammar-char-escape"><abbr title="carriage return">#x0D</abbr></code><code class="grammar-brac">]</code> <code class="grammar-alt">|</code> <a href="#grammar-production-ECHAR">ECHAR</a> <code class="grammar-alt">|</code> <a href="#grammar-production-UCHAR">UCHAR</a><code class="grammar-paren">)</code><code class="grammar-star">*</code> '<code class="grammar-literal">&quot;</code>'</td>
212
213
  </tr>
213
214
  <tr id="grammar-production-STRING_LITERAL_SINGLE_QUOTE">
214
215
  <td>[23]</td>
215
216
  <td><code>STRING_LITERAL_SINGLE_QUOTE</code></td>
216
217
  <td>::=</td>
217
- <td>"<code class="grammar-literal">&apos;</code>" <code>(</code><code>[</code><code class="grammar-literal">^</code><code class="grammar-char-escape"><abbr title="ascii '&apos;'">#x27</abbr></code><code class="grammar-char-escape"><abbr title="ascii '\'">#x5C</abbr></code><code class="grammar-char-escape"><abbr title="new line">#x0A</abbr></code><code class="grammar-char-escape"><abbr title="carriage return">#x0D</abbr></code><code>]</code> <code>|</code> <a href="#grammar-production-ECHAR">ECHAR</a> <code>|</code> <a href="#grammar-production-UCHAR">UCHAR</a><code>)</code><code>*</code> "<code class="grammar-literal">&apos;</code>"</td>
218
+ <td>"<code class="grammar-literal">&apos;</code>" <code class="grammar-paren">(</code><code class="grammar-brac">[</code><code class="grammar-literal">^</code><code class="grammar-char-escape"><abbr title="apos">#x27</abbr></code><code class="grammar-char-escape"><abbr title="back slash">#x5C</abbr></code><code class="grammar-char-escape"><abbr title="new line">#x0A</abbr></code><code class="grammar-char-escape"><abbr title="carriage return">#x0D</abbr></code><code class="grammar-brac">]</code> <code class="grammar-alt">|</code> <a href="#grammar-production-ECHAR">ECHAR</a> <code class="grammar-alt">|</code> <a href="#grammar-production-UCHAR">UCHAR</a><code class="grammar-paren">)</code><code class="grammar-star">*</code> "<code class="grammar-literal">&apos;</code>"</td>
218
219
  </tr>
219
220
  <tr id="grammar-production-STRING_LITERAL_LONG_SINGLE_QUOTE">
220
221
  <td>[24]</td>
221
222
  <td><code>STRING_LITERAL_LONG_SINGLE_QUOTE</code></td>
222
223
  <td>::=</td>
223
- <td>&quot;&apos;&apos;&apos;&quot; <code>(</code><code>(</code>"<code class="grammar-literal">&apos;</code>" <code>|</code> &quot;&apos;&apos;&quot;<code>)</code><code>?</code> <code>[</code><code class="grammar-literal">^&apos;]</code><code class="grammar-char-escape"><abbr title="space">#x20</abbr></code><code class="grammar-literal">|</code><code class="grammar-char-escape"><abbr title="space">#x20</abbr></code><code class="grammar-literal">ECHAR</code><code class="grammar-char-escape"><abbr title="space">#x20</abbr></code><code class="grammar-literal">|</code><code class="grammar-char-escape"><abbr title="space">#x20</abbr></code><code class="grammar-literal">UCHAR</code><code class="grammar-char-escape"><abbr title="space">#x20</abbr></code><code class="grammar-literal">)</code><code class="grammar-char-escape"><abbr title="space">#x20</abbr></code><code class="grammar-literal">)*</code><code class="grammar-char-escape"><abbr title="space">#x20</abbr></code><code class="grammar-literal">&quot;&apos;&apos;&apos;&quot;</code><code>]</code><code>)</code></td>
224
+ <td>"<code class="grammar-literal">&apos;&apos;&apos;</code>" <code class="grammar-paren">(</code><code class="grammar-paren">(</code>"<code class="grammar-literal">&apos;</code>" <code class="grammar-alt">|</code> "<code class="grammar-literal">&apos;&apos;</code>"<code class="grammar-paren">)</code><code class="grammar-opt">?</code> <code class="grammar-paren">(</code><code class="grammar-brac">[</code><code class="grammar-literal">^&apos;\</code><code class="grammar-brac">]</code> <code class="grammar-alt">|</code> <a href="#grammar-production-ECHAR">ECHAR</a> <code class="grammar-alt">|</code> <a href="#grammar-production-UCHAR">UCHAR</a><code class="grammar-paren">)</code><code class="grammar-paren">)</code><code class="grammar-star">*</code> "<code class="grammar-literal">&apos;&apos;&apos;</code>"</td>
224
225
  </tr>
225
226
  <tr id="grammar-production-STRING_LITERAL_LONG_QUOTE">
226
227
  <td>[25]</td>
227
228
  <td><code>STRING_LITERAL_LONG_QUOTE</code></td>
228
229
  <td>::=</td>
229
- <td>&apos;&quot;&quot;&quot;&apos; <code>(</code><code>(</code>'<code class="grammar-literal">&quot;</code>' <code>|</code> &apos;&quot;&quot;&apos;<code>)</code><code>?</code> <code>[</code><code class="grammar-literal">^&quot;]</code><code class="grammar-char-escape"><abbr title="space">#x20</abbr></code><code class="grammar-literal">|</code><code class="grammar-char-escape"><abbr title="space">#x20</abbr></code><code class="grammar-literal">ECHAR</code><code class="grammar-char-escape"><abbr title="space">#x20</abbr></code><code class="grammar-literal">|</code><code class="grammar-char-escape"><abbr title="space">#x20</abbr></code><code class="grammar-literal">UCHAR</code><code class="grammar-char-escape"><abbr title="space">#x20</abbr></code><code class="grammar-literal">)</code><code class="grammar-char-escape"><abbr title="space">#x20</abbr></code><code class="grammar-literal">)*</code><code class="grammar-char-escape"><abbr title="space">#x20</abbr></code><code class="grammar-literal">&apos;&quot;&quot;&quot;&apos;</code><code>]</code><code>)</code></td>
230
+ <td>'<code class="grammar-literal">&quot;&quot;&quot;</code>' <code class="grammar-paren">(</code><code class="grammar-paren">(</code>'<code class="grammar-literal">&quot;</code>' <code class="grammar-alt">|</code> '<code class="grammar-literal">&quot;&quot;</code>'<code class="grammar-paren">)</code><code class="grammar-opt">?</code> <code class="grammar-paren">(</code><code class="grammar-brac">[</code><code class="grammar-literal">^&quot;\</code><code class="grammar-brac">]</code> <code class="grammar-alt">|</code> <a href="#grammar-production-ECHAR">ECHAR</a> <code class="grammar-alt">|</code> <a href="#grammar-production-UCHAR">UCHAR</a><code class="grammar-paren">)</code><code class="grammar-paren">)</code><code class="grammar-star">*</code> '<code class="grammar-literal">&quot;&quot;&quot;</code>'</td>
230
231
  </tr>
231
232
  <tr id="grammar-production-UCHAR">
232
233
  <td>[26]</td>
233
234
  <td><code>UCHAR</code></td>
234
235
  <td>::=</td>
235
- <td><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><code>)</code> <code>|</code> <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><code>)</code></td>
236
+ <td><code class="grammar-paren">(</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><code class="grammar-paren">)</code> <code class="grammar-alt">|</code> <code class="grammar-paren">(</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><code class="grammar-paren">)</code></td>
236
237
  </tr>
237
238
  <tr id="grammar-production-ECHAR">
238
239
  <td>[159s]</td>
239
240
  <td><code>ECHAR</code></td>
240
241
  <td>::=</td>
241
- <td>"<code class="grammar-literal">\</code>" <code>[</code><code class="grammar-literal">tbnrf&quot;&apos;</code><code>]</code></td>
242
+ <td>"<code class="grammar-literal">\</code>" <code class="grammar-brac">[</code><code class="grammar-literal">tbnrf&quot;&apos;</code><code class="grammar-brac">]</code></td>
242
243
  </tr>
243
244
  <tr id="grammar-production-SPARQL_PREFIX">
244
245
  <td>[28t]</td>
245
246
  <td><code>SPARQL_PREFIX</code></td>
246
247
  <td>::=</td>
247
- <td><code>[</code><code class="grammar-literal">Pp</code><code>]</code> <code>[</code><code class="grammar-literal">Rr</code><code>]</code> <code>[</code><code class="grammar-literal">Ee</code><code>]</code> <code>[</code><code class="grammar-literal">Ff</code><code>]</code> <code>[</code><code class="grammar-literal">Ii</code><code>]</code> <code>[</code><code class="grammar-literal">Xx</code><code>]</code></td>
248
+ <td><code class="grammar-brac">[</code><code class="grammar-literal">Pp</code><code class="grammar-brac">]</code> <code class="grammar-brac">[</code><code class="grammar-literal">Rr</code><code class="grammar-brac">]</code> <code class="grammar-brac">[</code><code class="grammar-literal">Ee</code><code class="grammar-brac">]</code> <code class="grammar-brac">[</code><code class="grammar-literal">Ff</code><code class="grammar-brac">]</code> <code class="grammar-brac">[</code><code class="grammar-literal">Ii</code><code class="grammar-brac">]</code> <code class="grammar-brac">[</code><code class="grammar-literal">Xx</code><code class="grammar-brac">]</code></td>
248
249
  </tr>
249
250
  <tr id="grammar-production-SPARQL_BASE">
250
251
  <td>[29t]</td>
251
252
  <td><code>SPARQL_BASE</code></td>
252
253
  <td>::=</td>
253
- <td><code>[</code><code class="grammar-literal">Bb</code><code>]</code> <code>[</code><code class="grammar-literal">Aa</code><code>]</code> <code>[</code><code class="grammar-literal">Ss</code><code>]</code> <code>[</code><code class="grammar-literal">Ee</code><code>]</code></td>
254
+ <td><code class="grammar-brac">[</code><code class="grammar-literal">Bb</code><code class="grammar-brac">]</code> <code class="grammar-brac">[</code><code class="grammar-literal">Aa</code><code class="grammar-brac">]</code> <code class="grammar-brac">[</code><code class="grammar-literal">Ss</code><code class="grammar-brac">]</code> <code class="grammar-brac">[</code><code class="grammar-literal">Ee</code><code class="grammar-brac">]</code></td>
254
255
  </tr>
255
256
  <tr id="grammar-production-WS">
256
257
  <td>[161s]</td>
257
258
  <td><code>WS</code></td>
258
259
  <td>::=</td>
259
- <td><code class="grammar-char-escape"><abbr title="space">#x20</abbr></code> <code>|</code> <code class="grammar-char-escape"><abbr title="horizontal tab">#x09</abbr></code> <code>|</code> <code class="grammar-char-escape"><abbr title="carriage return">#x0D</abbr></code> <code>|</code> <code class="grammar-char-escape"><abbr title="new line">#x0A</abbr></code></td>
260
+ <td><code class="grammar-char-escape"><abbr title="space">#x20</abbr></code> <code class="grammar-alt">|</code> <code class="grammar-char-escape"><abbr title="horizontal tab">#x09</abbr></code> <code class="grammar-alt">|</code> <code class="grammar-char-escape"><abbr title="carriage return">#x0D</abbr></code> <code class="grammar-alt">|</code> <code class="grammar-char-escape"><abbr title="new line">#x0A</abbr></code></td>
260
261
  </tr>
261
262
  <tr id="grammar-production-ANON">
262
263
  <td>[162s]</td>
263
264
  <td><code>ANON</code></td>
264
265
  <td>::=</td>
265
- <td>"<code class="grammar-literal">[</code>" <a href="#grammar-production-WS">WS</a><code>*</code> "<code class="grammar-literal">]</code>"</td>
266
+ <td>"<code class="grammar-literal">[</code>" <a href="#grammar-production-WS">WS</a><code class="grammar-star">*</code> "<code class="grammar-literal">]</code>"</td>
266
267
  </tr>
267
268
  <tr id="grammar-production-PN_CHARS_BASE">
268
269
  <td>[163s]</td>
269
270
  <td><code>PN_CHARS_BASE</code></td>
270
271
  <td>::=</td>
271
- <td><code>[</code><code class="grammar-literal">A-Z</code><code>]</code></td>
272
+ <td><code class="grammar-brac">[</code><code class="grammar-literal">A-Z</code><code class="grammar-brac">]</code></td>
272
273
  </tr>
273
274
  <tr>
274
275
  <td colspan=2></td>
275
- <td>|</td>
276
- <td><code>[</code><code class="grammar-literal">a-z</code><code>]</code></td>
276
+ <td><code class="grammar-alt">|</code></td>
277
+ <td><code class="grammar-brac">[</code><code class="grammar-literal">a-z</code><code class="grammar-brac">]</code></td>
277
278
  </tr>
278
279
  <tr>
279
280
  <td colspan=2></td>
280
- <td>|</td>
281
- <td><code>[</code><code class="grammar-char-escape"><abbr title="extended ascii '#xC0'">#xC0</abbr></code><code class="grammar-literal">-</code><code class="grammar-char-escape"><abbr title="extended ascii '#xD6'">#xD6</abbr></code><code>]</code></td>
281
+ <td><code class="grammar-alt">|</code></td>
282
+ <td><code class="grammar-brac">[</code><code class="grammar-char-escape"><abbr title="unicode U+00C0">#xC0</abbr></code><code class="grammar-literal">-</code><code class="grammar-char-escape"><abbr title="unicode U+00D6">#xD6</abbr></code><code class="grammar-brac">]</code></td>
282
283
  </tr>
283
284
  <tr>
284
285
  <td colspan=2></td>
285
- <td>|</td>
286
- <td><code>[</code><code class="grammar-char-escape"><abbr title="extended ascii '#xD8'">#xD8</abbr></code><code class="grammar-literal">-</code><code class="grammar-char-escape"><abbr title="extended ascii '#xF6'">#xF6</abbr></code><code>]</code></td>
286
+ <td><code class="grammar-alt">|</code></td>
287
+ <td><code class="grammar-brac">[</code><code class="grammar-char-escape"><abbr title="unicode U+00D8">#xD8</abbr></code><code class="grammar-literal">-</code><code class="grammar-char-escape"><abbr title="unicode U+00F6">#xF6</abbr></code><code class="grammar-brac">]</code></td>
287
288
  </tr>
288
289
  <tr>
289
290
  <td colspan=2></td>
290
- <td>|</td>
291
- <td><code>[</code><code class="grammar-char-escape"><abbr title="extended ascii '#xF8'">#xF8</abbr></code><code class="grammar-literal">-</code><code class="grammar-char-escape"><abbr title="unicode 'Graphic'">#x02FF</abbr></code><code>]</code></td>
291
+ <td><code class="grammar-alt">|</code></td>
292
+ <td><code class="grammar-brac">[</code><code class="grammar-char-escape"><abbr title="unicode U+00F8">#xF8</abbr></code><code class="grammar-literal">-</code><code class="grammar-char-escape"><abbr title="unicode U+02FF">#x02FF</abbr></code><code class="grammar-brac">]</code></td>
292
293
  </tr>
293
294
  <tr>
294
295
  <td colspan=2></td>
295
- <td>|</td>
296
- <td><code>[</code><code class="grammar-char-escape"><abbr title="unicode 'Graphic'">#x0370</abbr></code><code class="grammar-literal">-</code><code class="grammar-char-escape"><abbr title="unicode 'Graphic'">#x037D</abbr></code><code>]</code></td>
296
+ <td><code class="grammar-alt">|</code></td>
297
+ <td><code class="grammar-brac">[</code><code class="grammar-char-escape"><abbr title="unicode U+0370">#x0370</abbr></code><code class="grammar-literal">-</code><code class="grammar-char-escape"><abbr title="unicode U+037D">#x037D</abbr></code><code class="grammar-brac">]</code></td>
297
298
  </tr>
298
299
  <tr>
299
300
  <td colspan=2></td>
300
- <td>|</td>
301
- <td><code>[</code><code class="grammar-char-escape"><abbr title="unicode 'Graphic'">#x037F</abbr></code><code class="grammar-literal">-</code><code class="grammar-char-escape"><abbr title="unicode 'Reserved'">#x1FFF</abbr></code><code>]</code></td>
301
+ <td><code class="grammar-alt">|</code></td>
302
+ <td><code class="grammar-brac">[</code><code class="grammar-char-escape"><abbr title="unicode U+037F">#x037F</abbr></code><code class="grammar-literal">-</code><code class="grammar-char-escape"><abbr title="unicode U+1FFF">#x1FFF</abbr></code><code class="grammar-brac">]</code></td>
302
303
  </tr>
303
304
  <tr>
304
305
  <td colspan=2></td>
305
- <td>|</td>
306
- <td><code>[</code><code class="grammar-char-escape"><abbr title="unicode 'Format'">#x200C</abbr></code><code class="grammar-literal">-</code><code class="grammar-char-escape"><abbr title="unicode 'Format'">#x200D</abbr></code><code>]</code></td>
306
+ <td><code class="grammar-alt">|</code></td>
307
+ <td><code class="grammar-brac">[</code><code class="grammar-char-escape"><abbr title="unicode U+200C">#x200C</abbr></code><code class="grammar-literal">-</code><code class="grammar-char-escape"><abbr title="unicode U+200D">#x200D</abbr></code><code class="grammar-brac">]</code></td>
307
308
  </tr>
308
309
  <tr>
309
310
  <td colspan=2></td>
310
- <td>|</td>
311
- <td><code>[</code><code class="grammar-char-escape"><abbr title="unicode 'Graphic'">#x2070</abbr></code><code class="grammar-literal">-</code><code class="grammar-char-escape"><abbr title="unicode 'Reserved'">#x218F</abbr></code><code>]</code></td>
311
+ <td><code class="grammar-alt">|</code></td>
312
+ <td><code class="grammar-brac">[</code><code class="grammar-char-escape"><abbr title="unicode U+2070">#x2070</abbr></code><code class="grammar-literal">-</code><code class="grammar-char-escape"><abbr title="unicode U+218F">#x218F</abbr></code><code class="grammar-brac">]</code></td>
312
313
  </tr>
313
314
  <tr>
314
315
  <td colspan=2></td>
315
- <td>|</td>
316
- <td><code>[</code><code class="grammar-char-escape"><abbr title="unicode 'Graphic'">#x2C00</abbr></code><code class="grammar-literal">-</code><code class="grammar-char-escape"><abbr title="unicode 'Reserved'">#x2FEF</abbr></code><code>]</code></td>
316
+ <td><code class="grammar-alt">|</code></td>
317
+ <td><code class="grammar-brac">[</code><code class="grammar-char-escape"><abbr title="unicode U+2C00">#x2C00</abbr></code><code class="grammar-literal">-</code><code class="grammar-char-escape"><abbr title="unicode U+2FEF">#x2FEF</abbr></code><code class="grammar-brac">]</code></td>
317
318
  </tr>
318
319
  <tr>
319
320
  <td colspan=2></td>
320
- <td>|</td>
321
- <td><code>[</code><code class="grammar-char-escape"><abbr title="unicode 'Graphic'">#x3001</abbr></code><code class="grammar-literal">-</code><code class="grammar-char-escape"><abbr title="unicode 'Reserved'">#xD7FF</abbr></code><code>]</code></td>
321
+ <td><code class="grammar-alt">|</code></td>
322
+ <td><code class="grammar-brac">[</code><code class="grammar-char-escape"><abbr title="unicode U+3001">#x3001</abbr></code><code class="grammar-literal">-</code><code class="grammar-char-escape"><abbr title="unicode U+D7FF">#xD7FF</abbr></code><code class="grammar-brac">]</code></td>
322
323
  </tr>
323
324
  <tr>
324
325
  <td colspan=2></td>
325
- <td>|</td>
326
- <td><code>[</code><code class="grammar-char-escape"><abbr title="unicode 'Graphic'">#xF900</abbr></code><code class="grammar-literal">-</code><code class="grammar-char-escape"><abbr title="unicode 'Graphic'">#xFDCF</abbr></code><code>]</code></td>
326
+ <td><code class="grammar-alt">|</code></td>
327
+ <td><code class="grammar-brac">[</code><code class="grammar-char-escape"><abbr title="unicode U+F900">#xF900</abbr></code><code class="grammar-literal">-</code><code class="grammar-char-escape"><abbr title="unicode U+FDCF">#xFDCF</abbr></code><code class="grammar-brac">]</code></td>
327
328
  </tr>
328
329
  <tr>
329
330
  <td colspan=2></td>
330
- <td>|</td>
331
- <td><code>[</code><code class="grammar-char-escape"><abbr title="unicode 'Graphic'">#xFDF0</abbr></code><code class="grammar-literal">-</code><code class="grammar-char-escape"><abbr title="unicode 'Graphic'">#xFFFD</abbr></code><code>]</code></td>
331
+ <td><code class="grammar-alt">|</code></td>
332
+ <td><code class="grammar-brac">[</code><code class="grammar-char-escape"><abbr title="unicode U+FDF0">#xFDF0</abbr></code><code class="grammar-literal">-</code><code class="grammar-char-escape"><abbr title="unicode U+FFFD">#xFFFD</abbr></code><code class="grammar-brac">]</code></td>
332
333
  </tr>
333
334
  <tr>
334
335
  <td colspan=2></td>
335
- <td>|</td>
336
- <td><code>[</code><code class="grammar-char-escape"><abbr title="unicode 'Graphic'">#x00010000</abbr></code><code class="grammar-literal">-</code><code class="grammar-char-escape"><abbr title="unicode 'Noncharacter'">#x000EFFFF</abbr></code><code>]</code></td>
336
+ <td><code class="grammar-alt">|</code></td>
337
+ <td><code class="grammar-brac">[</code><code class="grammar-char-escape"><abbr title="unicode U+10000">#x00010000</abbr></code><code class="grammar-literal">-</code><code class="grammar-char-escape"><abbr title="unicode U+EFFFF">#x000EFFFF</abbr></code><code class="grammar-brac">]</code></td>
337
338
  </tr>
338
339
  <tr id="grammar-production-PN_CHARS_U">
339
340
  <td>[164s]</td>
340
341
  <td><code>PN_CHARS_U</code></td>
341
342
  <td>::=</td>
342
- <td><a href="#grammar-production-PN_CHARS_BASE">PN_CHARS_BASE</a> <code>|</code> "<code class="grammar-literal">_</code>"</td>
343
+ <td><a href="#grammar-production-PN_CHARS_BASE">PN_CHARS_BASE</a> <code class="grammar-alt">|</code> "<code class="grammar-literal">_</code>"</td>
343
344
  </tr>
344
345
  <tr id="grammar-production-PN_CHARS">
345
346
  <td>[166s]</td>
346
347
  <td><code>PN_CHARS</code></td>
347
348
  <td>::=</td>
348
- <td><a href="#grammar-production-PN_CHARS_U">PN_CHARS_U</a> <code>|</code> "<code class="grammar-literal">-</code>" <code>|</code> <code>[</code><code class="grammar-literal">0-9</code><code>]</code> <code>|</code> <code class="grammar-char-escape"><abbr title="extended ascii '#xB7'">#xB7</abbr></code> <code>|</code> <code>[</code><code class="grammar-char-escape"><abbr title="unicode 'Graphic'">#x0300</abbr></code><code class="grammar-literal">-</code><code class="grammar-char-escape"><abbr title="unicode 'Graphic'">#x036F</abbr></code><code>]</code> <code>|</code> <code>[</code><code class="grammar-char-escape"><abbr title="unicode 'Graphic'">#x203F</abbr></code><code class="grammar-literal">-</code><code class="grammar-char-escape"><abbr title="unicode 'Graphic'">#x2040</abbr></code><code>]</code></td>
349
+ <td><a href="#grammar-production-PN_CHARS_U">PN_CHARS_U</a> <code class="grammar-alt">|</code> "<code class="grammar-literal">-</code>" <code class="grammar-alt">|</code> <code class="grammar-brac">[</code><code class="grammar-literal">0-9</code><code class="grammar-brac">]</code> <code class="grammar-alt">|</code> <code class="grammar-char-escape"><abbr title="unicode U+00B7">#xB7</abbr></code> <code class="grammar-alt">|</code> <code class="grammar-brac">[</code><code class="grammar-char-escape"><abbr title="unicode U+0300">#x0300</abbr></code><code class="grammar-literal">-</code><code class="grammar-char-escape"><abbr title="unicode U+036F">#x036F</abbr></code><code class="grammar-brac">]</code> <code class="grammar-alt">|</code> <code class="grammar-brac">[</code><code class="grammar-char-escape"><abbr title="unicode U+203F">#x203F</abbr></code><code class="grammar-literal">-</code><code class="grammar-char-escape"><abbr title="unicode U+2040">#x2040</abbr></code><code class="grammar-brac">]</code></td>
349
350
  </tr>
350
351
  <tr id="grammar-production-PN_PREFIX">
351
352
  <td>[167s]</td>
352
353
  <td><code>PN_PREFIX</code></td>
353
354
  <td>::=</td>
354
- <td><a href="#grammar-production-PN_CHARS_BASE">PN_CHARS_BASE</a> <code>(</code><code>(</code><a href="#grammar-production-PN_CHARS">PN_CHARS</a> <code>|</code> "<code class="grammar-literal">.</code>"<code>)</code><code>*</code> <a href="#grammar-production-PN_CHARS">PN_CHARS</a><code>)</code><code>?</code></td>
355
+ <td><a href="#grammar-production-PN_CHARS_BASE">PN_CHARS_BASE</a> <code class="grammar-paren">(</code><code class="grammar-paren">(</code><a href="#grammar-production-PN_CHARS">PN_CHARS</a> <code class="grammar-alt">|</code> "<code class="grammar-literal">.</code>"<code class="grammar-paren">)</code><code class="grammar-star">*</code> <a href="#grammar-production-PN_CHARS">PN_CHARS</a><code class="grammar-paren">)</code><code class="grammar-opt">?</code></td>
355
356
  </tr>
356
357
  <tr id="grammar-production-PN_LOCAL">
357
358
  <td>[168s]</td>
358
359
  <td><code>PN_LOCAL</code></td>
359
360
  <td>::=</td>
360
- <td><code>(</code><a href="#grammar-production-PN_CHARS_U">PN_CHARS_U</a> <code>|</code> "<code class="grammar-literal">:</code>" <code>|</code> <code>[</code><code class="grammar-literal">0-9</code><code>]</code> <code>|</code> <a href="#grammar-production-PLX">PLX</a><code>)</code> <code>(</code><code>(</code><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>)</code><code>*</code> <code>(</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><code>)</code><code>)</code><code>?</code></td>
361
+ <td><code class="grammar-paren">(</code><a href="#grammar-production-PN_CHARS_U">PN_CHARS_U</a> <code class="grammar-alt">|</code> "<code class="grammar-literal">:</code>" <code class="grammar-alt">|</code> <code class="grammar-brac">[</code><code class="grammar-literal">0-9</code><code class="grammar-brac">]</code> <code class="grammar-alt">|</code> <a href="#grammar-production-PLX">PLX</a><code class="grammar-paren">)</code> <code class="grammar-paren">(</code><code class="grammar-paren">(</code><a href="#grammar-production-PN_CHARS">PN_CHARS</a> <code class="grammar-alt">|</code> "<code class="grammar-literal">.</code>" <code class="grammar-alt">|</code> "<code class="grammar-literal">:</code>" <code class="grammar-alt">|</code> <a href="#grammar-production-PLX">PLX</a><code class="grammar-paren">)</code><code class="grammar-star">*</code> <code class="grammar-paren">(</code><a href="#grammar-production-PN_CHARS">PN_CHARS</a> <code class="grammar-alt">|</code> "<code class="grammar-literal">:</code>" <code class="grammar-alt">|</code> <a href="#grammar-production-PLX">PLX</a><code class="grammar-paren">)</code><code class="grammar-paren">)</code><code class="grammar-opt">?</code></td>
361
362
  </tr>
362
363
  <tr id="grammar-production-PLX">
363
364
  <td>[169s]</td>
364
365
  <td><code>PLX</code></td>
365
366
  <td>::=</td>
366
- <td><a href="#grammar-production-PERCENT">PERCENT</a> <code>|</code> <a href="#grammar-production-PN_LOCAL_ESC">PN_LOCAL_ESC</a></td>
367
+ <td><a href="#grammar-production-PERCENT">PERCENT</a> <code class="grammar-alt">|</code> <a href="#grammar-production-PN_LOCAL_ESC">PN_LOCAL_ESC</a></td>
367
368
  </tr>
368
369
  <tr id="grammar-production-PERCENT">
369
370
  <td>[170s]</td>
@@ -375,13 +376,13 @@
375
376
  <td>[171s]</td>
376
377
  <td><code>HEX</code></td>
377
378
  <td>::=</td>
378
- <td><code>[</code><code class="grammar-literal">0-9A-Fa-f</code><code>]</code></td>
379
+ <td><code class="grammar-brac">[</code><code class="grammar-literal">0-9A-Fa-f</code><code class="grammar-brac">]</code></td>
379
380
  </tr>
380
381
  <tr id="grammar-production-PN_LOCAL_ESC">
381
382
  <td>[172s]</td>
382
383
  <td><code>PN_LOCAL_ESC</code></td>
383
384
  <td>::=</td>
384
- <td>"<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">&amp;</code>" <code>|</code> "<code class="grammar-literal">&apos;</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></td>
385
+ <td>"<code class="grammar-literal">\</code>" <code class="grammar-paren">(</code>"<code class="grammar-literal">_</code>" <code class="grammar-alt">|</code> "<code class="grammar-literal">~</code>" <code class="grammar-alt">|</code> "<code class="grammar-literal">.</code>" <code class="grammar-alt">|</code> "<code class="grammar-literal">-</code>" <code class="grammar-alt">|</code> "<code class="grammar-literal">!</code>" <code class="grammar-alt">|</code> "<code class="grammar-literal">$</code>" <code class="grammar-alt">|</code> "<code class="grammar-literal">&amp;</code>" <code class="grammar-alt">|</code> "<code class="grammar-literal">&apos;</code>" <code class="grammar-alt">|</code> "<code class="grammar-literal">(</code>" <code class="grammar-alt">|</code> "<code class="grammar-literal">)</code>" <code class="grammar-alt">|</code> "<code class="grammar-literal">*</code>" <code class="grammar-alt">|</code> "<code class="grammar-literal">+</code>" <code class="grammar-alt">|</code> "<code class="grammar-literal">,</code>" <code class="grammar-alt">|</code> "<code class="grammar-literal">;</code>" <code class="grammar-alt">|</code> "<code class="grammar-literal">=</code>" <code class="grammar-alt">|</code> "<code class="grammar-literal">/</code>" <code class="grammar-alt">|</code> "<code class="grammar-literal">?</code>" <code class="grammar-alt">|</code> "<code class="grammar-literal">#</code>" <code class="grammar-alt">|</code> "<code class="grammar-literal">@</code>" <code class="grammar-alt">|</code> "<code class="grammar-literal">%</code>"<code class="grammar-paren">)</code></td>
385
386
  </tr>
386
387
  </tbody>
387
388
  </table>
@@ -201,7 +201,7 @@ module EBNF::LL1
201
201
  # @param [Array[Symbol]] types Optional set of types for restricting terminals examined
202
202
  # @return [Token]
203
203
  def recover(*types)
204
- until scanner.eos? || tok = match_token(*types)
204
+ until scanner.eos? || tok = match_token(*types)
205
205
  if scanner.skip_until(@whitespace || /\s+/m).nil? # Skip past current "token"
206
206
  # No whitespace at the end, must be and end of string
207
207
  scanner.terminate