@traqula/rules-sparql-1-1 0.0.1-alpha.137

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/LICENSE.txt +22 -0
  2. package/README.md +15 -0
  3. package/lib/Sparql11types.d.ts +246 -0
  4. package/lib/Sparql11types.js +2 -0
  5. package/lib/Sparql11types.js.map +1 -0
  6. package/lib/expressionHelpers.d.ts +55 -0
  7. package/lib/expressionHelpers.js +224 -0
  8. package/lib/expressionHelpers.js.map +1 -0
  9. package/lib/grammar/builtIn.d.ts +91 -0
  10. package/lib/grammar/builtIn.js +239 -0
  11. package/lib/grammar/builtIn.js.map +1 -0
  12. package/lib/grammar/dataSetClause.d.ts +22 -0
  13. package/lib/grammar/dataSetClause.js +37 -0
  14. package/lib/grammar/dataSetClause.js.map +1 -0
  15. package/lib/grammar/expression.d.ts +68 -0
  16. package/lib/grammar/expression.js +397 -0
  17. package/lib/grammar/expression.js.map +1 -0
  18. package/lib/grammar/general.d.ts +42 -0
  19. package/lib/grammar/general.js +161 -0
  20. package/lib/grammar/general.js.map +1 -0
  21. package/lib/grammar/index.d.ts +12 -0
  22. package/lib/grammar/index.js +13 -0
  23. package/lib/grammar/index.js.map +1 -0
  24. package/lib/grammar/literals.d.ts +53 -0
  25. package/lib/grammar/literals.js +179 -0
  26. package/lib/grammar/literals.js.map +1 -0
  27. package/lib/grammar/propertyPaths.d.ts +40 -0
  28. package/lib/grammar/propertyPaths.js +193 -0
  29. package/lib/grammar/propertyPaths.js.map +1 -0
  30. package/lib/grammar/queryUnit/queryUnit.d.ts +53 -0
  31. package/lib/grammar/queryUnit/queryUnit.js +405 -0
  32. package/lib/grammar/queryUnit/queryUnit.js.map +1 -0
  33. package/lib/grammar/solutionModifier.d.ts +44 -0
  34. package/lib/grammar/solutionModifier.js +203 -0
  35. package/lib/grammar/solutionModifier.js.map +1 -0
  36. package/lib/grammar/tripleBlock.d.ts +42 -0
  37. package/lib/grammar/tripleBlock.js +309 -0
  38. package/lib/grammar/tripleBlock.js.map +1 -0
  39. package/lib/grammar/updateUnit/updateUnit.d.ts +101 -0
  40. package/lib/grammar/updateUnit/updateUnit.js +448 -0
  41. package/lib/grammar/updateUnit/updateUnit.js.map +1 -0
  42. package/lib/grammar/whereClause.d.ts +76 -0
  43. package/lib/grammar/whereClause.js +383 -0
  44. package/lib/grammar/whereClause.js.map +1 -0
  45. package/lib/index.cjs +13088 -0
  46. package/lib/index.d.ts +5 -0
  47. package/lib/index.js +6 -0
  48. package/lib/index.js.map +1 -0
  49. package/lib/lexer/BuildinCalls.d.ts +248 -0
  50. package/lib/lexer/BuildinCalls.js +189 -0
  51. package/lib/lexer/BuildinCalls.js.map +1 -0
  52. package/lib/lexer/graph.d.ts +14 -0
  53. package/lib/lexer/graph.js +9 -0
  54. package/lib/lexer/graph.js.map +1 -0
  55. package/lib/lexer/index.d.ts +5 -0
  56. package/lib/lexer/index.js +6 -0
  57. package/lib/lexer/index.js.map +1 -0
  58. package/lib/lexer/lexer.d.ts +147 -0
  59. package/lib/lexer/lexer.js +67 -0
  60. package/lib/lexer/lexer.js.map +1 -0
  61. package/lib/lexer/symbols.d.ts +80 -0
  62. package/lib/lexer/symbols.js +30 -0
  63. package/lib/lexer/symbols.js.map +1 -0
  64. package/lib/lexer/terminals.d.ts +108 -0
  65. package/lib/lexer/terminals.js +76 -0
  66. package/lib/lexer/terminals.js.map +1 -0
  67. package/lib/utils.d.ts +3 -0
  68. package/lib/utils.js +7 -0
  69. package/lib/utils.js.map +1 -0
  70. package/package.json +45 -0
@@ -0,0 +1,101 @@
1
+ import type { RuleDef } from '@traqula/core';
2
+ import type { ClearDropOperation, GraphOrDefault, GraphQuads, GraphReference, InsertDeleteOperation, IriTerm, LoadOperation, Quads, Update, UpdateOperation } from '../../Sparql11types';
3
+ /**
4
+ * [[3]](https://www.w3.org/TR/sparql11-query/#rUpdateUnit)
5
+ */
6
+ export declare const updateUnit: RuleDef<'updateUnit', Update>;
7
+ /**
8
+ * [[29]](https://www.w3.org/TR/sparql11-query/#rUpdate)
9
+ */
10
+ export declare const update: RuleDef<'update', Update>;
11
+ /**
12
+ * [[30]](https://www.w3.org/TR/sparql11-query/#rUpdate1)
13
+ */
14
+ export declare const update1: RuleDef<'update1', UpdateOperation>;
15
+ /**
16
+ * [[31]](https://www.w3.org/TR/sparql11-query/#rLoad)
17
+ */
18
+ export declare const load: RuleDef<'load', LoadOperation>;
19
+ /**
20
+ * [[32]](https://www.w3.org/TR/sparql11-query/#rClear)
21
+ */
22
+ export declare const clear: RuleDef<'clear', ClearDropOperation>;
23
+ /**
24
+ * [[33]](https://www.w3.org/TR/sparql11-query/#rDrop)
25
+ */
26
+ export declare const drop: RuleDef<'drop', UpdateOperation>;
27
+ /**
28
+ * [[34]](https://www.w3.org/TR/sparql11-query/#rCreate)
29
+ */
30
+ export declare const create: RuleDef<'create', UpdateOperation>;
31
+ /**
32
+ * [[35]](https://www.w3.org/TR/sparql11-query/#rAdd)
33
+ */
34
+ export declare const add: RuleDef<"add", UpdateOperation>;
35
+ /**
36
+ * [[36]](https://www.w3.org/TR/sparql11-query/#rMove)
37
+ */
38
+ export declare const move: RuleDef<"move", UpdateOperation>;
39
+ /**
40
+ * [[37]](https://www.w3.org/TR/sparql11-query/#rCopy)
41
+ */
42
+ export declare const copy: RuleDef<"copy", UpdateOperation>;
43
+ /**
44
+ * [[38]](https://www.w3.org/TR/sparql11-query/#rInsertData)
45
+ */
46
+ export declare const insertData: RuleDef<'insertData', InsertDeleteOperation>;
47
+ /**
48
+ * [[39]](https://www.w3.org/TR/sparql11-query/#rDeleteData)
49
+ */
50
+ export declare const deleteData: RuleDef<'deleteData', InsertDeleteOperation>;
51
+ /**
52
+ * [[40]](https://www.w3.org/TR/sparql11-query/#rDeleteWhere)
53
+ */
54
+ export declare const deleteWhere: RuleDef<'deleteWhere', InsertDeleteOperation>;
55
+ /**
56
+ * [[41]](https://www.w3.org/TR/sparql11-query/#rModify)
57
+ */
58
+ export declare const modify: RuleDef<'modify', UpdateOperation>;
59
+ /**
60
+ * [[42]](https://www.w3.org/TR/sparql11-query/#rDeleteClause)
61
+ */
62
+ export declare const deleteClause: RuleDef<'deleteClause', Quads[]>;
63
+ /**
64
+ * [[43]](https://www.w3.org/TR/sparql11-query/#rInsertClause)
65
+ */
66
+ export declare const insertClause: RuleDef<'insertClause', Quads[]>;
67
+ /**
68
+ * [[44]](https://www.w3.org/TR/sparql11-query/#rUsingClause)
69
+ */
70
+ export declare const usingClause: RuleDef<'usingClause', {
71
+ value: IriTerm;
72
+ type: 'default' | 'named';
73
+ }>;
74
+ /**
75
+ * [[45]](https://www.w3.org/TR/sparql11-query/#rGraphOrDefault)
76
+ */
77
+ export declare const graphOrDefault: RuleDef<'graphOrDefault', GraphOrDefault>;
78
+ /**
79
+ * [[46]](https://www.w3.org/TR/sparql11-query/#rGraphRef)
80
+ */
81
+ export declare const graphRef: RuleDef<'graphRef', IriTerm>;
82
+ /**
83
+ * [[47]](https://www.w3.org/TR/sparql11-query/#rGraphRefAll)
84
+ */
85
+ export declare const graphRefAll: RuleDef<'graphRefAll', GraphReference>;
86
+ /**
87
+ * [[48]](https://www.w3.org/TR/sparql11-query/#rQuadPattern)
88
+ */
89
+ export declare const quadPattern: RuleDef<'quadPattern', Quads[]>;
90
+ /**
91
+ * [[49]](https://www.w3.org/TR/sparql11-query/#rQuadData)
92
+ */
93
+ export declare const quadData: RuleDef<'quadData', Quads[]>;
94
+ /**
95
+ * [[50]](https://www.w3.org/TR/sparql11-query/#rQuads)
96
+ */
97
+ export declare const quads: RuleDef<'quads', Quads[]>;
98
+ /**
99
+ * [[51]](https://www.w3.org/TR/sparql11-query/#rQuadsNotTriples)
100
+ */
101
+ export declare const quadsNotTriples: RuleDef<'quadsNotTriples', GraphQuads>;
@@ -0,0 +1,448 @@
1
+ import * as l from '../../lexer';
2
+ import { unCapitalize } from '@traqula/core';
3
+ import { canParseVars, prologue, triplesTemplate, varOrIri } from '../general';
4
+ import { canCreateBlankNodes, iri } from '../literals';
5
+ import { groupGraphPattern } from '../whereClause';
6
+ /**
7
+ * [[3]](https://www.w3.org/TR/sparql11-query/#rUpdateUnit)
8
+ */
9
+ export const updateUnit = {
10
+ name: 'updateUnit',
11
+ impl: ({ ACTION, SUBRULE }) => () => {
12
+ const data = SUBRULE(update);
13
+ ACTION(() => data.updates.reverse());
14
+ return data;
15
+ },
16
+ };
17
+ /**
18
+ * [[29]](https://www.w3.org/TR/sparql11-query/#rUpdate)
19
+ */
20
+ export const update = {
21
+ name: 'update',
22
+ impl: ({ ACTION, SUBRULE, CONSUME, OPTION1, OPTION2, context }) => () => {
23
+ const prologueValues = SUBRULE(prologue);
24
+ const result = {
25
+ type: 'update',
26
+ base: prologueValues.base,
27
+ prefixes: prologueValues.prefixes,
28
+ updates: [],
29
+ };
30
+ OPTION1(() => {
31
+ const updateOperation = SUBRULE(update1);
32
+ ACTION(() => {
33
+ for (const label of context.usedBlankNodeLabels) {
34
+ context.flushedBlankNodeLabels.add(label);
35
+ }
36
+ context.usedBlankNodeLabels.clear();
37
+ });
38
+ const recursiveRes = OPTION2(() => {
39
+ CONSUME(l.symbols.semi);
40
+ return SUBRULE(update);
41
+ });
42
+ return ACTION(() => {
43
+ result.updates.push(updateOperation);
44
+ if (recursiveRes) {
45
+ result.updates.push(...recursiveRes.updates);
46
+ result.base = recursiveRes.base ?? result.base;
47
+ result.prefixes = recursiveRes.prefixes ? { ...result.prefixes, ...recursiveRes.prefixes } : result.prefixes;
48
+ }
49
+ });
50
+ });
51
+ return result;
52
+ },
53
+ };
54
+ /**
55
+ * [[30]](https://www.w3.org/TR/sparql11-query/#rUpdate1)
56
+ */
57
+ export const update1 = {
58
+ name: 'update1',
59
+ impl: ({ SUBRULE, OR }) => () => OR([
60
+ { ALT: () => SUBRULE(load) },
61
+ { ALT: () => SUBRULE(clear) },
62
+ { ALT: () => SUBRULE(drop) },
63
+ { ALT: () => SUBRULE(add) },
64
+ { ALT: () => SUBRULE(move) },
65
+ { ALT: () => SUBRULE(copy) },
66
+ { ALT: () => SUBRULE(create) },
67
+ { ALT: () => SUBRULE(insertData) },
68
+ { ALT: () => SUBRULE(deleteData) },
69
+ { ALT: () => SUBRULE(deleteWhere) },
70
+ { ALT: () => SUBRULE(modify) },
71
+ ]),
72
+ };
73
+ /**
74
+ * [[31]](https://www.w3.org/TR/sparql11-query/#rLoad)
75
+ */
76
+ export const load = {
77
+ name: 'load',
78
+ impl: ({ SUBRULE, CONSUME, OPTION1, OPTION2 }) => () => {
79
+ CONSUME(l.load);
80
+ const silent = Boolean(OPTION1(() => CONSUME(l.silent)));
81
+ const source = SUBRULE(iri);
82
+ const destination = OPTION2(() => {
83
+ CONSUME(l.loadInto);
84
+ return SUBRULE(graphRef);
85
+ });
86
+ return {
87
+ type: 'load',
88
+ silent,
89
+ source,
90
+ ...(destination && { destination }),
91
+ };
92
+ },
93
+ };
94
+ /**
95
+ * [[32]](https://www.w3.org/TR/sparql11-query/#rClear)
96
+ */
97
+ export const clear = {
98
+ name: 'clear',
99
+ impl: ({ SUBRULE, CONSUME, OPTION }) => () => {
100
+ CONSUME(l.clear);
101
+ const silent = Boolean(OPTION(() => CONSUME(l.silent)));
102
+ const graph = SUBRULE(graphRefAll);
103
+ return {
104
+ type: 'clear',
105
+ silent,
106
+ graph,
107
+ };
108
+ },
109
+ };
110
+ /**
111
+ * [[33]](https://www.w3.org/TR/sparql11-query/#rDrop)
112
+ */
113
+ export const drop = {
114
+ name: 'drop',
115
+ impl: ({ SUBRULE, CONSUME, OPTION }) => () => {
116
+ CONSUME(l.drop);
117
+ const silent = Boolean(OPTION(() => CONSUME(l.silent)));
118
+ const graph = SUBRULE(graphRefAll);
119
+ return {
120
+ type: 'drop',
121
+ silent,
122
+ graph,
123
+ };
124
+ },
125
+ };
126
+ /**
127
+ * [[34]](https://www.w3.org/TR/sparql11-query/#rCreate)
128
+ */
129
+ export const create = {
130
+ name: 'create',
131
+ impl: ({ SUBRULE, CONSUME, OPTION }) => () => {
132
+ CONSUME(l.create);
133
+ const silent = Boolean(OPTION(() => CONSUME(l.silent)));
134
+ const graph = SUBRULE(graphRef);
135
+ return {
136
+ type: 'create',
137
+ silent,
138
+ graph: {
139
+ type: 'graph',
140
+ name: graph,
141
+ },
142
+ };
143
+ },
144
+ };
145
+ function copyMoveAddOperation(operation) {
146
+ return {
147
+ name: unCapitalize(operation.name),
148
+ impl: ({ CONSUME, SUBRULE1, SUBRULE2, OPTION }) => () => {
149
+ CONSUME(operation);
150
+ const silent = Boolean(OPTION(() => CONSUME(l.silent)));
151
+ const source = SUBRULE1(graphOrDefault);
152
+ CONSUME(l.to);
153
+ const destination = SUBRULE2(graphOrDefault);
154
+ return {
155
+ type: unCapitalize(operation.name),
156
+ silent,
157
+ source,
158
+ destination,
159
+ };
160
+ },
161
+ };
162
+ }
163
+ /**
164
+ * [[35]](https://www.w3.org/TR/sparql11-query/#rAdd)
165
+ */
166
+ export const add = copyMoveAddOperation(l.add);
167
+ /**
168
+ * [[36]](https://www.w3.org/TR/sparql11-query/#rMove)
169
+ */
170
+ export const move = copyMoveAddOperation(l.move);
171
+ /**
172
+ * [[37]](https://www.w3.org/TR/sparql11-query/#rCopy)
173
+ */
174
+ export const copy = copyMoveAddOperation(l.copy);
175
+ /**
176
+ * [[38]](https://www.w3.org/TR/sparql11-query/#rInsertData)
177
+ */
178
+ export const insertData = {
179
+ name: 'insertData',
180
+ impl: ({ SUBRULE, CONSUME }) => () => {
181
+ CONSUME(l.insertClause);
182
+ CONSUME(l.dataClause);
183
+ const insert = SUBRULE(quadData);
184
+ return {
185
+ updateType: 'insert',
186
+ insert,
187
+ };
188
+ },
189
+ };
190
+ /**
191
+ * [[39]](https://www.w3.org/TR/sparql11-query/#rDeleteData)
192
+ */
193
+ export const deleteData = {
194
+ name: 'deleteData',
195
+ impl: ({ ACTION, SUBRULE, CONSUME, context }) => () => {
196
+ CONSUME(l.deleteClause);
197
+ CONSUME(l.dataClause);
198
+ const couldCreateBlankNodes = ACTION(() => context.parseMode.delete(canCreateBlankNodes));
199
+ const del = SUBRULE(quadData);
200
+ ACTION(() => couldCreateBlankNodes && context.parseMode.add(canCreateBlankNodes));
201
+ return {
202
+ updateType: 'delete',
203
+ delete: del,
204
+ };
205
+ },
206
+ };
207
+ /**
208
+ * [[40]](https://www.w3.org/TR/sparql11-query/#rDeleteWhere)
209
+ */
210
+ export const deleteWhere = {
211
+ name: 'deleteWhere',
212
+ impl: ({ ACTION, SUBRULE, CONSUME, context }) => () => {
213
+ CONSUME(l.deleteClause);
214
+ CONSUME(l.where);
215
+ const couldCreateBlankNodes = ACTION(() => context.parseMode.delete(canCreateBlankNodes));
216
+ const del = SUBRULE(quadPattern);
217
+ ACTION(() => couldCreateBlankNodes && context.parseMode.add(canCreateBlankNodes));
218
+ return {
219
+ updateType: 'deletewhere',
220
+ delete: del,
221
+ };
222
+ },
223
+ };
224
+ /**
225
+ * [[41]](https://www.w3.org/TR/sparql11-query/#rModify)
226
+ */
227
+ export const modify = {
228
+ name: 'modify',
229
+ impl: ({ ACTION, SUBRULE, CONSUME, MANY, SUBRULE1, SUBRULE2, OPTION1, OPTION2, OR }) => () => {
230
+ const graph = OPTION1(() => {
231
+ CONSUME(l.modifyWith);
232
+ return SUBRULE(iri);
233
+ });
234
+ const { insert, delete: del } = OR([
235
+ {
236
+ ALT: () => {
237
+ const del = SUBRULE(deleteClause);
238
+ const insert = OPTION2(() => SUBRULE1(insertClause)) ?? [];
239
+ return { delete: del, insert };
240
+ },
241
+ },
242
+ { ALT: () => {
243
+ const insert = SUBRULE2(insertClause);
244
+ return { insert, delete: [] };
245
+ } },
246
+ ]);
247
+ const usingArr = [];
248
+ MANY(() => {
249
+ usingArr.push(SUBRULE(usingClause));
250
+ });
251
+ CONSUME(l.where);
252
+ const where = SUBRULE(groupGraphPattern);
253
+ return ACTION(() => {
254
+ const def = [];
255
+ const named = [];
256
+ for (const { value, type } of usingArr) {
257
+ if (type === 'default') {
258
+ def.push(value);
259
+ }
260
+ else {
261
+ named.push(value);
262
+ }
263
+ }
264
+ return {
265
+ updateType: 'insertdelete',
266
+ graph,
267
+ insert,
268
+ delete: del,
269
+ using: usingArr.length > 0 ? { default: def, named } : undefined,
270
+ where: where.patterns,
271
+ };
272
+ });
273
+ },
274
+ };
275
+ /**
276
+ * [[42]](https://www.w3.org/TR/sparql11-query/#rDeleteClause)
277
+ */
278
+ export const deleteClause = {
279
+ name: 'deleteClause',
280
+ impl: ({ ACTION, SUBRULE, CONSUME, context }) => () => {
281
+ CONSUME(l.deleteClause);
282
+ const couldCreateBlankNodes = ACTION(() => context.parseMode.delete(canCreateBlankNodes));
283
+ const del = SUBRULE(quadPattern);
284
+ ACTION(() => couldCreateBlankNodes && context.parseMode.add(canCreateBlankNodes));
285
+ return del;
286
+ },
287
+ };
288
+ /**
289
+ * [[43]](https://www.w3.org/TR/sparql11-query/#rInsertClause)
290
+ */
291
+ export const insertClause = {
292
+ name: 'insertClause',
293
+ impl: ({ SUBRULE, CONSUME }) => () => {
294
+ CONSUME(l.insertClause);
295
+ return SUBRULE(quadPattern);
296
+ },
297
+ };
298
+ /**
299
+ * [[44]](https://www.w3.org/TR/sparql11-query/#rUsingClause)
300
+ */
301
+ export const usingClause = {
302
+ name: 'usingClause',
303
+ impl: ({ CONSUME, SUBRULE1, SUBRULE2, OR }) => () => {
304
+ CONSUME(l.usingClause);
305
+ return OR([
306
+ { ALT: () => {
307
+ const value = SUBRULE1(iri);
308
+ return { value, type: 'default' };
309
+ } },
310
+ {
311
+ ALT: () => {
312
+ CONSUME(l.graph.named);
313
+ const value = SUBRULE2(iri);
314
+ return { value, type: 'named' };
315
+ },
316
+ },
317
+ ]);
318
+ },
319
+ };
320
+ /**
321
+ * [[45]](https://www.w3.org/TR/sparql11-query/#rGraphOrDefault)
322
+ */
323
+ export const graphOrDefault = {
324
+ name: 'graphOrDefault',
325
+ impl: ({ SUBRULE, CONSUME, OPTION, OR }) => () => OR([
326
+ { ALT: () => {
327
+ CONSUME(l.graph.default_);
328
+ return { type: 'graph', default: true };
329
+ } },
330
+ {
331
+ ALT: () => {
332
+ OPTION(() => CONSUME(l.graph.graph));
333
+ const name = SUBRULE(iri);
334
+ return {
335
+ type: 'graph',
336
+ name,
337
+ };
338
+ },
339
+ },
340
+ ]),
341
+ };
342
+ /**
343
+ * [[46]](https://www.w3.org/TR/sparql11-query/#rGraphRef)
344
+ */
345
+ export const graphRef = {
346
+ name: 'graphRef',
347
+ impl: ({ SUBRULE, CONSUME }) => () => {
348
+ CONSUME(l.graph.graph);
349
+ return SUBRULE(iri);
350
+ },
351
+ };
352
+ /**
353
+ * [[47]](https://www.w3.org/TR/sparql11-query/#rGraphRefAll)
354
+ */
355
+ export const graphRefAll = {
356
+ name: 'graphRefAll',
357
+ impl: ({ SUBRULE, CONSUME, OR }) => () => OR([
358
+ { ALT: () => {
359
+ const name = SUBRULE(graphRef);
360
+ return { type: 'graph', name };
361
+ } },
362
+ { ALT: () => {
363
+ CONSUME(l.graph.default_);
364
+ return { default: true };
365
+ } },
366
+ { ALT: () => {
367
+ CONSUME(l.graph.named);
368
+ return { named: true };
369
+ } },
370
+ { ALT: () => {
371
+ CONSUME(l.graph.graphAll);
372
+ return { all: true };
373
+ } },
374
+ ]),
375
+ };
376
+ /**
377
+ * [[48]](https://www.w3.org/TR/sparql11-query/#rQuadPattern)
378
+ */
379
+ export const quadPattern = {
380
+ name: 'quadPattern',
381
+ impl: ({ SUBRULE, CONSUME }) => () => {
382
+ CONSUME(l.symbols.LCurly);
383
+ const val = SUBRULE(quads);
384
+ CONSUME(l.symbols.RCurly);
385
+ return val;
386
+ },
387
+ };
388
+ /**
389
+ * [[49]](https://www.w3.org/TR/sparql11-query/#rQuadData)
390
+ */
391
+ export const quadData = {
392
+ name: 'quadData',
393
+ impl: ({ ACTION, SUBRULE, CONSUME, context }) => () => {
394
+ CONSUME(l.symbols.LCurly);
395
+ const couldParseVars = ACTION(() => context.parseMode.delete(canParseVars));
396
+ const val = SUBRULE(quads);
397
+ ACTION(() => couldParseVars && context.parseMode.add(canParseVars));
398
+ CONSUME(l.symbols.RCurly);
399
+ return val;
400
+ },
401
+ };
402
+ /**
403
+ * [[50]](https://www.w3.org/TR/sparql11-query/#rQuads)
404
+ */
405
+ export const quads = {
406
+ name: 'quads',
407
+ impl: ({ SUBRULE, CONSUME, MANY, SUBRULE1, SUBRULE2, OPTION1, OPTION2, OPTION3 }) => () => {
408
+ const quads = [];
409
+ OPTION1(() => {
410
+ const triples = SUBRULE1(triplesTemplate);
411
+ quads.push({
412
+ type: 'bgp',
413
+ triples,
414
+ });
415
+ });
416
+ MANY(() => {
417
+ quads.push(SUBRULE(quadsNotTriples));
418
+ OPTION2(() => CONSUME(l.symbols.dot));
419
+ OPTION3(() => {
420
+ const triples = SUBRULE2(triplesTemplate);
421
+ quads.push({
422
+ type: 'bgp',
423
+ triples,
424
+ });
425
+ });
426
+ });
427
+ return quads;
428
+ },
429
+ };
430
+ /**
431
+ * [[51]](https://www.w3.org/TR/sparql11-query/#rQuadsNotTriples)
432
+ */
433
+ export const quadsNotTriples = {
434
+ name: 'quadsNotTriples',
435
+ impl: ({ SUBRULE, CONSUME, OPTION }) => () => {
436
+ CONSUME(l.graph.graph);
437
+ const name = SUBRULE(varOrIri);
438
+ CONSUME(l.symbols.LCurly);
439
+ const triples = OPTION(() => SUBRULE(triplesTemplate)) ?? [];
440
+ CONSUME(l.symbols.RCurly);
441
+ return {
442
+ type: 'graph',
443
+ name,
444
+ triples,
445
+ };
446
+ },
447
+ };
448
+ //# sourceMappingURL=updateUnit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updateUnit.js","sourceRoot":"","sources":["updateUnit.ts"],"names":[],"mappings":"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","sourcesContent":["import type { TokenType } from 'chevrotain';\nimport * as l from '../../lexer';\nimport type { RuleDef, RuleDefReturn } from '@traqula/core';\nimport { unCapitalize } from '@traqula/core';\nimport { canParseVars, prologue, triplesTemplate, varOrIri } from '../general';\nimport { canCreateBlankNodes, iri } from '../literals';\nimport type {\n ClearDropOperation,\n GraphOrDefault,\n GraphQuads,\n GraphReference,\n InsertDeleteOperation,\n IriTerm,\n LoadOperation,\n Quads,\n Update,\n UpdateOperation,\n} from '../../Sparql11types';\nimport { groupGraphPattern } from '../whereClause';\n\n/**\n * [[3]](https://www.w3.org/TR/sparql11-query/#rUpdateUnit)\n */\nexport const updateUnit: RuleDef<'updateUnit', Update> = <const> {\n name: 'updateUnit',\n impl: ({ ACTION, SUBRULE }) => () => {\n const data = SUBRULE(update);\n\n ACTION(() => data.updates.reverse());\n return data;\n },\n};\n\n/**\n * [[29]](https://www.w3.org/TR/sparql11-query/#rUpdate)\n */\nexport const update: RuleDef<'update', Update> = <const> {\n name: 'update',\n impl: ({ ACTION, SUBRULE, CONSUME, OPTION1, OPTION2, context }) => () => {\n const prologueValues = SUBRULE(prologue);\n const result: Update = {\n type: 'update',\n base: prologueValues.base,\n prefixes: prologueValues.prefixes,\n updates: [],\n };\n OPTION1(() => {\n const updateOperation = SUBRULE(update1);\n\n ACTION(() => {\n for (const label of context.usedBlankNodeLabels) {\n context.flushedBlankNodeLabels.add(label);\n }\n context.usedBlankNodeLabels.clear();\n });\n\n const recursiveRes = OPTION2(() => {\n CONSUME(l.symbols.semi);\n return SUBRULE(update);\n });\n\n return ACTION(() => {\n result.updates.push(updateOperation);\n if (recursiveRes) {\n result.updates.push(...recursiveRes.updates);\n result.base = recursiveRes.base ?? result.base;\n result.prefixes = recursiveRes.prefixes ? { ...result.prefixes, ...recursiveRes.prefixes } : result.prefixes;\n }\n });\n });\n return result;\n },\n};\n\n/**\n * [[30]](https://www.w3.org/TR/sparql11-query/#rUpdate1)\n */\nexport const update1: RuleDef<'update1', UpdateOperation> = <const> {\n name: 'update1',\n impl: ({ SUBRULE, OR }) => () => OR([\n { ALT: () => SUBRULE(load) },\n { ALT: () => SUBRULE(clear) },\n { ALT: () => SUBRULE(drop) },\n { ALT: () => SUBRULE(add) },\n { ALT: () => SUBRULE(move) },\n { ALT: () => SUBRULE(copy) },\n { ALT: () => SUBRULE(create) },\n { ALT: () => SUBRULE(insertData) },\n { ALT: () => SUBRULE(deleteData) },\n { ALT: () => SUBRULE(deleteWhere) },\n { ALT: () => SUBRULE(modify) },\n ]),\n};\n\n/**\n * [[31]](https://www.w3.org/TR/sparql11-query/#rLoad)\n */\nexport const load: RuleDef<'load', LoadOperation> = <const> {\n name: 'load',\n impl: ({ SUBRULE, CONSUME, OPTION1, OPTION2 }) => () => {\n CONSUME(l.load);\n const silent = Boolean(OPTION1(() => CONSUME(l.silent)));\n const source = SUBRULE(iri);\n const destination = OPTION2(() => {\n CONSUME(l.loadInto);\n return SUBRULE(graphRef);\n });\n return {\n type: 'load',\n silent,\n source,\n ...(destination && { destination }),\n };\n },\n};\n\n/**\n * [[32]](https://www.w3.org/TR/sparql11-query/#rClear)\n */\nexport const clear: RuleDef<'clear', ClearDropOperation> = <const> {\n name: 'clear',\n impl: ({ SUBRULE, CONSUME, OPTION }) => () => {\n CONSUME(l.clear);\n const silent = Boolean(OPTION(() => CONSUME(l.silent)));\n const graph = SUBRULE(graphRefAll);\n return {\n type: 'clear',\n silent,\n graph,\n };\n },\n};\n\n/**\n * [[33]](https://www.w3.org/TR/sparql11-query/#rDrop)\n */\nexport const drop: RuleDef<'drop', UpdateOperation> = <const> {\n name: 'drop',\n impl: ({ SUBRULE, CONSUME, OPTION }) => () => {\n CONSUME(l.drop);\n const silent = Boolean(OPTION(() => CONSUME(l.silent)));\n const graph = SUBRULE(graphRefAll);\n return {\n type: 'drop',\n silent,\n graph,\n };\n },\n};\n\n/**\n * [[34]](https://www.w3.org/TR/sparql11-query/#rCreate)\n */\nexport const create: RuleDef<'create', UpdateOperation> = <const> {\n name: 'create',\n impl: ({ SUBRULE, CONSUME, OPTION }) => () => {\n CONSUME(l.create);\n const silent = Boolean(OPTION(() => CONSUME(l.silent)));\n const graph = SUBRULE(graphRef);\n return {\n type: 'create',\n silent,\n graph: {\n type: 'graph',\n name: graph,\n },\n };\n },\n};\n\nfunction copyMoveAddOperation<T extends 'Copy' | 'Move' | 'Add'>(operation: TokenType & { name: T }):\nRuleDef<Uncapitalize<T>, UpdateOperation> {\n return {\n name: unCapitalize(operation.name),\n impl: ({ CONSUME, SUBRULE1, SUBRULE2, OPTION }) => () => {\n CONSUME(operation);\n const silent = Boolean(OPTION(() => CONSUME(l.silent)));\n const source = SUBRULE1(graphOrDefault);\n CONSUME(l.to);\n const destination = SUBRULE2(graphOrDefault);\n return {\n type: unCapitalize(operation.name),\n silent,\n source,\n destination,\n };\n },\n };\n}\n\n/**\n * [[35]](https://www.w3.org/TR/sparql11-query/#rAdd)\n */\nexport const add = copyMoveAddOperation(l.add);\n\n/**\n * [[36]](https://www.w3.org/TR/sparql11-query/#rMove)\n */\nexport const move = copyMoveAddOperation(l.move);\n\n/**\n * [[37]](https://www.w3.org/TR/sparql11-query/#rCopy)\n */\nexport const copy = copyMoveAddOperation(l.copy);\n\n/**\n * [[38]](https://www.w3.org/TR/sparql11-query/#rInsertData)\n */\nexport const insertData: RuleDef<'insertData', InsertDeleteOperation> = <const> {\n name: 'insertData',\n impl: ({ SUBRULE, CONSUME }) => () => {\n CONSUME(l.insertClause);\n CONSUME(l.dataClause);\n const insert = SUBRULE(quadData);\n return {\n updateType: 'insert',\n insert,\n };\n },\n};\n\n/**\n * [[39]](https://www.w3.org/TR/sparql11-query/#rDeleteData)\n */\nexport const deleteData: RuleDef<'deleteData', InsertDeleteOperation> = <const> {\n name: 'deleteData',\n impl: ({ ACTION, SUBRULE, CONSUME, context }) => () => {\n CONSUME(l.deleteClause);\n CONSUME(l.dataClause);\n\n const couldCreateBlankNodes = ACTION(() => context.parseMode.delete(canCreateBlankNodes));\n const del = SUBRULE(quadData);\n ACTION(() => couldCreateBlankNodes && context.parseMode.add(canCreateBlankNodes));\n\n return {\n updateType: 'delete',\n delete: del,\n };\n },\n};\n\n/**\n * [[40]](https://www.w3.org/TR/sparql11-query/#rDeleteWhere)\n */\nexport const deleteWhere: RuleDef<'deleteWhere', InsertDeleteOperation> = <const> {\n name: 'deleteWhere',\n impl: ({ ACTION, SUBRULE, CONSUME, context }) => () => {\n CONSUME(l.deleteClause);\n CONSUME(l.where);\n\n const couldCreateBlankNodes = ACTION(() => context.parseMode.delete(canCreateBlankNodes));\n const del = SUBRULE(quadPattern);\n ACTION(() => couldCreateBlankNodes && context.parseMode.add(canCreateBlankNodes));\n\n return {\n updateType: 'deletewhere',\n delete: del,\n };\n },\n};\n\n/**\n * [[41]](https://www.w3.org/TR/sparql11-query/#rModify)\n */\nexport const modify: RuleDef<'modify', UpdateOperation> = <const> {\n name: 'modify',\n impl: ({ ACTION, SUBRULE, CONSUME, MANY, SUBRULE1, SUBRULE2, OPTION1, OPTION2, OR }) => () => {\n const graph = OPTION1(() => {\n CONSUME(l.modifyWith);\n return SUBRULE(iri);\n });\n const { insert, delete: del } = OR([\n {\n ALT: () => {\n const del = SUBRULE(deleteClause);\n const insert = OPTION2(() => SUBRULE1(insertClause)) ?? [];\n return { delete: del, insert };\n },\n },\n { ALT: () => {\n const insert = SUBRULE2(insertClause);\n return { insert, delete: []};\n } },\n ]);\n const usingArr: RuleDefReturn<typeof usingClause>[] = [];\n MANY(() => {\n usingArr.push(SUBRULE(usingClause));\n });\n CONSUME(l.where);\n const where = SUBRULE(groupGraphPattern);\n\n return ACTION(() => {\n const def: IriTerm[] = [];\n const named: IriTerm[] = [];\n for (const { value, type } of usingArr) {\n if (type === 'default') {\n def.push(value);\n } else {\n named.push(value);\n }\n }\n return {\n updateType: 'insertdelete',\n graph,\n insert,\n delete: del,\n using: usingArr.length > 0 ? { default: def, named } : undefined,\n where: where.patterns,\n };\n });\n },\n};\n\n/**\n * [[42]](https://www.w3.org/TR/sparql11-query/#rDeleteClause)\n */\nexport const deleteClause: RuleDef<'deleteClause', Quads[]> = <const> {\n name: 'deleteClause',\n impl: ({ ACTION, SUBRULE, CONSUME, context }) => () => {\n CONSUME(l.deleteClause);\n\n const couldCreateBlankNodes = ACTION(() => context.parseMode.delete(canCreateBlankNodes));\n const del = SUBRULE(quadPattern);\n ACTION(() => couldCreateBlankNodes && context.parseMode.add(canCreateBlankNodes));\n\n return del;\n },\n};\n\n/**\n * [[43]](https://www.w3.org/TR/sparql11-query/#rInsertClause)\n */\nexport const insertClause: RuleDef<'insertClause', Quads[]> = <const> {\n name: 'insertClause',\n impl: ({ SUBRULE, CONSUME }) => () => {\n CONSUME(l.insertClause);\n return SUBRULE(quadPattern);\n },\n};\n\n/**\n * [[44]](https://www.w3.org/TR/sparql11-query/#rUsingClause)\n */\nexport const usingClause: RuleDef<'usingClause', { value: IriTerm; type: 'default' | 'named' }> = <const> {\n name: 'usingClause',\n impl: ({ CONSUME, SUBRULE1, SUBRULE2, OR }) => () => {\n CONSUME(l.usingClause);\n return OR<RuleDefReturn<typeof usingClause>>([\n { ALT: () => {\n const value = SUBRULE1(iri);\n return { value, type: 'default' };\n } },\n {\n ALT: () => {\n CONSUME(l.graph.named);\n const value = SUBRULE2(iri);\n return { value, type: 'named' };\n },\n },\n ]);\n },\n};\n\n/**\n * [[45]](https://www.w3.org/TR/sparql11-query/#rGraphOrDefault)\n */\nexport const graphOrDefault: RuleDef<'graphOrDefault', GraphOrDefault> = <const> {\n name: 'graphOrDefault',\n impl: ({ SUBRULE, CONSUME, OPTION, OR }) => () => OR<GraphOrDefault>([\n { ALT: () => {\n CONSUME(l.graph.default_);\n return { type: 'graph', default: true };\n } },\n {\n ALT: () => {\n OPTION(() => CONSUME(l.graph.graph));\n const name = SUBRULE(iri);\n return {\n type: 'graph',\n name,\n };\n },\n },\n ]),\n};\n\n/**\n * [[46]](https://www.w3.org/TR/sparql11-query/#rGraphRef)\n */\nexport const graphRef: RuleDef<'graphRef', IriTerm> = <const> {\n name: 'graphRef',\n impl: ({ SUBRULE, CONSUME }) => () => {\n CONSUME(l.graph.graph);\n return SUBRULE(iri);\n },\n};\n\n/**\n * [[47]](https://www.w3.org/TR/sparql11-query/#rGraphRefAll)\n */\nexport const graphRefAll: RuleDef<'graphRefAll', GraphReference> = <const> {\n name: 'graphRefAll',\n impl: ({ SUBRULE, CONSUME, OR }) => () => OR<GraphReference>([\n { ALT: () => {\n const name = SUBRULE(graphRef);\n return { type: 'graph', name };\n } },\n { ALT: () => {\n CONSUME(l.graph.default_);\n return { default: true };\n } },\n { ALT: () => {\n CONSUME(l.graph.named);\n return { named: true };\n } },\n { ALT: () => {\n CONSUME(l.graph.graphAll);\n return { all: true };\n } },\n ]),\n};\n\n/**\n * [[48]](https://www.w3.org/TR/sparql11-query/#rQuadPattern)\n */\nexport const quadPattern: RuleDef<'quadPattern', Quads[]> = <const> {\n name: 'quadPattern',\n impl: ({ SUBRULE, CONSUME }) => () => {\n CONSUME(l.symbols.LCurly);\n const val = SUBRULE(quads);\n CONSUME(l.symbols.RCurly);\n return val;\n },\n};\n\n/**\n * [[49]](https://www.w3.org/TR/sparql11-query/#rQuadData)\n */\nexport const quadData: RuleDef<'quadData', Quads[]> = <const> {\n name: 'quadData',\n impl: ({ ACTION, SUBRULE, CONSUME, context }) => () => {\n CONSUME(l.symbols.LCurly);\n\n const couldParseVars = ACTION(() => context.parseMode.delete(canParseVars));\n const val = SUBRULE(quads);\n ACTION(() => couldParseVars && context.parseMode.add(canParseVars));\n\n CONSUME(l.symbols.RCurly);\n return val;\n },\n};\n\n/**\n * [[50]](https://www.w3.org/TR/sparql11-query/#rQuads)\n */\nexport const quads: RuleDef<'quads', Quads[]> = <const> {\n name: 'quads',\n impl: ({ SUBRULE, CONSUME, MANY, SUBRULE1, SUBRULE2, OPTION1, OPTION2, OPTION3 }) => () => {\n const quads: Quads[] = [];\n\n OPTION1(() => {\n const triples = SUBRULE1(triplesTemplate);\n quads.push({\n type: 'bgp',\n triples,\n });\n });\n\n MANY(() => {\n quads.push(SUBRULE(quadsNotTriples));\n OPTION2(() => CONSUME(l.symbols.dot));\n OPTION3(() => {\n const triples = SUBRULE2(triplesTemplate);\n quads.push({\n type: 'bgp',\n triples,\n });\n });\n });\n\n return quads;\n },\n};\n\n/**\n * [[51]](https://www.w3.org/TR/sparql11-query/#rQuadsNotTriples)\n */\nexport const quadsNotTriples: RuleDef<'quadsNotTriples', GraphQuads> = <const> {\n name: 'quadsNotTriples',\n impl: ({ SUBRULE, CONSUME, OPTION }) => () => {\n CONSUME(l.graph.graph);\n const name = SUBRULE(varOrIri);\n CONSUME(l.symbols.LCurly);\n const triples = OPTION(() => SUBRULE(triplesTemplate)) ?? [];\n CONSUME(l.symbols.RCurly);\n\n return {\n type: 'graph',\n name,\n triples,\n };\n },\n};\n"]}