sparql 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (84) hide show
  1. data/AUTHORS +3 -0
  2. data/CREDITS +0 -0
  3. data/README.markdown +103 -53
  4. data/UNLICENSE +24 -0
  5. data/VERSION +1 -0
  6. data/bin/sparql +87 -0
  7. data/lib/sparql.rb +105 -22
  8. data/lib/sparql/algebra.rb +369 -0
  9. data/lib/sparql/algebra/evaluatable.rb +37 -0
  10. data/lib/sparql/algebra/expression.rb +284 -0
  11. data/lib/sparql/algebra/extensions.rb +159 -0
  12. data/lib/sparql/algebra/operator.rb +492 -0
  13. data/lib/sparql/algebra/operator/add.rb +34 -0
  14. data/lib/sparql/algebra/operator/and.rb +65 -0
  15. data/lib/sparql/algebra/operator/asc.rb +29 -0
  16. data/lib/sparql/algebra/operator/ask.rb +46 -0
  17. data/lib/sparql/algebra/operator/base.rb +46 -0
  18. data/lib/sparql/algebra/operator/bgp.rb +26 -0
  19. data/lib/sparql/algebra/operator/bound.rb +48 -0
  20. data/lib/sparql/algebra/operator/compare.rb +84 -0
  21. data/lib/sparql/algebra/operator/construct.rb +85 -0
  22. data/lib/sparql/algebra/operator/dataset.rb +77 -0
  23. data/lib/sparql/algebra/operator/datatype.rb +42 -0
  24. data/lib/sparql/algebra/operator/desc.rb +17 -0
  25. data/lib/sparql/algebra/operator/describe.rb +71 -0
  26. data/lib/sparql/algebra/operator/distinct.rb +50 -0
  27. data/lib/sparql/algebra/operator/divide.rb +43 -0
  28. data/lib/sparql/algebra/operator/equal.rb +32 -0
  29. data/lib/sparql/algebra/operator/exprlist.rb +52 -0
  30. data/lib/sparql/algebra/operator/filter.rb +71 -0
  31. data/lib/sparql/algebra/operator/graph.rb +28 -0
  32. data/lib/sparql/algebra/operator/greater_than.rb +32 -0
  33. data/lib/sparql/algebra/operator/greater_than_or_equal.rb +33 -0
  34. data/lib/sparql/algebra/operator/is_blank.rb +35 -0
  35. data/lib/sparql/algebra/operator/is_iri.rb +37 -0
  36. data/lib/sparql/algebra/operator/is_literal.rb +36 -0
  37. data/lib/sparql/algebra/operator/join.rb +67 -0
  38. data/lib/sparql/algebra/operator/lang.rb +29 -0
  39. data/lib/sparql/algebra/operator/lang_matches.rb +53 -0
  40. data/lib/sparql/algebra/operator/left_join.rb +95 -0
  41. data/lib/sparql/algebra/operator/less_than.rb +32 -0
  42. data/lib/sparql/algebra/operator/less_than_or_equal.rb +32 -0
  43. data/lib/sparql/algebra/operator/minus.rb +31 -0
  44. data/lib/sparql/algebra/operator/multiply.rb +34 -0
  45. data/lib/sparql/algebra/operator/not.rb +35 -0
  46. data/lib/sparql/algebra/operator/not_equal.rb +26 -0
  47. data/lib/sparql/algebra/operator/or.rb +65 -0
  48. data/lib/sparql/algebra/operator/order.rb +69 -0
  49. data/lib/sparql/algebra/operator/plus.rb +31 -0
  50. data/lib/sparql/algebra/operator/prefix.rb +45 -0
  51. data/lib/sparql/algebra/operator/project.rb +46 -0
  52. data/lib/sparql/algebra/operator/reduced.rb +47 -0
  53. data/lib/sparql/algebra/operator/regex.rb +70 -0
  54. data/lib/sparql/algebra/operator/same_term.rb +46 -0
  55. data/lib/sparql/algebra/operator/slice.rb +60 -0
  56. data/lib/sparql/algebra/operator/str.rb +35 -0
  57. data/lib/sparql/algebra/operator/subtract.rb +32 -0
  58. data/lib/sparql/algebra/operator/union.rb +55 -0
  59. data/lib/sparql/algebra/query.rb +99 -0
  60. data/lib/sparql/algebra/sxp_extensions.rb +35 -0
  61. data/lib/sparql/algebra/version.rb +20 -0
  62. data/lib/sparql/extensions.rb +102 -0
  63. data/lib/sparql/grammar.rb +298 -0
  64. data/lib/sparql/grammar/lexer.rb +609 -0
  65. data/lib/sparql/grammar/parser.rb +1383 -0
  66. data/lib/sparql/grammar/parser/meta.rb +1801 -0
  67. data/lib/sparql/results.rb +220 -0
  68. data/lib/sparql/version.rb +20 -0
  69. metadata +232 -62
  70. data/Rakefile +0 -22
  71. data/coverage/index.html +0 -252
  72. data/coverage/lib-sparql-execute_sparql_rb.html +0 -621
  73. data/coverage/lib-sparql_rb.html +0 -622
  74. data/lib/sparql/execute_sparql.rb +0 -27
  75. data/lib/sparql/sparql.treetop +0 -159
  76. data/sparql.gemspec +0 -16
  77. data/spec/spec.opts +0 -2
  78. data/spec/spec_helper.rb +0 -24
  79. data/spec/unit/graph_parsing_spec.rb +0 -76
  80. data/spec/unit/iri_parsing_spec.rb +0 -46
  81. data/spec/unit/prefixed_names_parsing_spec.rb +0 -40
  82. data/spec/unit/primitives_parsing_spec.rb +0 -26
  83. data/spec/unit/sparql_parsing_spec.rb +0 -72
  84. data/spec/unit/variables_parsing_spec.rb +0 -36
@@ -0,0 +1,1801 @@
1
+ # This file is automatically generated by script/build_meta
2
+ # Branch and Regexp tables derived from /Users/gregg/Projects/sparql-grammar/etc/sparql-selectors.n3
3
+ # Note, branch tables completed with conflicts, may need to be resolved manually:
4
+ # Conflict: in :UnaryExpression:
5
+ # "+" is the condition for ["\"+\"", ":PrimaryExpression"].
6
+ # We are changing it to :PrimaryExpression.
7
+ # Conflict: in :UnaryExpression:
8
+ # "-" is the condition for ["\"-\"", ":PrimaryExpression"].
9
+ # We are changing it to :PrimaryExpression.
10
+ module SPARQL::Grammar::Meta
11
+ BRANCHES = {
12
+ :AdditiveExpression => {
13
+ "!" => [:MultiplicativeExpression,
14
+ :_Add_Sub_MultiplicativeExpression_Star],
15
+ "(" => [:MultiplicativeExpression,
16
+ :_Add_Sub_MultiplicativeExpression_Star],
17
+ "+" => [:MultiplicativeExpression,
18
+ :_Add_Sub_MultiplicativeExpression_Star],
19
+ "-" => [:MultiplicativeExpression,
20
+ :_Add_Sub_MultiplicativeExpression_Star],
21
+ "BOUND" => [:MultiplicativeExpression,
22
+ :_Add_Sub_MultiplicativeExpression_Star],
23
+ "DATATYPE" => [:MultiplicativeExpression,
24
+ :_Add_Sub_MultiplicativeExpression_Star],
25
+ "LANG" => [:MultiplicativeExpression,
26
+ :_Add_Sub_MultiplicativeExpression_Star],
27
+ "LANGMATCHES" => [:MultiplicativeExpression,
28
+ :_Add_Sub_MultiplicativeExpression_Star],
29
+ "REGEX" => [:MultiplicativeExpression,
30
+ :_Add_Sub_MultiplicativeExpression_Star],
31
+ "STR" => [:MultiplicativeExpression,
32
+ :_Add_Sub_MultiplicativeExpression_Star],
33
+ :BooleanLiteral => [:MultiplicativeExpression,
34
+ :_Add_Sub_MultiplicativeExpression_Star],
35
+ :DECIMAL => [:MultiplicativeExpression,
36
+ :_Add_Sub_MultiplicativeExpression_Star],
37
+ :DOUBLE => [:MultiplicativeExpression,
38
+ :_Add_Sub_MultiplicativeExpression_Star],
39
+ :INTEGER => [:MultiplicativeExpression,
40
+ :_Add_Sub_MultiplicativeExpression_Star],
41
+ :IRI_REF => [:MultiplicativeExpression,
42
+ :_Add_Sub_MultiplicativeExpression_Star],
43
+ :PNAME_LN => [:MultiplicativeExpression,
44
+ :_Add_Sub_MultiplicativeExpression_Star],
45
+ :PNAME_NS => [:MultiplicativeExpression,
46
+ :_Add_Sub_MultiplicativeExpression_Star],
47
+ :STRING_LITERAL1 => [:MultiplicativeExpression,
48
+ :_Add_Sub_MultiplicativeExpression_Star],
49
+ :STRING_LITERAL2 => [:MultiplicativeExpression,
50
+ :_Add_Sub_MultiplicativeExpression_Star],
51
+ :STRING_LITERAL_LONG1 => [:MultiplicativeExpression,
52
+ :_Add_Sub_MultiplicativeExpression_Star],
53
+ :STRING_LITERAL_LONG2 => [:MultiplicativeExpression,
54
+ :_Add_Sub_MultiplicativeExpression_Star],
55
+ :VAR1 => [:MultiplicativeExpression,
56
+ :_Add_Sub_MultiplicativeExpression_Star],
57
+ :VAR2 => [:MultiplicativeExpression,
58
+ :_Add_Sub_MultiplicativeExpression_Star],
59
+ "ISBLANK" => [:MultiplicativeExpression,
60
+ :_Add_Sub_MultiplicativeExpression_Star],
61
+ "ISIRI" => [:MultiplicativeExpression,
62
+ :_Add_Sub_MultiplicativeExpression_Star],
63
+ "ISLITERAL" => [:MultiplicativeExpression,
64
+ :_Add_Sub_MultiplicativeExpression_Star],
65
+ "ISURI" => [:MultiplicativeExpression,
66
+ :_Add_Sub_MultiplicativeExpression_Star],
67
+ "SAMETERM" => [:MultiplicativeExpression,
68
+ :_Add_Sub_MultiplicativeExpression_Star],
69
+ },
70
+ :ArgList => {
71
+ "(" => ["(",
72
+ :_Expression_COMMA_Expression_Star,
73
+ ")"],
74
+ :NIL => [:NIL],
75
+ },
76
+ :AskQuery => {
77
+ "ASK" => ["ASK",
78
+ :_DatasetClause_Star,
79
+ :WhereClause],
80
+ },
81
+ :BaseDecl => {
82
+ "BASE" => ["BASE",
83
+ :IRI_REF],
84
+ },
85
+ :BlankNode => {
86
+ :ANON => [:ANON],
87
+ :BLANK_NODE_LABEL => [:BLANK_NODE_LABEL],
88
+ },
89
+ :BlankNodePropertyList => {
90
+ "[" => ["[",
91
+ :PropertyListNotEmpty,
92
+ "]"],
93
+ },
94
+ :BrackettedExpression => {
95
+ "(" => ["(",
96
+ :Expression,
97
+ ")"],
98
+ },
99
+ :BuiltInCall => {
100
+ "BOUND" => ["BOUND",
101
+ "(",
102
+ :Var,
103
+ ")"],
104
+ "DATATYPE" => ["DATATYPE",
105
+ "(",
106
+ :Expression,
107
+ ")"],
108
+ "LANG" => ["LANG",
109
+ "(",
110
+ :Expression,
111
+ ")"],
112
+ "LANGMATCHES" => ["LANGMATCHES",
113
+ "(",
114
+ :Expression,
115
+ ",",
116
+ :Expression,
117
+ ")"],
118
+ "REGEX" => [:RegexExpression],
119
+ "STR" => ["STR",
120
+ "(",
121
+ :Expression,
122
+ ")"],
123
+ "ISBLANK" => ["ISBLANK",
124
+ "(",
125
+ :Expression,
126
+ ")"],
127
+ "ISIRI" => ["ISIRI",
128
+ "(",
129
+ :Expression,
130
+ ")"],
131
+ "ISLITERAL" => ["ISLITERAL",
132
+ "(",
133
+ :Expression,
134
+ ")"],
135
+ "ISURI" => ["ISURI",
136
+ "(",
137
+ :Expression,
138
+ ")"],
139
+ "SAMETERM" => ["SAMETERM",
140
+ "(",
141
+ :Expression,
142
+ ",",
143
+ :Expression,
144
+ ")"],
145
+ },
146
+ :Collection => {
147
+ "(" => ["(",
148
+ :_GraphNode_Plus,
149
+ ")"],
150
+ },
151
+ :ConditionalAndExpression => {
152
+ "!" => [:ValueLogical,
153
+ :_AND_ValueLogical_Star],
154
+ "(" => [:ValueLogical,
155
+ :_AND_ValueLogical_Star],
156
+ "+" => [:ValueLogical,
157
+ :_AND_ValueLogical_Star],
158
+ "-" => [:ValueLogical,
159
+ :_AND_ValueLogical_Star],
160
+ "BOUND" => [:ValueLogical,
161
+ :_AND_ValueLogical_Star],
162
+ "DATATYPE" => [:ValueLogical,
163
+ :_AND_ValueLogical_Star],
164
+ "LANG" => [:ValueLogical,
165
+ :_AND_ValueLogical_Star],
166
+ "LANGMATCHES" => [:ValueLogical,
167
+ :_AND_ValueLogical_Star],
168
+ "REGEX" => [:ValueLogical,
169
+ :_AND_ValueLogical_Star],
170
+ "STR" => [:ValueLogical,
171
+ :_AND_ValueLogical_Star],
172
+ :BooleanLiteral => [:ValueLogical,
173
+ :_AND_ValueLogical_Star],
174
+ :DECIMAL => [:ValueLogical,
175
+ :_AND_ValueLogical_Star],
176
+ :DOUBLE => [:ValueLogical,
177
+ :_AND_ValueLogical_Star],
178
+ :INTEGER => [:ValueLogical,
179
+ :_AND_ValueLogical_Star],
180
+ :IRI_REF => [:ValueLogical,
181
+ :_AND_ValueLogical_Star],
182
+ :PNAME_LN => [:ValueLogical,
183
+ :_AND_ValueLogical_Star],
184
+ :PNAME_NS => [:ValueLogical,
185
+ :_AND_ValueLogical_Star],
186
+ :STRING_LITERAL1 => [:ValueLogical,
187
+ :_AND_ValueLogical_Star],
188
+ :STRING_LITERAL2 => [:ValueLogical,
189
+ :_AND_ValueLogical_Star],
190
+ :STRING_LITERAL_LONG1 => [:ValueLogical,
191
+ :_AND_ValueLogical_Star],
192
+ :STRING_LITERAL_LONG2 => [:ValueLogical,
193
+ :_AND_ValueLogical_Star],
194
+ :VAR1 => [:ValueLogical,
195
+ :_AND_ValueLogical_Star],
196
+ :VAR2 => [:ValueLogical,
197
+ :_AND_ValueLogical_Star],
198
+ "ISBLANK" => [:ValueLogical,
199
+ :_AND_ValueLogical_Star],
200
+ "ISIRI" => [:ValueLogical,
201
+ :_AND_ValueLogical_Star],
202
+ "ISLITERAL" => [:ValueLogical,
203
+ :_AND_ValueLogical_Star],
204
+ "ISURI" => [:ValueLogical,
205
+ :_AND_ValueLogical_Star],
206
+ "SAMETERM" => [:ValueLogical,
207
+ :_AND_ValueLogical_Star],
208
+ },
209
+ :ConditionalOrExpression => {
210
+ "!" => [:ConditionalAndExpression,
211
+ :_OR_ConditionalAndExpression_Star],
212
+ "(" => [:ConditionalAndExpression,
213
+ :_OR_ConditionalAndExpression_Star],
214
+ "+" => [:ConditionalAndExpression,
215
+ :_OR_ConditionalAndExpression_Star],
216
+ "-" => [:ConditionalAndExpression,
217
+ :_OR_ConditionalAndExpression_Star],
218
+ "BOUND" => [:ConditionalAndExpression,
219
+ :_OR_ConditionalAndExpression_Star],
220
+ "DATATYPE" => [:ConditionalAndExpression,
221
+ :_OR_ConditionalAndExpression_Star],
222
+ "LANG" => [:ConditionalAndExpression,
223
+ :_OR_ConditionalAndExpression_Star],
224
+ "LANGMATCHES" => [:ConditionalAndExpression,
225
+ :_OR_ConditionalAndExpression_Star],
226
+ "REGEX" => [:ConditionalAndExpression,
227
+ :_OR_ConditionalAndExpression_Star],
228
+ "STR" => [:ConditionalAndExpression,
229
+ :_OR_ConditionalAndExpression_Star],
230
+ :BooleanLiteral => [:ConditionalAndExpression,
231
+ :_OR_ConditionalAndExpression_Star],
232
+ :DECIMAL => [:ConditionalAndExpression,
233
+ :_OR_ConditionalAndExpression_Star],
234
+ :DOUBLE => [:ConditionalAndExpression,
235
+ :_OR_ConditionalAndExpression_Star],
236
+ :INTEGER => [:ConditionalAndExpression,
237
+ :_OR_ConditionalAndExpression_Star],
238
+ :IRI_REF => [:ConditionalAndExpression,
239
+ :_OR_ConditionalAndExpression_Star],
240
+ :PNAME_LN => [:ConditionalAndExpression,
241
+ :_OR_ConditionalAndExpression_Star],
242
+ :PNAME_NS => [:ConditionalAndExpression,
243
+ :_OR_ConditionalAndExpression_Star],
244
+ :STRING_LITERAL1 => [:ConditionalAndExpression,
245
+ :_OR_ConditionalAndExpression_Star],
246
+ :STRING_LITERAL2 => [:ConditionalAndExpression,
247
+ :_OR_ConditionalAndExpression_Star],
248
+ :STRING_LITERAL_LONG1 => [:ConditionalAndExpression,
249
+ :_OR_ConditionalAndExpression_Star],
250
+ :STRING_LITERAL_LONG2 => [:ConditionalAndExpression,
251
+ :_OR_ConditionalAndExpression_Star],
252
+ :VAR1 => [:ConditionalAndExpression,
253
+ :_OR_ConditionalAndExpression_Star],
254
+ :VAR2 => [:ConditionalAndExpression,
255
+ :_OR_ConditionalAndExpression_Star],
256
+ "ISBLANK" => [:ConditionalAndExpression,
257
+ :_OR_ConditionalAndExpression_Star],
258
+ "ISIRI" => [:ConditionalAndExpression,
259
+ :_OR_ConditionalAndExpression_Star],
260
+ "ISLITERAL" => [:ConditionalAndExpression,
261
+ :_OR_ConditionalAndExpression_Star],
262
+ "ISURI" => [:ConditionalAndExpression,
263
+ :_OR_ConditionalAndExpression_Star],
264
+ "SAMETERM" => [:ConditionalAndExpression,
265
+ :_OR_ConditionalAndExpression_Star],
266
+ },
267
+ :Constraint => {
268
+ "(" => [:BrackettedExpression],
269
+ "BOUND" => [:BuiltInCall],
270
+ "DATATYPE" => [:BuiltInCall],
271
+ "LANG" => [:BuiltInCall],
272
+ "LANGMATCHES" => [:BuiltInCall],
273
+ "REGEX" => [:BuiltInCall],
274
+ "STR" => [:BuiltInCall],
275
+ :IRI_REF => [:FunctionCall],
276
+ :PNAME_LN => [:FunctionCall],
277
+ :PNAME_NS => [:FunctionCall],
278
+ "ISBLANK" => [:BuiltInCall],
279
+ "ISIRI" => [:BuiltInCall],
280
+ "ISLITERAL" => [:BuiltInCall],
281
+ "ISURI" => [:BuiltInCall],
282
+ "SAMETERM" => [:BuiltInCall],
283
+ },
284
+ :ConstructQuery => {
285
+ "CONSTRUCT" => ["CONSTRUCT",
286
+ :ConstructTemplate,
287
+ :_DatasetClause_Star,
288
+ :WhereClause,
289
+ :SolutionModifier],
290
+ },
291
+ :ConstructTemplate => {
292
+ "{" => ["{",
293
+ :_ConstructTriples_Opt,
294
+ "}"],
295
+ },
296
+ :ConstructTriples => {
297
+ "(" => [:TriplesSameSubject,
298
+ :_DOT_ConstructTriples_Opt_Opt],
299
+ "+" => [:TriplesSameSubject,
300
+ :_DOT_ConstructTriples_Opt_Opt],
301
+ "-" => [:TriplesSameSubject,
302
+ :_DOT_ConstructTriples_Opt_Opt],
303
+ "[" => [:TriplesSameSubject,
304
+ :_DOT_ConstructTriples_Opt_Opt],
305
+ :ANON => [:TriplesSameSubject,
306
+ :_DOT_ConstructTriples_Opt_Opt],
307
+ :BLANK_NODE_LABEL => [:TriplesSameSubject,
308
+ :_DOT_ConstructTriples_Opt_Opt],
309
+ :BooleanLiteral => [:TriplesSameSubject,
310
+ :_DOT_ConstructTriples_Opt_Opt],
311
+ :DECIMAL => [:TriplesSameSubject,
312
+ :_DOT_ConstructTriples_Opt_Opt],
313
+ :DOUBLE => [:TriplesSameSubject,
314
+ :_DOT_ConstructTriples_Opt_Opt],
315
+ :INTEGER => [:TriplesSameSubject,
316
+ :_DOT_ConstructTriples_Opt_Opt],
317
+ :IRI_REF => [:TriplesSameSubject,
318
+ :_DOT_ConstructTriples_Opt_Opt],
319
+ :NIL => [:TriplesSameSubject,
320
+ :_DOT_ConstructTriples_Opt_Opt],
321
+ :PNAME_LN => [:TriplesSameSubject,
322
+ :_DOT_ConstructTriples_Opt_Opt],
323
+ :PNAME_NS => [:TriplesSameSubject,
324
+ :_DOT_ConstructTriples_Opt_Opt],
325
+ :STRING_LITERAL1 => [:TriplesSameSubject,
326
+ :_DOT_ConstructTriples_Opt_Opt],
327
+ :STRING_LITERAL2 => [:TriplesSameSubject,
328
+ :_DOT_ConstructTriples_Opt_Opt],
329
+ :STRING_LITERAL_LONG1 => [:TriplesSameSubject,
330
+ :_DOT_ConstructTriples_Opt_Opt],
331
+ :STRING_LITERAL_LONG2 => [:TriplesSameSubject,
332
+ :_DOT_ConstructTriples_Opt_Opt],
333
+ :VAR1 => [:TriplesSameSubject,
334
+ :_DOT_ConstructTriples_Opt_Opt],
335
+ :VAR2 => [:TriplesSameSubject,
336
+ :_DOT_ConstructTriples_Opt_Opt],
337
+ },
338
+ :DatasetClause => {
339
+ "FROM" => ["FROM",
340
+ :_DefaultGraphClause_or_NamedGraphClause],
341
+ },
342
+ :DefaultGraphClause => {
343
+ :IRI_REF => [:SourceSelector],
344
+ :PNAME_LN => [:SourceSelector],
345
+ :PNAME_NS => [:SourceSelector],
346
+ },
347
+ :DescribeQuery => {
348
+ "DESCRIBE" => ["DESCRIBE",
349
+ :_VarOrIRIref_Plus_or_Star,
350
+ :_DatasetClause_Star,
351
+ :_WhereClause_Opt,
352
+ :SolutionModifier],
353
+ },
354
+ :Expression => {
355
+ "!" => [:ConditionalOrExpression],
356
+ "(" => [:ConditionalOrExpression],
357
+ "+" => [:ConditionalOrExpression],
358
+ "-" => [:ConditionalOrExpression],
359
+ "BOUND" => [:ConditionalOrExpression],
360
+ "DATATYPE" => [:ConditionalOrExpression],
361
+ "LANG" => [:ConditionalOrExpression],
362
+ "LANGMATCHES" => [:ConditionalOrExpression],
363
+ "REGEX" => [:ConditionalOrExpression],
364
+ "STR" => [:ConditionalOrExpression],
365
+ :BooleanLiteral => [:ConditionalOrExpression],
366
+ :DECIMAL => [:ConditionalOrExpression],
367
+ :DOUBLE => [:ConditionalOrExpression],
368
+ :INTEGER => [:ConditionalOrExpression],
369
+ :IRI_REF => [:ConditionalOrExpression],
370
+ :PNAME_LN => [:ConditionalOrExpression],
371
+ :PNAME_NS => [:ConditionalOrExpression],
372
+ :STRING_LITERAL1 => [:ConditionalOrExpression],
373
+ :STRING_LITERAL2 => [:ConditionalOrExpression],
374
+ :STRING_LITERAL_LONG1 => [:ConditionalOrExpression],
375
+ :STRING_LITERAL_LONG2 => [:ConditionalOrExpression],
376
+ :VAR1 => [:ConditionalOrExpression],
377
+ :VAR2 => [:ConditionalOrExpression],
378
+ "ISBLANK" => [:ConditionalOrExpression],
379
+ "ISIRI" => [:ConditionalOrExpression],
380
+ "ISLITERAL" => [:ConditionalOrExpression],
381
+ "ISURI" => [:ConditionalOrExpression],
382
+ "SAMETERM" => [:ConditionalOrExpression],
383
+ },
384
+ :Filter => {
385
+ "FILTER" => ["FILTER",
386
+ :Constraint],
387
+ },
388
+ :FunctionCall => {
389
+ :IRI_REF => [:IRIref,
390
+ :ArgList],
391
+ :PNAME_LN => [:IRIref,
392
+ :ArgList],
393
+ :PNAME_NS => [:IRIref,
394
+ :ArgList],
395
+ },
396
+ :GraphGraphPattern => {
397
+ "GRAPH" => ["GRAPH",
398
+ :VarOrIRIref,
399
+ :GroupGraphPattern],
400
+ },
401
+ :GraphNode => {
402
+ "(" => [:TriplesNode],
403
+ "+" => [:VarOrTerm],
404
+ "-" => [:VarOrTerm],
405
+ "[" => [:TriplesNode],
406
+ :ANON => [:VarOrTerm],
407
+ :BLANK_NODE_LABEL => [:VarOrTerm],
408
+ :BooleanLiteral => [:VarOrTerm],
409
+ :DECIMAL => [:VarOrTerm],
410
+ :DOUBLE => [:VarOrTerm],
411
+ :INTEGER => [:VarOrTerm],
412
+ :IRI_REF => [:VarOrTerm],
413
+ :NIL => [:VarOrTerm],
414
+ :PNAME_LN => [:VarOrTerm],
415
+ :PNAME_NS => [:VarOrTerm],
416
+ :STRING_LITERAL1 => [:VarOrTerm],
417
+ :STRING_LITERAL2 => [:VarOrTerm],
418
+ :STRING_LITERAL_LONG1 => [:VarOrTerm],
419
+ :STRING_LITERAL_LONG2 => [:VarOrTerm],
420
+ :VAR1 => [:VarOrTerm],
421
+ :VAR2 => [:VarOrTerm],
422
+ },
423
+ :GraphPatternNotTriples => {
424
+ "GRAPH" => [:GraphGraphPattern],
425
+ "OPTIONAL" => [:OptionalGraphPattern],
426
+ "{" => [:GroupOrUnionGraphPattern],
427
+ },
428
+ :GraphTerm => {
429
+ "+" => [:NumericLiteral],
430
+ "-" => [:NumericLiteral],
431
+ :ANON => [:BlankNode],
432
+ :BLANK_NODE_LABEL => [:BlankNode],
433
+ :BooleanLiteral => [:BooleanLiteral],
434
+ :DECIMAL => [:NumericLiteral],
435
+ :DOUBLE => [:NumericLiteral],
436
+ :INTEGER => [:NumericLiteral],
437
+ :IRI_REF => [:IRIref],
438
+ :NIL => [:NIL],
439
+ :PNAME_LN => [:IRIref],
440
+ :PNAME_NS => [:IRIref],
441
+ :STRING_LITERAL1 => [:RDFLiteral],
442
+ :STRING_LITERAL2 => [:RDFLiteral],
443
+ :STRING_LITERAL_LONG1 => [:RDFLiteral],
444
+ :STRING_LITERAL_LONG2 => [:RDFLiteral],
445
+ },
446
+ :GroupGraphPattern => {
447
+ "{" => ["{",
448
+ :_TriplesBlock_Opt,
449
+ :_GraphPatternNotTriples_or_Filter_Dot_Opt_TriplesBlock_Opt_Star,
450
+ "}"],
451
+ },
452
+ :GroupOrUnionGraphPattern => {
453
+ "{" => [:GroupGraphPattern,
454
+ :_UNION_GroupGraphPattern_Star],
455
+ },
456
+ :IRIref => {
457
+ :IRI_REF => [:IRI_REF],
458
+ :PNAME_LN => [:PrefixedName],
459
+ :PNAME_NS => [:PrefixedName],
460
+ },
461
+ :IRIrefOrFunction => {
462
+ :IRI_REF => [:IRIref,
463
+ :_ArgList_Opt],
464
+ :PNAME_LN => [:IRIref,
465
+ :_ArgList_Opt],
466
+ :PNAME_NS => [:IRIref,
467
+ :_ArgList_Opt],
468
+ },
469
+ :LimitClause => {
470
+ "LIMIT" => ["LIMIT",
471
+ :INTEGER],
472
+ },
473
+ :LimitOffsetClauses => {
474
+ "LIMIT" => [:LimitClause,
475
+ :_OffsetClause_Opt],
476
+ "OFFSET" => [:OffsetClause,
477
+ :_LimitClause_Opt],
478
+ },
479
+ :MultiplicativeExpression => {
480
+ "!" => [:UnaryExpression,
481
+ :_Mul_Div_UnaryExpression_Star],
482
+ "(" => [:UnaryExpression,
483
+ :_Mul_Div_UnaryExpression_Star],
484
+ "+" => [:UnaryExpression,
485
+ :_Mul_Div_UnaryExpression_Star],
486
+ "-" => [:UnaryExpression,
487
+ :_Mul_Div_UnaryExpression_Star],
488
+ "BOUND" => [:UnaryExpression,
489
+ :_Mul_Div_UnaryExpression_Star],
490
+ "DATATYPE" => [:UnaryExpression,
491
+ :_Mul_Div_UnaryExpression_Star],
492
+ "LANG" => [:UnaryExpression,
493
+ :_Mul_Div_UnaryExpression_Star],
494
+ "LANGMATCHES" => [:UnaryExpression,
495
+ :_Mul_Div_UnaryExpression_Star],
496
+ "REGEX" => [:UnaryExpression,
497
+ :_Mul_Div_UnaryExpression_Star],
498
+ "STR" => [:UnaryExpression,
499
+ :_Mul_Div_UnaryExpression_Star],
500
+ :BooleanLiteral => [:UnaryExpression,
501
+ :_Mul_Div_UnaryExpression_Star],
502
+ :DECIMAL => [:UnaryExpression,
503
+ :_Mul_Div_UnaryExpression_Star],
504
+ :DOUBLE => [:UnaryExpression,
505
+ :_Mul_Div_UnaryExpression_Star],
506
+ :INTEGER => [:UnaryExpression,
507
+ :_Mul_Div_UnaryExpression_Star],
508
+ :IRI_REF => [:UnaryExpression,
509
+ :_Mul_Div_UnaryExpression_Star],
510
+ :PNAME_LN => [:UnaryExpression,
511
+ :_Mul_Div_UnaryExpression_Star],
512
+ :PNAME_NS => [:UnaryExpression,
513
+ :_Mul_Div_UnaryExpression_Star],
514
+ :STRING_LITERAL1 => [:UnaryExpression,
515
+ :_Mul_Div_UnaryExpression_Star],
516
+ :STRING_LITERAL2 => [:UnaryExpression,
517
+ :_Mul_Div_UnaryExpression_Star],
518
+ :STRING_LITERAL_LONG1 => [:UnaryExpression,
519
+ :_Mul_Div_UnaryExpression_Star],
520
+ :STRING_LITERAL_LONG2 => [:UnaryExpression,
521
+ :_Mul_Div_UnaryExpression_Star],
522
+ :VAR1 => [:UnaryExpression,
523
+ :_Mul_Div_UnaryExpression_Star],
524
+ :VAR2 => [:UnaryExpression,
525
+ :_Mul_Div_UnaryExpression_Star],
526
+ "ISBLANK" => [:UnaryExpression,
527
+ :_Mul_Div_UnaryExpression_Star],
528
+ "ISIRI" => [:UnaryExpression,
529
+ :_Mul_Div_UnaryExpression_Star],
530
+ "ISLITERAL" => [:UnaryExpression,
531
+ :_Mul_Div_UnaryExpression_Star],
532
+ "ISURI" => [:UnaryExpression,
533
+ :_Mul_Div_UnaryExpression_Star],
534
+ "SAMETERM" => [:UnaryExpression,
535
+ :_Mul_Div_UnaryExpression_Star],
536
+ },
537
+ :NamedGraphClause => {
538
+ "NAMED" => ["NAMED",
539
+ :SourceSelector],
540
+ },
541
+ :NumericExpression => {
542
+ "!" => [:AdditiveExpression],
543
+ "(" => [:AdditiveExpression],
544
+ "+" => [:AdditiveExpression],
545
+ "-" => [:AdditiveExpression],
546
+ "BOUND" => [:AdditiveExpression],
547
+ "DATATYPE" => [:AdditiveExpression],
548
+ "LANG" => [:AdditiveExpression],
549
+ "LANGMATCHES" => [:AdditiveExpression],
550
+ "REGEX" => [:AdditiveExpression],
551
+ "STR" => [:AdditiveExpression],
552
+ :BooleanLiteral => [:AdditiveExpression],
553
+ :DECIMAL => [:AdditiveExpression],
554
+ :DOUBLE => [:AdditiveExpression],
555
+ :INTEGER => [:AdditiveExpression],
556
+ :IRI_REF => [:AdditiveExpression],
557
+ :PNAME_LN => [:AdditiveExpression],
558
+ :PNAME_NS => [:AdditiveExpression],
559
+ :STRING_LITERAL1 => [:AdditiveExpression],
560
+ :STRING_LITERAL2 => [:AdditiveExpression],
561
+ :STRING_LITERAL_LONG1 => [:AdditiveExpression],
562
+ :STRING_LITERAL_LONG2 => [:AdditiveExpression],
563
+ :VAR1 => [:AdditiveExpression],
564
+ :VAR2 => [:AdditiveExpression],
565
+ "ISBLANK" => [:AdditiveExpression],
566
+ "ISIRI" => [:AdditiveExpression],
567
+ "ISLITERAL" => [:AdditiveExpression],
568
+ "ISURI" => [:AdditiveExpression],
569
+ "SAMETERM" => [:AdditiveExpression],
570
+ },
571
+ :NumericLiteral => {
572
+ "+" => [:NumericLiteralPositive],
573
+ "-" => [:NumericLiteralNegative],
574
+ :DECIMAL => [:NumericLiteralUnsigned],
575
+ :DOUBLE => [:NumericLiteralUnsigned],
576
+ :INTEGER => [:NumericLiteralUnsigned],
577
+ },
578
+ :NumericLiteralNegative => {
579
+ "-" => ["-",
580
+ :NumericLiteralUnsigned],
581
+ },
582
+ :NumericLiteralPositive => {
583
+ "+" => ["+",
584
+ :NumericLiteralUnsigned],
585
+ },
586
+ :NumericLiteralUnsigned => {
587
+ :DECIMAL => [:DECIMAL],
588
+ :DOUBLE => [:DOUBLE],
589
+ :INTEGER => [:INTEGER],
590
+ },
591
+ :Object => {
592
+ "(" => [:GraphNode],
593
+ "+" => [:GraphNode],
594
+ "-" => [:GraphNode],
595
+ "[" => [:GraphNode],
596
+ :ANON => [:GraphNode],
597
+ :BLANK_NODE_LABEL => [:GraphNode],
598
+ :BooleanLiteral => [:GraphNode],
599
+ :DECIMAL => [:GraphNode],
600
+ :DOUBLE => [:GraphNode],
601
+ :INTEGER => [:GraphNode],
602
+ :IRI_REF => [:GraphNode],
603
+ :NIL => [:GraphNode],
604
+ :PNAME_LN => [:GraphNode],
605
+ :PNAME_NS => [:GraphNode],
606
+ :STRING_LITERAL1 => [:GraphNode],
607
+ :STRING_LITERAL2 => [:GraphNode],
608
+ :STRING_LITERAL_LONG1 => [:GraphNode],
609
+ :STRING_LITERAL_LONG2 => [:GraphNode],
610
+ :VAR1 => [:GraphNode],
611
+ :VAR2 => [:GraphNode],
612
+ },
613
+ :ObjectList => {
614
+ "(" => [:Object,
615
+ :_COMMA_Object_Star],
616
+ "+" => [:Object,
617
+ :_COMMA_Object_Star],
618
+ "-" => [:Object,
619
+ :_COMMA_Object_Star],
620
+ "[" => [:Object,
621
+ :_COMMA_Object_Star],
622
+ :ANON => [:Object,
623
+ :_COMMA_Object_Star],
624
+ :BLANK_NODE_LABEL => [:Object,
625
+ :_COMMA_Object_Star],
626
+ :BooleanLiteral => [:Object,
627
+ :_COMMA_Object_Star],
628
+ :DECIMAL => [:Object,
629
+ :_COMMA_Object_Star],
630
+ :DOUBLE => [:Object,
631
+ :_COMMA_Object_Star],
632
+ :INTEGER => [:Object,
633
+ :_COMMA_Object_Star],
634
+ :IRI_REF => [:Object,
635
+ :_COMMA_Object_Star],
636
+ :NIL => [:Object,
637
+ :_COMMA_Object_Star],
638
+ :PNAME_LN => [:Object,
639
+ :_COMMA_Object_Star],
640
+ :PNAME_NS => [:Object,
641
+ :_COMMA_Object_Star],
642
+ :STRING_LITERAL1 => [:Object,
643
+ :_COMMA_Object_Star],
644
+ :STRING_LITERAL2 => [:Object,
645
+ :_COMMA_Object_Star],
646
+ :STRING_LITERAL_LONG1 => [:Object,
647
+ :_COMMA_Object_Star],
648
+ :STRING_LITERAL_LONG2 => [:Object,
649
+ :_COMMA_Object_Star],
650
+ :VAR1 => [:Object,
651
+ :_COMMA_Object_Star],
652
+ :VAR2 => [:Object,
653
+ :_COMMA_Object_Star],
654
+ },
655
+ :OffsetClause => {
656
+ "OFFSET" => ["OFFSET",
657
+ :INTEGER],
658
+ },
659
+ :OptionalGraphPattern => {
660
+ "OPTIONAL" => ["OPTIONAL",
661
+ :GroupGraphPattern],
662
+ },
663
+ :OrderClause => {
664
+ "ORDER" => ["ORDER",
665
+ "BY",
666
+ :OrderCondition,
667
+ :_OrderCondition_Plus],
668
+ },
669
+ :OrderCondition => {
670
+ "(" => [:_Constraint_or_Var],
671
+ "ASC" => [:_ASC_Or_DESC_BrackettedExpression],
672
+ "BOUND" => [:_Constraint_or_Var],
673
+ "DATATYPE" => [:_Constraint_or_Var],
674
+ "DESC" => [:_ASC_Or_DESC_BrackettedExpression],
675
+ "LANG" => [:_Constraint_or_Var],
676
+ "LANGMATCHES" => [:_Constraint_or_Var],
677
+ "REGEX" => [:_Constraint_or_Var],
678
+ "STR" => [:_Constraint_or_Var],
679
+ :IRI_REF => [:_Constraint_or_Var],
680
+ :PNAME_LN => [:_Constraint_or_Var],
681
+ :PNAME_NS => [:_Constraint_or_Var],
682
+ :VAR1 => [:_Constraint_or_Var],
683
+ :VAR2 => [:_Constraint_or_Var],
684
+ "ISBLANK" => [:_Constraint_or_Var],
685
+ "ISIRI" => [:_Constraint_or_Var],
686
+ "ISLITERAL" => [:_Constraint_or_Var],
687
+ "ISURI" => [:_Constraint_or_Var],
688
+ "SAMETERM" => [:_Constraint_or_Var],
689
+ },
690
+ :PrefixDecl => {
691
+ "PREFIX" => ["PREFIX",
692
+ :PNAME_NS,
693
+ :IRI_REF],
694
+ },
695
+ :PrefixedName => {
696
+ :PNAME_LN => [:PNAME_LN],
697
+ :PNAME_NS => [:PNAME_NS],
698
+ },
699
+ :PrimaryExpression => {
700
+ "(" => [:BrackettedExpression],
701
+ "+" => [:NumericLiteral],
702
+ "-" => [:NumericLiteral],
703
+ "BOUND" => [:BuiltInCall],
704
+ "DATATYPE" => [:BuiltInCall],
705
+ "LANG" => [:BuiltInCall],
706
+ "LANGMATCHES" => [:BuiltInCall],
707
+ "REGEX" => [:BuiltInCall],
708
+ "STR" => [:BuiltInCall],
709
+ :BooleanLiteral => [:BooleanLiteral],
710
+ :DECIMAL => [:NumericLiteral],
711
+ :DOUBLE => [:NumericLiteral],
712
+ :INTEGER => [:NumericLiteral],
713
+ :IRI_REF => [:IRIrefOrFunction],
714
+ :PNAME_LN => [:IRIrefOrFunction],
715
+ :PNAME_NS => [:IRIrefOrFunction],
716
+ :STRING_LITERAL1 => [:RDFLiteral],
717
+ :STRING_LITERAL2 => [:RDFLiteral],
718
+ :STRING_LITERAL_LONG1 => [:RDFLiteral],
719
+ :STRING_LITERAL_LONG2 => [:RDFLiteral],
720
+ :VAR1 => [:Var],
721
+ :VAR2 => [:Var],
722
+ "ISBLANK" => [:BuiltInCall],
723
+ "ISIRI" => [:BuiltInCall],
724
+ "ISLITERAL" => [:BuiltInCall],
725
+ "ISURI" => [:BuiltInCall],
726
+ "SAMETERM" => [:BuiltInCall],
727
+ },
728
+ :Prologue => {
729
+ "ASK" => [:_BaseDecl_Opt,
730
+ :_PrefixDecl_Star],
731
+ "BASE" => [:_BaseDecl_Opt,
732
+ :_PrefixDecl_Star],
733
+ "CONSTRUCT" => [:_BaseDecl_Opt,
734
+ :_PrefixDecl_Star],
735
+ "DESCRIBE" => [:_BaseDecl_Opt,
736
+ :_PrefixDecl_Star],
737
+ "PREFIX" => [:_BaseDecl_Opt,
738
+ :_PrefixDecl_Star],
739
+ "SELECT" => [:_BaseDecl_Opt,
740
+ :_PrefixDecl_Star],
741
+ },
742
+ :PropertyList => {
743
+ "." => [],
744
+ "FILTER" => [],
745
+ "GRAPH" => [],
746
+ "OPTIONAL" => [],
747
+ "a" => [:PropertyListNotEmpty],
748
+ :IRI_REF => [:PropertyListNotEmpty],
749
+ :PNAME_LN => [:PropertyListNotEmpty],
750
+ :PNAME_NS => [:PropertyListNotEmpty],
751
+ :VAR1 => [:PropertyListNotEmpty],
752
+ :VAR2 => [:PropertyListNotEmpty],
753
+ "{" => [],
754
+ "}" => [],
755
+ },
756
+ :PropertyListNotEmpty => {
757
+ "a" => [:Verb,
758
+ :ObjectList,
759
+ :_SEMI_Verb_ObjectList_Opt_Star],
760
+ :IRI_REF => [:Verb,
761
+ :ObjectList,
762
+ :_SEMI_Verb_ObjectList_Opt_Star],
763
+ :PNAME_LN => [:Verb,
764
+ :ObjectList,
765
+ :_SEMI_Verb_ObjectList_Opt_Star],
766
+ :PNAME_NS => [:Verb,
767
+ :ObjectList,
768
+ :_SEMI_Verb_ObjectList_Opt_Star],
769
+ :VAR1 => [:Verb,
770
+ :ObjectList,
771
+ :_SEMI_Verb_ObjectList_Opt_Star],
772
+ :VAR2 => [:Verb,
773
+ :ObjectList,
774
+ :_SEMI_Verb_ObjectList_Opt_Star],
775
+ },
776
+ :Query => {
777
+ "ASK" => [:Prologue,
778
+ :_SelectQuery_or_ConstructQuery_or_DescribeQuery_or_AskQuery,
779
+ :eof],
780
+ "BASE" => [:Prologue,
781
+ :_SelectQuery_or_ConstructQuery_or_DescribeQuery_or_AskQuery,
782
+ :eof],
783
+ "CONSTRUCT" => [:Prologue,
784
+ :_SelectQuery_or_ConstructQuery_or_DescribeQuery_or_AskQuery,
785
+ :eof],
786
+ "DESCRIBE" => [:Prologue,
787
+ :_SelectQuery_or_ConstructQuery_or_DescribeQuery_or_AskQuery,
788
+ :eof],
789
+ "PREFIX" => [:Prologue,
790
+ :_SelectQuery_or_ConstructQuery_or_DescribeQuery_or_AskQuery,
791
+ :eof],
792
+ "SELECT" => [:Prologue,
793
+ :_SelectQuery_or_ConstructQuery_or_DescribeQuery_or_AskQuery,
794
+ :eof],
795
+ },
796
+ :RDFLiteral => {
797
+ :STRING_LITERAL1 => [:String,
798
+ :_LANGTAG_IRIref_Opt],
799
+ :STRING_LITERAL2 => [:String,
800
+ :_LANGTAG_IRIref_Opt],
801
+ :STRING_LITERAL_LONG1 => [:String,
802
+ :_LANGTAG_IRIref_Opt],
803
+ :STRING_LITERAL_LONG2 => [:String,
804
+ :_LANGTAG_IRIref_Opt],
805
+ },
806
+ :RegexExpression => {
807
+ "REGEX" => ["REGEX",
808
+ "(",
809
+ :Expression,
810
+ ",",
811
+ :Expression,
812
+ :_COMMA_Expression_Opt,
813
+ ")"],
814
+ },
815
+ :RelationalExpression => {
816
+ "!" => [:NumericExpression,
817
+ :_Compare_NumericExpression_Opt],
818
+ "(" => [:NumericExpression,
819
+ :_Compare_NumericExpression_Opt],
820
+ "+" => [:NumericExpression,
821
+ :_Compare_NumericExpression_Opt],
822
+ "-" => [:NumericExpression,
823
+ :_Compare_NumericExpression_Opt],
824
+ "BOUND" => [:NumericExpression,
825
+ :_Compare_NumericExpression_Opt],
826
+ "DATATYPE" => [:NumericExpression,
827
+ :_Compare_NumericExpression_Opt],
828
+ "LANG" => [:NumericExpression,
829
+ :_Compare_NumericExpression_Opt],
830
+ "LANGMATCHES" => [:NumericExpression,
831
+ :_Compare_NumericExpression_Opt],
832
+ "REGEX" => [:NumericExpression,
833
+ :_Compare_NumericExpression_Opt],
834
+ "STR" => [:NumericExpression,
835
+ :_Compare_NumericExpression_Opt],
836
+ :BooleanLiteral => [:NumericExpression,
837
+ :_Compare_NumericExpression_Opt],
838
+ :DECIMAL => [:NumericExpression,
839
+ :_Compare_NumericExpression_Opt],
840
+ :DOUBLE => [:NumericExpression,
841
+ :_Compare_NumericExpression_Opt],
842
+ :INTEGER => [:NumericExpression,
843
+ :_Compare_NumericExpression_Opt],
844
+ :IRI_REF => [:NumericExpression,
845
+ :_Compare_NumericExpression_Opt],
846
+ :PNAME_LN => [:NumericExpression,
847
+ :_Compare_NumericExpression_Opt],
848
+ :PNAME_NS => [:NumericExpression,
849
+ :_Compare_NumericExpression_Opt],
850
+ :STRING_LITERAL1 => [:NumericExpression,
851
+ :_Compare_NumericExpression_Opt],
852
+ :STRING_LITERAL2 => [:NumericExpression,
853
+ :_Compare_NumericExpression_Opt],
854
+ :STRING_LITERAL_LONG1 => [:NumericExpression,
855
+ :_Compare_NumericExpression_Opt],
856
+ :STRING_LITERAL_LONG2 => [:NumericExpression,
857
+ :_Compare_NumericExpression_Opt],
858
+ :VAR1 => [:NumericExpression,
859
+ :_Compare_NumericExpression_Opt],
860
+ :VAR2 => [:NumericExpression,
861
+ :_Compare_NumericExpression_Opt],
862
+ "ISBLANK" => [:NumericExpression,
863
+ :_Compare_NumericExpression_Opt],
864
+ "ISIRI" => [:NumericExpression,
865
+ :_Compare_NumericExpression_Opt],
866
+ "ISLITERAL" => [:NumericExpression,
867
+ :_Compare_NumericExpression_Opt],
868
+ "ISURI" => [:NumericExpression,
869
+ :_Compare_NumericExpression_Opt],
870
+ "SAMETERM" => [:NumericExpression,
871
+ :_Compare_NumericExpression_Opt],
872
+ },
873
+ :SelectQuery => {
874
+ "SELECT" => ["SELECT",
875
+ :_DISTINCT_OR_REDUCED_Opt,
876
+ :_Var_Plus_or_Star,
877
+ :_DatasetClause_Star,
878
+ :WhereClause,
879
+ :SolutionModifier],
880
+ },
881
+ :SolutionModifier => {
882
+ "LIMIT" => [:_OrderClause_Opt,
883
+ :_LimitOffsetClauses_Opt],
884
+ "OFFSET" => [:_OrderClause_Opt,
885
+ :_LimitOffsetClauses_Opt],
886
+ "ORDER" => [:_OrderClause_Opt,
887
+ :_LimitOffsetClauses_Opt],
888
+ :eof => [:_OrderClause_Opt,
889
+ :_LimitOffsetClauses_Opt],
890
+ },
891
+ :SourceSelector => {
892
+ :IRI_REF => [:IRIref],
893
+ :PNAME_LN => [:IRIref],
894
+ :PNAME_NS => [:IRIref],
895
+ },
896
+ :String => {
897
+ :STRING_LITERAL1 => [:STRING_LITERAL1],
898
+ :STRING_LITERAL2 => [:STRING_LITERAL2],
899
+ :STRING_LITERAL_LONG1 => [:STRING_LITERAL_LONG1],
900
+ :STRING_LITERAL_LONG2 => [:STRING_LITERAL_LONG2],
901
+ },
902
+ :TriplesBlock => {
903
+ "(" => [:TriplesSameSubject,
904
+ :_Dot_TriplesBlock_Opt_Opt],
905
+ "+" => [:TriplesSameSubject,
906
+ :_Dot_TriplesBlock_Opt_Opt],
907
+ "-" => [:TriplesSameSubject,
908
+ :_Dot_TriplesBlock_Opt_Opt],
909
+ "[" => [:TriplesSameSubject,
910
+ :_Dot_TriplesBlock_Opt_Opt],
911
+ :ANON => [:TriplesSameSubject,
912
+ :_Dot_TriplesBlock_Opt_Opt],
913
+ :BLANK_NODE_LABEL => [:TriplesSameSubject,
914
+ :_Dot_TriplesBlock_Opt_Opt],
915
+ :BooleanLiteral => [:TriplesSameSubject,
916
+ :_Dot_TriplesBlock_Opt_Opt],
917
+ :DECIMAL => [:TriplesSameSubject,
918
+ :_Dot_TriplesBlock_Opt_Opt],
919
+ :DOUBLE => [:TriplesSameSubject,
920
+ :_Dot_TriplesBlock_Opt_Opt],
921
+ :INTEGER => [:TriplesSameSubject,
922
+ :_Dot_TriplesBlock_Opt_Opt],
923
+ :IRI_REF => [:TriplesSameSubject,
924
+ :_Dot_TriplesBlock_Opt_Opt],
925
+ :NIL => [:TriplesSameSubject,
926
+ :_Dot_TriplesBlock_Opt_Opt],
927
+ :PNAME_LN => [:TriplesSameSubject,
928
+ :_Dot_TriplesBlock_Opt_Opt],
929
+ :PNAME_NS => [:TriplesSameSubject,
930
+ :_Dot_TriplesBlock_Opt_Opt],
931
+ :STRING_LITERAL1 => [:TriplesSameSubject,
932
+ :_Dot_TriplesBlock_Opt_Opt],
933
+ :STRING_LITERAL2 => [:TriplesSameSubject,
934
+ :_Dot_TriplesBlock_Opt_Opt],
935
+ :STRING_LITERAL_LONG1 => [:TriplesSameSubject,
936
+ :_Dot_TriplesBlock_Opt_Opt],
937
+ :STRING_LITERAL_LONG2 => [:TriplesSameSubject,
938
+ :_Dot_TriplesBlock_Opt_Opt],
939
+ :VAR1 => [:TriplesSameSubject,
940
+ :_Dot_TriplesBlock_Opt_Opt],
941
+ :VAR2 => [:TriplesSameSubject,
942
+ :_Dot_TriplesBlock_Opt_Opt],
943
+ },
944
+ :TriplesNode => {
945
+ "(" => [:Collection],
946
+ "[" => [:BlankNodePropertyList],
947
+ },
948
+ :TriplesSameSubject => {
949
+ "(" => [:TriplesNode,
950
+ :PropertyList],
951
+ "+" => [:VarOrTerm,
952
+ :PropertyListNotEmpty],
953
+ "-" => [:VarOrTerm,
954
+ :PropertyListNotEmpty],
955
+ "[" => [:TriplesNode,
956
+ :PropertyList],
957
+ :ANON => [:VarOrTerm,
958
+ :PropertyListNotEmpty],
959
+ :BLANK_NODE_LABEL => [:VarOrTerm,
960
+ :PropertyListNotEmpty],
961
+ :BooleanLiteral => [:VarOrTerm,
962
+ :PropertyListNotEmpty],
963
+ :DECIMAL => [:VarOrTerm,
964
+ :PropertyListNotEmpty],
965
+ :DOUBLE => [:VarOrTerm,
966
+ :PropertyListNotEmpty],
967
+ :INTEGER => [:VarOrTerm,
968
+ :PropertyListNotEmpty],
969
+ :IRI_REF => [:VarOrTerm,
970
+ :PropertyListNotEmpty],
971
+ :NIL => [:VarOrTerm,
972
+ :PropertyListNotEmpty],
973
+ :PNAME_LN => [:VarOrTerm,
974
+ :PropertyListNotEmpty],
975
+ :PNAME_NS => [:VarOrTerm,
976
+ :PropertyListNotEmpty],
977
+ :STRING_LITERAL1 => [:VarOrTerm,
978
+ :PropertyListNotEmpty],
979
+ :STRING_LITERAL2 => [:VarOrTerm,
980
+ :PropertyListNotEmpty],
981
+ :STRING_LITERAL_LONG1 => [:VarOrTerm,
982
+ :PropertyListNotEmpty],
983
+ :STRING_LITERAL_LONG2 => [:VarOrTerm,
984
+ :PropertyListNotEmpty],
985
+ :VAR1 => [:VarOrTerm,
986
+ :PropertyListNotEmpty],
987
+ :VAR2 => [:VarOrTerm,
988
+ :PropertyListNotEmpty],
989
+ },
990
+ :UnaryExpression => {
991
+ "!" => ["!",
992
+ :PrimaryExpression],
993
+ "(" => [:PrimaryExpression],
994
+ "+" => ["+", :PrimaryExpression], # GK: Added back due to conflict
995
+ "-" => ["-", :PrimaryExpression], # GK: Added back due to conflict
996
+ "BOUND" => [:PrimaryExpression],
997
+ "DATATYPE" => [:PrimaryExpression],
998
+ "LANG" => [:PrimaryExpression],
999
+ "LANGMATCHES" => [:PrimaryExpression],
1000
+ "REGEX" => [:PrimaryExpression],
1001
+ "STR" => [:PrimaryExpression],
1002
+ :BooleanLiteral => [:PrimaryExpression],
1003
+ :DECIMAL => [:PrimaryExpression],
1004
+ :DOUBLE => [:PrimaryExpression],
1005
+ :INTEGER => [:PrimaryExpression],
1006
+ :IRI_REF => [:PrimaryExpression],
1007
+ :PNAME_LN => [:PrimaryExpression],
1008
+ :PNAME_NS => [:PrimaryExpression],
1009
+ :STRING_LITERAL1 => [:PrimaryExpression],
1010
+ :STRING_LITERAL2 => [:PrimaryExpression],
1011
+ :STRING_LITERAL_LONG1 => [:PrimaryExpression],
1012
+ :STRING_LITERAL_LONG2 => [:PrimaryExpression],
1013
+ :VAR1 => [:PrimaryExpression],
1014
+ :VAR2 => [:PrimaryExpression],
1015
+ "ISBLANK" => [:PrimaryExpression],
1016
+ "ISIRI" => [:PrimaryExpression],
1017
+ "ISLITERAL" => [:PrimaryExpression],
1018
+ "ISURI" => [:PrimaryExpression],
1019
+ "SAMETERM" => [:PrimaryExpression],
1020
+ },
1021
+ :ValueLogical => {
1022
+ "!" => [:RelationalExpression],
1023
+ "(" => [:RelationalExpression],
1024
+ "+" => [:RelationalExpression],
1025
+ "-" => [:RelationalExpression],
1026
+ "BOUND" => [:RelationalExpression],
1027
+ "DATATYPE" => [:RelationalExpression],
1028
+ "LANG" => [:RelationalExpression],
1029
+ "LANGMATCHES" => [:RelationalExpression],
1030
+ "REGEX" => [:RelationalExpression],
1031
+ "STR" => [:RelationalExpression],
1032
+ :BooleanLiteral => [:RelationalExpression],
1033
+ :DECIMAL => [:RelationalExpression],
1034
+ :DOUBLE => [:RelationalExpression],
1035
+ :INTEGER => [:RelationalExpression],
1036
+ :IRI_REF => [:RelationalExpression],
1037
+ :PNAME_LN => [:RelationalExpression],
1038
+ :PNAME_NS => [:RelationalExpression],
1039
+ :STRING_LITERAL1 => [:RelationalExpression],
1040
+ :STRING_LITERAL2 => [:RelationalExpression],
1041
+ :STRING_LITERAL_LONG1 => [:RelationalExpression],
1042
+ :STRING_LITERAL_LONG2 => [:RelationalExpression],
1043
+ :VAR1 => [:RelationalExpression],
1044
+ :VAR2 => [:RelationalExpression],
1045
+ "ISBLANK" => [:RelationalExpression],
1046
+ "ISIRI" => [:RelationalExpression],
1047
+ "ISLITERAL" => [:RelationalExpression],
1048
+ "ISURI" => [:RelationalExpression],
1049
+ "SAMETERM" => [:RelationalExpression],
1050
+ },
1051
+ :Var => {
1052
+ :VAR1 => [:VAR1],
1053
+ :VAR2 => [:VAR2],
1054
+ },
1055
+ :VarOrIRIref => {
1056
+ :IRI_REF => [:IRIref],
1057
+ :PNAME_LN => [:IRIref],
1058
+ :PNAME_NS => [:IRIref],
1059
+ :VAR1 => [:Var],
1060
+ :VAR2 => [:Var],
1061
+ },
1062
+ :VarOrTerm => {
1063
+ "+" => [:GraphTerm],
1064
+ "-" => [:GraphTerm],
1065
+ :ANON => [:GraphTerm],
1066
+ :BLANK_NODE_LABEL => [:GraphTerm],
1067
+ :BooleanLiteral => [:GraphTerm],
1068
+ :DECIMAL => [:GraphTerm],
1069
+ :DOUBLE => [:GraphTerm],
1070
+ :INTEGER => [:GraphTerm],
1071
+ :IRI_REF => [:GraphTerm],
1072
+ :NIL => [:GraphTerm],
1073
+ :PNAME_LN => [:GraphTerm],
1074
+ :PNAME_NS => [:GraphTerm],
1075
+ :STRING_LITERAL1 => [:GraphTerm],
1076
+ :STRING_LITERAL2 => [:GraphTerm],
1077
+ :STRING_LITERAL_LONG1 => [:GraphTerm],
1078
+ :STRING_LITERAL_LONG2 => [:GraphTerm],
1079
+ :VAR1 => [:Var],
1080
+ :VAR2 => [:Var],
1081
+ },
1082
+ :Verb => {
1083
+ "a" => ["a"],
1084
+ :IRI_REF => [:VarOrIRIref],
1085
+ :PNAME_LN => [:VarOrIRIref],
1086
+ :PNAME_NS => [:VarOrIRIref],
1087
+ :VAR1 => [:VarOrIRIref],
1088
+ :VAR2 => [:VarOrIRIref],
1089
+ },
1090
+ :WhereClause => {
1091
+ "WHERE" => [:_WHERE_Opt,
1092
+ :GroupGraphPattern],
1093
+ "{" => [:_WHERE_Opt,
1094
+ :GroupGraphPattern],
1095
+ },
1096
+ :_AND_ValueLogical => {
1097
+ "&&" => ["&&",
1098
+ :ValueLogical],
1099
+ },
1100
+ :_AND_ValueLogical_Star => {
1101
+ "&&" => [:_AND_ValueLogical,
1102
+ :_AND_ValueLogical_Star],
1103
+ ")" => [],
1104
+ "," => [],
1105
+ "||" => [],
1106
+ },
1107
+ :_ASC_Or_DESC => {
1108
+ "ASC" => ["ASC"],
1109
+ "DESC" => ["DESC"],
1110
+ },
1111
+ :_ASC_Or_DESC_BrackettedExpression => {
1112
+ "ASC" => [:_ASC_Or_DESC,
1113
+ :BrackettedExpression],
1114
+ "DESC" => [:_ASC_Or_DESC,
1115
+ :BrackettedExpression],
1116
+ },
1117
+ :_Add_Sub_MultiplicativeExpression_Star => {
1118
+ "!=" => [],
1119
+ "&&" => [],
1120
+ ")" => [],
1121
+ "+" => ["+",
1122
+ :MultiplicativeExpression,
1123
+ :_Add_Sub_MultiplicativeExpression_Star],
1124
+ "," => [],
1125
+ "-" => ["-",
1126
+ :MultiplicativeExpression,
1127
+ :_Add_Sub_MultiplicativeExpression_Star],
1128
+ "<" => [],
1129
+ "<=" => [],
1130
+ "=" => [],
1131
+ ">=" => [],
1132
+ ">" => [],
1133
+ "||" => [],
1134
+ },
1135
+ :_ArgList_Opt => {
1136
+ "!=" => [],
1137
+ "&&" => [],
1138
+ "(" => [:ArgList],
1139
+ ")" => [],
1140
+ "*" => [],
1141
+ "+" => [],
1142
+ "," => [],
1143
+ "-" => [],
1144
+ "/" => [],
1145
+ "<" => [],
1146
+ "<=" => [],
1147
+ "=" => [],
1148
+ ">=" => [],
1149
+ ">" => [],
1150
+ :NIL => [:ArgList],
1151
+ "||" => [],
1152
+ },
1153
+ :_BaseDecl_Opt => {
1154
+ "ASK" => [],
1155
+ "BASE" => [:BaseDecl],
1156
+ "CONSTRUCT" => [],
1157
+ "DESCRIBE" => [],
1158
+ "PREFIX" => [],
1159
+ "SELECT" => [],
1160
+ },
1161
+ :_COMMA_Expression_Opt => {
1162
+ ")" => [],
1163
+ "," => [",",
1164
+ :Expression],
1165
+ },
1166
+ :_COMMA_Expression_Star => {
1167
+ ")" => [],
1168
+ "," => [",",
1169
+ :Expression],
1170
+ },
1171
+ :_COMMA_Object => {
1172
+ "," => [",",
1173
+ :Object],
1174
+ },
1175
+ :_COMMA_Object_Star => {
1176
+ "," => [:_COMMA_Object,
1177
+ :_COMMA_Object_Star],
1178
+ "." => [],
1179
+ ";" => [],
1180
+ "FILTER" => [],
1181
+ "GRAPH" => [],
1182
+ "OPTIONAL" => [],
1183
+ "]" => [],
1184
+ "{" => [],
1185
+ "}" => [],
1186
+ },
1187
+ :_Compare_NumericExpression_Opt => {
1188
+ "!=" => ["!=",
1189
+ :NumericExpression],
1190
+ "&&" => [],
1191
+ ")" => [],
1192
+ "," => [],
1193
+ "<" => ["<",
1194
+ :NumericExpression],
1195
+ "<=" => ["<=",
1196
+ :NumericExpression],
1197
+ "=" => ["=",
1198
+ :NumericExpression],
1199
+ ">=" => [">=",
1200
+ :NumericExpression],
1201
+ ">" => [">",
1202
+ :NumericExpression],
1203
+ "||" => [],
1204
+ },
1205
+ :_Constraint_or_Var => {
1206
+ "(" => [:Constraint],
1207
+ "BOUND" => [:Constraint],
1208
+ "DATATYPE" => [:Constraint],
1209
+ "LANG" => [:Constraint],
1210
+ "LANGMATCHES" => [:Constraint],
1211
+ "REGEX" => [:Constraint],
1212
+ "STR" => [:Constraint],
1213
+ :IRI_REF => [:Constraint],
1214
+ :PNAME_LN => [:Constraint],
1215
+ :PNAME_NS => [:Constraint],
1216
+ :VAR1 => [:Var],
1217
+ :VAR2 => [:Var],
1218
+ "ISBLANK" => [:Constraint],
1219
+ "ISIRI" => [:Constraint],
1220
+ "ISLITERAL" => [:Constraint],
1221
+ "ISURI" => [:Constraint],
1222
+ "SAMETERM" => [:Constraint],
1223
+ },
1224
+ :_ConstructTriples_Opt => {
1225
+ "(" => [:ConstructTriples],
1226
+ "+" => [:ConstructTriples],
1227
+ "-" => [:ConstructTriples],
1228
+ "[" => [:ConstructTriples],
1229
+ :ANON => [:ConstructTriples],
1230
+ :BLANK_NODE_LABEL => [:ConstructTriples],
1231
+ :BooleanLiteral => [:ConstructTriples],
1232
+ :DECIMAL => [:ConstructTriples],
1233
+ :DOUBLE => [:ConstructTriples],
1234
+ :INTEGER => [:ConstructTriples],
1235
+ :IRI_REF => [:ConstructTriples],
1236
+ :NIL => [:ConstructTriples],
1237
+ :PNAME_LN => [:ConstructTriples],
1238
+ :PNAME_NS => [:ConstructTriples],
1239
+ :STRING_LITERAL1 => [:ConstructTriples],
1240
+ :STRING_LITERAL2 => [:ConstructTriples],
1241
+ :STRING_LITERAL_LONG1 => [:ConstructTriples],
1242
+ :STRING_LITERAL_LONG2 => [:ConstructTriples],
1243
+ :VAR1 => [:ConstructTriples],
1244
+ :VAR2 => [:ConstructTriples],
1245
+ "}" => [],
1246
+ },
1247
+ :_DISTINCT_OR_REDUCED_Opt => {
1248
+ "*" => [],
1249
+ "DISTINCT" => ["DISTINCT"],
1250
+ "REDUCED" => ["REDUCED"],
1251
+ :VAR1 => [],
1252
+ :VAR2 => [],
1253
+ },
1254
+ :_DOT_ConstructTriples_Opt_Opt => {
1255
+ "." => [".",
1256
+ :_ConstructTriples_Opt],
1257
+ "}" => [],
1258
+ },
1259
+ :_DOT_Opt => {
1260
+ "(" => [],
1261
+ "+" => [],
1262
+ "-" => [],
1263
+ "." => ["."],
1264
+ "FILTER" => [],
1265
+ "GRAPH" => [],
1266
+ "OPTIONAL" => [],
1267
+ "[" => [],
1268
+ :ANON => [],
1269
+ :BLANK_NODE_LABEL => [],
1270
+ :BooleanLiteral => [],
1271
+ :DECIMAL => [],
1272
+ :DOUBLE => [],
1273
+ :INTEGER => [],
1274
+ :IRI_REF => [],
1275
+ :NIL => [],
1276
+ :PNAME_LN => [],
1277
+ :PNAME_NS => [],
1278
+ :STRING_LITERAL1 => [],
1279
+ :STRING_LITERAL2 => [],
1280
+ :STRING_LITERAL_LONG1 => [],
1281
+ :STRING_LITERAL_LONG2 => [],
1282
+ :VAR1 => [],
1283
+ :VAR2 => [],
1284
+ "{" => [],
1285
+ "}" => [],
1286
+ },
1287
+ :_DatasetClause_Star => {
1288
+ "FROM" => [:DatasetClause,
1289
+ :_DatasetClause_Star],
1290
+ "LIMIT" => [],
1291
+ "OFFSET" => [],
1292
+ "ORDER" => [],
1293
+ "WHERE" => [],
1294
+ :eof => [],
1295
+ "{" => [],
1296
+ },
1297
+ :_DefaultGraphClause_or_NamedGraphClause => {
1298
+ "NAMED" => [:NamedGraphClause],
1299
+ :IRI_REF => [:DefaultGraphClause],
1300
+ :PNAME_LN => [:DefaultGraphClause],
1301
+ :PNAME_NS => [:DefaultGraphClause],
1302
+ },
1303
+ :_Dot_TriplesBlock_Opt_Opt => {
1304
+ "." => [".",
1305
+ :_TriplesBlock_Opt],
1306
+ "FILTER" => [],
1307
+ "GRAPH" => [],
1308
+ "OPTIONAL" => [],
1309
+ "{" => [],
1310
+ "}" => [],
1311
+ },
1312
+ :_Expression_COMMA_Expression_Star => {
1313
+ "!" => [:Expression,
1314
+ :_COMMA_Expression_Star],
1315
+ "(" => [:Expression,
1316
+ :_COMMA_Expression_Star],
1317
+ "+" => [:Expression,
1318
+ :_COMMA_Expression_Star],
1319
+ "-" => [:Expression,
1320
+ :_COMMA_Expression_Star],
1321
+ "BOUND" => [:Expression,
1322
+ :_COMMA_Expression_Star],
1323
+ "DATATYPE" => [:Expression,
1324
+ :_COMMA_Expression_Star],
1325
+ "LANG" => [:Expression,
1326
+ :_COMMA_Expression_Star],
1327
+ "LANGMATCHES" => [:Expression,
1328
+ :_COMMA_Expression_Star],
1329
+ "REGEX" => [:Expression,
1330
+ :_COMMA_Expression_Star],
1331
+ "STR" => [:Expression,
1332
+ :_COMMA_Expression_Star],
1333
+ :BooleanLiteral => [:Expression,
1334
+ :_COMMA_Expression_Star],
1335
+ :DECIMAL => [:Expression,
1336
+ :_COMMA_Expression_Star],
1337
+ :DOUBLE => [:Expression,
1338
+ :_COMMA_Expression_Star],
1339
+ :INTEGER => [:Expression,
1340
+ :_COMMA_Expression_Star],
1341
+ :IRI_REF => [:Expression,
1342
+ :_COMMA_Expression_Star],
1343
+ :PNAME_LN => [:Expression,
1344
+ :_COMMA_Expression_Star],
1345
+ :PNAME_NS => [:Expression,
1346
+ :_COMMA_Expression_Star],
1347
+ :STRING_LITERAL1 => [:Expression,
1348
+ :_COMMA_Expression_Star],
1349
+ :STRING_LITERAL2 => [:Expression,
1350
+ :_COMMA_Expression_Star],
1351
+ :STRING_LITERAL_LONG1 => [:Expression,
1352
+ :_COMMA_Expression_Star],
1353
+ :STRING_LITERAL_LONG2 => [:Expression,
1354
+ :_COMMA_Expression_Star],
1355
+ :VAR1 => [:Expression,
1356
+ :_COMMA_Expression_Star],
1357
+ :VAR2 => [:Expression,
1358
+ :_COMMA_Expression_Star],
1359
+ "ISBLANK" => [:Expression,
1360
+ :_COMMA_Expression_Star],
1361
+ "ISIRI" => [:Expression,
1362
+ :_COMMA_Expression_Star],
1363
+ "ISLITERAL" => [:Expression,
1364
+ :_COMMA_Expression_Star],
1365
+ "ISURI" => [:Expression,
1366
+ :_COMMA_Expression_Star],
1367
+ "SAMETERM" => [:Expression,
1368
+ :_COMMA_Expression_Star],
1369
+ },
1370
+ :_GraphNode_Opt => {
1371
+ "(" => [:GraphNode,
1372
+ :_GraphNode_Opt],
1373
+ ")" => [],
1374
+ "+" => [:GraphNode,
1375
+ :_GraphNode_Opt],
1376
+ "-" => [:GraphNode,
1377
+ :_GraphNode_Opt],
1378
+ "[" => [:GraphNode,
1379
+ :_GraphNode_Opt],
1380
+ :ANON => [:GraphNode,
1381
+ :_GraphNode_Opt],
1382
+ :BLANK_NODE_LABEL => [:GraphNode,
1383
+ :_GraphNode_Opt],
1384
+ :BooleanLiteral => [:GraphNode,
1385
+ :_GraphNode_Opt],
1386
+ :DECIMAL => [:GraphNode,
1387
+ :_GraphNode_Opt],
1388
+ :DOUBLE => [:GraphNode,
1389
+ :_GraphNode_Opt],
1390
+ :INTEGER => [:GraphNode,
1391
+ :_GraphNode_Opt],
1392
+ :IRI_REF => [:GraphNode,
1393
+ :_GraphNode_Opt],
1394
+ :NIL => [:GraphNode,
1395
+ :_GraphNode_Opt],
1396
+ :PNAME_LN => [:GraphNode,
1397
+ :_GraphNode_Opt],
1398
+ :PNAME_NS => [:GraphNode,
1399
+ :_GraphNode_Opt],
1400
+ :STRING_LITERAL1 => [:GraphNode,
1401
+ :_GraphNode_Opt],
1402
+ :STRING_LITERAL2 => [:GraphNode,
1403
+ :_GraphNode_Opt],
1404
+ :STRING_LITERAL_LONG1 => [:GraphNode,
1405
+ :_GraphNode_Opt],
1406
+ :STRING_LITERAL_LONG2 => [:GraphNode,
1407
+ :_GraphNode_Opt],
1408
+ :VAR1 => [:GraphNode,
1409
+ :_GraphNode_Opt],
1410
+ :VAR2 => [:GraphNode,
1411
+ :_GraphNode_Opt],
1412
+ },
1413
+ :_GraphNode_Plus => {
1414
+ "(" => [:GraphNode,
1415
+ :_GraphNode_Opt],
1416
+ "+" => [:GraphNode,
1417
+ :_GraphNode_Opt],
1418
+ "-" => [:GraphNode,
1419
+ :_GraphNode_Opt],
1420
+ "[" => [:GraphNode,
1421
+ :_GraphNode_Opt],
1422
+ :ANON => [:GraphNode,
1423
+ :_GraphNode_Opt],
1424
+ :BLANK_NODE_LABEL => [:GraphNode,
1425
+ :_GraphNode_Opt],
1426
+ :BooleanLiteral => [:GraphNode,
1427
+ :_GraphNode_Opt],
1428
+ :DECIMAL => [:GraphNode,
1429
+ :_GraphNode_Opt],
1430
+ :DOUBLE => [:GraphNode,
1431
+ :_GraphNode_Opt],
1432
+ :INTEGER => [:GraphNode,
1433
+ :_GraphNode_Opt],
1434
+ :IRI_REF => [:GraphNode,
1435
+ :_GraphNode_Opt],
1436
+ :NIL => [:GraphNode,
1437
+ :_GraphNode_Opt],
1438
+ :PNAME_LN => [:GraphNode,
1439
+ :_GraphNode_Opt],
1440
+ :PNAME_NS => [:GraphNode,
1441
+ :_GraphNode_Opt],
1442
+ :STRING_LITERAL1 => [:GraphNode,
1443
+ :_GraphNode_Opt],
1444
+ :STRING_LITERAL2 => [:GraphNode,
1445
+ :_GraphNode_Opt],
1446
+ :STRING_LITERAL_LONG1 => [:GraphNode,
1447
+ :_GraphNode_Opt],
1448
+ :STRING_LITERAL_LONG2 => [:GraphNode,
1449
+ :_GraphNode_Opt],
1450
+ :VAR1 => [:GraphNode,
1451
+ :_GraphNode_Opt],
1452
+ :VAR2 => [:GraphNode,
1453
+ :_GraphNode_Opt],
1454
+ },
1455
+ :_GraphPatternNotTriples_or_Filter => {
1456
+ "FILTER" => [:Filter],
1457
+ "GRAPH" => [:GraphPatternNotTriples],
1458
+ "OPTIONAL" => [:GraphPatternNotTriples],
1459
+ "{" => [:GraphPatternNotTriples],
1460
+ },
1461
+ :_GraphPatternNotTriples_or_Filter_Dot_Opt_TriplesBlock_Opt => {
1462
+ "FILTER" => [:_GraphPatternNotTriples_or_Filter,
1463
+ :_DOT_Opt,
1464
+ :_TriplesBlock_Opt],
1465
+ "GRAPH" => [:_GraphPatternNotTriples_or_Filter,
1466
+ :_DOT_Opt,
1467
+ :_TriplesBlock_Opt],
1468
+ "OPTIONAL" => [:_GraphPatternNotTriples_or_Filter,
1469
+ :_DOT_Opt,
1470
+ :_TriplesBlock_Opt],
1471
+ "{" => [:_GraphPatternNotTriples_or_Filter,
1472
+ :_DOT_Opt,
1473
+ :_TriplesBlock_Opt],
1474
+ },
1475
+ :_GraphPatternNotTriples_or_Filter_Dot_Opt_TriplesBlock_Opt_Star => {
1476
+ "FILTER" => [:_GraphPatternNotTriples_or_Filter_Dot_Opt_TriplesBlock_Opt,
1477
+ :_GraphPatternNotTriples_or_Filter_Dot_Opt_TriplesBlock_Opt_Star],
1478
+ "GRAPH" => [:_GraphPatternNotTriples_or_Filter_Dot_Opt_TriplesBlock_Opt,
1479
+ :_GraphPatternNotTriples_or_Filter_Dot_Opt_TriplesBlock_Opt_Star],
1480
+ "OPTIONAL" => [:_GraphPatternNotTriples_or_Filter_Dot_Opt_TriplesBlock_Opt,
1481
+ :_GraphPatternNotTriples_or_Filter_Dot_Opt_TriplesBlock_Opt_Star],
1482
+ "{" => [:_GraphPatternNotTriples_or_Filter_Dot_Opt_TriplesBlock_Opt,
1483
+ :_GraphPatternNotTriples_or_Filter_Dot_Opt_TriplesBlock_Opt_Star],
1484
+ "}" => [],
1485
+ },
1486
+ :_LANGTAG_IRIref_Opt => {
1487
+ "!=" => [],
1488
+ "&&" => [],
1489
+ "(" => [],
1490
+ ")" => [],
1491
+ "*" => [],
1492
+ "+" => [],
1493
+ "," => [],
1494
+ "-" => [],
1495
+ "." => [],
1496
+ "/" => [],
1497
+ ";" => [],
1498
+ "<" => [],
1499
+ "<=" => [],
1500
+ "=" => [],
1501
+ ">=" => [],
1502
+ ">" => [],
1503
+ "FILTER" => [],
1504
+ "GRAPH" => [],
1505
+ "OPTIONAL" => [],
1506
+ "[" => [],
1507
+ "]" => [],
1508
+ "^^" => ["^^",
1509
+ :IRIref],
1510
+ "a" => [],
1511
+ :ANON => [],
1512
+ :BLANK_NODE_LABEL => [],
1513
+ :BooleanLiteral => [],
1514
+ :DECIMAL => [],
1515
+ :DOUBLE => [],
1516
+ :INTEGER => [],
1517
+ :IRI_REF => [],
1518
+ :LANGTAG => [:LANGTAG],
1519
+ :NIL => [],
1520
+ :PNAME_LN => [],
1521
+ :PNAME_NS => [],
1522
+ :STRING_LITERAL1 => [],
1523
+ :STRING_LITERAL2 => [],
1524
+ :STRING_LITERAL_LONG1 => [],
1525
+ :STRING_LITERAL_LONG2 => [],
1526
+ :VAR1 => [],
1527
+ :VAR2 => [],
1528
+ "{" => [],
1529
+ "||" => [],
1530
+ "}" => [],
1531
+ },
1532
+ :_LimitClause_Opt => {
1533
+ "LIMIT" => [:LimitClause],
1534
+ :eof => [],
1535
+ },
1536
+ :_LimitOffsetClauses_Opt => {
1537
+ "LIMIT" => [:LimitOffsetClauses],
1538
+ "OFFSET" => [:LimitOffsetClauses],
1539
+ :eof => [],
1540
+ },
1541
+ :_Mul_Div_UnaryExpression_Star => {
1542
+ "!=" => [],
1543
+ "&&" => [],
1544
+ ")" => [],
1545
+ "*" => ["*",
1546
+ :UnaryExpression,
1547
+ :_Mul_Div_UnaryExpression_Star],
1548
+ "+" => [],
1549
+ "," => [],
1550
+ "-" => [],
1551
+ "/" => ["/",
1552
+ :UnaryExpression,
1553
+ :_Mul_Div_UnaryExpression_Star],
1554
+ "<" => [],
1555
+ "<=" => [],
1556
+ "=" => [],
1557
+ ">=" => [],
1558
+ ">" => [],
1559
+ "||" => [],
1560
+ },
1561
+ :_OR_ConditionalAndExpression => {
1562
+ "||" => ["||",
1563
+ :ConditionalAndExpression],
1564
+ },
1565
+ :_OR_ConditionalAndExpression_Star => {
1566
+ ")" => [],
1567
+ "," => [],
1568
+ "||" => [:_OR_ConditionalAndExpression,
1569
+ :_OR_ConditionalAndExpression_Star],
1570
+ },
1571
+ :_OffsetClause_Opt => {
1572
+ "OFFSET" => [:OffsetClause],
1573
+ :eof => [],
1574
+ },
1575
+ :_OrderClause_Opt => {
1576
+ "LIMIT" => [],
1577
+ "OFFSET" => [],
1578
+ "ORDER" => [:OrderClause],
1579
+ :eof => [],
1580
+ },
1581
+ :_OrderCondition_Plus => {
1582
+ "(" => [:OrderCondition,
1583
+ :_OrderCondition_Plus],
1584
+ "ASC" => [:OrderCondition,
1585
+ :_OrderCondition_Plus],
1586
+ "BOUND" => [:OrderCondition,
1587
+ :_OrderCondition_Plus],
1588
+ "DATATYPE" => [:OrderCondition,
1589
+ :_OrderCondition_Plus],
1590
+ "DESC" => [:OrderCondition,
1591
+ :_OrderCondition_Plus],
1592
+ "LANG" => [:OrderCondition,
1593
+ :_OrderCondition_Plus],
1594
+ "LANGMATCHES" => [:OrderCondition,
1595
+ :_OrderCondition_Plus],
1596
+ "LIMIT" => [],
1597
+ "OFFSET" => [],
1598
+ "REGEX" => [:OrderCondition,
1599
+ :_OrderCondition_Plus],
1600
+ "STR" => [:OrderCondition,
1601
+ :_OrderCondition_Plus],
1602
+ :eof => [],
1603
+ :IRI_REF => [:OrderCondition,
1604
+ :_OrderCondition_Plus],
1605
+ :PNAME_LN => [:OrderCondition,
1606
+ :_OrderCondition_Plus],
1607
+ :PNAME_NS => [:OrderCondition,
1608
+ :_OrderCondition_Plus],
1609
+ :VAR1 => [:OrderCondition,
1610
+ :_OrderCondition_Plus],
1611
+ :VAR2 => [:OrderCondition,
1612
+ :_OrderCondition_Plus],
1613
+ "ISBLANK" => [:OrderCondition,
1614
+ :_OrderCondition_Plus],
1615
+ "ISIRI" => [:OrderCondition,
1616
+ :_OrderCondition_Plus],
1617
+ "ISLITERAL" => [:OrderCondition,
1618
+ :_OrderCondition_Plus],
1619
+ "ISURI" => [:OrderCondition,
1620
+ :_OrderCondition_Plus],
1621
+ "SAMETERM" => [:OrderCondition,
1622
+ :_OrderCondition_Plus],
1623
+ },
1624
+ :_PrefixDecl_Star => {
1625
+ "ASK" => [],
1626
+ "CONSTRUCT" => [],
1627
+ "DESCRIBE" => [],
1628
+ "PREFIX" => [:PrefixDecl,
1629
+ :_PrefixDecl_Star],
1630
+ "SELECT" => [],
1631
+ },
1632
+ :_SEMI_Verb_ObjectList_Opt => {
1633
+ ";" => [";",
1634
+ :_Verb_ObjectList_Opt],
1635
+ },
1636
+ :_SEMI_Verb_ObjectList_Opt_Star => {
1637
+ "." => [],
1638
+ ";" => [:_SEMI_Verb_ObjectList_Opt,
1639
+ :_SEMI_Verb_ObjectList_Opt_Star],
1640
+ "FILTER" => [],
1641
+ "GRAPH" => [],
1642
+ "OPTIONAL" => [],
1643
+ "]" => [],
1644
+ "{" => [],
1645
+ "}" => [],
1646
+ },
1647
+ :_SelectQuery_or_ConstructQuery_or_DescribeQuery_or_AskQuery => {
1648
+ "ASK" => [:AskQuery],
1649
+ "CONSTRUCT" => [:ConstructQuery],
1650
+ "DESCRIBE" => [:DescribeQuery],
1651
+ "SELECT" => [:SelectQuery],
1652
+ },
1653
+ :_TriplesBlock_Opt => {
1654
+ "(" => [:TriplesBlock],
1655
+ "+" => [:TriplesBlock],
1656
+ "-" => [:TriplesBlock],
1657
+ "FILTER" => [],
1658
+ "GRAPH" => [],
1659
+ "OPTIONAL" => [],
1660
+ "[" => [:TriplesBlock],
1661
+ :ANON => [:TriplesBlock],
1662
+ :BLANK_NODE_LABEL => [:TriplesBlock],
1663
+ :BooleanLiteral => [:TriplesBlock],
1664
+ :DECIMAL => [:TriplesBlock],
1665
+ :DOUBLE => [:TriplesBlock],
1666
+ :INTEGER => [:TriplesBlock],
1667
+ :IRI_REF => [:TriplesBlock],
1668
+ :NIL => [:TriplesBlock],
1669
+ :PNAME_LN => [:TriplesBlock],
1670
+ :PNAME_NS => [:TriplesBlock],
1671
+ :STRING_LITERAL1 => [:TriplesBlock],
1672
+ :STRING_LITERAL2 => [:TriplesBlock],
1673
+ :STRING_LITERAL_LONG1 => [:TriplesBlock],
1674
+ :STRING_LITERAL_LONG2 => [:TriplesBlock],
1675
+ :VAR1 => [:TriplesBlock],
1676
+ :VAR2 => [:TriplesBlock],
1677
+ "{" => [],
1678
+ "}" => [],
1679
+ },
1680
+ :_UNION_GroupGraphPattern => {
1681
+ "UNION" => ["UNION",
1682
+ :GroupGraphPattern],
1683
+ },
1684
+ :_UNION_GroupGraphPattern_Star => {
1685
+ "(" => [],
1686
+ "+" => [],
1687
+ "-" => [],
1688
+ "." => [],
1689
+ "FILTER" => [],
1690
+ "GRAPH" => [],
1691
+ "OPTIONAL" => [],
1692
+ "UNION" => [:_UNION_GroupGraphPattern,
1693
+ :_UNION_GroupGraphPattern_Star],
1694
+ "[" => [],
1695
+ :ANON => [],
1696
+ :BLANK_NODE_LABEL => [],
1697
+ :BooleanLiteral => [],
1698
+ :DECIMAL => [],
1699
+ :DOUBLE => [],
1700
+ :INTEGER => [],
1701
+ :IRI_REF => [],
1702
+ :NIL => [],
1703
+ :PNAME_LN => [],
1704
+ :PNAME_NS => [],
1705
+ :STRING_LITERAL1 => [],
1706
+ :STRING_LITERAL2 => [],
1707
+ :STRING_LITERAL_LONG1 => [],
1708
+ :STRING_LITERAL_LONG2 => [],
1709
+ :VAR1 => [],
1710
+ :VAR2 => [],
1711
+ "{" => [],
1712
+ "}" => [],
1713
+ },
1714
+ :_VarOrIRIRef_Plus => {
1715
+ "FROM" => [],
1716
+ "LIMIT" => [],
1717
+ "OFFSET" => [],
1718
+ "ORDER" => [],
1719
+ "WHERE" => [],
1720
+ :eof => [],
1721
+ :IRI_REF => [:VarOrIRIref,
1722
+ :_VarOrIRIRef_Plus],
1723
+ :PNAME_LN => [:VarOrIRIref,
1724
+ :_VarOrIRIRef_Plus],
1725
+ :PNAME_NS => [:VarOrIRIref,
1726
+ :_VarOrIRIRef_Plus],
1727
+ :VAR1 => [:VarOrIRIref,
1728
+ :_VarOrIRIRef_Plus],
1729
+ :VAR2 => [:VarOrIRIref,
1730
+ :_VarOrIRIRef_Plus],
1731
+ "{" => [],
1732
+ },
1733
+ :_VarOrIRIref_Plus_or_Star => {
1734
+ "*" => ["*"],
1735
+ :IRI_REF => [:VarOrIRIref,
1736
+ :_VarOrIRIRef_Plus],
1737
+ :PNAME_LN => [:VarOrIRIref,
1738
+ :_VarOrIRIRef_Plus],
1739
+ :PNAME_NS => [:VarOrIRIref,
1740
+ :_VarOrIRIRef_Plus],
1741
+ :VAR1 => [:VarOrIRIref,
1742
+ :_VarOrIRIRef_Plus],
1743
+ :VAR2 => [:VarOrIRIref,
1744
+ :_VarOrIRIRef_Plus],
1745
+ },
1746
+ :_Var_Plus => {
1747
+ "FROM" => [],
1748
+ "LIMIT" => [],
1749
+ "OFFSET" => [],
1750
+ "ORDER" => [],
1751
+ "WHERE" => [],
1752
+ :eof => [],
1753
+ :VAR1 => [:Var,
1754
+ :_Var_Plus],
1755
+ :VAR2 => [:Var,
1756
+ :_Var_Plus],
1757
+ "{" => [],
1758
+ },
1759
+ :_Var_Plus_or_Star => {
1760
+ "*" => ["*"],
1761
+ :VAR1 => [:Var,
1762
+ :_Var_Plus],
1763
+ :VAR2 => [:Var,
1764
+ :_Var_Plus],
1765
+ },
1766
+ :_Verb_ObjectList_Opt => {
1767
+ "." => [],
1768
+ ";" => [],
1769
+ "FILTER" => [],
1770
+ "GRAPH" => [],
1771
+ "OPTIONAL" => [],
1772
+ "]" => [],
1773
+ "a" => [:Verb,
1774
+ :ObjectList],
1775
+ :IRI_REF => [:Verb,
1776
+ :ObjectList],
1777
+ :PNAME_LN => [:Verb,
1778
+ :ObjectList],
1779
+ :PNAME_NS => [:Verb,
1780
+ :ObjectList],
1781
+ :VAR1 => [:Verb,
1782
+ :ObjectList],
1783
+ :VAR2 => [:Verb,
1784
+ :ObjectList],
1785
+ "{" => [],
1786
+ "}" => [],
1787
+ },
1788
+ :_WHERE_Opt => {
1789
+ "WHERE" => ["WHERE"],
1790
+ "{" => [],
1791
+ },
1792
+ :_WhereClause_Opt => {
1793
+ "LIMIT" => [],
1794
+ "OFFSET" => [],
1795
+ "ORDER" => [],
1796
+ "WHERE" => [:WhereClause],
1797
+ :eof => [],
1798
+ "{" => [:WhereClause],
1799
+ },
1800
+ }
1801
+ end