ebnf 0.3.7 → 0.3.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 83c6af2a26c41f53c79e1bb289e35b261eb1eb1a
4
- data.tar.gz: 8dabfd9d6025e868446389aa584bfd5c7a94f43a
3
+ metadata.gz: e20a4ebabd510b7007ee36dad90ee06fb36013d4
4
+ data.tar.gz: 27892bda5632de5c9d6d94f87ddb24aacb755449
5
5
  SHA512:
6
- metadata.gz: 4878eb173f39de9e69acdbcc6547d0ce3c022cdad2fd4fa944029f93dde53749e874707fee4aa9aa66c70089d7270a5148bcde3386dda14bc61338fe70172293
7
- data.tar.gz: 47cf8d873b75110c9cdd051c7178fe3bc287272074ea0f30ff39d3c6981e369d31dce1bbdadfcb1b718b5a5e51dd515449771b3d93ff0b30fc28cf090c74b8a4
6
+ metadata.gz: 61b86236fc3ba702e4ed672499b6449efc9727d46d5ebc3bf7874b4ea6162df9a697fdc6815f5279a0ddbb45c7476f5126403a483fa7bf49594b16019bb632ce
7
+ data.tar.gz: 4181b655381f3a0e7dec3e57444f4793416ff1c3327757e2285e31252f3dfb3ae80f986dd9fb14a7ab7dc273712d71dbf49c6d9e37b63945590f9023fc03f4d1
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.7
1
+ 0.3.8
data/bin/ebnf CHANGED
@@ -58,7 +58,7 @@ opts.each do |opt, arg|
58
58
  when '--evaluate' then input = arg
59
59
  when '--input-format' then options[:format] = arg.to_sym
60
60
  when '--format' then options[:output_format] = arg.to_sym
61
- when '--ll1' then options[:ll1] = arg.to_sym
61
+ when '--ll1' then (options[:ll1] ||= []) <<arg.to_sym
62
62
  when '--mod-name' then options[:mod_name] = arg
63
63
  when '--output' then out = File.open(arg, "w")
64
64
  when '--prefix' then options[:prefix] = arg
@@ -77,7 +77,7 @@ input = File.open(ARGV[0]) if ARGV[0]
77
77
 
78
78
  ebnf = EBNF.parse(input || STDIN, options)
79
79
  ebnf.make_bnf if options[:bnf] || options[:ll1]
80
- ebnf.first_follow(options[:ll1]) if options[:ll1]
80
+ ebnf.first_follow(*options[:ll1]) if options[:ll1]
81
81
 
82
82
  res = case options[:output_format]
83
83
  when :ebnf then ebnf.to_s
@@ -0,0 +1,288 @@
1
+ # SPARQL 1.1 Grammar
2
+
3
+ [1] QueryUnit ::= Query?
4
+ [2] Query ::= Prologue
5
+ ( SelectQuery | ConstructQuery | DescribeQuery | AskQuery )
6
+ [3] UpdateUnit ::= Update
7
+ [4] Prologue ::= ( BaseDecl | PrefixDecl )*
8
+ [5] BaseDecl ::= 'BASE' IRIREF
9
+ [6] PrefixDecl ::= 'PREFIX' PNAME_NS IRIREF
10
+ [7] SelectQuery ::= SelectClause DatasetClause* WhereClause SolutionModifier ValuesClause
11
+ [8] SubSelect ::= SelectClause WhereClause SolutionModifier ValuesClause
12
+ [9] SelectClause ::= 'SELECT' ( 'DISTINCT' | 'REDUCED' )?
13
+ ( ( Var | ( '(' Expression 'AS' Var ')' ) )+ | '*' )
14
+ [10] ConstructQuery ::= 'CONSTRUCT'
15
+ ( ConstructTemplate DatasetClause* WhereClause SolutionModifier
16
+ | DatasetClause* 'WHERE' '{' TriplesTemplate? '}' SolutionModifier )
17
+ ValuesClause
18
+ [11] DescribeQuery ::= 'DESCRIBE' ( VarOrIri+ | '*' )
19
+ DatasetClause* WhereClause? SolutionModifier ValuesClause
20
+ [12] AskQuery ::= 'ASK' DatasetClause* WhereClause ValuesClause
21
+ [13] DatasetClause ::= 'FROM' ( DefaultGraphClause | NamedGraphClause )
22
+ [14] DefaultGraphClause ::= SourceSelector
23
+ [15] NamedGraphClause ::= 'NAMED' SourceSelector
24
+ [16] SourceSelector ::= iri
25
+ [17] WhereClause ::= 'WHERE'? GroupGraphPattern
26
+ [18] SolutionModifier ::= GroupClause? HavingClause? OrderClause? LimitOffsetClauses?
27
+ [19] GroupClause ::= 'GROUP' 'BY' GroupCondition+
28
+ [20] GroupCondition ::= BuiltInCall | FunctionCall
29
+ | '(' Expression ( 'AS' Var )? ')' | Var
30
+ [21] HavingClause ::= 'HAVING' HavingCondition+
31
+ [22] HavingCondition ::= Constraint
32
+ [23] OrderClause ::= 'ORDER' 'BY' OrderCondition+
33
+ [24] OrderCondition ::= ( ( 'ASC' | 'DESC' ) BrackettedExpression )
34
+ | ( Constraint | Var )
35
+ [25] LimitOffsetClauses ::= LimitClause OffsetClause? | OffsetClause LimitClause?
36
+ [26] LimitClause ::= 'LIMIT' INTEGER
37
+ [27] OffsetClause ::= 'OFFSET' INTEGER
38
+ [28] ValuesClause ::= ( 'VALUES' DataBlock )?
39
+ [29] Update ::= Prologue ( Update1 ( ';' Update )? )?
40
+ [30] Update1 ::= Load | Clear | Drop | Add | Move | Copy | Create
41
+ | InsertData | DeleteData | DeleteWhere | Modify
42
+ [31] Load ::= 'LOAD' 'SILENT'? iri ( 'INTO' GraphRef )?
43
+ [32] Clear ::= 'CLEAR' 'SILENT'? GraphRefAll
44
+ [33] Drop ::= 'DROP' 'SILENT'? GraphRefAll
45
+ [34] Create ::= 'CREATE' 'SILENT'? GraphRef
46
+ [35] Add ::= 'ADD' 'SILENT'? GraphOrDefault 'TO' GraphOrDefault
47
+ [36] Move ::= 'MOVE' 'SILENT'? GraphOrDefault 'TO' GraphOrDefault
48
+ [37] Copy ::= 'COPY' 'SILENT'? GraphOrDefault 'TO' GraphOrDefault
49
+ [38] InsertData ::= 'INSERT DATA' QuadData
50
+ [39] DeleteData ::= 'DELETE DATA' QuadData
51
+ [40] DeleteWhere ::= 'DELETE WHERE' QuadPattern
52
+ [41] Modify ::= ( 'WITH' iri )?
53
+ ( DeleteClause InsertClause? | InsertClause )
54
+ UsingClause* 'WHERE' GroupGraphPattern
55
+ [42] DeleteClause ::= 'DELETE' QuadPattern
56
+ [43] InsertClause ::= 'INSERT' QuadPattern
57
+ [44] UsingClause ::= 'USING' ( iri | 'NAMED' iri )
58
+ [45] GraphOrDefault ::= 'DEFAULT' | 'GRAPH'? iri
59
+ [46] GraphRef ::= 'GRAPH' iri
60
+ [47] GraphRefAll ::= GraphRef | 'DEFAULT' | 'NAMED' | 'ALL'
61
+ [48] QuadPattern ::= '{' Quads '}'
62
+ [49] QuadData ::= '{' Quads '}'
63
+ [50] Quads ::= TriplesTemplate?
64
+ ( QuadsNotTriples '.'? TriplesTemplate? )*
65
+ [51] QuadsNotTriples ::= 'GRAPH' VarOrIri '{' TriplesTemplate? '}'
66
+ [52] TriplesTemplate ::= TriplesSameSubject ( '.' TriplesTemplate? )?
67
+ [53] GroupGraphPattern ::= '{' ( SubSelect | GroupGraphPatternSub ) '}'
68
+ [54] GroupGraphPatternSub ::= TriplesBlock? ( GraphPatternNotTriples '.'? TriplesBlock? )*
69
+ [55] TriplesBlock ::= TriplesSameSubjectPath ( '.' TriplesBlock? )?
70
+ [56] GraphPatternNotTriples ::= GroupOrUnionGraphPattern | OptionalGraphPattern
71
+ | MinusGraphPattern | GraphGraphPattern
72
+ | ServiceGraphPattern | Filter | Bind | InlineData
73
+ [57] OptionalGraphPattern ::= 'OPTIONAL' GroupGraphPattern
74
+ [58] GraphGraphPattern ::= 'GRAPH' VarOrIri GroupGraphPattern
75
+ [59] ServiceGraphPattern ::= 'SERVICE' 'SILENT'? VarOrIri GroupGraphPattern
76
+ [60] Bind ::= 'BIND' '(' Expression 'AS' Var ')'
77
+ [61] InlineData ::= 'VALUES' DataBlock
78
+ [62] DataBlock ::= InlineDataOneVar | InlineDataFull
79
+ [63] InlineDataOneVar ::= Var '{' DataBlockValue* '}'
80
+ [64] InlineDataFull ::= ( NIL | '(' Var* ')' )
81
+ '{' ( '(' DataBlockValue* ')' | NIL )* '}'
82
+ [65] DataBlockValue ::= iri | RDFLiteral | NumericLiteral | BooleanLiteral | 'UNDEF'
83
+ [66] MinusGraphPattern ::= 'MINUS' GroupGraphPattern
84
+ [67] GroupOrUnionGraphPattern::= GroupGraphPattern ( 'UNION' GroupGraphPattern )*
85
+ [68] Filter ::= 'FILTER' Constraint
86
+ [69] Constraint ::= BrackettedExpression | BuiltInCall | FunctionCall
87
+ [70] FunctionCall ::= iri ArgList
88
+ [71] ArgList ::= NIL | '(' 'DISTINCT'? Expression ( ',' Expression )* ')'
89
+ [72] ExpressionList ::= NIL | '(' Expression ( ',' Expression )* ')'
90
+ [73] ConstructTemplate ::= '{' ConstructTriples? '}'
91
+ [74] ConstructTriples ::= TriplesSameSubject ( '.' ConstructTriples? )?
92
+ [75] TriplesSameSubject ::= VarOrTerm PropertyListNotEmpty
93
+ | TriplesNode PropertyList
94
+ [76] PropertyList ::= PropertyListNotEmpty?
95
+ [77] PropertyListNotEmpty ::= Verb ObjectList ( ';' ( Verb ObjectList )? )*
96
+ [78] Verb ::= VarOrIri | 'a'
97
+ [79] ObjectList ::= Object ( ',' Object )*
98
+ [80] Object ::= GraphNode
99
+ [81] TriplesSameSubjectPath ::= VarOrTerm PropertyListNotEmptyPath
100
+ | TriplesNode PropertyListPath
101
+ [82] PropertyListPath ::= PropertyListNotEmpty?
102
+ [83] PropertyListNotEmptyPath::= ( VerbPath | VerbSimple ) ObjectList
103
+ ( ';' ( ( VerbPath | VerbSimple ) ObjectList )? )*
104
+ [84] VerbPath ::= Path
105
+ [85] VerbSimple ::= Var
106
+ [86] ObjectListPath ::= ObjectPath ( ',' ObjectPath )*
107
+ [87] ObjectPath ::= GraphNodePath
108
+ [88] Path ::= PathAlternative
109
+ [89] PathAlternative ::= PathSequence ( '|' PathSequence )*
110
+ [90] PathSequence ::= PathEltOrInverse ( '/' PathEltOrInverse )*
111
+ [91] PathElt ::= PathPrimary PathMod?
112
+ [92] PathEltOrInverse ::= PathElt | '^' PathElt
113
+ [93] PathMod ::= '*' | '?' | '+'
114
+ | '{' ( Integer ( ',' ( '}' | Integer '}' ) | '}' ) | ',' Integer '}' )
115
+ [94] PathPrimary ::= iri | 'a' | '!' PathNegatedPropertySet | '(' Path ')'
116
+ [95] PathNegatedPropertySet ::= PathOneInPropertySet
117
+ | '(' ( PathOneInPropertySet ( '|' PathOneInPropertySet )* )? ')'
118
+ [96] PathOneInPropertySet ::= iri | 'a' | '^' ( iri | 'a' )
119
+ [97] Integer ::= INTEGER
120
+ [98] TriplesNode ::= Collection | BlankNodePropertyList
121
+ [99] BlankNodePropertyList ::= '[' PropertyListNotEmpty ']'
122
+ [100] TriplesNodePath ::= CollectionPath | BlankNodePropertyListPath
123
+ [101] BlankNodePropertyListPath::= '[' PropertyListPathNotEmpty ']'
124
+ [102] Collection ::= '(' GraphNode+ ')'
125
+ [103] CollectionPath ::= '(' GraphNodePath+ ')'
126
+ [104] GraphNode ::= VarOrTerm | TriplesNode
127
+ [105] GraphNodePath ::= VarOrTerm | TriplesNodePath
128
+ [106] VarOrTerm ::= Var | GraphTerm
129
+ [107] VarOrIri ::= Var | iri
130
+ [108] Var ::= VAR1 | VAR2
131
+ [109] GraphTerm ::= iri | RDFLiteral | NumericLiteral | BooleanLiteral
132
+ | BlankNode | NIL
133
+ [110] Expression ::= ConditionalOrExpression
134
+ [111] ConditionalOrExpression ::= ConditionalAndExpression
135
+ ( '||' ConditionalAndExpression )*
136
+ [112] ConditionalAndExpression::= ValueLogical ( '&&' ValueLogical )*
137
+ [113] ValueLogical ::= RelationalExpression
138
+ [114] RelationalExpression ::= NumericExpression
139
+ ( '=' NumericExpression
140
+ | '!=' NumericExpression
141
+ | '<' NumericExpression
142
+ | '>' NumericExpression
143
+ | '<=' NumericExpression
144
+ | '>=' NumericExpression
145
+ | 'IN' ExpressionList
146
+ | 'NOT' 'IN' ExpressionList )?
147
+ [115] NumericExpression ::= AdditiveExpression
148
+ [116] AdditiveExpression ::= MultiplicativeExpression
149
+ ( '+' MultiplicativeExpression
150
+ | '-' MultiplicativeExpression
151
+ | ( NumericLiteralPositive | NumericLiteralNegative )
152
+ ( ( '*' UnaryExpression ) | ( '/' UnaryExpression ) )? )*
153
+ [117] MultiplicativeExpression::= UnaryExpression ( '*' UnaryExpression | '/' UnaryExpression )*
154
+ [118] UnaryExpression ::= '!' PrimaryExpression
155
+ | '+' PrimaryExpression
156
+ | '-' PrimaryExpression
157
+ | PrimaryExpression
158
+ [119] PrimaryExpression ::= BrackettedExpression | BuiltInCall | iriOrFunction
159
+ | RDFLiteral | NumericLiteral | BooleanLiteral
160
+ | Var
161
+ [120] BrackettedExpression ::= '(' Expression ')'
162
+ [121] BuiltInCall ::= Aggregate
163
+ | 'STR' '(' Expression ')'
164
+ | 'LANG' '(' Expression ')'
165
+ | 'LANGMATCHES' '(' Expression ',' Expression ')'
166
+ | 'DATATYPE' '(' Expression ')'
167
+ | 'BOUND' '(' Var ')'
168
+ | 'IRI' '(' Expression ')'
169
+ | 'URI' '(' Expression ')'
170
+ | 'BNODE' ( '(' Expression ')' | NIL )
171
+ | 'RAND' NIL
172
+ | 'ABS' '(' Expression ')'
173
+ | 'CEIL' '(' Expression ')'
174
+ | 'FLOOR' '(' Expression ')'
175
+ | 'ROUND' '(' Expression ')'
176
+ | 'CONCAT' ExpressionList
177
+ | SubstringExpression
178
+ | 'STRLEN' '(' Expression ')'
179
+ | StrReplaceExpression
180
+ | 'UCASE' '(' Expression ')'
181
+ | 'LCASE' '(' Expression ')'
182
+ | 'ENCODE_FOR_URI' '(' Expression ')'
183
+ | 'CONTAINS' '(' Expression ',' Expression ')'
184
+ | 'STRSTARTS' '(' Expression ',' Expression ')'
185
+ | 'STRENDS' '(' Expression ',' Expression ')'
186
+ | 'STRBEFORE' '(' Expression ',' Expression ')'
187
+ | 'STRAFTER' '(' Expression ',' Expression ')'
188
+ | 'YEAR' '(' Expression ')'
189
+ | 'MONTH' '(' Expression ')'
190
+ | 'DAY' '(' Expression ')'
191
+ | 'HOURS' '(' Expression ')'
192
+ | 'MINUTES' '(' Expression ')'
193
+ | 'SECONDS' '(' Expression ')'
194
+ | 'TIMEZONE' '(' Expression ')'
195
+ | 'TZ' '(' Expression ')'
196
+ | 'NOW' NIL
197
+ | 'UUID' NIL
198
+ | 'STRUUID' NIL
199
+ | 'MD5' '(' Expression ')'
200
+ | 'SHA1' '(' Expression ')'
201
+ | 'SHA224' '(' Expression ')'
202
+ | 'SHA256' '(' Expression ')'
203
+ | 'SHA384' '(' Expression ')'
204
+ | 'SHA512' '(' Expression ')'
205
+ | 'COALESCE' ExpressionList
206
+ | 'IF' '(' Expression ',' Expression ',' Expression ')'
207
+ | 'STRLANG' '(' Expression ',' Expression ')'
208
+ | 'STRDT' '(' Expression ',' Expression ')'
209
+ | 'sameTerm' '(' Expression ',' Expression ')'
210
+ | 'isIRI' '(' Expression ')'
211
+ | 'isURI' '(' Expression ')'
212
+ | 'isBLANK' '(' Expression ')'
213
+ | 'isLITERAL' '(' Expression ')'
214
+ | 'isNUMERIC' '(' Expression ')'
215
+ | RegexExpression
216
+ | ExistsFunc
217
+ | NotExistsFunc
218
+ [122] RegexExpression ::= 'REGEX' '(' Expression ',' Expression ( ',' Expression )? ')'
219
+ [123] SubstringExpression ::= 'SUBSTR' '(' Expression ',' Expression ( ',' Expression )? ')'
220
+ [124] StrReplaceExpression ::= 'REPLACE' '(' Expression ',' Expression ',' Expression ( ',' Expression )? ')'
221
+ [125] ExistsFunc ::= 'EXISTS' GroupGraphPattern
222
+ [126] NotExistsFunc ::= 'NOT' 'EXISTS' GroupGraphPattern
223
+ [127] Aggregate ::= 'COUNT' '(' 'DISTINCT'? ( '*' | Expression ) ')'
224
+ | 'SUM' '(' 'DISTINCT'? Expression ')'
225
+ | 'MIN' '(' 'DISTINCT'? Expression ')'
226
+ | 'MAX' '(' 'DISTINCT'? Expression ')'
227
+ | 'AVG' '(' 'DISTINCT'? Expression ')'
228
+ | 'SAMPLE' '(' 'DISTINCT'? Expression ')'
229
+ | 'GROUP_CONCAT' '(' 'DISTINCT'? Expression
230
+ ( ';' 'SEPARATOR' '=' String )? ')'
231
+ [128] iriOrFunction ::= iri ArgList?
232
+ [129] RDFLiteral ::= String ( LANGTAG | ( '^^' iri ) )?
233
+ [130] NumericLiteral ::= NumericLiteralUnsigned | NumericLiteralPositive | NumericLiteralNegative
234
+ [131] NumericLiteralUnsigned ::= INTEGER | DECIMAL | DOUBLE
235
+ [132] NumericLiteralPositive ::= INTEGER_POSITIVE | DECIMAL_POSITIVE | DOUBLE_POSITIVE
236
+ [133] NumericLiteralNegative ::= INTEGER_NEGATIVE | DECIMAL_NEGATIVE | DOUBLE_NEGATIVE
237
+ [134] BooleanLiteral ::= 'true' | 'false'
238
+ [135] String ::= STRING_LITERAL1 | STRING_LITERAL2
239
+ | STRING_LITERAL_LONG1 | STRING_LITERAL_LONG2
240
+ [136] iri ::= IRIREF | PrefixedName
241
+ [137] PrefixedName ::= PNAME_LN | PNAME_NS
242
+ [138] BlankNode ::= BLANK_NODE_LABEL | ANON
243
+
244
+ @terminals
245
+
246
+ [139] IRIREF ::= '<' ([^#x00-#x20<>"{}|^`\] | UCHAR)* '>'
247
+ [140] PNAME_NS ::= PN_PREFIX? ':'
248
+ [141] PNAME_LN ::= PNAME_NS PN_LOCAL
249
+ [142] BLANK_NODE_LABEL ::= '_:' ( PN_CHARS_U | [0-9] ) ((PN_CHARS|'.')* PN_CHARS)?
250
+ [143] VAR1 ::= '?' VARNAME
251
+ [144] VAR2 ::= '$' VARNAME
252
+ [145] LANGTAG ::= '@' [a-zA-Z]+ ('-' [a-zA-Z0-9]+)*
253
+ [146] INTEGER ::= [0-9]+
254
+ [147] DECIMAL ::= [0-9]* '.' [0-9]+
255
+ [148] DOUBLE ::= [0-9]+ '.' [0-9]* EXPONENT
256
+ | '.' ([0-9])+ EXPONENT | ([0-9])+ EXPONENT
257
+ [149] INTEGER_POSITIVE ::= '+' INTEGER
258
+ [150] DECIMAL_POSITIVE ::= '+' DECIMAL
259
+ [151] DOUBLE_POSITIVE ::= '+' DOUBLE
260
+ [152] INTEGER_NEGATIVE ::= '-' INTEGER
261
+ [153] DECIMAL_NEGATIVE ::= '-' DECIMAL
262
+ [154] DOUBLE_NEGATIVE ::= '-' DOUBLE
263
+ [155] EXPONENT ::= [eE] [+-]? [0-9]+
264
+ [156] STRING_LITERAL1 ::= "'" ( ([^#x27#x5C#xA#xD]) | ECHAR )* "'"
265
+ [157] STRING_LITERAL2 ::= '"' ( ([^#x22#x5C#xA#xD]) | ECHAR )* '"'
266
+ [158] STRING_LITERAL_LONG1 ::= "'''" ( ( "'" | "''" )? ( [^'\] | ECHAR ) )* "'''"
267
+ [159] STRING_LITERAL_LONG2 ::= '"""' ( ( '"' | '""' )? ( [^"\] | ECHAR ) )* '"""'
268
+ [160] ECHAR ::= '\' [tbnrf\"']
269
+ [161] NIL ::= '(' WS* ')'
270
+ [162] WS ::= #x20 | #x9 | #xD | #xA
271
+ [163] ANON ::= '[' WS* ']'
272
+ [164] PN_CHARS_BASE ::= [A-Z] | [a-z] | [#x00C0-#x00D6]
273
+ | [#x00D8-#x00F6] | [#x00F8-#x02FF] | [#x0370-#x037D]
274
+ | [#x037F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F]
275
+ | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF]
276
+ | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]
277
+ [165] PN_CHARS_U ::= PN_CHARS_BASE | '_'
278
+ [166] VARNAME ::= ( PN_CHARS_U | [0-9] ) ( PN_CHARS_U | [0-9]
279
+ | #x00B7 | [#x0300-#x036F] | [#x203F-#x2040] )*
280
+ [167] PN_CHARS ::= PN_CHARS_U | '-' | [0-9] | #x00B7 | [#x0300-#x036F]
281
+ | [#x203F-#x2040]
282
+ [168] PN_PREFIX ::= PN_CHARS_BASE ((PN_CHARS|'.')* PN_CHARS)?
283
+ [169] PN_LOCAL ::= ( PN_CHARS_U | [0-9] ) ((PN_CHARS|'.')* PN_CHARS)?
284
+ [170] PLX ::= PERCENT | PN_LOCAL_ESC
285
+ [171] PERCENT ::= '%' HEX HEX
286
+ [172] HEX ::= [0-9] | [A-F] | [a-f]
287
+ [173] PN_LOCAL_ESC ::= '\' ( '_' | '~' | '.' | '-' | '!' | '$' | '&' | "'" | '(' | ')' | '*' | '+' | ',' | ';' | '='
288
+ | '/' | '?' | '#' | '@' | '%' )
@@ -0,0 +1,1753 @@
1
+ <table class='grammar'>
2
+ <tbody id='grammar-productions'>
3
+ <tr id='grammar-production-QueryUnit'>
4
+ <td>[1]</td>
5
+ <td><code>QueryUnit</code></td>
6
+ <td>::=</td>
7
+ <td>
8
+ <a href="#grammar-production-Query">Query</a><code>?</code>
9
+ </td>
10
+ </tr>
11
+ <tr id='grammar-production-Query'>
12
+ <td>[2]</td>
13
+ <td><code>Query</code></td>
14
+ <td>::=</td>
15
+ <td>
16
+ <a href="#grammar-production-Prologue">Prologue</a>
17
+ <code>(</code> <a href="#grammar-production-SelectQuery">SelectQuery</a> <code>|</code> <a href="#grammar-production-ConstructQuery">ConstructQuery</a> <code>|</code> <a href="#grammar-production-DescribeQuery">DescribeQuery</a> <code>|</code> <a href="#grammar-production-AskQuery">AskQuery</a><code>)</code>
18
+ </td>
19
+ </tr>
20
+ <tr id='grammar-production-UpdateUnit'>
21
+ <td>[3]</td>
22
+ <td><code>UpdateUnit</code></td>
23
+ <td>::=</td>
24
+ <td>
25
+ <a href="#grammar-production-Update">Update</a>
26
+ </td>
27
+ </tr>
28
+ <tr id='grammar-production-Prologue'>
29
+ <td>[4]</td>
30
+ <td><code>Prologue</code></td>
31
+ <td>::=</td>
32
+ <td>
33
+ (<a href="#grammar-production-BaseDecl">BaseDecl</a> <code>|</code> <a href="#grammar-production-PrefixDecl">PrefixDecl</a>)<code>*</code>
34
+ </td>
35
+ </tr>
36
+ <tr id='grammar-production-BaseDecl'>
37
+ <td>[5]</td>
38
+ <td><code>BaseDecl</code></td>
39
+ <td>::=</td>
40
+ <td>
41
+ "<code class="grammar-literal">BASE</code>"
42
+ <a href="#grammar-production-IRIREF">IRIREF</a>
43
+ </td>
44
+ </tr>
45
+ <tr id='grammar-production-PrefixDecl'>
46
+ <td>[6]</td>
47
+ <td><code>PrefixDecl</code></td>
48
+ <td>::=</td>
49
+ <td>
50
+ "<code class="grammar-literal">PREFIX</code>"
51
+ <a href="#grammar-production-PNAME_NS">PNAME_NS</a>
52
+ <a href="#grammar-production-IRIREF">IRIREF</a>
53
+ </td>
54
+ </tr>
55
+ <tr id='grammar-production-SelectQuery'>
56
+ <td>[7]</td>
57
+ <td><code>SelectQuery</code></td>
58
+ <td>::=</td>
59
+ <td>
60
+ <a href="#grammar-production-SelectClause">SelectClause</a>
61
+ <a href="#grammar-production-DatasetClause">DatasetClause</a><code>*</code>
62
+ <a href="#grammar-production-WhereClause">WhereClause</a>
63
+ <a href="#grammar-production-SolutionModifier">SolutionModifier</a>
64
+ <a href="#grammar-production-ValuesClause">ValuesClause</a>
65
+ </td>
66
+ </tr>
67
+ <tr id='grammar-production-SubSelect'>
68
+ <td>[8]</td>
69
+ <td><code>SubSelect</code></td>
70
+ <td>::=</td>
71
+ <td>
72
+ <a href="#grammar-production-SelectClause">SelectClause</a>
73
+ <a href="#grammar-production-WhereClause">WhereClause</a>
74
+ <a href="#grammar-production-SolutionModifier">SolutionModifier</a>
75
+ <a href="#grammar-production-ValuesClause">ValuesClause</a>
76
+ </td>
77
+ </tr>
78
+ <tr id='grammar-production-SelectClause'>
79
+ <td>[9]</td>
80
+ <td><code>SelectClause</code></td>
81
+ <td>::=</td>
82
+ <td>
83
+ "<code class="grammar-literal">SELECT</code>"
84
+ ("<code class="grammar-literal">DISTINCT</code>" <code>|</code> "<code class="grammar-literal">REDUCED</code>")<code>?</code>
85
+ <code>(</code> (<a href="#grammar-production-Var">Var</a> <code>|</code> "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">AS</code>" <a href="#grammar-production-Var">Var</a> "<code class="grammar-literal">)</code>")<code>+</code> <code>|</code> "<code class="grammar-literal">*</code>"<code>)</code>
86
+ </td>
87
+ </tr>
88
+ <tr id='grammar-production-ConstructQuery'>
89
+ <td>[10]</td>
90
+ <td><code>ConstructQuery</code></td>
91
+ <td>::=</td>
92
+ <td>
93
+ "<code class="grammar-literal">CONSTRUCT</code>"
94
+ <code>(</code> <a href="#grammar-production-ConstructTemplate">ConstructTemplate</a> <a href="#grammar-production-DatasetClause">DatasetClause</a><code>*</code> <a href="#grammar-production-WhereClause">WhereClause</a> <a href="#grammar-production-SolutionModifier">SolutionModifier</a> <code>|</code> <a href="#grammar-production-DatasetClause">DatasetClause</a><code>*</code> "<code class="grammar-literal">WHERE</code>" "<code class="grammar-literal">{</code>" <a href="#grammar-production-TriplesTemplate">TriplesTemplate</a><code>?</code> "<code class="grammar-literal">}</code>" <a href="#grammar-production-SolutionModifier">SolutionModifier</a><code>)</code>
95
+ <a href="#grammar-production-ValuesClause">ValuesClause</a>
96
+ </td>
97
+ </tr>
98
+ <tr id='grammar-production-DescribeQuery'>
99
+ <td>[11]</td>
100
+ <td><code>DescribeQuery</code></td>
101
+ <td>::=</td>
102
+ <td>
103
+ "<code class="grammar-literal">DESCRIBE</code>"
104
+ <code>(</code> <a href="#grammar-production-VarOrIri">VarOrIri</a><code>+</code> <code>|</code> "<code class="grammar-literal">*</code>"<code>)</code>
105
+ <a href="#grammar-production-DatasetClause">DatasetClause</a><code>*</code>
106
+ <a href="#grammar-production-WhereClause">WhereClause</a><code>?</code>
107
+ <a href="#grammar-production-SolutionModifier">SolutionModifier</a>
108
+ <a href="#grammar-production-ValuesClause">ValuesClause</a>
109
+ </td>
110
+ </tr>
111
+ <tr id='grammar-production-AskQuery'>
112
+ <td>[12]</td>
113
+ <td><code>AskQuery</code></td>
114
+ <td>::=</td>
115
+ <td>
116
+ "<code class="grammar-literal">ASK</code>"
117
+ <a href="#grammar-production-DatasetClause">DatasetClause</a><code>*</code>
118
+ <a href="#grammar-production-WhereClause">WhereClause</a>
119
+ <a href="#grammar-production-ValuesClause">ValuesClause</a>
120
+ </td>
121
+ </tr>
122
+ <tr id='grammar-production-DatasetClause'>
123
+ <td>[13]</td>
124
+ <td><code>DatasetClause</code></td>
125
+ <td>::=</td>
126
+ <td>
127
+ "<code class="grammar-literal">FROM</code>"
128
+ <code>(</code> <a href="#grammar-production-DefaultGraphClause">DefaultGraphClause</a> <code>|</code> <a href="#grammar-production-NamedGraphClause">NamedGraphClause</a><code>)</code>
129
+ </td>
130
+ </tr>
131
+ <tr id='grammar-production-DefaultGraphClause'>
132
+ <td>[14]</td>
133
+ <td><code>DefaultGraphClause</code></td>
134
+ <td>::=</td>
135
+ <td>
136
+ <a href="#grammar-production-SourceSelector">SourceSelector</a>
137
+ </td>
138
+ </tr>
139
+ <tr id='grammar-production-NamedGraphClause'>
140
+ <td>[15]</td>
141
+ <td><code>NamedGraphClause</code></td>
142
+ <td>::=</td>
143
+ <td>
144
+ "<code class="grammar-literal">NAMED</code>"
145
+ <a href="#grammar-production-SourceSelector">SourceSelector</a>
146
+ </td>
147
+ </tr>
148
+ <tr id='grammar-production-SourceSelector'>
149
+ <td>[16]</td>
150
+ <td><code>SourceSelector</code></td>
151
+ <td>::=</td>
152
+ <td>
153
+ <a href="#grammar-production-iri">iri</a>
154
+ </td>
155
+ </tr>
156
+ <tr id='grammar-production-WhereClause'>
157
+ <td>[17]</td>
158
+ <td><code>WhereClause</code></td>
159
+ <td>::=</td>
160
+ <td>
161
+ "<code class="grammar-literal">WHERE</code>"<code>?</code>
162
+ <a href="#grammar-production-GroupGraphPattern">GroupGraphPattern</a>
163
+ </td>
164
+ </tr>
165
+ <tr id='grammar-production-SolutionModifier'>
166
+ <td>[18]</td>
167
+ <td><code>SolutionModifier</code></td>
168
+ <td>::=</td>
169
+ <td>
170
+ <a href="#grammar-production-GroupClause">GroupClause</a><code>?</code>
171
+ <a href="#grammar-production-HavingClause">HavingClause</a><code>?</code>
172
+ <a href="#grammar-production-OrderClause">OrderClause</a><code>?</code>
173
+ <a href="#grammar-production-LimitOffsetClauses">LimitOffsetClauses</a><code>?</code>
174
+ </td>
175
+ </tr>
176
+ <tr id='grammar-production-GroupClause'>
177
+ <td>[19]</td>
178
+ <td><code>GroupClause</code></td>
179
+ <td>::=</td>
180
+ <td>
181
+ "<code class="grammar-literal">GROUP</code>"
182
+ "<code class="grammar-literal">BY</code>"
183
+ <a href="#grammar-production-GroupCondition">GroupCondition</a><code>+</code>
184
+ </td>
185
+ </tr>
186
+ <tr id='grammar-production-GroupCondition'>
187
+ <td>[20]</td>
188
+ <td><code>GroupCondition</code></td>
189
+ <td>::=</td>
190
+ <td>
191
+ <a href="#grammar-production-BuiltInCall">BuiltInCall</a>
192
+ <code>|</code> <a href="#grammar-production-FunctionCall">FunctionCall</a>
193
+ <code>|</code> "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> ("<code class="grammar-literal">AS</code>" <a href="#grammar-production-Var">Var</a>)<code>?</code> "<code class="grammar-literal">)</code>"
194
+ <code>|</code> <a href="#grammar-production-Var">Var</a>
195
+ </td>
196
+ </tr>
197
+ <tr id='grammar-production-HavingClause'>
198
+ <td>[21]</td>
199
+ <td><code>HavingClause</code></td>
200
+ <td>::=</td>
201
+ <td>
202
+ "<code class="grammar-literal">HAVING</code>"
203
+ <a href="#grammar-production-HavingCondition">HavingCondition</a><code>+</code>
204
+ </td>
205
+ </tr>
206
+ <tr id='grammar-production-HavingCondition'>
207
+ <td>[22]</td>
208
+ <td><code>HavingCondition</code></td>
209
+ <td>::=</td>
210
+ <td>
211
+ <a href="#grammar-production-Constraint">Constraint</a>
212
+ </td>
213
+ </tr>
214
+ <tr id='grammar-production-OrderClause'>
215
+ <td>[23]</td>
216
+ <td><code>OrderClause</code></td>
217
+ <td>::=</td>
218
+ <td>
219
+ "<code class="grammar-literal">ORDER</code>"
220
+ "<code class="grammar-literal">BY</code>"
221
+ <a href="#grammar-production-OrderCondition">OrderCondition</a><code>+</code>
222
+ </td>
223
+ </tr>
224
+ <tr id='grammar-production-OrderCondition'>
225
+ <td>[24]</td>
226
+ <td><code>OrderCondition</code></td>
227
+ <td>::=</td>
228
+ <td>
229
+ <code>(</code> "<code class="grammar-literal">ASC</code>" <code>|</code> "<code class="grammar-literal">DESC</code>"<code>)</code> <a href="#grammar-production-BrackettedExpression">BrackettedExpression</a>
230
+ <code>|</code> <a href="#grammar-production-Constraint">Constraint</a> <code>|</code> <a href="#grammar-production-Var">Var</a>
231
+ </td>
232
+ </tr>
233
+ <tr id='grammar-production-LimitOffsetClauses'>
234
+ <td>[25]</td>
235
+ <td><code>LimitOffsetClauses</code></td>
236
+ <td>::=</td>
237
+ <td>
238
+ <a href="#grammar-production-LimitClause">LimitClause</a> <a href="#grammar-production-OffsetClause">OffsetClause</a><code>?</code>
239
+ <code>|</code> <a href="#grammar-production-OffsetClause">OffsetClause</a> <a href="#grammar-production-LimitClause">LimitClause</a><code>?</code>
240
+ </td>
241
+ </tr>
242
+ <tr id='grammar-production-LimitClause'>
243
+ <td>[26]</td>
244
+ <td><code>LimitClause</code></td>
245
+ <td>::=</td>
246
+ <td>
247
+ "<code class="grammar-literal">LIMIT</code>"
248
+ <a href="#grammar-production-INTEGER">INTEGER</a>
249
+ </td>
250
+ </tr>
251
+ <tr id='grammar-production-OffsetClause'>
252
+ <td>[27]</td>
253
+ <td><code>OffsetClause</code></td>
254
+ <td>::=</td>
255
+ <td>
256
+ "<code class="grammar-literal">OFFSET</code>"
257
+ <a href="#grammar-production-INTEGER">INTEGER</a>
258
+ </td>
259
+ </tr>
260
+ <tr id='grammar-production-ValuesClause'>
261
+ <td>[28]</td>
262
+ <td><code>ValuesClause</code></td>
263
+ <td>::=</td>
264
+ <td>
265
+ ("<code class="grammar-literal">VALUES</code>" <a href="#grammar-production-DataBlock">DataBlock</a>)<code>?</code>
266
+ </td>
267
+ </tr>
268
+ <tr id='grammar-production-Update'>
269
+ <td>[29]</td>
270
+ <td><code>Update</code></td>
271
+ <td>::=</td>
272
+ <td>
273
+ <a href="#grammar-production-Prologue">Prologue</a>
274
+ (<a href="#grammar-production-Update1">Update1</a> ("<code class="grammar-literal">;</code>" <a href="#grammar-production-Update">Update</a>)<code>?</code> )<code>?</code>
275
+ </td>
276
+ </tr>
277
+ <tr id='grammar-production-Update1'>
278
+ <td>[30]</td>
279
+ <td><code>Update1</code></td>
280
+ <td>::=</td>
281
+ <td>
282
+ <a href="#grammar-production-Load">Load</a>
283
+ <code>|</code> <a href="#grammar-production-Clear">Clear</a>
284
+ <code>|</code> <a href="#grammar-production-Drop">Drop</a>
285
+ <code>|</code> <a href="#grammar-production-Add">Add</a>
286
+ <code>|</code> <a href="#grammar-production-Move">Move</a>
287
+ <code>|</code> <a href="#grammar-production-Copy">Copy</a>
288
+ <code>|</code> <a href="#grammar-production-Create">Create</a>
289
+ <code>|</code> <a href="#grammar-production-InsertData">InsertData</a>
290
+ <code>|</code> <a href="#grammar-production-DeleteData">DeleteData</a>
291
+ <code>|</code> <a href="#grammar-production-DeleteWhere">DeleteWhere</a>
292
+ <code>|</code> <a href="#grammar-production-Modify">Modify</a>
293
+ </td>
294
+ </tr>
295
+ <tr id='grammar-production-Load'>
296
+ <td>[31]</td>
297
+ <td><code>Load</code></td>
298
+ <td>::=</td>
299
+ <td>
300
+ "<code class="grammar-literal">LOAD</code>"
301
+ "<code class="grammar-literal">SILENT</code>"<code>?</code>
302
+ <a href="#grammar-production-iri">iri</a>
303
+ ("<code class="grammar-literal">INTO</code>" <a href="#grammar-production-GraphRef">GraphRef</a>)<code>?</code>
304
+ </td>
305
+ </tr>
306
+ <tr id='grammar-production-Clear'>
307
+ <td>[32]</td>
308
+ <td><code>Clear</code></td>
309
+ <td>::=</td>
310
+ <td>
311
+ "<code class="grammar-literal">CLEAR</code>"
312
+ "<code class="grammar-literal">SILENT</code>"<code>?</code>
313
+ <a href="#grammar-production-GraphRefAll">GraphRefAll</a>
314
+ </td>
315
+ </tr>
316
+ <tr id='grammar-production-Drop'>
317
+ <td>[33]</td>
318
+ <td><code>Drop</code></td>
319
+ <td>::=</td>
320
+ <td>
321
+ "<code class="grammar-literal">DROP</code>"
322
+ "<code class="grammar-literal">SILENT</code>"<code>?</code>
323
+ <a href="#grammar-production-GraphRefAll">GraphRefAll</a>
324
+ </td>
325
+ </tr>
326
+ <tr id='grammar-production-Create'>
327
+ <td>[34]</td>
328
+ <td><code>Create</code></td>
329
+ <td>::=</td>
330
+ <td>
331
+ "<code class="grammar-literal">CREATE</code>"
332
+ "<code class="grammar-literal">SILENT</code>"<code>?</code>
333
+ <a href="#grammar-production-GraphRef">GraphRef</a>
334
+ </td>
335
+ </tr>
336
+ <tr id='grammar-production-Add'>
337
+ <td>[35]</td>
338
+ <td><code>Add</code></td>
339
+ <td>::=</td>
340
+ <td>
341
+ "<code class="grammar-literal">ADD</code>"
342
+ "<code class="grammar-literal">SILENT</code>"<code>?</code>
343
+ <a href="#grammar-production-GraphOrDefault">GraphOrDefault</a>
344
+ "<code class="grammar-literal">TO</code>"
345
+ <a href="#grammar-production-GraphOrDefault">GraphOrDefault</a>
346
+ </td>
347
+ </tr>
348
+ <tr id='grammar-production-Move'>
349
+ <td>[36]</td>
350
+ <td><code>Move</code></td>
351
+ <td>::=</td>
352
+ <td>
353
+ "<code class="grammar-literal">MOVE</code>"
354
+ "<code class="grammar-literal">SILENT</code>"<code>?</code>
355
+ <a href="#grammar-production-GraphOrDefault">GraphOrDefault</a>
356
+ "<code class="grammar-literal">TO</code>"
357
+ <a href="#grammar-production-GraphOrDefault">GraphOrDefault</a>
358
+ </td>
359
+ </tr>
360
+ <tr id='grammar-production-Copy'>
361
+ <td>[37]</td>
362
+ <td><code>Copy</code></td>
363
+ <td>::=</td>
364
+ <td>
365
+ "<code class="grammar-literal">COPY</code>"
366
+ "<code class="grammar-literal">SILENT</code>"<code>?</code>
367
+ <a href="#grammar-production-GraphOrDefault">GraphOrDefault</a>
368
+ "<code class="grammar-literal">TO</code>"
369
+ <a href="#grammar-production-GraphOrDefault">GraphOrDefault</a>
370
+ </td>
371
+ </tr>
372
+ <tr id='grammar-production-InsertData'>
373
+ <td>[38]</td>
374
+ <td><code>InsertData</code></td>
375
+ <td>::=</td>
376
+ <td>
377
+ "<code class="grammar-literal">INSERT DATA</code>"
378
+ <a href="#grammar-production-QuadData">QuadData</a>
379
+ </td>
380
+ </tr>
381
+ <tr id='grammar-production-DeleteData'>
382
+ <td>[39]</td>
383
+ <td><code>DeleteData</code></td>
384
+ <td>::=</td>
385
+ <td>
386
+ "<code class="grammar-literal">DELETE DATA</code>"
387
+ <a href="#grammar-production-QuadData">QuadData</a>
388
+ </td>
389
+ </tr>
390
+ <tr id='grammar-production-DeleteWhere'>
391
+ <td>[40]</td>
392
+ <td><code>DeleteWhere</code></td>
393
+ <td>::=</td>
394
+ <td>
395
+ "<code class="grammar-literal">DELETE WHERE</code>"
396
+ <a href="#grammar-production-QuadPattern">QuadPattern</a>
397
+ </td>
398
+ </tr>
399
+ <tr id='grammar-production-Modify'>
400
+ <td>[41]</td>
401
+ <td><code>Modify</code></td>
402
+ <td>::=</td>
403
+ <td>
404
+ ("<code class="grammar-literal">WITH</code>" <a href="#grammar-production-iri">iri</a>)<code>?</code>
405
+ <code>(</code> <a href="#grammar-production-DeleteClause">DeleteClause</a> <a href="#grammar-production-InsertClause">InsertClause</a><code>?</code> <code>|</code> <a href="#grammar-production-InsertClause">InsertClause</a><code>)</code>
406
+ <a href="#grammar-production-UsingClause">UsingClause</a><code>*</code>
407
+ "<code class="grammar-literal">WHERE</code>"
408
+ <a href="#grammar-production-GroupGraphPattern">GroupGraphPattern</a>
409
+ </td>
410
+ </tr>
411
+ <tr id='grammar-production-DeleteClause'>
412
+ <td>[42]</td>
413
+ <td><code>DeleteClause</code></td>
414
+ <td>::=</td>
415
+ <td>
416
+ "<code class="grammar-literal">DELETE</code>"
417
+ <a href="#grammar-production-QuadPattern">QuadPattern</a>
418
+ </td>
419
+ </tr>
420
+ <tr id='grammar-production-InsertClause'>
421
+ <td>[43]</td>
422
+ <td><code>InsertClause</code></td>
423
+ <td>::=</td>
424
+ <td>
425
+ "<code class="grammar-literal">INSERT</code>"
426
+ <a href="#grammar-production-QuadPattern">QuadPattern</a>
427
+ </td>
428
+ </tr>
429
+ <tr id='grammar-production-UsingClause'>
430
+ <td>[44]</td>
431
+ <td><code>UsingClause</code></td>
432
+ <td>::=</td>
433
+ <td>
434
+ "<code class="grammar-literal">USING</code>"
435
+ <code>(</code> <a href="#grammar-production-iri">iri</a> <code>|</code> "<code class="grammar-literal">NAMED</code>" <a href="#grammar-production-iri">iri</a><code>)</code>
436
+ </td>
437
+ </tr>
438
+ <tr id='grammar-production-GraphOrDefault'>
439
+ <td>[45]</td>
440
+ <td><code>GraphOrDefault</code></td>
441
+ <td>::=</td>
442
+ <td>
443
+ "<code class="grammar-literal">DEFAULT</code>"
444
+ <code>|</code> "<code class="grammar-literal">GRAPH</code>"<code>?</code> <a href="#grammar-production-iri">iri</a>
445
+ </td>
446
+ </tr>
447
+ <tr id='grammar-production-GraphRef'>
448
+ <td>[46]</td>
449
+ <td><code>GraphRef</code></td>
450
+ <td>::=</td>
451
+ <td>
452
+ "<code class="grammar-literal">GRAPH</code>"
453
+ <a href="#grammar-production-iri">iri</a>
454
+ </td>
455
+ </tr>
456
+ <tr id='grammar-production-GraphRefAll'>
457
+ <td>[47]</td>
458
+ <td><code>GraphRefAll</code></td>
459
+ <td>::=</td>
460
+ <td>
461
+ <a href="#grammar-production-GraphRef">GraphRef</a>
462
+ <code>|</code> "<code class="grammar-literal">DEFAULT</code>"
463
+ <code>|</code> "<code class="grammar-literal">NAMED</code>"
464
+ <code>|</code> "<code class="grammar-literal">ALL</code>"
465
+ </td>
466
+ </tr>
467
+ <tr id='grammar-production-QuadPattern'>
468
+ <td>[48]</td>
469
+ <td><code>QuadPattern</code></td>
470
+ <td>::=</td>
471
+ <td>
472
+ "<code class="grammar-literal">{</code>"
473
+ <a href="#grammar-production-Quads">Quads</a>
474
+ "<code class="grammar-literal">}</code>"
475
+ </td>
476
+ </tr>
477
+ <tr id='grammar-production-QuadData'>
478
+ <td>[49]</td>
479
+ <td><code>QuadData</code></td>
480
+ <td>::=</td>
481
+ <td>
482
+ "<code class="grammar-literal">{</code>"
483
+ <a href="#grammar-production-Quads">Quads</a>
484
+ "<code class="grammar-literal">}</code>"
485
+ </td>
486
+ </tr>
487
+ <tr id='grammar-production-Quads'>
488
+ <td>[50]</td>
489
+ <td><code>Quads</code></td>
490
+ <td>::=</td>
491
+ <td>
492
+ <a href="#grammar-production-TriplesTemplate">TriplesTemplate</a><code>?</code>
493
+ (<a href="#grammar-production-QuadsNotTriples">QuadsNotTriples</a> "<code class="grammar-literal">.</code>"<code>?</code> <a href="#grammar-production-TriplesTemplate">TriplesTemplate</a><code>?</code> )<code>*</code>
494
+ </td>
495
+ </tr>
496
+ <tr id='grammar-production-QuadsNotTriples'>
497
+ <td>[51]</td>
498
+ <td><code>QuadsNotTriples</code></td>
499
+ <td>::=</td>
500
+ <td>
501
+ "<code class="grammar-literal">GRAPH</code>"
502
+ <a href="#grammar-production-VarOrIri">VarOrIri</a>
503
+ "<code class="grammar-literal">{</code>"
504
+ <a href="#grammar-production-TriplesTemplate">TriplesTemplate</a><code>?</code>
505
+ "<code class="grammar-literal">}</code>"
506
+ </td>
507
+ </tr>
508
+ <tr id='grammar-production-TriplesTemplate'>
509
+ <td>[52]</td>
510
+ <td><code>TriplesTemplate</code></td>
511
+ <td>::=</td>
512
+ <td>
513
+ <a href="#grammar-production-TriplesSameSubject">TriplesSameSubject</a>
514
+ ("<code class="grammar-literal">.</code>" <a href="#grammar-production-TriplesTemplate">TriplesTemplate</a><code>?</code> )<code>?</code>
515
+ </td>
516
+ </tr>
517
+ <tr id='grammar-production-GroupGraphPattern'>
518
+ <td>[53]</td>
519
+ <td><code>GroupGraphPattern</code></td>
520
+ <td>::=</td>
521
+ <td>
522
+ "<code class="grammar-literal">{</code>"
523
+ <code>(</code> <a href="#grammar-production-SubSelect">SubSelect</a> <code>|</code> <a href="#grammar-production-GroupGraphPatternSub">GroupGraphPatternSub</a><code>)</code>
524
+ "<code class="grammar-literal">}</code>"
525
+ </td>
526
+ </tr>
527
+ <tr id='grammar-production-GroupGraphPatternSub'>
528
+ <td>[54]</td>
529
+ <td><code>GroupGraphPatternSub</code></td>
530
+ <td>::=</td>
531
+ <td>
532
+ <a href="#grammar-production-TriplesBlock">TriplesBlock</a><code>?</code>
533
+ (<a href="#grammar-production-GraphPatternNotTriples">GraphPatternNotTriples</a> "<code class="grammar-literal">.</code>"<code>?</code> <a href="#grammar-production-TriplesBlock">TriplesBlock</a><code>?</code> )<code>*</code>
534
+ </td>
535
+ </tr>
536
+ <tr id='grammar-production-TriplesBlock'>
537
+ <td>[55]</td>
538
+ <td><code>TriplesBlock</code></td>
539
+ <td>::=</td>
540
+ <td>
541
+ <a href="#grammar-production-TriplesSameSubjectPath">TriplesSameSubjectPath</a>
542
+ ("<code class="grammar-literal">.</code>" <a href="#grammar-production-TriplesBlock">TriplesBlock</a><code>?</code> )<code>?</code>
543
+ </td>
544
+ </tr>
545
+ <tr id='grammar-production-GraphPatternNotTriples'>
546
+ <td>[56]</td>
547
+ <td><code>GraphPatternNotTriples</code></td>
548
+ <td>::=</td>
549
+ <td>
550
+ <a href="#grammar-production-GroupOrUnionGraphPattern">GroupOrUnionGraphPattern</a>
551
+ <code>|</code> <a href="#grammar-production-OptionalGraphPattern">OptionalGraphPattern</a>
552
+ <code>|</code> <a href="#grammar-production-MinusGraphPattern">MinusGraphPattern</a>
553
+ <code>|</code> <a href="#grammar-production-GraphGraphPattern">GraphGraphPattern</a>
554
+ <code>|</code> <a href="#grammar-production-ServiceGraphPattern">ServiceGraphPattern</a>
555
+ <code>|</code> <a href="#grammar-production-Filter">Filter</a>
556
+ <code>|</code> <a href="#grammar-production-Bind">Bind</a>
557
+ <code>|</code> <a href="#grammar-production-InlineData">InlineData</a>
558
+ </td>
559
+ </tr>
560
+ <tr id='grammar-production-OptionalGraphPattern'>
561
+ <td>[57]</td>
562
+ <td><code>OptionalGraphPattern</code></td>
563
+ <td>::=</td>
564
+ <td>
565
+ "<code class="grammar-literal">OPTIONAL</code>"
566
+ <a href="#grammar-production-GroupGraphPattern">GroupGraphPattern</a>
567
+ </td>
568
+ </tr>
569
+ <tr id='grammar-production-GraphGraphPattern'>
570
+ <td>[58]</td>
571
+ <td><code>GraphGraphPattern</code></td>
572
+ <td>::=</td>
573
+ <td>
574
+ "<code class="grammar-literal">GRAPH</code>"
575
+ <a href="#grammar-production-VarOrIri">VarOrIri</a>
576
+ <a href="#grammar-production-GroupGraphPattern">GroupGraphPattern</a>
577
+ </td>
578
+ </tr>
579
+ <tr id='grammar-production-ServiceGraphPattern'>
580
+ <td>[59]</td>
581
+ <td><code>ServiceGraphPattern</code></td>
582
+ <td>::=</td>
583
+ <td>
584
+ "<code class="grammar-literal">SERVICE</code>"
585
+ "<code class="grammar-literal">SILENT</code>"<code>?</code>
586
+ <a href="#grammar-production-VarOrIri">VarOrIri</a>
587
+ <a href="#grammar-production-GroupGraphPattern">GroupGraphPattern</a>
588
+ </td>
589
+ </tr>
590
+ <tr id='grammar-production-Bind'>
591
+ <td>[60]</td>
592
+ <td><code>Bind</code></td>
593
+ <td>::=</td>
594
+ <td>
595
+ "<code class="grammar-literal">BIND</code>"
596
+ "<code class="grammar-literal">(</code>"
597
+ <a href="#grammar-production-Expression">Expression</a>
598
+ "<code class="grammar-literal">AS</code>"
599
+ <a href="#grammar-production-Var">Var</a>
600
+ "<code class="grammar-literal">)</code>"
601
+ </td>
602
+ </tr>
603
+ <tr id='grammar-production-InlineData'>
604
+ <td>[61]</td>
605
+ <td><code>InlineData</code></td>
606
+ <td>::=</td>
607
+ <td>
608
+ "<code class="grammar-literal">VALUES</code>"
609
+ <a href="#grammar-production-DataBlock">DataBlock</a>
610
+ </td>
611
+ </tr>
612
+ <tr id='grammar-production-DataBlock'>
613
+ <td>[62]</td>
614
+ <td><code>DataBlock</code></td>
615
+ <td>::=</td>
616
+ <td>
617
+ <a href="#grammar-production-InlineDataOneVar">InlineDataOneVar</a>
618
+ <code>|</code> <a href="#grammar-production-InlineDataFull">InlineDataFull</a>
619
+ </td>
620
+ </tr>
621
+ <tr id='grammar-production-InlineDataOneVar'>
622
+ <td>[63]</td>
623
+ <td><code>InlineDataOneVar</code></td>
624
+ <td>::=</td>
625
+ <td>
626
+ <a href="#grammar-production-Var">Var</a>
627
+ "<code class="grammar-literal">{</code>"
628
+ <a href="#grammar-production-DataBlockValue">DataBlockValue</a><code>*</code>
629
+ "<code class="grammar-literal">}</code>"
630
+ </td>
631
+ </tr>
632
+ <tr id='grammar-production-InlineDataFull'>
633
+ <td>[64]</td>
634
+ <td><code>InlineDataFull</code></td>
635
+ <td>::=</td>
636
+ <td>
637
+ <code>(</code> <a href="#grammar-production-NIL">NIL</a> <code>|</code> "<code class="grammar-literal">(</code>" <a href="#grammar-production-Var">Var</a><code>*</code> "<code class="grammar-literal">)</code>"<code>)</code>
638
+ "<code class="grammar-literal">{</code>"
639
+ ("<code class="grammar-literal">(</code>" <a href="#grammar-production-DataBlockValue">DataBlockValue</a><code>*</code> "<code class="grammar-literal">)</code>" <code>|</code> <a href="#grammar-production-NIL">NIL</a>)<code>*</code>
640
+ "<code class="grammar-literal">}</code>"
641
+ </td>
642
+ </tr>
643
+ <tr id='grammar-production-DataBlockValue'>
644
+ <td>[65]</td>
645
+ <td><code>DataBlockValue</code></td>
646
+ <td>::=</td>
647
+ <td>
648
+ <a href="#grammar-production-iri">iri</a>
649
+ <code>|</code> <a href="#grammar-production-RDFLiteral">RDFLiteral</a>
650
+ <code>|</code> <a href="#grammar-production-NumericLiteral">NumericLiteral</a>
651
+ <code>|</code> <a href="#grammar-production-BooleanLiteral">BooleanLiteral</a>
652
+ <code>|</code> "<code class="grammar-literal">UNDEF</code>"
653
+ </td>
654
+ </tr>
655
+ <tr id='grammar-production-MinusGraphPattern'>
656
+ <td>[66]</td>
657
+ <td><code>MinusGraphPattern</code></td>
658
+ <td>::=</td>
659
+ <td>
660
+ "<code class="grammar-literal">MINUS</code>"
661
+ <a href="#grammar-production-GroupGraphPattern">GroupGraphPattern</a>
662
+ </td>
663
+ </tr>
664
+ <tr id='grammar-production-GroupOrUnionGraphPattern'>
665
+ <td>[67]</td>
666
+ <td><code>GroupOrUnionGraphPattern</code></td>
667
+ <td>::=</td>
668
+ <td>
669
+ <a href="#grammar-production-GroupGraphPattern">GroupGraphPattern</a>
670
+ ("<code class="grammar-literal">UNION</code>" <a href="#grammar-production-GroupGraphPattern">GroupGraphPattern</a>)<code>*</code>
671
+ </td>
672
+ </tr>
673
+ <tr id='grammar-production-Filter'>
674
+ <td>[68]</td>
675
+ <td><code>Filter</code></td>
676
+ <td>::=</td>
677
+ <td>
678
+ "<code class="grammar-literal">FILTER</code>"
679
+ <a href="#grammar-production-Constraint">Constraint</a>
680
+ </td>
681
+ </tr>
682
+ <tr id='grammar-production-Constraint'>
683
+ <td>[69]</td>
684
+ <td><code>Constraint</code></td>
685
+ <td>::=</td>
686
+ <td>
687
+ <a href="#grammar-production-BrackettedExpression">BrackettedExpression</a>
688
+ <code>|</code> <a href="#grammar-production-BuiltInCall">BuiltInCall</a>
689
+ <code>|</code> <a href="#grammar-production-FunctionCall">FunctionCall</a>
690
+ </td>
691
+ </tr>
692
+ <tr id='grammar-production-FunctionCall'>
693
+ <td>[70]</td>
694
+ <td><code>FunctionCall</code></td>
695
+ <td>::=</td>
696
+ <td>
697
+ <a href="#grammar-production-iri">iri</a>
698
+ <a href="#grammar-production-ArgList">ArgList</a>
699
+ </td>
700
+ </tr>
701
+ <tr id='grammar-production-ArgList'>
702
+ <td>[71]</td>
703
+ <td><code>ArgList</code></td>
704
+ <td>::=</td>
705
+ <td>
706
+ <a href="#grammar-production-NIL">NIL</a>
707
+ <code>|</code> "<code class="grammar-literal">(</code>" "<code class="grammar-literal">DISTINCT</code>"<code>?</code> <a href="#grammar-production-Expression">Expression</a> ("<code class="grammar-literal">,</code>" <a href="#grammar-production-Expression">Expression</a>)<code>*</code> "<code class="grammar-literal">)</code>"
708
+ </td>
709
+ </tr>
710
+ <tr id='grammar-production-ExpressionList'>
711
+ <td>[72]</td>
712
+ <td><code>ExpressionList</code></td>
713
+ <td>::=</td>
714
+ <td>
715
+ <a href="#grammar-production-NIL">NIL</a>
716
+ <code>|</code> "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> ("<code class="grammar-literal">,</code>" <a href="#grammar-production-Expression">Expression</a>)<code>*</code> "<code class="grammar-literal">)</code>"
717
+ </td>
718
+ </tr>
719
+ <tr id='grammar-production-ConstructTemplate'>
720
+ <td>[73]</td>
721
+ <td><code>ConstructTemplate</code></td>
722
+ <td>::=</td>
723
+ <td>
724
+ "<code class="grammar-literal">{</code>"
725
+ <a href="#grammar-production-ConstructTriples">ConstructTriples</a><code>?</code>
726
+ "<code class="grammar-literal">}</code>"
727
+ </td>
728
+ </tr>
729
+ <tr id='grammar-production-ConstructTriples'>
730
+ <td>[74]</td>
731
+ <td><code>ConstructTriples</code></td>
732
+ <td>::=</td>
733
+ <td>
734
+ <a href="#grammar-production-TriplesSameSubject">TriplesSameSubject</a>
735
+ ("<code class="grammar-literal">.</code>" <a href="#grammar-production-ConstructTriples">ConstructTriples</a><code>?</code> )<code>?</code>
736
+ </td>
737
+ </tr>
738
+ <tr id='grammar-production-TriplesSameSubject'>
739
+ <td>[75]</td>
740
+ <td><code>TriplesSameSubject</code></td>
741
+ <td>::=</td>
742
+ <td>
743
+ <a href="#grammar-production-VarOrTerm">VarOrTerm</a> <a href="#grammar-production-PropertyListNotEmpty">PropertyListNotEmpty</a>
744
+ <code>|</code> <a href="#grammar-production-TriplesNode">TriplesNode</a> <a href="#grammar-production-PropertyList">PropertyList</a>
745
+ </td>
746
+ </tr>
747
+ <tr id='grammar-production-PropertyList'>
748
+ <td>[76]</td>
749
+ <td><code>PropertyList</code></td>
750
+ <td>::=</td>
751
+ <td>
752
+ <a href="#grammar-production-PropertyListNotEmpty">PropertyListNotEmpty</a><code>?</code>
753
+ </td>
754
+ </tr>
755
+ <tr id='grammar-production-PropertyListNotEmpty'>
756
+ <td>[77]</td>
757
+ <td><code>PropertyListNotEmpty</code></td>
758
+ <td>::=</td>
759
+ <td>
760
+ <a href="#grammar-production-Verb">Verb</a>
761
+ <a href="#grammar-production-ObjectList">ObjectList</a>
762
+ ("<code class="grammar-literal">;</code>" (<a href="#grammar-production-Verb">Verb</a> <a href="#grammar-production-ObjectList">ObjectList</a>)<code>?</code> )<code>*</code>
763
+ </td>
764
+ </tr>
765
+ <tr id='grammar-production-Verb'>
766
+ <td>[78]</td>
767
+ <td><code>Verb</code></td>
768
+ <td>::=</td>
769
+ <td>
770
+ <a href="#grammar-production-VarOrIri">VarOrIri</a>
771
+ <code>|</code> "<code class="grammar-literal">a</code>"
772
+ </td>
773
+ </tr>
774
+ <tr id='grammar-production-ObjectList'>
775
+ <td>[79]</td>
776
+ <td><code>ObjectList</code></td>
777
+ <td>::=</td>
778
+ <td>
779
+ <a href="#grammar-production-Object">Object</a>
780
+ ("<code class="grammar-literal">,</code>" <a href="#grammar-production-Object">Object</a>)<code>*</code>
781
+ </td>
782
+ </tr>
783
+ <tr id='grammar-production-Object'>
784
+ <td>[80]</td>
785
+ <td><code>Object</code></td>
786
+ <td>::=</td>
787
+ <td>
788
+ <a href="#grammar-production-GraphNode">GraphNode</a>
789
+ </td>
790
+ </tr>
791
+ <tr id='grammar-production-TriplesSameSubjectPath'>
792
+ <td>[81]</td>
793
+ <td><code>TriplesSameSubjectPath</code></td>
794
+ <td>::=</td>
795
+ <td>
796
+ <a href="#grammar-production-VarOrTerm">VarOrTerm</a> <a href="#grammar-production-PropertyListNotEmptyPath">PropertyListNotEmptyPath</a>
797
+ <code>|</code> <a href="#grammar-production-TriplesNode">TriplesNode</a> <a href="#grammar-production-PropertyListPath">PropertyListPath</a>
798
+ </td>
799
+ </tr>
800
+ <tr id='grammar-production-PropertyListPath'>
801
+ <td>[82]</td>
802
+ <td><code>PropertyListPath</code></td>
803
+ <td>::=</td>
804
+ <td>
805
+ <a href="#grammar-production-PropertyListNotEmpty">PropertyListNotEmpty</a><code>?</code>
806
+ </td>
807
+ </tr>
808
+ <tr id='grammar-production-PropertyListNotEmptyPath'>
809
+ <td>[83]</td>
810
+ <td><code>PropertyListNotEmptyPath</code></td>
811
+ <td>::=</td>
812
+ <td>
813
+ <code>(</code> <a href="#grammar-production-VerbPath">VerbPath</a> <code>|</code> <a href="#grammar-production-VerbSimple">VerbSimple</a><code>)</code>
814
+ <a href="#grammar-production-ObjectList">ObjectList</a>
815
+ ("<code class="grammar-literal">;</code>" (<code>(</code> <a href="#grammar-production-VerbPath">VerbPath</a> <code>|</code> <a href="#grammar-production-VerbSimple">VerbSimple</a><code>)</code> <a href="#grammar-production-ObjectList">ObjectList</a>)<code>?</code> )<code>*</code>
816
+ </td>
817
+ </tr>
818
+ <tr id='grammar-production-VerbPath'>
819
+ <td>[84]</td>
820
+ <td><code>VerbPath</code></td>
821
+ <td>::=</td>
822
+ <td>
823
+ <a href="#grammar-production-Path">Path</a>
824
+ </td>
825
+ </tr>
826
+ <tr id='grammar-production-VerbSimple'>
827
+ <td>[85]</td>
828
+ <td><code>VerbSimple</code></td>
829
+ <td>::=</td>
830
+ <td>
831
+ <a href="#grammar-production-Var">Var</a>
832
+ </td>
833
+ </tr>
834
+ <tr id='grammar-production-ObjectListPath'>
835
+ <td>[86]</td>
836
+ <td><code>ObjectListPath</code></td>
837
+ <td>::=</td>
838
+ <td>
839
+ <a href="#grammar-production-ObjectPath">ObjectPath</a>
840
+ ("<code class="grammar-literal">,</code>" <a href="#grammar-production-ObjectPath">ObjectPath</a>)<code>*</code>
841
+ </td>
842
+ </tr>
843
+ <tr id='grammar-production-ObjectPath'>
844
+ <td>[87]</td>
845
+ <td><code>ObjectPath</code></td>
846
+ <td>::=</td>
847
+ <td>
848
+ <a href="#grammar-production-GraphNodePath">GraphNodePath</a>
849
+ </td>
850
+ </tr>
851
+ <tr id='grammar-production-Path'>
852
+ <td>[88]</td>
853
+ <td><code>Path</code></td>
854
+ <td>::=</td>
855
+ <td>
856
+ <a href="#grammar-production-PathAlternative">PathAlternative</a>
857
+ </td>
858
+ </tr>
859
+ <tr id='grammar-production-PathAlternative'>
860
+ <td>[89]</td>
861
+ <td><code>PathAlternative</code></td>
862
+ <td>::=</td>
863
+ <td>
864
+ <a href="#grammar-production-PathSequence">PathSequence</a>
865
+ ("<code class="grammar-literal">|</code>" <a href="#grammar-production-PathSequence">PathSequence</a>)<code>*</code>
866
+ </td>
867
+ </tr>
868
+ <tr id='grammar-production-PathSequence'>
869
+ <td>[90]</td>
870
+ <td><code>PathSequence</code></td>
871
+ <td>::=</td>
872
+ <td>
873
+ <a href="#grammar-production-PathEltOrInverse">PathEltOrInverse</a>
874
+ ("<code class="grammar-literal">/</code>" <a href="#grammar-production-PathEltOrInverse">PathEltOrInverse</a>)<code>*</code>
875
+ </td>
876
+ </tr>
877
+ <tr id='grammar-production-PathElt'>
878
+ <td>[91]</td>
879
+ <td><code>PathElt</code></td>
880
+ <td>::=</td>
881
+ <td>
882
+ <a href="#grammar-production-PathPrimary">PathPrimary</a>
883
+ <a href="#grammar-production-PathMod">PathMod</a><code>?</code>
884
+ </td>
885
+ </tr>
886
+ <tr id='grammar-production-PathEltOrInverse'>
887
+ <td>[92]</td>
888
+ <td><code>PathEltOrInverse</code></td>
889
+ <td>::=</td>
890
+ <td>
891
+ <a href="#grammar-production-PathElt">PathElt</a>
892
+ <code>|</code> "<code class="grammar-literal">^</code>" <a href="#grammar-production-PathElt">PathElt</a>
893
+ </td>
894
+ </tr>
895
+ <tr id='grammar-production-PathMod'>
896
+ <td>[93]</td>
897
+ <td><code>PathMod</code></td>
898
+ <td>::=</td>
899
+ <td>
900
+ "<code class="grammar-literal">*</code>"
901
+ <code>|</code> "<code class="grammar-literal">?</code>"
902
+ <code>|</code> "<code class="grammar-literal">+</code>"
903
+ <code>|</code> "<code class="grammar-literal">{</code>" <code>(</code> <a href="#grammar-production-Integer">Integer</a> <code>(</code> "<code class="grammar-literal">,</code>" <code>(</code> "<code class="grammar-literal">}</code>" <code>|</code> <a href="#grammar-production-Integer">Integer</a> "<code class="grammar-literal">}</code>"<code>)</code> <code>|</code> "<code class="grammar-literal">}</code>"<code>)</code> <code>|</code> "<code class="grammar-literal">,</code>" <a href="#grammar-production-Integer">Integer</a> "<code class="grammar-literal">}</code>"<code>)</code>
904
+ </td>
905
+ </tr>
906
+ <tr id='grammar-production-PathPrimary'>
907
+ <td>[94]</td>
908
+ <td><code>PathPrimary</code></td>
909
+ <td>::=</td>
910
+ <td>
911
+ <a href="#grammar-production-iri">iri</a>
912
+ <code>|</code> "<code class="grammar-literal">a</code>"
913
+ <code>|</code> <code class="grammar-char-escape">#x21</code> <a href="#grammar-production-PathNegatedPropertySet">PathNegatedPropertySet</a>
914
+ <code>|</code> "<code class="grammar-literal">(</code>" <a href="#grammar-production-Path">Path</a> "<code class="grammar-literal">)</code>"
915
+ </td>
916
+ </tr>
917
+ <tr id='grammar-production-PathNegatedPropertySet'>
918
+ <td>[95]</td>
919
+ <td><code>PathNegatedPropertySet</code></td>
920
+ <td>::=</td>
921
+ <td>
922
+ <a href="#grammar-production-PathOneInPropertySet">PathOneInPropertySet</a>
923
+ <code>|</code> "<code class="grammar-literal">(</code>" (<a href="#grammar-production-PathOneInPropertySet">PathOneInPropertySet</a> ("<code class="grammar-literal">|</code>" <a href="#grammar-production-PathOneInPropertySet">PathOneInPropertySet</a>)<code>*</code> )<code>?</code> "<code class="grammar-literal">)</code>"
924
+ </td>
925
+ </tr>
926
+ <tr id='grammar-production-PathOneInPropertySet'>
927
+ <td>[96]</td>
928
+ <td><code>PathOneInPropertySet</code></td>
929
+ <td>::=</td>
930
+ <td>
931
+ <a href="#grammar-production-iri">iri</a>
932
+ <code>|</code> "<code class="grammar-literal">a</code>"
933
+ <code>|</code> "<code class="grammar-literal">^</code>" <code>(</code> <a href="#grammar-production-iri">iri</a> <code>|</code> "<code class="grammar-literal">a</code>"<code>)</code>
934
+ </td>
935
+ </tr>
936
+ <tr id='grammar-production-Integer'>
937
+ <td>[97]</td>
938
+ <td><code>Integer</code></td>
939
+ <td>::=</td>
940
+ <td>
941
+ <a href="#grammar-production-INTEGER">INTEGER</a>
942
+ </td>
943
+ </tr>
944
+ <tr id='grammar-production-TriplesNode'>
945
+ <td>[98]</td>
946
+ <td><code>TriplesNode</code></td>
947
+ <td>::=</td>
948
+ <td>
949
+ <a href="#grammar-production-Collection">Collection</a>
950
+ <code>|</code> <a href="#grammar-production-BlankNodePropertyList">BlankNodePropertyList</a>
951
+ </td>
952
+ </tr>
953
+ <tr id='grammar-production-BlankNodePropertyList'>
954
+ <td>[99]</td>
955
+ <td><code>BlankNodePropertyList</code></td>
956
+ <td>::=</td>
957
+ <td>
958
+ "<code class="grammar-literal">[</code>"
959
+ <a href="#grammar-production-PropertyListNotEmpty">PropertyListNotEmpty</a>
960
+ "<code class="grammar-literal">]</code>"
961
+ </td>
962
+ </tr>
963
+ <tr id='grammar-production-TriplesNodePath'>
964
+ <td>[100]</td>
965
+ <td><code>TriplesNodePath</code></td>
966
+ <td>::=</td>
967
+ <td>
968
+ <a href="#grammar-production-CollectionPath">CollectionPath</a>
969
+ <code>|</code> <a href="#grammar-production-BlankNodePropertyListPath">BlankNodePropertyListPath</a>
970
+ </td>
971
+ </tr>
972
+ <tr id='grammar-production-BlankNodePropertyListPath'>
973
+ <td>[101]</td>
974
+ <td><code>BlankNodePropertyListPath</code></td>
975
+ <td>::=</td>
976
+ <td>
977
+ "<code class="grammar-literal">[</code>"
978
+ <a href="#grammar-production-PropertyListPathNotEmpty">PropertyListPathNotEmpty</a>
979
+ "<code class="grammar-literal">]</code>"
980
+ </td>
981
+ </tr>
982
+ <tr id='grammar-production-Collection'>
983
+ <td>[102]</td>
984
+ <td><code>Collection</code></td>
985
+ <td>::=</td>
986
+ <td>
987
+ "<code class="grammar-literal">(</code>"
988
+ <a href="#grammar-production-GraphNode">GraphNode</a><code>+</code>
989
+ "<code class="grammar-literal">)</code>"
990
+ </td>
991
+ </tr>
992
+ <tr id='grammar-production-CollectionPath'>
993
+ <td>[103]</td>
994
+ <td><code>CollectionPath</code></td>
995
+ <td>::=</td>
996
+ <td>
997
+ "<code class="grammar-literal">(</code>"
998
+ <a href="#grammar-production-GraphNodePath">GraphNodePath</a><code>+</code>
999
+ "<code class="grammar-literal">)</code>"
1000
+ </td>
1001
+ </tr>
1002
+ <tr id='grammar-production-GraphNode'>
1003
+ <td>[104]</td>
1004
+ <td><code>GraphNode</code></td>
1005
+ <td>::=</td>
1006
+ <td>
1007
+ <a href="#grammar-production-VarOrTerm">VarOrTerm</a>
1008
+ <code>|</code> <a href="#grammar-production-TriplesNode">TriplesNode</a>
1009
+ </td>
1010
+ </tr>
1011
+ <tr id='grammar-production-GraphNodePath'>
1012
+ <td>[105]</td>
1013
+ <td><code>GraphNodePath</code></td>
1014
+ <td>::=</td>
1015
+ <td>
1016
+ <a href="#grammar-production-VarOrTerm">VarOrTerm</a>
1017
+ <code>|</code> <a href="#grammar-production-TriplesNodePath">TriplesNodePath</a>
1018
+ </td>
1019
+ </tr>
1020
+ <tr id='grammar-production-VarOrTerm'>
1021
+ <td>[106]</td>
1022
+ <td><code>VarOrTerm</code></td>
1023
+ <td>::=</td>
1024
+ <td>
1025
+ <a href="#grammar-production-Var">Var</a>
1026
+ <code>|</code> <a href="#grammar-production-GraphTerm">GraphTerm</a>
1027
+ </td>
1028
+ </tr>
1029
+ <tr id='grammar-production-VarOrIri'>
1030
+ <td>[107]</td>
1031
+ <td><code>VarOrIri</code></td>
1032
+ <td>::=</td>
1033
+ <td>
1034
+ <a href="#grammar-production-Var">Var</a>
1035
+ <code>|</code> <a href="#grammar-production-iri">iri</a>
1036
+ </td>
1037
+ </tr>
1038
+ <tr id='grammar-production-Var'>
1039
+ <td>[108]</td>
1040
+ <td><code>Var</code></td>
1041
+ <td>::=</td>
1042
+ <td>
1043
+ <a href="#grammar-production-VAR1">VAR1</a>
1044
+ <code>|</code> <a href="#grammar-production-VAR2">VAR2</a>
1045
+ </td>
1046
+ </tr>
1047
+ <tr id='grammar-production-GraphTerm'>
1048
+ <td>[109]</td>
1049
+ <td><code>GraphTerm</code></td>
1050
+ <td>::=</td>
1051
+ <td>
1052
+ <a href="#grammar-production-iri">iri</a>
1053
+ <code>|</code> <a href="#grammar-production-RDFLiteral">RDFLiteral</a>
1054
+ <code>|</code> <a href="#grammar-production-NumericLiteral">NumericLiteral</a>
1055
+ <code>|</code> <a href="#grammar-production-BooleanLiteral">BooleanLiteral</a>
1056
+ <code>|</code> <a href="#grammar-production-BlankNode">BlankNode</a>
1057
+ <code>|</code> <a href="#grammar-production-NIL">NIL</a>
1058
+ </td>
1059
+ </tr>
1060
+ <tr id='grammar-production-Expression'>
1061
+ <td>[110]</td>
1062
+ <td><code>Expression</code></td>
1063
+ <td>::=</td>
1064
+ <td>
1065
+ <a href="#grammar-production-ConditionalOrExpression">ConditionalOrExpression</a>
1066
+ </td>
1067
+ </tr>
1068
+ <tr id='grammar-production-ConditionalOrExpression'>
1069
+ <td>[111]</td>
1070
+ <td><code>ConditionalOrExpression</code></td>
1071
+ <td>::=</td>
1072
+ <td>
1073
+ <a href="#grammar-production-ConditionalAndExpression">ConditionalAndExpression</a>
1074
+ ("<code class="grammar-literal">||</code>" <a href="#grammar-production-ConditionalAndExpression">ConditionalAndExpression</a>)<code>*</code>
1075
+ </td>
1076
+ </tr>
1077
+ <tr id='grammar-production-ConditionalAndExpression'>
1078
+ <td>[112]</td>
1079
+ <td><code>ConditionalAndExpression</code></td>
1080
+ <td>::=</td>
1081
+ <td>
1082
+ <a href="#grammar-production-ValueLogical">ValueLogical</a>
1083
+ ("<code class="grammar-literal">&&</code>" <a href="#grammar-production-ValueLogical">ValueLogical</a>)<code>*</code>
1084
+ </td>
1085
+ </tr>
1086
+ <tr id='grammar-production-ValueLogical'>
1087
+ <td>[113]</td>
1088
+ <td><code>ValueLogical</code></td>
1089
+ <td>::=</td>
1090
+ <td>
1091
+ <a href="#grammar-production-RelationalExpression">RelationalExpression</a>
1092
+ </td>
1093
+ </tr>
1094
+ <tr id='grammar-production-RelationalExpression'>
1095
+ <td>[114]</td>
1096
+ <td><code>RelationalExpression</code></td>
1097
+ <td>::=</td>
1098
+ <td>
1099
+ <a href="#grammar-production-NumericExpression">NumericExpression</a>
1100
+ ("<code class="grammar-literal">=</code>" <a href="#grammar-production-NumericExpression">NumericExpression</a> <code>|</code> "<code class="grammar-literal">!=</code>" <a href="#grammar-production-NumericExpression">NumericExpression</a> <code>|</code> "<code class="grammar-literal"><</code>" <a href="#grammar-production-NumericExpression">NumericExpression</a> <code>|</code> "<code class="grammar-literal">></code>" <a href="#grammar-production-NumericExpression">NumericExpression</a> <code>|</code> "<code class="grammar-literal"><=</code>" <a href="#grammar-production-NumericExpression">NumericExpression</a> <code>|</code> "<code class="grammar-literal">>=</code>" <a href="#grammar-production-NumericExpression">NumericExpression</a> <code>|</code> "<code class="grammar-literal">IN</code>" <a href="#grammar-production-ExpressionList">ExpressionList</a> <code>|</code> "<code class="grammar-literal">NOT</code>" "<code class="grammar-literal">IN</code>" <a href="#grammar-production-ExpressionList">ExpressionList</a>)<code>?</code>
1101
+ </td>
1102
+ </tr>
1103
+ <tr id='grammar-production-NumericExpression'>
1104
+ <td>[115]</td>
1105
+ <td><code>NumericExpression</code></td>
1106
+ <td>::=</td>
1107
+ <td>
1108
+ <a href="#grammar-production-AdditiveExpression">AdditiveExpression</a>
1109
+ </td>
1110
+ </tr>
1111
+ <tr id='grammar-production-AdditiveExpression'>
1112
+ <td>[116]</td>
1113
+ <td><code>AdditiveExpression</code></td>
1114
+ <td>::=</td>
1115
+ <td>
1116
+ <a href="#grammar-production-MultiplicativeExpression">MultiplicativeExpression</a>
1117
+ ("<code class="grammar-literal">+</code>" <a href="#grammar-production-MultiplicativeExpression">MultiplicativeExpression</a> <code>|</code> "<code class="grammar-literal">-</code>" <a href="#grammar-production-MultiplicativeExpression">MultiplicativeExpression</a> <code>|</code> <code>(</code> <a href="#grammar-production-NumericLiteralPositive">NumericLiteralPositive</a> <code>|</code> <a href="#grammar-production-NumericLiteralNegative">NumericLiteralNegative</a><code>)</code> ("<code class="grammar-literal">*</code>" <a href="#grammar-production-UnaryExpression">UnaryExpression</a> <code>|</code> "<code class="grammar-literal">/</code>" <a href="#grammar-production-UnaryExpression">UnaryExpression</a>)<code>?</code> )<code>*</code>
1118
+ </td>
1119
+ </tr>
1120
+ <tr id='grammar-production-MultiplicativeExpression'>
1121
+ <td>[117]</td>
1122
+ <td><code>MultiplicativeExpression</code></td>
1123
+ <td>::=</td>
1124
+ <td>
1125
+ <a href="#grammar-production-UnaryExpression">UnaryExpression</a>
1126
+ ("<code class="grammar-literal">*</code>" <a href="#grammar-production-UnaryExpression">UnaryExpression</a> <code>|</code> "<code class="grammar-literal">/</code>" <a href="#grammar-production-UnaryExpression">UnaryExpression</a>)<code>*</code>
1127
+ </td>
1128
+ </tr>
1129
+ <tr id='grammar-production-UnaryExpression'>
1130
+ <td>[118]</td>
1131
+ <td><code>UnaryExpression</code></td>
1132
+ <td>::=</td>
1133
+ <td>
1134
+ <code class="grammar-char-escape">#x21</code> <a href="#grammar-production-PrimaryExpression">PrimaryExpression</a>
1135
+ <code>|</code> "<code class="grammar-literal">+</code>" <a href="#grammar-production-PrimaryExpression">PrimaryExpression</a>
1136
+ <code>|</code> "<code class="grammar-literal">-</code>" <a href="#grammar-production-PrimaryExpression">PrimaryExpression</a>
1137
+ <code>|</code> <a href="#grammar-production-PrimaryExpression">PrimaryExpression</a>
1138
+ </td>
1139
+ </tr>
1140
+ <tr id='grammar-production-PrimaryExpression'>
1141
+ <td>[119]</td>
1142
+ <td><code>PrimaryExpression</code></td>
1143
+ <td>::=</td>
1144
+ <td>
1145
+ <a href="#grammar-production-BrackettedExpression">BrackettedExpression</a>
1146
+ <code>|</code> <a href="#grammar-production-BuiltInCall">BuiltInCall</a>
1147
+ <code>|</code> <a href="#grammar-production-iriOrFunction">iriOrFunction</a>
1148
+ <code>|</code> <a href="#grammar-production-RDFLiteral">RDFLiteral</a>
1149
+ <code>|</code> <a href="#grammar-production-NumericLiteral">NumericLiteral</a>
1150
+ <code>|</code> <a href="#grammar-production-BooleanLiteral">BooleanLiteral</a>
1151
+ <code>|</code> <a href="#grammar-production-Var">Var</a>
1152
+ </td>
1153
+ </tr>
1154
+ <tr id='grammar-production-BrackettedExpression'>
1155
+ <td>[120]</td>
1156
+ <td><code>BrackettedExpression</code></td>
1157
+ <td>::=</td>
1158
+ <td>
1159
+ "<code class="grammar-literal">(</code>"
1160
+ <a href="#grammar-production-Expression">Expression</a>
1161
+ "<code class="grammar-literal">)</code>"
1162
+ </td>
1163
+ </tr>
1164
+ <tr id='grammar-production-BuiltInCall'>
1165
+ <td>[121]</td>
1166
+ <td><code>BuiltInCall</code></td>
1167
+ <td>::=</td>
1168
+ <td>
1169
+ <a href="#grammar-production-Aggregate">Aggregate</a>
1170
+ <code>|</code> "<code class="grammar-literal">STR</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1171
+ <code>|</code> "<code class="grammar-literal">LANG</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1172
+ <code>|</code> "<code class="grammar-literal">LANGMATCHES</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">,</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1173
+ <code>|</code> "<code class="grammar-literal">DATATYPE</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1174
+ <code>|</code> "<code class="grammar-literal">BOUND</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Var">Var</a> "<code class="grammar-literal">)</code>"
1175
+ <code>|</code> "<code class="grammar-literal">IRI</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1176
+ <code>|</code> "<code class="grammar-literal">URI</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1177
+ <code>|</code> "<code class="grammar-literal">BNODE</code>" <code>(</code> "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>" <code>|</code> <a href="#grammar-production-NIL">NIL</a><code>)</code>
1178
+ <code>|</code> "<code class="grammar-literal">RAND</code>" <a href="#grammar-production-NIL">NIL</a>
1179
+ <code>|</code> "<code class="grammar-literal">ABS</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1180
+ <code>|</code> "<code class="grammar-literal">CEIL</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1181
+ <code>|</code> "<code class="grammar-literal">FLOOR</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1182
+ <code>|</code> "<code class="grammar-literal">ROUND</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1183
+ <code>|</code> "<code class="grammar-literal">CONCAT</code>" <a href="#grammar-production-ExpressionList">ExpressionList</a>
1184
+ <code>|</code> <a href="#grammar-production-SubstringExpression">SubstringExpression</a>
1185
+ <code>|</code> "<code class="grammar-literal">STRLEN</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1186
+ <code>|</code> <a href="#grammar-production-StrReplaceExpression">StrReplaceExpression</a>
1187
+ <code>|</code> "<code class="grammar-literal">UCASE</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1188
+ <code>|</code> "<code class="grammar-literal">LCASE</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1189
+ <code>|</code> "<code class="grammar-literal">ENCODE_FOR_URI</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1190
+ <code>|</code> "<code class="grammar-literal">CONTAINS</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">,</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1191
+ <code>|</code> "<code class="grammar-literal">STRSTARTS</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">,</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1192
+ <code>|</code> "<code class="grammar-literal">STRENDS</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">,</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1193
+ <code>|</code> "<code class="grammar-literal">STRBEFORE</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">,</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1194
+ <code>|</code> "<code class="grammar-literal">STRAFTER</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">,</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1195
+ <code>|</code> "<code class="grammar-literal">YEAR</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1196
+ <code>|</code> "<code class="grammar-literal">MONTH</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1197
+ <code>|</code> "<code class="grammar-literal">DAY</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1198
+ <code>|</code> "<code class="grammar-literal">HOURS</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1199
+ <code>|</code> "<code class="grammar-literal">MINUTES</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1200
+ <code>|</code> "<code class="grammar-literal">SECONDS</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1201
+ <code>|</code> "<code class="grammar-literal">TIMEZONE</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1202
+ <code>|</code> "<code class="grammar-literal">TZ</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1203
+ <code>|</code> "<code class="grammar-literal">NOW</code>" <a href="#grammar-production-NIL">NIL</a>
1204
+ <code>|</code> "<code class="grammar-literal">UUID</code>" <a href="#grammar-production-NIL">NIL</a>
1205
+ <code>|</code> "<code class="grammar-literal">STRUUID</code>" <a href="#grammar-production-NIL">NIL</a>
1206
+ <code>|</code> "<code class="grammar-literal">MD5</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1207
+ <code>|</code> "<code class="grammar-literal">SHA1</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1208
+ <code>|</code> "<code class="grammar-literal">SHA224</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1209
+ <code>|</code> "<code class="grammar-literal">SHA256</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1210
+ <code>|</code> "<code class="grammar-literal">SHA384</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1211
+ <code>|</code> "<code class="grammar-literal">SHA512</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1212
+ <code>|</code> "<code class="grammar-literal">COALESCE</code>" <a href="#grammar-production-ExpressionList">ExpressionList</a>
1213
+ <code>|</code> "<code class="grammar-literal">IF</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">,</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">,</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1214
+ <code>|</code> "<code class="grammar-literal">STRLANG</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">,</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1215
+ <code>|</code> "<code class="grammar-literal">STRDT</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">,</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1216
+ <code>|</code> "<code class="grammar-literal">sameTerm</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">,</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1217
+ <code>|</code> "<code class="grammar-literal">isIRI</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1218
+ <code>|</code> "<code class="grammar-literal">isURI</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1219
+ <code>|</code> "<code class="grammar-literal">isBLANK</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1220
+ <code>|</code> "<code class="grammar-literal">isLITERAL</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1221
+ <code>|</code> "<code class="grammar-literal">isNUMERIC</code>" "<code class="grammar-literal">(</code>" <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1222
+ <code>|</code> <a href="#grammar-production-RegexExpression">RegexExpression</a>
1223
+ <code>|</code> <a href="#grammar-production-ExistsFunc">ExistsFunc</a>
1224
+ <code>|</code> <a href="#grammar-production-NotExistsFunc">NotExistsFunc</a>
1225
+ </td>
1226
+ </tr>
1227
+ <tr id='grammar-production-RegexExpression'>
1228
+ <td>[122]</td>
1229
+ <td><code>RegexExpression</code></td>
1230
+ <td>::=</td>
1231
+ <td>
1232
+ "<code class="grammar-literal">REGEX</code>"
1233
+ "<code class="grammar-literal">(</code>"
1234
+ <a href="#grammar-production-Expression">Expression</a>
1235
+ "<code class="grammar-literal">,</code>"
1236
+ <a href="#grammar-production-Expression">Expression</a>
1237
+ ("<code class="grammar-literal">,</code>" <a href="#grammar-production-Expression">Expression</a>)<code>?</code>
1238
+ "<code class="grammar-literal">)</code>"
1239
+ </td>
1240
+ </tr>
1241
+ <tr id='grammar-production-SubstringExpression'>
1242
+ <td>[123]</td>
1243
+ <td><code>SubstringExpression</code></td>
1244
+ <td>::=</td>
1245
+ <td>
1246
+ "<code class="grammar-literal">SUBSTR</code>"
1247
+ "<code class="grammar-literal">(</code>"
1248
+ <a href="#grammar-production-Expression">Expression</a>
1249
+ "<code class="grammar-literal">,</code>"
1250
+ <a href="#grammar-production-Expression">Expression</a>
1251
+ ("<code class="grammar-literal">,</code>" <a href="#grammar-production-Expression">Expression</a>)<code>?</code>
1252
+ "<code class="grammar-literal">)</code>"
1253
+ </td>
1254
+ </tr>
1255
+ <tr id='grammar-production-StrReplaceExpression'>
1256
+ <td>[124]</td>
1257
+ <td><code>StrReplaceExpression</code></td>
1258
+ <td>::=</td>
1259
+ <td>
1260
+ "<code class="grammar-literal">REPLACE</code>"
1261
+ "<code class="grammar-literal">(</code>"
1262
+ <a href="#grammar-production-Expression">Expression</a>
1263
+ "<code class="grammar-literal">,</code>"
1264
+ <a href="#grammar-production-Expression">Expression</a>
1265
+ "<code class="grammar-literal">,</code>"
1266
+ <a href="#grammar-production-Expression">Expression</a>
1267
+ ("<code class="grammar-literal">,</code>" <a href="#grammar-production-Expression">Expression</a>)<code>?</code>
1268
+ "<code class="grammar-literal">)</code>"
1269
+ </td>
1270
+ </tr>
1271
+ <tr id='grammar-production-ExistsFunc'>
1272
+ <td>[125]</td>
1273
+ <td><code>ExistsFunc</code></td>
1274
+ <td>::=</td>
1275
+ <td>
1276
+ "<code class="grammar-literal">EXISTS</code>"
1277
+ <a href="#grammar-production-GroupGraphPattern">GroupGraphPattern</a>
1278
+ </td>
1279
+ </tr>
1280
+ <tr id='grammar-production-NotExistsFunc'>
1281
+ <td>[126]</td>
1282
+ <td><code>NotExistsFunc</code></td>
1283
+ <td>::=</td>
1284
+ <td>
1285
+ "<code class="grammar-literal">NOT</code>"
1286
+ "<code class="grammar-literal">EXISTS</code>"
1287
+ <a href="#grammar-production-GroupGraphPattern">GroupGraphPattern</a>
1288
+ </td>
1289
+ </tr>
1290
+ <tr id='grammar-production-Aggregate'>
1291
+ <td>[127]</td>
1292
+ <td><code>Aggregate</code></td>
1293
+ <td>::=</td>
1294
+ <td>
1295
+ "<code class="grammar-literal">COUNT</code>" "<code class="grammar-literal">(</code>" "<code class="grammar-literal">DISTINCT</code>"<code>?</code> <code>(</code> "<code class="grammar-literal">*</code>" <code>|</code> <a href="#grammar-production-Expression">Expression</a><code>)</code> "<code class="grammar-literal">)</code>"
1296
+ <code>|</code> "<code class="grammar-literal">SUM</code>" "<code class="grammar-literal">(</code>" "<code class="grammar-literal">DISTINCT</code>"<code>?</code> <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1297
+ <code>|</code> "<code class="grammar-literal">MIN</code>" "<code class="grammar-literal">(</code>" "<code class="grammar-literal">DISTINCT</code>"<code>?</code> <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1298
+ <code>|</code> "<code class="grammar-literal">MAX</code>" "<code class="grammar-literal">(</code>" "<code class="grammar-literal">DISTINCT</code>"<code>?</code> <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1299
+ <code>|</code> "<code class="grammar-literal">AVG</code>" "<code class="grammar-literal">(</code>" "<code class="grammar-literal">DISTINCT</code>"<code>?</code> <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1300
+ <code>|</code> "<code class="grammar-literal">SAMPLE</code>" "<code class="grammar-literal">(</code>" "<code class="grammar-literal">DISTINCT</code>"<code>?</code> <a href="#grammar-production-Expression">Expression</a> "<code class="grammar-literal">)</code>"
1301
+ <code>|</code> "<code class="grammar-literal">GROUP_CONCAT</code>" "<code class="grammar-literal">(</code>" "<code class="grammar-literal">DISTINCT</code>"<code>?</code> <a href="#grammar-production-Expression">Expression</a> ("<code class="grammar-literal">;</code>" "<code class="grammar-literal">SEPARATOR</code>" "<code class="grammar-literal">=</code>" <a href="#grammar-production-String">String</a>)<code>?</code> "<code class="grammar-literal">)</code>"
1302
+ </td>
1303
+ </tr>
1304
+ <tr id='grammar-production-iriOrFunction'>
1305
+ <td>[128]</td>
1306
+ <td><code>iriOrFunction</code></td>
1307
+ <td>::=</td>
1308
+ <td>
1309
+ <a href="#grammar-production-iri">iri</a>
1310
+ <a href="#grammar-production-ArgList">ArgList</a><code>?</code>
1311
+ </td>
1312
+ </tr>
1313
+ <tr id='grammar-production-RDFLiteral'>
1314
+ <td>[129]</td>
1315
+ <td><code>RDFLiteral</code></td>
1316
+ <td>::=</td>
1317
+ <td>
1318
+ <a href="#grammar-production-String">String</a>
1319
+ (<a href="#grammar-production-LANGTAG">LANGTAG</a> <code>|</code> "<code class="grammar-literal">^^</code>" <a href="#grammar-production-iri">iri</a>)<code>?</code>
1320
+ </td>
1321
+ </tr>
1322
+ <tr id='grammar-production-NumericLiteral'>
1323
+ <td>[130]</td>
1324
+ <td><code>NumericLiteral</code></td>
1325
+ <td>::=</td>
1326
+ <td>
1327
+ <a href="#grammar-production-NumericLiteralUnsigned">NumericLiteralUnsigned</a>
1328
+ <code>|</code> <a href="#grammar-production-NumericLiteralPositive">NumericLiteralPositive</a>
1329
+ <code>|</code> <a href="#grammar-production-NumericLiteralNegative">NumericLiteralNegative</a>
1330
+ </td>
1331
+ </tr>
1332
+ <tr id='grammar-production-NumericLiteralUnsigned'>
1333
+ <td>[131]</td>
1334
+ <td><code>NumericLiteralUnsigned</code></td>
1335
+ <td>::=</td>
1336
+ <td>
1337
+ <a href="#grammar-production-INTEGER">INTEGER</a>
1338
+ <code>|</code> <a href="#grammar-production-DECIMAL">DECIMAL</a>
1339
+ <code>|</code> <a href="#grammar-production-DOUBLE">DOUBLE</a>
1340
+ </td>
1341
+ </tr>
1342
+ <tr id='grammar-production-NumericLiteralPositive'>
1343
+ <td>[132]</td>
1344
+ <td><code>NumericLiteralPositive</code></td>
1345
+ <td>::=</td>
1346
+ <td>
1347
+ <a href="#grammar-production-INTEGER_POSITIVE">INTEGER_POSITIVE</a>
1348
+ <code>|</code> <a href="#grammar-production-DECIMAL_POSITIVE">DECIMAL_POSITIVE</a>
1349
+ <code>|</code> <a href="#grammar-production-DOUBLE_POSITIVE">DOUBLE_POSITIVE</a>
1350
+ </td>
1351
+ </tr>
1352
+ <tr id='grammar-production-NumericLiteralNegative'>
1353
+ <td>[133]</td>
1354
+ <td><code>NumericLiteralNegative</code></td>
1355
+ <td>::=</td>
1356
+ <td>
1357
+ <a href="#grammar-production-INTEGER_NEGATIVE">INTEGER_NEGATIVE</a>
1358
+ <code>|</code> <a href="#grammar-production-DECIMAL_NEGATIVE">DECIMAL_NEGATIVE</a>
1359
+ <code>|</code> <a href="#grammar-production-DOUBLE_NEGATIVE">DOUBLE_NEGATIVE</a>
1360
+ </td>
1361
+ </tr>
1362
+ <tr id='grammar-production-BooleanLiteral'>
1363
+ <td>[134]</td>
1364
+ <td><code>BooleanLiteral</code></td>
1365
+ <td>::=</td>
1366
+ <td>
1367
+ "<code class="grammar-literal">true</code>"
1368
+ <code>|</code> "<code class="grammar-literal">false</code>"
1369
+ </td>
1370
+ </tr>
1371
+ <tr id='grammar-production-String'>
1372
+ <td>[135]</td>
1373
+ <td><code>String</code></td>
1374
+ <td>::=</td>
1375
+ <td>
1376
+ <a href="#grammar-production-STRING_LITERAL1">STRING_LITERAL1</a>
1377
+ <code>|</code> <a href="#grammar-production-STRING_LITERAL2">STRING_LITERAL2</a>
1378
+ <code>|</code> <a href="#grammar-production-STRING_LITERAL_LONG1">STRING_LITERAL_LONG1</a>
1379
+ <code>|</code> <a href="#grammar-production-STRING_LITERAL_LONG2">STRING_LITERAL_LONG2</a>
1380
+ </td>
1381
+ </tr>
1382
+ <tr id='grammar-production-iri'>
1383
+ <td>[136]</td>
1384
+ <td><code>iri</code></td>
1385
+ <td>::=</td>
1386
+ <td>
1387
+ <a href="#grammar-production-IRIREF">IRIREF</a>
1388
+ <code>|</code> <a href="#grammar-production-PrefixedName">PrefixedName</a>
1389
+ </td>
1390
+ </tr>
1391
+ <tr id='grammar-production-PrefixedName'>
1392
+ <td>[137]</td>
1393
+ <td><code>PrefixedName</code></td>
1394
+ <td>::=</td>
1395
+ <td>
1396
+ <a href="#grammar-production-PNAME_LN">PNAME_LN</a>
1397
+ <code>|</code> <a href="#grammar-production-PNAME_NS">PNAME_NS</a>
1398
+ </td>
1399
+ </tr>
1400
+ <tr id='grammar-production-BlankNode'>
1401
+ <td>[138]</td>
1402
+ <td><code>BlankNode</code></td>
1403
+ <td>::=</td>
1404
+ <td>
1405
+ <a href="#grammar-production-BLANK_NODE_LABEL">BLANK_NODE_LABEL</a>
1406
+ <code>|</code> <a href="#grammar-production-ANON">ANON</a>
1407
+ </td>
1408
+ </tr>
1409
+ <tr id='grammar-production-IRIREF'>
1410
+ <td>[139]</td>
1411
+ <td><code>IRIREF</code></td>
1412
+ <td>::=</td>
1413
+ <td>
1414
+ "<code class="grammar-literal"><</code>"
1415
+ <code>[</code> <code class="grammar-literal">^</code><code class="grammar-char-escape">#x00</code><code class="grammar-literal">-</code><code class="grammar-char-escape">#x20</code><code class="grammar-literal"><>"{}|^`]</code><code class="grammar-char-escape">#x20</code><code class="grammar-literal">|</code><code class="grammar-char-escape">#x20</code><code class="grammar-literal">UCHAR)*</code><code class="grammar-char-escape">#x20</code><code class="grammar-literal">'>'</code><code>]</code>
1416
+ </td>
1417
+ </tr>
1418
+ <tr id='grammar-production-PNAME_NS'>
1419
+ <td>[140]</td>
1420
+ <td><code>PNAME_NS</code></td>
1421
+ <td>::=</td>
1422
+ <td>
1423
+ <a href="#grammar-production-PN_PREFIX">PN_PREFIX</a><code>?</code>
1424
+ "<code class="grammar-literal">:</code>"
1425
+ </td>
1426
+ </tr>
1427
+ <tr id='grammar-production-PNAME_LN'>
1428
+ <td>[141]</td>
1429
+ <td><code>PNAME_LN</code></td>
1430
+ <td>::=</td>
1431
+ <td>
1432
+ <a href="#grammar-production-PNAME_NS">PNAME_NS</a>
1433
+ <a href="#grammar-production-PN_LOCAL">PN_LOCAL</a>
1434
+ </td>
1435
+ </tr>
1436
+ <tr id='grammar-production-BLANK_NODE_LABEL'>
1437
+ <td>[142]</td>
1438
+ <td><code>BLANK_NODE_LABEL</code></td>
1439
+ <td>::=</td>
1440
+ <td>
1441
+ "<code class="grammar-literal">_:</code>"
1442
+ <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>
1443
+ (<a href="#grammar-production-PN_CHARS">PN_CHARS</a> <code>|</code> "<code class="grammar-literal">.</code>")<code>*</code> <a href="#grammar-production-PN_CHARS">PN_CHARS</a><code>?</code>
1444
+ </td>
1445
+ </tr>
1446
+ <tr id='grammar-production-VAR1'>
1447
+ <td>[143]</td>
1448
+ <td><code>VAR1</code></td>
1449
+ <td>::=</td>
1450
+ <td>
1451
+ "<code class="grammar-literal">?</code>"
1452
+ <a href="#grammar-production-VARNAME">VARNAME</a>
1453
+ </td>
1454
+ </tr>
1455
+ <tr id='grammar-production-VAR2'>
1456
+ <td>[144]</td>
1457
+ <td><code>VAR2</code></td>
1458
+ <td>::=</td>
1459
+ <td>
1460
+ "<code class="grammar-literal">$</code>"
1461
+ <a href="#grammar-production-VARNAME">VARNAME</a>
1462
+ </td>
1463
+ </tr>
1464
+ <tr id='grammar-production-LANGTAG'>
1465
+ <td>[145]</td>
1466
+ <td><code>LANGTAG</code></td>
1467
+ <td>::=</td>
1468
+ <td>
1469
+ "<code class="grammar-literal">@</code>"
1470
+ (<code>[</code> <code class="grammar-literal">a-zA-Z</code><code>]</code> )<code>+</code>
1471
+ ("<code class="grammar-literal">-</code>" (<code>[</code> <code class="grammar-literal">a-zA-Z0-9</code><code>]</code> )<code>+</code> )<code>*</code>
1472
+ </td>
1473
+ </tr>
1474
+ <tr id='grammar-production-INTEGER'>
1475
+ <td>[146]</td>
1476
+ <td><code>INTEGER</code></td>
1477
+ <td>::=</td>
1478
+ <td>
1479
+ (<code>[</code> <code class="grammar-literal">0-9</code><code>]</code> )<code>+</code>
1480
+ </td>
1481
+ </tr>
1482
+ <tr id='grammar-production-DECIMAL'>
1483
+ <td>[147]</td>
1484
+ <td><code>DECIMAL</code></td>
1485
+ <td>::=</td>
1486
+ <td>
1487
+ (<code>[</code> <code class="grammar-literal">0-9</code><code>]</code> )<code>*</code>
1488
+ "<code class="grammar-literal">.</code>"
1489
+ (<code>[</code> <code class="grammar-literal">0-9</code><code>]</code> )<code>+</code>
1490
+ </td>
1491
+ </tr>
1492
+ <tr id='grammar-production-DOUBLE'>
1493
+ <td>[148]</td>
1494
+ <td><code>DOUBLE</code></td>
1495
+ <td>::=</td>
1496
+ <td>
1497
+ (<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>
1498
+ <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>
1499
+ <code>|</code> (<code>[</code> <code class="grammar-literal">0-9</code><code>]</code> )<code>+</code> <a href="#grammar-production-EXPONENT">EXPONENT</a>
1500
+ </td>
1501
+ </tr>
1502
+ <tr id='grammar-production-INTEGER_POSITIVE'>
1503
+ <td>[149]</td>
1504
+ <td><code>INTEGER_POSITIVE</code></td>
1505
+ <td>::=</td>
1506
+ <td>
1507
+ "<code class="grammar-literal">+</code>"
1508
+ <a href="#grammar-production-INTEGER">INTEGER</a>
1509
+ </td>
1510
+ </tr>
1511
+ <tr id='grammar-production-DECIMAL_POSITIVE'>
1512
+ <td>[150]</td>
1513
+ <td><code>DECIMAL_POSITIVE</code></td>
1514
+ <td>::=</td>
1515
+ <td>
1516
+ "<code class="grammar-literal">+</code>"
1517
+ <a href="#grammar-production-DECIMAL">DECIMAL</a>
1518
+ </td>
1519
+ </tr>
1520
+ <tr id='grammar-production-DOUBLE_POSITIVE'>
1521
+ <td>[151]</td>
1522
+ <td><code>DOUBLE_POSITIVE</code></td>
1523
+ <td>::=</td>
1524
+ <td>
1525
+ "<code class="grammar-literal">+</code>"
1526
+ <a href="#grammar-production-DOUBLE">DOUBLE</a>
1527
+ </td>
1528
+ </tr>
1529
+ <tr id='grammar-production-INTEGER_NEGATIVE'>
1530
+ <td>[152]</td>
1531
+ <td><code>INTEGER_NEGATIVE</code></td>
1532
+ <td>::=</td>
1533
+ <td>
1534
+ "<code class="grammar-literal">-</code>"
1535
+ <a href="#grammar-production-INTEGER">INTEGER</a>
1536
+ </td>
1537
+ </tr>
1538
+ <tr id='grammar-production-DECIMAL_NEGATIVE'>
1539
+ <td>[153]</td>
1540
+ <td><code>DECIMAL_NEGATIVE</code></td>
1541
+ <td>::=</td>
1542
+ <td>
1543
+ "<code class="grammar-literal">-</code>"
1544
+ <a href="#grammar-production-DECIMAL">DECIMAL</a>
1545
+ </td>
1546
+ </tr>
1547
+ <tr id='grammar-production-DOUBLE_NEGATIVE'>
1548
+ <td>[154]</td>
1549
+ <td><code>DOUBLE_NEGATIVE</code></td>
1550
+ <td>::=</td>
1551
+ <td>
1552
+ "<code class="grammar-literal">-</code>"
1553
+ <a href="#grammar-production-DOUBLE">DOUBLE</a>
1554
+ </td>
1555
+ </tr>
1556
+ <tr id='grammar-production-EXPONENT'>
1557
+ <td>[155]</td>
1558
+ <td><code>EXPONENT</code></td>
1559
+ <td>::=</td>
1560
+ <td>
1561
+ <code>[</code> <code class="grammar-literal">eE</code><code>]</code>
1562
+ (<code>[</code> <code class="grammar-literal">+-</code><code>]</code> )<code>?</code>
1563
+ (<code>[</code> <code class="grammar-literal">0-9</code><code>]</code> )<code>+</code>
1564
+ </td>
1565
+ </tr>
1566
+ <tr id='grammar-production-STRING_LITERAL1'>
1567
+ <td>[156]</td>
1568
+ <td><code>STRING_LITERAL1</code></td>
1569
+ <td>::=</td>
1570
+ <td>
1571
+ "<code class="grammar-literal">'</code>"
1572
+ (<code>[</code> <code class="grammar-literal">^</code><code class="grammar-char-escape">#x27</code><code class="grammar-char-escape">#x5C</code><code class="grammar-char-escape">#xA</code><code class="grammar-char-escape">#xD</code><code>]</code> <code>|</code> <a href="#grammar-production-ECHAR">ECHAR</a>)<code>*</code>
1573
+ "<code class="grammar-literal">'</code>"
1574
+ </td>
1575
+ </tr>
1576
+ <tr id='grammar-production-STRING_LITERAL2'>
1577
+ <td>[157]</td>
1578
+ <td><code>STRING_LITERAL2</code></td>
1579
+ <td>::=</td>
1580
+ <td>
1581
+ '<code class="grammar-literal">"</code>'
1582
+ (<code>[</code> <code class="grammar-literal">^</code><code class="grammar-char-escape">#x22</code><code class="grammar-char-escape">#x5C</code><code class="grammar-char-escape">#xA</code><code class="grammar-char-escape">#xD</code><code>]</code> <code>|</code> <a href="#grammar-production-ECHAR">ECHAR</a>)<code>*</code>
1583
+ '<code class="grammar-literal">"</code>'
1584
+ </td>
1585
+ </tr>
1586
+ <tr id='grammar-production-STRING_LITERAL_LONG1'>
1587
+ <td>[158]</td>
1588
+ <td><code>STRING_LITERAL_LONG1</code></td>
1589
+ <td>::=</td>
1590
+ <td>
1591
+ "<code class="grammar-literal">'''</code>"
1592
+ <code>(</code> ("<code class="grammar-literal">'</code>" <code>|</code> "<code class="grammar-literal">''</code>")<code>?</code> <code>[</code> <code class="grammar-literal">^']</code><code class="grammar-char-escape">#x20</code><code class="grammar-literal">|</code><code class="grammar-char-escape">#x20</code><code class="grammar-literal">ECHAR</code><code class="grammar-char-escape">#x20</code><code class="grammar-literal">)</code><code class="grammar-char-escape">#x20</code><code class="grammar-literal">)*</code><code class="grammar-char-escape">#x20</code><code class="grammar-literal">"'''"</code><code>]</code> <code>)</code>
1593
+ </td>
1594
+ </tr>
1595
+ <tr id='grammar-production-STRING_LITERAL_LONG2'>
1596
+ <td>[159]</td>
1597
+ <td><code>STRING_LITERAL_LONG2</code></td>
1598
+ <td>::=</td>
1599
+ <td>
1600
+ '<code class="grammar-literal">"""</code>'
1601
+ <code>(</code> ('<code class="grammar-literal">"</code>' <code>|</code> '<code class="grammar-literal">""</code>')<code>?</code> <code>[</code> <code class="grammar-literal">^"]</code><code class="grammar-char-escape">#x20</code><code class="grammar-literal">|</code><code class="grammar-char-escape">#x20</code><code class="grammar-literal">ECHAR</code><code class="grammar-char-escape">#x20</code><code class="grammar-literal">)</code><code class="grammar-char-escape">#x20</code><code class="grammar-literal">)*</code><code class="grammar-char-escape">#x20</code><code class="grammar-literal">'"""'</code><code>]</code> <code>)</code>
1602
+ </td>
1603
+ </tr>
1604
+ <tr id='grammar-production-ECHAR'>
1605
+ <td>[160]</td>
1606
+ <td><code>ECHAR</code></td>
1607
+ <td>::=</td>
1608
+ <td>
1609
+ "<code class="grammar-literal">\</code>"
1610
+ <code>[</code> <code class="grammar-literal">tbnrf"'</code><code>]</code>
1611
+ </td>
1612
+ </tr>
1613
+ <tr id='grammar-production-NIL'>
1614
+ <td>[161]</td>
1615
+ <td><code>NIL</code></td>
1616
+ <td>::=</td>
1617
+ <td>
1618
+ "<code class="grammar-literal">(</code>"
1619
+ <a href="#grammar-production-WS">WS</a><code>*</code>
1620
+ "<code class="grammar-literal">)</code>"
1621
+ </td>
1622
+ </tr>
1623
+ <tr id='grammar-production-WS'>
1624
+ <td>[162]</td>
1625
+ <td><code>WS</code></td>
1626
+ <td>::=</td>
1627
+ <td>
1628
+ <code class="grammar-char-escape">#x20</code>
1629
+ <code>|</code> <code class="grammar-char-escape">#x9</code>
1630
+ <code>|</code> <code class="grammar-char-escape">#xD</code>
1631
+ <code>|</code> <code class="grammar-char-escape">#xA</code>
1632
+ </td>
1633
+ </tr>
1634
+ <tr id='grammar-production-ANON'>
1635
+ <td>[163]</td>
1636
+ <td><code>ANON</code></td>
1637
+ <td>::=</td>
1638
+ <td>
1639
+ "<code class="grammar-literal">[</code>"
1640
+ <a href="#grammar-production-WS">WS</a><code>*</code>
1641
+ "<code class="grammar-literal">]</code>"
1642
+ </td>
1643
+ </tr>
1644
+ <tr id='grammar-production-PN_CHARS_BASE'>
1645
+ <td>[164]</td>
1646
+ <td><code>PN_CHARS_BASE</code></td>
1647
+ <td>::=</td>
1648
+ <td>
1649
+ <code>[</code> <code class="grammar-literal">A-Z</code><code>]</code>
1650
+ <code>|</code> <code>[</code> <code class="grammar-literal">a-z</code><code>]</code>
1651
+ <code>|</code> <code>[</code> <code class="grammar-char-escape">#x00C0</code><code class="grammar-literal">-</code><code class="grammar-char-escape">#x00D6</code><code>]</code>
1652
+ <code>|</code> <code>[</code> <code class="grammar-char-escape">#x00D8</code><code class="grammar-literal">-</code><code class="grammar-char-escape">#x00F6</code><code>]</code>
1653
+ <code>|</code> <code>[</code> <code class="grammar-char-escape">#x00F8</code><code class="grammar-literal">-</code><code class="grammar-char-escape">#x02FF</code><code>]</code>
1654
+ <code>|</code> <code>[</code> <code class="grammar-char-escape">#x0370</code><code class="grammar-literal">-</code><code class="grammar-char-escape">#x037D</code><code>]</code>
1655
+ <code>|</code> <code>[</code> <code class="grammar-char-escape">#x037F</code><code class="grammar-literal">-</code><code class="grammar-char-escape">#x1FFF</code><code>]</code>
1656
+ <code>|</code> <code>[</code> <code class="grammar-char-escape">#x200C</code><code class="grammar-literal">-</code><code class="grammar-char-escape">#x200D</code><code>]</code>
1657
+ <code>|</code> <code>[</code> <code class="grammar-char-escape">#x2070</code><code class="grammar-literal">-</code><code class="grammar-char-escape">#x218F</code><code>]</code>
1658
+ <code>|</code> <code>[</code> <code class="grammar-char-escape">#x2C00</code><code class="grammar-literal">-</code><code class="grammar-char-escape">#x2FEF</code><code>]</code>
1659
+ <code>|</code> <code>[</code> <code class="grammar-char-escape">#x3001</code><code class="grammar-literal">-</code><code class="grammar-char-escape">#xD7FF</code><code>]</code>
1660
+ <code>|</code> <code>[</code> <code class="grammar-char-escape">#xF900</code><code class="grammar-literal">-</code><code class="grammar-char-escape">#xFDCF</code><code>]</code>
1661
+ <code>|</code> <code>[</code> <code class="grammar-char-escape">#xFDF0</code><code class="grammar-literal">-</code><code class="grammar-char-escape">#xFFFD</code><code>]</code>
1662
+ <code>|</code> <code>[</code> <code class="grammar-char-escape">#x10000</code><code class="grammar-literal">-</code><code class="grammar-char-escape">#xEFFFF</code><code>]</code>
1663
+ </td>
1664
+ </tr>
1665
+ <tr id='grammar-production-PN_CHARS_U'>
1666
+ <td>[165]</td>
1667
+ <td><code>PN_CHARS_U</code></td>
1668
+ <td>::=</td>
1669
+ <td>
1670
+ <a href="#grammar-production-PN_CHARS_BASE">PN_CHARS_BASE</a>
1671
+ <code>|</code> "<code class="grammar-literal">_</code>"
1672
+ </td>
1673
+ </tr>
1674
+ <tr id='grammar-production-VARNAME'>
1675
+ <td>[166]</td>
1676
+ <td><code>VARNAME</code></td>
1677
+ <td>::=</td>
1678
+ <td>
1679
+ <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>
1680
+ (<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 class="grammar-char-escape">#x00B7</code> <code>|</code> <code>[</code> <code class="grammar-char-escape">#x0300</code><code class="grammar-literal">-</code><code class="grammar-char-escape">#x036F</code><code>]</code> <code>|</code> <code>[</code> <code class="grammar-char-escape">#x203F</code><code class="grammar-literal">-</code><code class="grammar-char-escape">#x2040</code><code>]</code> )<code>*</code>
1681
+ </td>
1682
+ </tr>
1683
+ <tr id='grammar-production-PN_CHARS'>
1684
+ <td>[167]</td>
1685
+ <td><code>PN_CHARS</code></td>
1686
+ <td>::=</td>
1687
+ <td>
1688
+ <a href="#grammar-production-PN_CHARS_U">PN_CHARS_U</a>
1689
+ <code>|</code> "<code class="grammar-literal">-</code>"
1690
+ <code>|</code> <code>[</code> <code class="grammar-literal">0-9</code><code>]</code>
1691
+ <code>|</code> <code class="grammar-char-escape">#x00B7</code>
1692
+ <code>|</code> <code>[</code> <code class="grammar-char-escape">#x0300</code><code class="grammar-literal">-</code><code class="grammar-char-escape">#x036F</code><code>]</code>
1693
+ <code>|</code> <code>[</code> <code class="grammar-char-escape">#x203F</code><code class="grammar-literal">-</code><code class="grammar-char-escape">#x2040</code><code>]</code>
1694
+ </td>
1695
+ </tr>
1696
+ <tr id='grammar-production-PN_PREFIX'>
1697
+ <td>[168]</td>
1698
+ <td><code>PN_PREFIX</code></td>
1699
+ <td>::=</td>
1700
+ <td>
1701
+ <a href="#grammar-production-PN_CHARS_BASE">PN_CHARS_BASE</a>
1702
+ (<a href="#grammar-production-PN_CHARS">PN_CHARS</a> <code>|</code> "<code class="grammar-literal">.</code>")<code>*</code> <a href="#grammar-production-PN_CHARS">PN_CHARS</a><code>?</code>
1703
+ </td>
1704
+ </tr>
1705
+ <tr id='grammar-production-PN_LOCAL'>
1706
+ <td>[169]</td>
1707
+ <td><code>PN_LOCAL</code></td>
1708
+ <td>::=</td>
1709
+ <td>
1710
+ <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>
1711
+ (<a href="#grammar-production-PN_CHARS">PN_CHARS</a> <code>|</code> "<code class="grammar-literal">.</code>")<code>*</code> <a href="#grammar-production-PN_CHARS">PN_CHARS</a><code>?</code>
1712
+ </td>
1713
+ </tr>
1714
+ <tr id='grammar-production-PLX'>
1715
+ <td>[170]</td>
1716
+ <td><code>PLX</code></td>
1717
+ <td>::=</td>
1718
+ <td>
1719
+ <a href="#grammar-production-PERCENT">PERCENT</a>
1720
+ <code>|</code> <a href="#grammar-production-PN_LOCAL_ESC">PN_LOCAL_ESC</a>
1721
+ </td>
1722
+ </tr>
1723
+ <tr id='grammar-production-PERCENT'>
1724
+ <td>[171]</td>
1725
+ <td><code>PERCENT</code></td>
1726
+ <td>::=</td>
1727
+ <td>
1728
+ "<code class="grammar-literal">%</code>"
1729
+ <a href="#grammar-production-HEX">HEX</a>
1730
+ <a href="#grammar-production-HEX">HEX</a>
1731
+ </td>
1732
+ </tr>
1733
+ <tr id='grammar-production-HEX'>
1734
+ <td>[172]</td>
1735
+ <td><code>HEX</code></td>
1736
+ <td>::=</td>
1737
+ <td>
1738
+ <code>[</code> <code class="grammar-literal">0-9</code><code>]</code>
1739
+ <code>|</code> <code>[</code> <code class="grammar-literal">A-F</code><code>]</code>
1740
+ <code>|</code> <code>[</code> <code class="grammar-literal">a-f</code><code>]</code>
1741
+ </td>
1742
+ </tr>
1743
+ <tr id='grammar-production-PN_LOCAL_ESC'>
1744
+ <td>[173]</td>
1745
+ <td><code>PN_LOCAL_ESC</code></td>
1746
+ <td>::=</td>
1747
+ <td>
1748
+ "<code class="grammar-literal">\</code>"
1749
+ <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-char-escape">#x21</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>
1750
+ </td>
1751
+ </tr>
1752
+ </tbody>
1753
+ </table>