@traqula/rules-sparql-1-1 0.0.3 → 0.0.4

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 (91) hide show
  1. package/README.md +0 -2
  2. package/lib/Sparql11types.d.ts +373 -62
  3. package/lib/Sparql11types.js.map +1 -1
  4. package/lib/SparqlParser.d.ts +4 -4
  5. package/lib/SparqlParser.js +2 -2
  6. package/lib/SparqlParser.js.map +1 -1
  7. package/lib/expressionHelpers.d.ts +2 -2
  8. package/lib/expressionHelpers.js +19 -21
  9. package/lib/expressionHelpers.js.map +1 -1
  10. package/lib/factory.d.ts +66 -66
  11. package/lib/factory.js.map +1 -1
  12. package/lib/factoryMixins/ContextFactory.d.ts +1 -1
  13. package/lib/factoryMixins/ContextFactory.js.map +1 -1
  14. package/lib/factoryMixins/ExpressionFactory.d.ts +1 -1
  15. package/lib/factoryMixins/ExpressionFactory.js.map +1 -1
  16. package/lib/factoryMixins/GraphRefFactory.d.ts +1 -1
  17. package/lib/factoryMixins/GraphRefFactory.js.map +1 -1
  18. package/lib/factoryMixins/PathFactory.d.ts +1 -1
  19. package/lib/factoryMixins/PathFactory.js.map +1 -1
  20. package/lib/factoryMixins/Patternfactory.d.ts +1 -1
  21. package/lib/factoryMixins/Patternfactory.js.map +1 -1
  22. package/lib/factoryMixins/QueryFactory.d.ts +1 -1
  23. package/lib/factoryMixins/QueryFactory.js.map +1 -1
  24. package/lib/factoryMixins/SolutionModifiersFactory.d.ts +1 -1
  25. package/lib/factoryMixins/SolutionModifiersFactory.js.map +1 -1
  26. package/lib/factoryMixins/TermFactory.d.ts +1 -1
  27. package/lib/factoryMixins/TermFactory.js.map +1 -1
  28. package/lib/factoryMixins/UpdateOperationFactory.d.ts +1 -1
  29. package/lib/factoryMixins/UpdateOperationFactory.js.map +1 -1
  30. package/lib/grammar/builtIn.d.ts +2 -2
  31. package/lib/grammar/builtIn.js +66 -66
  32. package/lib/grammar/builtIn.js.map +1 -1
  33. package/lib/grammar/dataSetClause.d.ts +2 -2
  34. package/lib/grammar/dataSetClause.js +7 -7
  35. package/lib/grammar/dataSetClause.js.map +1 -1
  36. package/lib/grammar/expression.d.ts +2 -2
  37. package/lib/grammar/expression.js +47 -47
  38. package/lib/grammar/expression.js.map +1 -1
  39. package/lib/grammar/general.d.ts +2 -2
  40. package/lib/grammar/general.js +25 -25
  41. package/lib/grammar/general.js.map +1 -1
  42. package/lib/grammar/index.d.ts +2 -2
  43. package/lib/grammar/index.js +2 -2
  44. package/lib/grammar/index.js.map +1 -1
  45. package/lib/grammar/literals.d.ts +2 -2
  46. package/lib/grammar/literals.js +10 -10
  47. package/lib/grammar/literals.js.map +1 -1
  48. package/lib/grammar/propertyPaths.d.ts +3 -3
  49. package/lib/grammar/propertyPaths.js +19 -19
  50. package/lib/grammar/propertyPaths.js.map +1 -1
  51. package/lib/grammar/{queryUnit/queryUnit.d.ts → queryUnit.d.ts} +2 -2
  52. package/lib/grammar/{queryUnit/queryUnit.js → queryUnit.js} +67 -67
  53. package/lib/grammar/queryUnit.js.map +1 -0
  54. package/lib/grammar/solutionModifier.d.ts +2 -2
  55. package/lib/grammar/solutionModifier.js +29 -29
  56. package/lib/grammar/solutionModifier.js.map +1 -1
  57. package/lib/grammar/tripleBlock.d.ts +10 -10
  58. package/lib/grammar/tripleBlock.js +37 -37
  59. package/lib/grammar/tripleBlock.js.map +1 -1
  60. package/lib/grammar/{updateUnit/updateUnit.d.ts → updateUnit.d.ts} +2 -2
  61. package/lib/grammar/{updateUnit/updateUnit.js → updateUnit.js} +78 -78
  62. package/lib/grammar/updateUnit.js.map +1 -0
  63. package/lib/grammar/whereClause.d.ts +2 -2
  64. package/lib/grammar/whereClause.js +69 -69
  65. package/lib/grammar/whereClause.js.map +1 -1
  66. package/lib/index.cjs +1485 -1487
  67. package/lib/index.d.ts +1 -2
  68. package/lib/index.js +1 -2
  69. package/lib/index.js.map +1 -1
  70. package/lib/lexer/graph.d.ts +1 -1
  71. package/lib/lexer/lexer.d.ts +1 -1
  72. package/lib/lexer/terminals.d.ts +69 -0
  73. package/lib/lexer/terminals.js +69 -0
  74. package/lib/lexer/terminals.js.map +1 -1
  75. package/lib/sparql11HelperTypes.d.ts +68 -0
  76. package/lib/sparql11HelperTypes.js +2 -0
  77. package/lib/sparql11HelperTypes.js.map +1 -0
  78. package/lib/utils.d.ts +11 -0
  79. package/lib/utils.js +14 -0
  80. package/lib/utils.js.map +1 -1
  81. package/lib/validation/validators.d.ts +1 -1
  82. package/lib/validation/validators.js.map +1 -1
  83. package/package.json +3 -3
  84. package/lib/RoundTripTypes.d.ts +0 -379
  85. package/lib/RoundTripTypes.js +0 -2
  86. package/lib/RoundTripTypes.js.map +0 -1
  87. package/lib/grammar/queryUnit/queryUnit.js.map +0 -1
  88. package/lib/grammar/updateUnit/updateUnit.js.map +0 -1
  89. package/lib/grammar-helpers/utils.d.ts +0 -12
  90. package/lib/grammar-helpers/utils.js +0 -16
  91. package/lib/grammar-helpers/utils.js.map +0 -1
@@ -1,379 +0,0 @@
1
- import type { Localized, Node } from '@traqula/core';
2
- export type Sparql11Nodes = GraphRef | UpdateOperation | Update | Query | DatasetClauses | TripleCollection | TripleNesting | Pattern | SolutionModifier | Expression | Path | ContextDefinition | Wildcard | Term;
3
- export type GraphRefBase = Node & {
4
- type: 'graphRef';
5
- subType: string;
6
- };
7
- export type GraphRefDefault = GraphRefBase & {
8
- subType: 'default';
9
- };
10
- export type GraphRefNamed = GraphRefBase & {
11
- subType: 'named';
12
- };
13
- export type GraphRefAll = GraphRefBase & {
14
- subType: 'all';
15
- };
16
- export type GraphRefSpecific = GraphRefBase & {
17
- subType: 'specific';
18
- graph: TermIri;
19
- };
20
- export type GraphRef = GraphRefDefault | GraphRefNamed | GraphRefAll | GraphRefSpecific;
21
- export type Quads = PatternBgp | GraphQuads;
22
- export type GraphQuads = Node & {
23
- type: 'graph';
24
- graph: TermIri | TermVariable;
25
- triples: PatternBgp;
26
- };
27
- export type UpdateOperationBase = Node & {
28
- type: 'updateOperation';
29
- subType: string;
30
- };
31
- export type UpdateOperationLoad = UpdateOperationBase & {
32
- subType: 'load';
33
- silent: boolean;
34
- source: TermIri;
35
- destination?: GraphRefSpecific;
36
- };
37
- type UpdateOperationClearDropCreateBase = UpdateOperationBase & {
38
- subType: 'clear' | 'drop' | 'create';
39
- silent: boolean;
40
- destination: GraphRef;
41
- };
42
- export type UpdateOperationClear = UpdateOperationClearDropCreateBase & {
43
- subType: 'clear';
44
- };
45
- export type UpdateOperationDrop = UpdateOperationClearDropCreateBase & {
46
- subType: 'drop';
47
- };
48
- export type UpdateOperationCreate = UpdateOperationClearDropCreateBase & {
49
- subType: 'create';
50
- destination: GraphRefSpecific;
51
- };
52
- type UpdateOperationAddMoveCopy = UpdateOperationBase & {
53
- subType: 'add' | 'move' | 'copy';
54
- silent: boolean;
55
- source: GraphRefDefault | GraphRefSpecific;
56
- destination: GraphRefDefault | GraphRefSpecific;
57
- };
58
- export type UpdateOperationAdd = UpdateOperationAddMoveCopy & {
59
- subType: 'add';
60
- };
61
- export type UpdateOperationMove = UpdateOperationAddMoveCopy & {
62
- subType: 'move';
63
- };
64
- export type UpdateOperationCopy = UpdateOperationAddMoveCopy & {
65
- subType: 'copy';
66
- };
67
- type UpdateOperationInsertDeleteDelWhere = UpdateOperationBase & {
68
- subType: 'insertdata' | 'deletedata' | 'deletewhere';
69
- data: Quads[];
70
- };
71
- export type UpdateOperationInsertData = UpdateOperationInsertDeleteDelWhere & {
72
- subType: 'insertdata';
73
- };
74
- export type UpdateOperationDeleteData = UpdateOperationInsertDeleteDelWhere & {
75
- subType: 'deletedata';
76
- };
77
- export type UpdateOperationDeleteWhere = UpdateOperationInsertDeleteDelWhere & {
78
- subType: 'deletewhere';
79
- };
80
- export type UpdateOperationModify = UpdateOperationBase & {
81
- subType: 'modify';
82
- graph: TermIri | undefined;
83
- insert: Quads[];
84
- delete: Quads[];
85
- from: DatasetClauses;
86
- where: PatternGroup;
87
- };
88
- export type UpdateOperation = UpdateOperationLoad | UpdateOperationClear | UpdateOperationDrop | UpdateOperationCreate | UpdateOperationAdd | UpdateOperationMove | UpdateOperationCopy | UpdateOperationInsertData | UpdateOperationDeleteData | UpdateOperationDeleteWhere | UpdateOperationModify;
89
- export type Update = Node & {
90
- type: 'update';
91
- updates: {
92
- operation?: UpdateOperation;
93
- context: ContextDefinition[];
94
- }[];
95
- };
96
- export type QueryBase = Node & {
97
- type: 'query';
98
- subType: string;
99
- context: ContextDefinition[];
100
- values?: PatternValues;
101
- solutionModifiers: SolutionModifiers;
102
- datasets: DatasetClauses;
103
- where?: PatternGroup;
104
- };
105
- export type QuerySelect = QueryBase & {
106
- subType: 'select';
107
- variables: (TermVariable | PatternBind)[] | [Wildcard];
108
- distinct?: true;
109
- reduced?: true;
110
- where: PatternGroup;
111
- };
112
- export type QueryConstruct = QueryBase & {
113
- subType: 'construct';
114
- template: PatternBgp;
115
- where: PatternGroup;
116
- };
117
- export type QueryDescribe = QueryBase & {
118
- subType: 'describe';
119
- variables: (TermVariable | TermIri)[] | [Wildcard];
120
- };
121
- export type QueryAsk = QueryBase & {
122
- subType: 'ask';
123
- where: PatternGroup;
124
- };
125
- export type Query = QuerySelect | QueryConstruct | QueryDescribe | QueryAsk;
126
- export type SparqlQuery = Query | Update;
127
- export type DatasetClauses = Node & {
128
- type: 'datasetClauses';
129
- clauses: {
130
- clauseType: 'default' | 'named';
131
- value: TermIri;
132
- }[];
133
- };
134
- export type TripleCollectionBase = Node & {
135
- type: 'tripleCollection';
136
- subType: string;
137
- triples: TripleNesting[];
138
- identifier: Term;
139
- };
140
- /**
141
- * The subject of the triples does not have a string manifestation.
142
- */
143
- export type TripleCollectionList = TripleCollectionBase & {
144
- subType: 'list';
145
- identifier: TermBlank;
146
- };
147
- /**
148
- * Bot subject and predicate of the triples do not have a string manifestation.
149
- */
150
- export type TripleCollectionBlankNodeProperties = TripleCollectionBase & {
151
- subType: 'blankNodeProperties';
152
- identifier: TermBlank;
153
- };
154
- export type TripleCollection = TripleCollectionList | TripleCollectionBlankNodeProperties;
155
- export type GraphNode = Term | TripleCollection;
156
- export type TripleNesting = Node & {
157
- type: 'triple';
158
- subject: GraphNode;
159
- predicate: TermIri | TermVariable | Path;
160
- object: GraphNode;
161
- };
162
- export type PatternBase = Node & {
163
- type: 'pattern';
164
- subType: string;
165
- };
166
- export type PatternFilter = PatternBase & {
167
- subType: 'filter';
168
- expression: Expression;
169
- };
170
- export type PatternMinus = PatternBase & {
171
- subType: 'minus';
172
- patterns: Pattern[];
173
- };
174
- export type PatternGroup = PatternBase & {
175
- subType: 'group';
176
- patterns: Pattern[];
177
- };
178
- export type PatternOptional = PatternBase & {
179
- subType: 'optional';
180
- patterns: Pattern[];
181
- };
182
- export type PatternGraph = PatternBase & {
183
- subType: 'graph';
184
- name: TermIri | TermVariable;
185
- patterns: Pattern[];
186
- };
187
- export type PatternUnion = PatternBase & {
188
- subType: 'union';
189
- patterns: PatternGroup[];
190
- };
191
- export type BasicGraphPattern = (TripleNesting | TripleCollection)[];
192
- export type PatternBgp = PatternBase & {
193
- subType: 'bgp';
194
- /**
195
- * Only the first appearance of a subject and predicate have a string manifestation
196
- */
197
- triples: BasicGraphPattern;
198
- };
199
- export type PatternBind = PatternBase & {
200
- subType: 'bind';
201
- expression: Expression;
202
- variable: TermVariable;
203
- };
204
- export type PatternService = PatternBase & {
205
- subType: 'service';
206
- name: TermIri | TermVariable;
207
- silent: boolean;
208
- patterns: Pattern[];
209
- };
210
- /**
211
- * A single list of assignments maps the variable identifier to the value
212
- */
213
- export type ValuePatternRow = Record<string, TermIri | TermLiteral | undefined>;
214
- export type PatternValues = PatternBase & {
215
- subType: 'values';
216
- values: ValuePatternRow[];
217
- };
218
- export type SubSelect = QuerySelect;
219
- export type Pattern = PatternBgp | PatternGroup | PatternUnion | PatternOptional | PatternMinus | PatternGraph | PatternService | PatternFilter | PatternBind | PatternValues | SubSelect;
220
- export type SolutionModifiers = {
221
- group?: SolutionModifierGroup;
222
- having?: SolutionModifierHaving;
223
- order?: SolutionModifierOrder;
224
- limitOffset?: SolutionModifierLimitOffset;
225
- };
226
- export type SolutionModifierBase = Node & {
227
- type: 'solutionModifier';
228
- subType: string;
229
- };
230
- export type SolutionModifierGroupBind = Localized & {
231
- variable: TermVariable;
232
- value: Expression;
233
- };
234
- export type SolutionModifierGroup = SolutionModifierBase & {
235
- subType: 'group';
236
- groupings: (Expression | SolutionModifierGroupBind)[];
237
- };
238
- export type SolutionModifierHaving = SolutionModifierBase & {
239
- subType: 'having';
240
- having: Expression[];
241
- };
242
- export type Ordering = Localized & {
243
- descending: boolean;
244
- expression: Expression;
245
- };
246
- export type SolutionModifierOrder = SolutionModifierBase & {
247
- subType: 'order';
248
- orderDefs: Ordering[];
249
- };
250
- export type SolutionModifierLimitOffset = SolutionModifierBase & {
251
- subType: 'limitOffset';
252
- limit: number | undefined;
253
- offset: number | undefined;
254
- };
255
- export type SolutionModifier = SolutionModifierGroup | SolutionModifierHaving | SolutionModifierOrder | SolutionModifierLimitOffset;
256
- export type ExpressionBase = Node & {
257
- type: 'expression';
258
- subType: string;
259
- };
260
- type ExpressionAggregateBase = ExpressionBase & {
261
- subType: 'aggregate';
262
- distinct: boolean;
263
- expression: [Expression | Wildcard];
264
- };
265
- export type ExpressionAggregateDefault = ExpressionAggregateBase & {
266
- expression: [Expression];
267
- aggregation: string;
268
- };
269
- export type ExpressionAggregateOnWildcard = ExpressionAggregateBase & {
270
- expression: [Wildcard];
271
- aggregation: string;
272
- };
273
- export type ExpressionAggregateSeparator = ExpressionAggregateBase & {
274
- expression: [Expression];
275
- aggregation: string;
276
- separator: string;
277
- };
278
- export type ExpressionAggregate = ExpressionAggregateDefault | ExpressionAggregateOnWildcard | ExpressionAggregateSeparator;
279
- export type ExpressionOperation = ExpressionBase & {
280
- subType: 'operation';
281
- operator: string;
282
- args: Expression[];
283
- };
284
- export type ExpressionPatternOperation = ExpressionBase & {
285
- subType: 'patternOperation';
286
- operator: string;
287
- args: PatternGroup;
288
- };
289
- export type ExpressionFunctionCall = ExpressionBase & {
290
- subType: 'functionCall';
291
- function: TermIri;
292
- distinct: boolean;
293
- args: Expression[];
294
- };
295
- export type Expression = ExpressionOperation | ExpressionPatternOperation | ExpressionFunctionCall | ExpressionAggregate | TermIri | TermVariable | TermLiteral;
296
- export type PropertyPathBase = Node & {
297
- type: 'path';
298
- subType: string;
299
- };
300
- export type PropertyPathChain = PropertyPathBase & {
301
- subType: '|' | '/';
302
- items: Path[];
303
- };
304
- export type PathModified = PropertyPathBase & {
305
- subType: '?' | '*' | '+' | '^';
306
- items: [Path];
307
- };
308
- export type PathNegatedElt = PropertyPathBase & {
309
- subType: '^';
310
- items: [TermIri];
311
- };
312
- export type PathAlternativeLimited = PropertyPathBase & {
313
- subType: '|';
314
- items: (TermIri | PathNegatedElt)[];
315
- };
316
- export type PathNegated = PropertyPathBase & {
317
- subType: '!';
318
- items: [TermIri | PathNegatedElt | PathAlternativeLimited];
319
- };
320
- export type Path = TermIri | PropertyPathChain | PathModified | PathNegated;
321
- export type PathPure = PropertyPathChain | PathModified | PathNegated;
322
- export type ContextDefinitionBase_ = Node & {
323
- type: 'contextDef';
324
- subType: string;
325
- };
326
- export type ContextDefinitionPrefix = ContextDefinitionBase_ & {
327
- subType: 'prefix';
328
- key: string;
329
- value: TermIriFull;
330
- };
331
- export type ContextDefinitionBase = ContextDefinitionBase_ & {
332
- subType: 'base';
333
- value: TermIriFull;
334
- };
335
- export type ContextDefinition = ContextDefinitionPrefix | ContextDefinitionBase;
336
- export type Wildcard = Node & {
337
- type: 'wildcard';
338
- };
339
- export type TermBase = Node & {
340
- type: 'term';
341
- subType: string;
342
- };
343
- export type TermLiteralBase = TermBase & {
344
- subType: 'literal';
345
- value: string;
346
- };
347
- export type TermLiteralStr = TermLiteralBase & {
348
- langOrIri: undefined;
349
- };
350
- export type TermLiteralLangStr = TermLiteralBase & {
351
- langOrIri: string;
352
- };
353
- export type TermLiteralTyped = TermLiteralBase & {
354
- langOrIri: TermIri;
355
- };
356
- export type TermLiteral = TermLiteralStr | TermLiteralLangStr | TermLiteralTyped;
357
- export type TermVariable = TermBase & {
358
- subType: 'variable';
359
- value: string;
360
- };
361
- export type TermIriBase = TermBase & {
362
- subType: 'namedNode';
363
- };
364
- export type TermIriFull = TermIriBase & {
365
- value: string;
366
- };
367
- export type TermIriPrefixed = TermIriBase & {
368
- value: string;
369
- prefix: string;
370
- };
371
- export type TermIri = TermIriFull | TermIriPrefixed;
372
- export type TermBlank = TermBase & {
373
- subType: 'blankNode';
374
- } & {
375
- label: string;
376
- };
377
- export type GraphTerm = TermIri | TermBlank | TermLiteral;
378
- export type Term = GraphTerm | TermVariable;
379
- export {};
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=RoundTripTypes.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RoundTripTypes.js","sourceRoot":"","sources":["RoundTripTypes.ts"],"names":[],"mappings":"","sourcesContent":["import type { Localized, Node } from '@traqula/core';\n\nexport type Sparql11Nodes =\n | GraphRef\n | UpdateOperation\n | Update\n | Query\n | DatasetClauses\n | TripleCollection\n | TripleNesting\n | Pattern\n | SolutionModifier\n | Expression\n | Path\n | ContextDefinition\n | Wildcard\n | Term;\n\nexport type GraphRefBase = Node & {\n type: 'graphRef';\n subType: string;\n};\nexport type GraphRefDefault = GraphRefBase & {\n subType: 'default';\n};\nexport type GraphRefNamed = GraphRefBase & {\n subType: 'named';\n};\nexport type GraphRefAll = GraphRefBase & {\n subType: 'all';\n};\nexport type GraphRefSpecific = GraphRefBase & {\n subType: 'specific';\n graph: TermIri;\n};\nexport type GraphRef =\n | GraphRefDefault\n | GraphRefNamed\n | GraphRefAll\n | GraphRefSpecific;\n\nexport type Quads = PatternBgp | GraphQuads;\n\nexport type GraphQuads = Node & {\n type: 'graph';\n graph: TermIri | TermVariable;\n triples: PatternBgp;\n};\n\n// https://www.w3.org/TR/sparql11-query/#rUpdate1\nexport type UpdateOperationBase = Node & { type: 'updateOperation'; subType: string };\nexport type UpdateOperationLoad = UpdateOperationBase & {\n subType: 'load';\n silent: boolean;\n source: TermIri;\n destination?: GraphRefSpecific;\n};\ntype UpdateOperationClearDropCreateBase = UpdateOperationBase & {\n subType: 'clear' | 'drop' | 'create';\n silent: boolean;\n destination: GraphRef;\n};\nexport type UpdateOperationClear = UpdateOperationClearDropCreateBase & { subType: 'clear' };\nexport type UpdateOperationDrop = UpdateOperationClearDropCreateBase & { subType: 'drop' };\nexport type UpdateOperationCreate = UpdateOperationClearDropCreateBase & {\n subType: 'create';\n destination: GraphRefSpecific;\n};\ntype UpdateOperationAddMoveCopy = UpdateOperationBase & {\n subType: 'add' | 'move' | 'copy';\n silent: boolean;\n source: GraphRefDefault | GraphRefSpecific;\n destination: GraphRefDefault | GraphRefSpecific;\n};\nexport type UpdateOperationAdd = UpdateOperationAddMoveCopy & { subType: 'add' };\nexport type UpdateOperationMove = UpdateOperationAddMoveCopy & { subType: 'move' };\nexport type UpdateOperationCopy = UpdateOperationAddMoveCopy & { subType: 'copy' };\ntype UpdateOperationInsertDeleteDelWhere = UpdateOperationBase & {\n subType: 'insertdata' | 'deletedata' | 'deletewhere';\n data: Quads[];\n};\nexport type UpdateOperationInsertData = UpdateOperationInsertDeleteDelWhere & { subType: 'insertdata' };\nexport type UpdateOperationDeleteData = UpdateOperationInsertDeleteDelWhere & { subType: 'deletedata' };\nexport type UpdateOperationDeleteWhere = UpdateOperationInsertDeleteDelWhere & { subType: 'deletewhere' };\nexport type UpdateOperationModify = UpdateOperationBase & {\n subType: 'modify';\n graph: TermIri | undefined;\n insert: Quads[];\n delete: Quads[];\n from: DatasetClauses;\n where: PatternGroup;\n};\nexport type UpdateOperation =\n | UpdateOperationLoad\n | UpdateOperationClear\n | UpdateOperationDrop\n | UpdateOperationCreate\n | UpdateOperationAdd\n | UpdateOperationMove\n | UpdateOperationCopy\n | UpdateOperationInsertData\n | UpdateOperationDeleteData\n | UpdateOperationDeleteWhere\n | UpdateOperationModify;\n\n// https://www.w3.org/TR/sparql11-query/#rUpdate\nexport type Update = Node & {\n type: 'update';\n updates: {\n operation?: UpdateOperation;\n context: ContextDefinition[];\n }[];\n};\n\n// https://www.w3.org/TR/sparql11-query/#rQueryUnit\nexport type QueryBase = Node & {\n type: 'query';\n subType: string;\n\n context: ContextDefinition[];\n values?: PatternValues;\n solutionModifiers: SolutionModifiers;\n datasets: DatasetClauses;\n where?: PatternGroup;\n};\nexport type QuerySelect = QueryBase & {\n subType: 'select';\n variables: (TermVariable | PatternBind)[] | [Wildcard];\n distinct?: true;\n reduced?: true;\n where: PatternGroup;\n};\nexport type QueryConstruct = QueryBase & {\n subType: 'construct';\n template: PatternBgp;\n where: PatternGroup;\n};\nexport type QueryDescribe = QueryBase & {\n subType: 'describe';\n variables: (TermVariable | TermIri)[] | [Wildcard];\n};\nexport type QueryAsk = QueryBase & {\n subType: 'ask';\n where: PatternGroup;\n};\nexport type Query =\n | QuerySelect\n | QueryConstruct\n | QueryDescribe\n | QueryAsk;\n\nexport type SparqlQuery = Query | Update;\n\n// https://www.w3.org/TR/sparql11-query/#rDatasetClause\nexport type DatasetClauses = Node & {\n type: 'datasetClauses';\n clauses: { clauseType: 'default' | 'named'; value: TermIri }[];\n};\n\n// https://www.w3.org/TR/sparql11-query/#rGraphNode\nexport type TripleCollectionBase = Node & {\n type: 'tripleCollection';\n subType: string;\n triples: TripleNesting[];\n identifier: Term;\n};\n/**\n * The subject of the triples does not have a string manifestation.\n */\nexport type TripleCollectionList = TripleCollectionBase & {\n subType: 'list';\n identifier: TermBlank;\n};\n/**\n * Bot subject and predicate of the triples do not have a string manifestation.\n */\nexport type TripleCollectionBlankNodeProperties = TripleCollectionBase & {\n subType: 'blankNodeProperties';\n identifier: TermBlank;\n};\nexport type TripleCollection =\n | TripleCollectionList\n | TripleCollectionBlankNodeProperties;\n\n// https://www.w3.org/TR/sparql11-query/#rGraphNode\nexport type GraphNode = Term | TripleCollection;\n\n// https://www.w3.org/TR/sparql11-query/#rTriplesBlock\nexport type TripleNesting = Node & {\n type: 'triple';\n subject: GraphNode;\n predicate: TermIri | TermVariable | Path;\n object: GraphNode;\n};\n\nexport type PatternBase = Node & { type: 'pattern'; subType: string };\nexport type PatternFilter = PatternBase & {\n subType: 'filter';\n expression: Expression;\n};\nexport type PatternMinus = PatternBase & {\n subType: 'minus';\n patterns: Pattern[];\n};\n\nexport type PatternGroup = PatternBase & {\n subType: 'group';\n patterns: Pattern[];\n};\nexport type PatternOptional = PatternBase & {\n subType: 'optional';\n patterns: Pattern[];\n};\nexport type PatternGraph = PatternBase & {\n subType: 'graph';\n name: TermIri | TermVariable;\n patterns: Pattern[];\n};\nexport type PatternUnion = PatternBase & {\n subType: 'union';\n patterns: PatternGroup[];\n};\nexport type BasicGraphPattern = (TripleNesting | TripleCollection)[];\nexport type PatternBgp = PatternBase & {\n subType: 'bgp';\n /**\n * Only the first appearance of a subject and predicate have a string manifestation\n */\n triples: BasicGraphPattern;\n};\nexport type PatternBind = PatternBase & {\n subType: 'bind';\n expression: Expression;\n variable: TermVariable;\n};\nexport type PatternService = PatternBase & {\n subType: 'service';\n name: TermIri | TermVariable;\n silent: boolean;\n patterns: Pattern[];\n};\n/**\n * A single list of assignments maps the variable identifier to the value\n */\nexport type ValuePatternRow = Record<string, TermIri | TermLiteral | undefined>;\nexport type PatternValues = PatternBase & {\n subType: 'values';\n values: ValuePatternRow[];\n};\nexport type SubSelect = QuerySelect;\n\nexport type Pattern =\n | PatternBgp\n | PatternGroup\n | PatternUnion\n | PatternOptional\n | PatternMinus\n | PatternGraph\n | PatternService\n | PatternFilter\n | PatternBind\n | PatternValues\n | SubSelect;\n\nexport type SolutionModifiers = {\n group?: SolutionModifierGroup;\n having?: SolutionModifierHaving;\n order?: SolutionModifierOrder;\n limitOffset?: SolutionModifierLimitOffset;\n};\nexport type SolutionModifierBase = Node & { type: 'solutionModifier'; subType: string };\nexport type SolutionModifierGroupBind = Localized & {\n variable: TermVariable;\n value: Expression;\n};\nexport type SolutionModifierGroup = SolutionModifierBase & {\n subType: 'group';\n groupings: (Expression | SolutionModifierGroupBind)[];\n};\nexport type SolutionModifierHaving = SolutionModifierBase & {\n subType: 'having';\n having: Expression[];\n};\nexport type Ordering = Localized & {\n descending: boolean;\n expression: Expression;\n};\nexport type SolutionModifierOrder = SolutionModifierBase & {\n subType: 'order';\n orderDefs: Ordering[];\n};\nexport type SolutionModifierLimitOffset = SolutionModifierBase\n & { subType: 'limitOffset'; limit: number | undefined; offset: number | undefined };\n\nexport type SolutionModifier =\n | SolutionModifierGroup\n | SolutionModifierHaving\n | SolutionModifierOrder\n | SolutionModifierLimitOffset;\n\nexport type ExpressionBase = Node & { type: 'expression'; subType: string };\n\ntype ExpressionAggregateBase = ExpressionBase & {\n subType: 'aggregate';\n distinct: boolean;\n expression: [Expression | Wildcard];\n};\nexport type ExpressionAggregateDefault = ExpressionAggregateBase & {\n expression: [Expression];\n aggregation: string;\n};\nexport type ExpressionAggregateOnWildcard = ExpressionAggregateBase & {\n expression: [Wildcard];\n aggregation: string;\n};\nexport type ExpressionAggregateSeparator = ExpressionAggregateBase & {\n expression: [Expression];\n aggregation: string;\n separator: string;\n};\nexport type ExpressionAggregate =\n | ExpressionAggregateDefault\n | ExpressionAggregateOnWildcard\n | ExpressionAggregateSeparator;\n\nexport type ExpressionOperation = ExpressionBase & {\n subType: 'operation';\n operator: string;\n args: Expression[];\n};\n\nexport type ExpressionPatternOperation = ExpressionBase & {\n subType: 'patternOperation';\n operator: string;\n // Can be a pattern in case of exists and not exists\n args: PatternGroup;\n};\n\nexport type ExpressionFunctionCall = ExpressionBase & {\n subType: 'functionCall';\n function: TermIri;\n distinct: boolean;\n args: Expression[];\n};\n\nexport type Expression =\n | ExpressionOperation\n | ExpressionPatternOperation\n | ExpressionFunctionCall\n | ExpressionAggregate\n | TermIri\n | TermVariable\n | TermLiteral;\n\nexport type PropertyPathBase = Node & { type: 'path'; subType: string };\nexport type PropertyPathChain = PropertyPathBase & {\n subType: '|' | '/';\n items: Path[];\n};\n\nexport type PathModified = PropertyPathBase & {\n subType: '?' | '*' | '+' | '^';\n items: [Path];\n};\n\nexport type PathNegatedElt = PropertyPathBase & {\n subType: '^';\n items: [TermIri];\n};\n\nexport type PathAlternativeLimited = PropertyPathBase & {\n subType: '|';\n items: (TermIri | PathNegatedElt)[];\n};\n\nexport type PathNegated = PropertyPathBase & {\n subType: '!';\n items: [TermIri | PathNegatedElt | PathAlternativeLimited];\n};\n\n// [[88]](https://www.w3.org/TR/sparql11-query/#rPath)\nexport type Path =\n | TermIri\n | PropertyPathChain\n | PathModified\n | PathNegated;\nexport type PathPure = PropertyPathChain | PathModified | PathNegated;\n\nexport type ContextDefinitionBase_ = Node & { type: 'contextDef'; subType: string };\nexport type ContextDefinitionPrefix = ContextDefinitionBase_ & {\n subType: 'prefix';\n key: string;\n value: TermIriFull;\n};\nexport type ContextDefinitionBase = ContextDefinitionBase_ & {\n subType: 'base';\n value: TermIriFull;\n};\nexport type ContextDefinition = ContextDefinitionPrefix | ContextDefinitionBase;\n\nexport type Wildcard = Node & {\n type: 'wildcard';\n};\n\nexport type TermBase = Node & { type: 'term'; subType: string };\nexport type TermLiteralBase = TermBase & {\n subType: 'literal';\n value: string;\n};\nexport type TermLiteralStr = TermLiteralBase & { langOrIri: undefined };\nexport type TermLiteralLangStr = TermLiteralBase & { langOrIri: string };\nexport type TermLiteralTyped = TermLiteralBase & { langOrIri: TermIri };\nexport type TermLiteral = TermLiteralStr | TermLiteralLangStr | TermLiteralTyped;\n\nexport type TermVariable = TermBase & {\n subType: 'variable';\n value: string;\n};\n\nexport type TermIriBase = TermBase & { subType: 'namedNode' };\nexport type TermIriFull = TermIriBase & { value: string };\nexport type TermIriPrefixed = TermIriBase & {\n value: string;\n prefix: string;\n};\nexport type TermIri = TermIriFull | TermIriPrefixed;\n\nexport type TermBlank = TermBase & { subType: 'blankNode' } & { label: string };\n\nexport type GraphTerm = TermIri | TermBlank | TermLiteral;\nexport type Term = GraphTerm | TermVariable;\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"queryUnit.js","sourceRoot":"","sources":["queryUnit.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Localized, RuleDefReturn, Wrap } from '@traqula/core';\nimport type { IToken } from 'chevrotain';\nimport * as l from '../../lexer';\nimport type {\n PatternBgp,\n PatternBind,\n PatternValues,\n Query,\n QueryAsk,\n QueryConstruct,\n QueryDescribe,\n QuerySelect,\n SubSelect,\n TermIri,\n TermVariable,\n Wildcard,\n} from '../../RoundTripTypes';\nimport type {\n SparqlGrammarRule,\n SparqlRule,\n} from '../../Sparql11types';\nimport { queryIsGood } from '../../validation/validators';\nimport { datasetClauseStar } from '../dataSetClause';\nimport { expression } from '../expression';\nimport { prologue, var_, varOrIri, varOrTerm } from '../general';\nimport { solutionModifier } from '../solutionModifier';\nimport { triplesBlock, triplesTemplate } from '../tripleBlock';\nimport { inlineData, whereClause } from '../whereClause';\n\n/**\n * [[1]](https://www.w3.org/TR/sparql11-query/#rQueryUnit)\n */\nexport const queryUnit: SparqlGrammarRule<'queryUnit', Query> = <const> {\n name: 'queryUnit',\n impl: ({ SUBRULE }) => () => SUBRULE(query, undefined),\n};\n\nexport type HandledByBase = 'type' | 'context' | 'values';\n\n/**\n * [[2]](https://www.w3.org/TR/sparql11-query/#rQuery)\n */\nexport const query: SparqlRule<'query', Query> = <const> {\n name: 'query',\n impl: ({ ACTION, SUBRULE, OR }) => (C) => {\n const prologueValues = SUBRULE(prologue, undefined);\n const subType = OR<Omit<Query, HandledByBase>>([\n { ALT: () => SUBRULE(selectQuery, undefined) },\n { ALT: () => SUBRULE(constructQuery, undefined) },\n { ALT: () => SUBRULE(describeQuery, undefined) },\n { ALT: () => SUBRULE(askQuery, undefined) },\n ]);\n const values = SUBRULE(valuesClause, undefined);\n\n return ACTION(() => (<Query>{\n context: prologueValues,\n ...subType,\n type: 'query',\n ...(values && { values }),\n loc: C.factory.sourceLocation(\n prologueValues.at(0),\n subType,\n values,\n ),\n }));\n },\n gImpl: ({ SUBRULE }) => (ast, { factory: F }) => {\n SUBRULE(prologue, ast.context, undefined);\n if (F.isQuerySelect(ast)) {\n SUBRULE(selectQuery, ast, undefined);\n } else if (F.isQueryConstruct(ast)) {\n SUBRULE(constructQuery, ast, undefined);\n } else if (F.isQueryDescribe(ast)) {\n SUBRULE(describeQuery, ast, undefined);\n } else if (F.isQueryAsk(ast)) {\n SUBRULE(askQuery, ast, undefined);\n }\n if (ast.values) {\n SUBRULE(inlineData, ast.values, undefined);\n }\n },\n};\n\n/**\n * [[7]](https://www.w3.org/TR/sparql11-query/#rSelectQuery)\n */\nexport const selectQuery: SparqlRule<'selectQuery', Omit<QuerySelect, HandledByBase>> = <const> {\n name: 'selectQuery',\n impl: ({ ACTION, SUBRULE }) => (C) => {\n const selectVal = SUBRULE(selectClause, undefined);\n const from = SUBRULE(datasetClauseStar, undefined);\n const where = SUBRULE(whereClause, undefined);\n const modifiers = SUBRULE(solutionModifier, undefined);\n\n return ACTION(() => {\n const ret = {\n subType: 'select',\n where: where.val,\n solutionModifiers: modifiers,\n datasets: from,\n ...selectVal.val,\n loc: C.factory.sourceLocation(\n selectVal,\n where,\n modifiers.group,\n modifiers.having,\n modifiers.order,\n modifiers.limitOffset,\n ),\n } satisfies RuleDefReturn<typeof selectQuery>;\n queryIsGood(ret);\n return ret;\n });\n },\n gImpl: ({ SUBRULE }) => (ast, { factory: F }) => {\n SUBRULE(selectClause, F.wrap({\n variables: ast.variables,\n distinct: ast.distinct,\n reduced: ast.reduced,\n }, F.sourceLocation(...ast.variables)), undefined);\n SUBRULE(datasetClauseStar, ast.datasets, undefined);\n SUBRULE(whereClause, F.wrap(ast.where, ast.where.loc), undefined);\n SUBRULE(solutionModifier, ast.solutionModifiers, undefined);\n },\n};\n\n/**\n * [[8]](https://www.w3.org/TR/sparql11-query/#rSubSelect)\n */\nexport const subSelect: SparqlGrammarRule<'subSelect', SubSelect> = <const> {\n name: 'subSelect',\n impl: ({ ACTION, SUBRULE }) => (C) => {\n const selectVal = SUBRULE(selectClause, undefined);\n const where = SUBRULE(whereClause, undefined);\n const modifiers = SUBRULE(solutionModifier, undefined);\n const values = SUBRULE(valuesClause, undefined);\n\n return ACTION(() => C.factory.querySelect({\n where: where.val,\n datasets: C.factory.datasetClauses([], C.factory.sourceLocation()),\n context: [],\n solutionModifiers: modifiers,\n ...selectVal.val,\n ...(values && { values }),\n }, C.factory.sourceLocation(\n selectVal,\n where,\n modifiers.group,\n modifiers.having,\n modifiers.order,\n modifiers.limitOffset,\n values,\n )));\n },\n};\n\n/**\n * [[9]](https://www.w3.org/TR/sparql11-query/#rSelectClause)\n */\nexport const selectClause: SparqlRule<'selectClause', Wrap<Pick<QuerySelect, 'variables' | 'distinct' | 'reduced'>>> = {\n name: 'selectClause',\n impl: ({\n ACTION,\n AT_LEAST_ONE,\n SUBRULE1,\n SUBRULE2,\n CONSUME,\n OPTION,\n OR1,\n OR2,\n OR3,\n }) => (C) => {\n const select = CONSUME(l.select);\n const couldParseAgg = ACTION(() => C.parseMode.has('canParseAggregate') || !C.parseMode.add('canParseAggregate'));\n\n const distinctAndReduced = OPTION(() => OR1<[boolean, boolean]>([\n { ALT: () => {\n CONSUME(l.distinct);\n return <const> [ true, false ];\n } },\n { ALT: () => {\n CONSUME(l.reduced);\n return <const> [ false, true ];\n } },\n ])) ?? [ false, false ];\n const distRed = ACTION(() => {\n const [ distinct, reduced ] = distinctAndReduced;\n return {\n ...(distinct && { distinct }),\n ...(reduced && { reduced }),\n };\n });\n\n let last: Localized | IToken;\n const val = OR2<RuleDefReturn<typeof selectClause>['val']>([\n { ALT: () => {\n const star = CONSUME(l.symbols.star);\n return ACTION(() => {\n last = star;\n return { variables: [ C.factory.wildcard(C.factory.sourceLocation(star)) ], ...distRed };\n });\n } },\n { ALT: () => {\n const usedVars: TermVariable[] = [];\n const variables: (TermVariable | PatternBind)[] = [];\n AT_LEAST_ONE(() => OR3([\n { ALT: () => {\n const raw = SUBRULE1(var_, undefined);\n ACTION(() => {\n if (usedVars.some(v => v.value === raw.value)) {\n throw new Error(`Variable ${raw.value} used more than once in SELECT clause`);\n }\n usedVars.push(raw);\n variables.push(raw);\n last = raw;\n });\n } },\n { ALT: () => {\n const open = CONSUME(l.symbols.LParen);\n const expr = SUBRULE1(expression, undefined);\n CONSUME(l.as);\n const variable = SUBRULE2(var_, undefined);\n const close = CONSUME(l.symbols.RParen);\n ACTION(() => {\n last = close;\n if (usedVars.some(v => v.value === variable.value)) {\n throw new Error(`Variable ${variable.value} used more than once in SELECT clause`);\n }\n usedVars.push(variable);\n variables.push(C.factory.patternBind(expr, variable, C.factory.sourceLocation(open, last)));\n });\n } },\n ]));\n return { variables, ...distRed };\n } },\n ]);\n ACTION(() => !couldParseAgg && C.parseMode.delete('canParseAggregate'));\n return ACTION(() => C.factory.wrap(val, C.factory.sourceLocation(select, last)));\n },\n gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F }) => {\n F.printFilter(ast, () => {\n PRINT_WORD('SELECT');\n if (ast.val.distinct) {\n PRINT_WORD('DISTINCT');\n } else if (ast.val.reduced) {\n PRINT_WORD('REDUCED');\n }\n });\n for (const variable of ast.val.variables) {\n if (F.isWildcard(variable)) {\n F.printFilter(ast, () => PRINT_WORD('*'));\n } else if (F.isTerm(variable)) {\n SUBRULE(var_, variable, undefined);\n } else {\n F.printFilter(ast, () => PRINT_WORD('('));\n SUBRULE(expression, variable.expression, undefined);\n F.printFilter(ast, () => PRINT_WORD('AS'));\n SUBRULE(var_, variable.variable, undefined);\n F.printFilter(ast, () => PRINT_WORD(')'));\n }\n }\n },\n};\n\n/**\n * [[10]](https://www.w3.org/TR/sparql11-query/#rConstructQuery)\n */\nexport const constructQuery: SparqlRule<'constructQuery', Omit<QueryConstruct, HandledByBase>> = <const> {\n name: 'constructQuery',\n impl: ({ ACTION, SUBRULE1, SUBRULE2, CONSUME, OR }) => (C) => {\n const construct = CONSUME(l.construct);\n return OR<Omit<QueryConstruct, HandledByBase>>([\n { ALT: () => {\n const template = SUBRULE1(constructTemplate, undefined);\n const from = SUBRULE1(datasetClauseStar, undefined);\n const where = SUBRULE1(whereClause, undefined);\n const modifiers = SUBRULE1(solutionModifier, undefined);\n return ACTION(() => ({\n subType: 'construct',\n template: template.val,\n datasets: from,\n where: where.val,\n solutionModifiers: modifiers,\n loc: C.factory.sourceLocation(\n construct,\n where,\n modifiers.group,\n modifiers.having,\n modifiers.order,\n modifiers.limitOffset,\n ),\n } satisfies Omit<QueryConstruct, HandledByBase>));\n } },\n { ALT: () => {\n const from = SUBRULE2(datasetClauseStar, undefined);\n CONSUME(l.where);\n // ConstructTemplate is same as '{' TriplesTemplate? '}'\n const template = SUBRULE2(constructTemplate, undefined);\n const modifiers = SUBRULE2(solutionModifier, undefined);\n\n return ACTION(() => ({\n subType: 'construct',\n template: template.val,\n datasets: from,\n where: C.factory.patternGroup([ template.val ], C.factory.sourceLocation()),\n solutionModifiers: modifiers,\n loc: C.factory.sourceLocation(\n construct,\n template,\n modifiers.group,\n modifiers.having,\n modifiers.order,\n modifiers.limitOffset,\n ),\n }));\n } },\n ]);\n },\n gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F }) => {\n F.printFilter(ast, () => PRINT_WORD('CONSTRUCT'));\n if (!F.isSourceLocationNoMaterialize(ast.where.loc)) {\n // You are NOT in second case construct\n F.printFilter(ast, () => PRINT_WORD('{'));\n SUBRULE(triplesBlock, ast.template, undefined);\n F.printFilter(ast, () => PRINT_WORD('}'));\n }\n SUBRULE(datasetClauseStar, ast.datasets, undefined);\n if (F.isSourceLocationNoMaterialize(ast.where.loc)) {\n SUBRULE(whereClause, F.wrap(F.patternGroup([ ast.template ], ast.template.loc), ast.template.loc), undefined);\n } else {\n SUBRULE(whereClause, F.wrap(ast.where, ast.where.loc), undefined);\n }\n SUBRULE(solutionModifier, ast.solutionModifiers, undefined);\n },\n};\n\n/**\n * [[11]](https://www.w3.org/TR/sparql11-query/#rDescribeQuery)\n */\nexport const describeQuery: SparqlRule<'describeQuery', Omit<QueryDescribe, HandledByBase>> = <const> {\n name: 'describeQuery',\n impl: ({ ACTION, AT_LEAST_ONE, SUBRULE1, CONSUME, OPTION, OR }) => (C) => {\n const describe = CONSUME(l.describe);\n const variables = OR<QueryDescribe['variables']>([\n { ALT: () => {\n const variables: (TermVariable | TermIri)[] = [];\n AT_LEAST_ONE(() => {\n variables.push(SUBRULE1(varOrIri, undefined));\n });\n return variables;\n } },\n { ALT: () => {\n const star = CONSUME(l.symbols.star);\n return [ ACTION(() => C.factory.wildcard(C.factory.sourceLocation(star))) ];\n } },\n ]);\n const from = SUBRULE1(datasetClauseStar, undefined);\n const where = OPTION(() => SUBRULE1(whereClause, undefined));\n const modifiers = SUBRULE1(solutionModifier, undefined);\n return ACTION(() => ({\n subType: 'describe',\n variables,\n datasets: from,\n ...(where && { where: where.val }),\n solutionModifiers: modifiers,\n loc: C.factory.sourceLocation(\n describe,\n ...variables,\n from,\n where,\n modifiers.group,\n modifiers.having,\n modifiers.order,\n modifiers.limitOffset,\n ),\n }));\n },\n gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F }) => {\n F.printFilter(ast, () => PRINT_WORD('DESCRIBE'));\n if (F.isWildcard(ast.variables[0])) {\n F.printFilter(ast, () => PRINT_WORD('*'));\n } else {\n for (const variable of (<Exclude<QueryDescribe['variables'], [Wildcard]>> ast.variables)) {\n SUBRULE(varOrTerm, variable, undefined);\n }\n }\n SUBRULE(datasetClauseStar, ast.datasets, undefined);\n if (ast.where) {\n SUBRULE(whereClause, F.wrap(ast.where, ast.loc), undefined);\n }\n SUBRULE(solutionModifier, ast.solutionModifiers, undefined);\n },\n};\n\n/**\n * [[12]](https://www.w3.org/TR/sparql11-query/#rAskQuery)\n */\nexport const askQuery: SparqlRule<'askQuery', Omit<QueryAsk, HandledByBase>> = <const> {\n name: 'askQuery',\n impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {\n const ask = CONSUME(l.ask);\n const from = SUBRULE(datasetClauseStar, undefined);\n const where = SUBRULE(whereClause, undefined);\n const modifiers = SUBRULE(solutionModifier, undefined);\n\n return ACTION(() => ({\n subType: 'ask',\n datasets: from,\n where: where.val,\n solutionModifiers: modifiers,\n loc: C.factory.sourceLocation(\n ask,\n from,\n where,\n modifiers.group,\n modifiers.having,\n modifiers.order,\n modifiers.limitOffset,\n ),\n } satisfies RuleDefReturn<typeof askQuery>));\n },\n gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F }) => {\n F.printFilter(ast, () => PRINT_WORD('ASK'));\n SUBRULE(datasetClauseStar, ast.datasets, undefined);\n SUBRULE(whereClause, F.wrap(ast.where, ast.loc), undefined);\n SUBRULE(solutionModifier, ast.solutionModifiers, undefined);\n },\n};\n\n/**\n * [[28]](https://www.w3.org/TR/sparql11-query/#rValuesClause)\n */\nexport const valuesClause: SparqlGrammarRule<'valuesClause', PatternValues | undefined> = <const> {\n name: 'valuesClause',\n impl: ({ OPTION, SUBRULE }) => () => OPTION(() => SUBRULE(inlineData, undefined)),\n};\n\n/**\n * [[73]](https://www.w3.org/TR/sparql11-query/#ConstructTemplate)\n */\nexport const constructTemplate: SparqlGrammarRule<'constructTemplate', Wrap<PatternBgp>> = <const> {\n name: 'constructTemplate',\n impl: ({ ACTION, SUBRULE1, CONSUME, OPTION }) => (C) => {\n const open = CONSUME(l.symbols.LCurly);\n const triples = OPTION(() => SUBRULE1(constructTriples, undefined));\n const close = CONSUME(l.symbols.RCurly);\n\n return ACTION(() => C.factory.wrap(\n triples ?? C.factory.patternBgp([], C.factory.sourceLocation()),\n C.factory.sourceLocation(open, close),\n ));\n },\n};\n\n/**\n * [[12]](https://www.w3.org/TR/sparql11-query/#rConstructTriples)\n */\nexport const constructTriples: SparqlGrammarRule<'constructTriples', PatternBgp> = <const> {\n name: 'constructTriples',\n impl: triplesTemplate.impl,\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"updateUnit.js","sourceRoot":"","sources":["updateUnit.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Localized, RuleDefReturn, Wrap } from '@traqula/core';\nimport { unCapitalize } from '@traqula/core';\nimport type { IToken, TokenType } from 'chevrotain';\nimport * as l from '../../lexer';\nimport type {\n GraphQuads,\n GraphRef,\n GraphRefDefault,\n GraphRefSpecific,\n Quads,\n Update,\n UpdateOperation,\n UpdateOperationAdd,\n UpdateOperationClear,\n UpdateOperationCopy,\n UpdateOperationCreate,\n UpdateOperationDeleteData,\n UpdateOperationDeleteWhere,\n UpdateOperationDrop,\n UpdateOperationInsertData,\n UpdateOperationLoad,\n UpdateOperationModify,\n UpdateOperationMove,\n} from '../../RoundTripTypes';\nimport type {\n SparqlGrammarRule,\n SparqlRule,\n} from '../../Sparql11types';\nimport { updateNoReuseBlankNodeLabels } from '../../validation/validators';\nimport { usingClauseStar } from '../dataSetClause';\nimport { prologue, varOrIri, varOrTerm } from '../general';\nimport { iri } from '../literals';\nimport { triplesBlock, triplesTemplate } from '../tripleBlock';\nimport { groupGraphPattern } from '../whereClause';\n\n/**\n * [[3]](https://www.w3.org/TR/sparql11-query/#rUpdateUnit)\n */\nexport const updateUnit: SparqlGrammarRule<'updateUnit', Update> = <const> {\n name: 'updateUnit',\n impl: ({ SUBRULE }) => () => SUBRULE(update, undefined),\n};\n\n/**\n * [[29]](https://www.w3.org/TR/sparql11-query/#rUpdate)\n */\nexport const update: SparqlRule<'update', Update> = <const> {\n name: 'update',\n impl: ({ ACTION, SUBRULE, SUBRULE1, SUBRULE2, CONSUME, OPTION1, MANY }) => (C) => {\n // Override prologueValues on new reads of prologue and sink them into updates later\n const updates: Update['updates'] = [];\n const prologueValues = SUBRULE1(prologue, undefined);\n updates.push({ context: prologueValues });\n\n let parsedSemi = true;\n MANY({\n GATE: () => parsedSemi,\n DEF: () => {\n parsedSemi = false;\n updates.at(-1)!.operation = SUBRULE(update1, undefined);\n\n OPTION1(() => {\n CONSUME(l.symbols.semi);\n\n parsedSemi = true;\n const innerPrologue = SUBRULE2(prologue, undefined);\n updates.push({ context: innerPrologue });\n });\n },\n });\n return ACTION(() => {\n const update = {\n type: 'update',\n updates,\n loc: C.factory.sourceLocation(\n ...updates[0].context,\n updates[0].operation,\n ...updates.at(-1)!.context,\n updates.at(-1)?.operation,\n ),\n } satisfies Update;\n updateNoReuseBlankNodeLabels(update);\n return update;\n });\n },\n gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F }) => {\n for (const update of ast.updates) {\n SUBRULE(prologue, update.context, undefined);\n if (update.operation) {\n SUBRULE(update1, update.operation, undefined);\n F.printFilter(ast, () => PRINT_WORD(' ;\\n'));\n }\n }\n },\n};\n\n/**\n * [[30]](https://www.w3.org/TR/sparql11-query/#rUpdate1)\n */\nexport const update1: SparqlRule<'update1', UpdateOperation> = <const> {\n name: 'update1',\n impl: ({ SUBRULE, OR }) => () => OR<UpdateOperation>([\n { ALT: () => SUBRULE(load, undefined) },\n { ALT: () => SUBRULE(clear, undefined) },\n { ALT: () => SUBRULE(drop, undefined) },\n { ALT: () => SUBRULE(add, undefined) },\n { ALT: () => SUBRULE(move, undefined) },\n { ALT: () => SUBRULE(copy, undefined) },\n { ALT: () => SUBRULE(create, undefined) },\n { ALT: () => SUBRULE(insertData, undefined) },\n { ALT: () => SUBRULE(deleteData, undefined) },\n { ALT: () => SUBRULE(deleteWhere, undefined) },\n { ALT: () => SUBRULE(modify, undefined) },\n ]),\n gImpl: ({ SUBRULE }) => (ast) => {\n switch (ast.subType) {\n case ('load'):\n SUBRULE(load, ast, undefined);\n break;\n case ('clear'):\n SUBRULE(clear, ast, undefined);\n break;\n case ('drop'):\n SUBRULE(drop, ast, undefined);\n break;\n case ('add'):\n SUBRULE(add, ast, undefined);\n break;\n case ('move'):\n SUBRULE(move, ast, undefined);\n break;\n case ('copy'):\n SUBRULE(copy, ast, undefined);\n break;\n case ('create'):\n SUBRULE(create, ast, undefined);\n break;\n case ('insertdata'):\n SUBRULE(insertData, ast, undefined);\n break;\n case ('deletedata'):\n SUBRULE(deleteData, ast, undefined);\n break;\n case ('deletewhere'):\n SUBRULE(deleteWhere, ast, undefined);\n break;\n case ('modify'):\n SUBRULE(modify, ast, undefined);\n break;\n }\n },\n};\n\n/**\n * [[31]](https://www.w3.org/TR/sparql11-query/#rLoad)\n */\nexport const load: SparqlRule<'load', UpdateOperationLoad> = <const> {\n name: 'load',\n impl: ({ ACTION, SUBRULE1, CONSUME, OPTION1, OPTION2 }) => (C) => {\n const loadToken = CONSUME(l.load);\n const silent = OPTION1(() => CONSUME(l.silent));\n const source = SUBRULE1(iri, undefined);\n const destination = OPTION2(() => {\n CONSUME(l.loadInto);\n return SUBRULE1(graphRef, undefined);\n });\n return ACTION(() => C.factory.updateOperationLoad(\n C.factory.sourceLocation(loadToken, source, destination),\n source,\n Boolean(silent),\n destination,\n ));\n },\n gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F }) => {\n F.printFilter(ast, () => {\n PRINT_WORD('LOAD');\n if (ast.silent) {\n PRINT_WORD('SILENT');\n }\n });\n SUBRULE(iri, ast.source, undefined);\n if (ast.destination) {\n F.printFilter(ast, () => PRINT_WORD('INTO'));\n SUBRULE(graphRefAll, ast.destination, undefined);\n }\n },\n};\n\nfunction clearOrDrop<T extends 'Clear' | 'Drop'>(operation: TokenType & { name: T }):\nSparqlRule<Uncapitalize<T>, UpdateOperationClear | UpdateOperationDrop> {\n return {\n name: unCapitalize(operation.name),\n impl: ({ ACTION, SUBRULE1, CONSUME, OPTION }) => (C) => {\n const opToken = CONSUME(operation);\n const silent = OPTION(() => CONSUME(l.silent));\n const destination = SUBRULE1(graphRefAll, undefined);\n return ACTION(() => C.factory.updateOperationClearDrop(\n unCapitalize(operation.name),\n Boolean(silent),\n destination,\n C.factory.sourceLocation(opToken, destination),\n ));\n },\n gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F }) => {\n F.printFilter(ast, () => {\n PRINT_WORD(operation.name.toUpperCase());\n if (ast.silent) {\n PRINT_WORD('SILENT');\n }\n });\n SUBRULE(graphRefAll, ast.destination, undefined);\n },\n };\n}\n\n/**\n * [[32]](https://www.w3.org/TR/sparql11-query/#rClear)\n */\nexport const clear = clearOrDrop(l.clear);\n\n/**\n * [[33]](https://www.w3.org/TR/sparql11-query/#rDrop)\n */\nexport const drop = clearOrDrop(l.drop);\n\n/**\n * [[34]](https://www.w3.org/TR/sparql11-query/#rCreate)\n */\nexport const create: SparqlRule<'create', UpdateOperationCreate> = <const> {\n name: 'create',\n impl: ({ ACTION, SUBRULE1, CONSUME, OPTION }) => (C) => {\n const createToken = CONSUME(l.create);\n const silent = OPTION(() => CONSUME(l.silent));\n const destination = SUBRULE1(graphRef, undefined);\n\n return ACTION(() => C.factory.updateOperationCreate(\n destination,\n Boolean(silent),\n C.factory.sourceLocation(createToken, destination),\n ));\n },\n gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F }) => {\n F.printFilter(ast, () => {\n PRINT_WORD('CREATE');\n if (ast.silent) {\n PRINT_WORD('SILENT');\n }\n });\n SUBRULE(graphRefAll, ast.destination, undefined);\n },\n};\n\nfunction copyMoveAddOperation<T extends 'Copy' | 'Move' | 'Add'>(operation: TokenType & { name: T }):\nSparqlRule<Uncapitalize<T>, UpdateOperationAdd | UpdateOperationMove | UpdateOperationCopy> {\n return {\n name: unCapitalize(operation.name),\n impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, OPTION }) => (C) => {\n const op = CONSUME(operation);\n const silent = OPTION(() => CONSUME(l.silent));\n const source = SUBRULE1(graphOrDefault, undefined);\n CONSUME(l.to);\n const destination = SUBRULE2(graphOrDefault, undefined);\n\n return ACTION(() => C.factory.updateOperationAddMoveCopy(\n unCapitalize(operation.name),\n source,\n destination,\n Boolean(silent),\n C.factory.sourceLocation(op, destination),\n ));\n },\n gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F }) => {\n F.printFilter(ast, () => {\n PRINT_WORD(operation.name.toUpperCase());\n if (ast.silent) {\n PRINT_WORD('SILENT');\n }\n });\n SUBRULE(graphRefAll, ast.source, undefined);\n F.printFilter(ast, () => PRINT_WORD('TO'));\n SUBRULE(graphRefAll, ast.destination, undefined);\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 * [[48]](https://www.w3.org/TR/sparql11-query/#rQuadPattern)\n */\nexport const quadPattern: SparqlGrammarRule<'quadPattern', Wrap<Quads[]>> = <const> {\n name: 'quadPattern',\n impl: ({ ACTION, SUBRULE1, CONSUME }) => (C) => {\n const open = CONSUME(l.symbols.LCurly);\n const val = SUBRULE1(quads, undefined);\n const close = CONSUME(l.symbols.RCurly);\n return ACTION(() => C.factory.wrap(val.val, C.factory.sourceLocation(open, close)));\n },\n};\n\n/**\n * [[49]](https://www.w3.org/TR/sparql11-query/#rQuadData)\n */\nexport const quadData: SparqlGrammarRule<'quadData', Wrap<Quads[]>> = <const> {\n name: 'quadData',\n impl: ({ ACTION, SUBRULE1, CONSUME }) => (C) => {\n const open = CONSUME(l.symbols.LCurly);\n\n const couldParseVars = ACTION(() => C.parseMode.delete('canParseVars'));\n const val = SUBRULE1(quads, undefined);\n ACTION(() => couldParseVars && C.parseMode.add('canParseVars'));\n\n const close = CONSUME(l.symbols.RCurly);\n return ACTION(() => C.factory.wrap(val.val, C.factory.sourceLocation(open, close)));\n },\n};\n\nfunction insertDeleteDelWhere<T extends string>(\n name: T,\n subType: 'insertdata' | 'deletedata' | 'deletewhere',\n cons1: TokenType,\n cons2: TokenType,\n dataRule: SparqlGrammarRule<any, Wrap<Quads[]>>,\n): SparqlRule<T, UpdateOperationInsertData | UpdateOperationDeleteData | UpdateOperationDeleteWhere> {\n return {\n name,\n impl: ({ ACTION, SUBRULE1, CONSUME }) => (C) => {\n const insDelToken = CONSUME(cons1);\n CONSUME(cons2);\n\n let couldCreateBlankNodes = true;\n if (name !== 'insertData') {\n couldCreateBlankNodes = ACTION(() => C.parseMode.delete('canCreateBlankNodes'));\n }\n const data = SUBRULE1(dataRule, undefined);\n if (name !== 'insertData') {\n ACTION(() => couldCreateBlankNodes && C.parseMode.add('canCreateBlankNodes'));\n }\n\n return ACTION(() =>\n C.factory.updateOperationInsDelDataWhere(subType, data.val, C.factory.sourceLocation(insDelToken, data)));\n },\n gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F }) => {\n F.printFilter(ast, () => PRINT_WORD(\n subType === 'insertdata' ?\n 'INSERT DATA' :\n (subType === 'deletedata' ? 'DELETE DATA' : 'DELETE WHERE'),\n '{',\n ));\n SUBRULE(quads, F.wrap(ast.data, ast.loc), undefined);\n F.printFilter(ast, () => PRINT_WORD('}'));\n },\n };\n}\n\n/**\n * [[38]](https://www.w3.org/TR/sparql11-query/#rInsertData)\n */\nexport const insertData = insertDeleteDelWhere('insertData', 'insertdata', l.insertClause, l.dataClause, quadData);\n\n/**\n * [[39]](https://www.w3.org/TR/sparql11-query/#rDeleteData)\n */\nexport const deleteData = insertDeleteDelWhere('deleteData', 'deletedata', l.deleteClause, l.dataClause, quadData);\n\n/**\n * [[40]](https://www.w3.org/TR/sparql11-query/#rDeleteWhere)\n */\nexport const deleteWhere = insertDeleteDelWhere('deleteWhere', 'deletewhere', l.deleteClause, l.where, quadPattern);\n\n/**\n * [[41]](https://www.w3.org/TR/sparql11-query/#rModify)\n */\nexport const modify: SparqlRule<'modify', UpdateOperationModify> = <const> {\n name: 'modify',\n impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, OPTION1, OPTION2, OR }) => (C) => {\n const graph = OPTION1(() => {\n const withToken = CONSUME(l.modifyWith);\n const graph = SUBRULE1(iri, undefined);\n return { withToken, graph };\n });\n const { insert, del } = OR<{\n del: RuleDefReturn<typeof deleteClause> | undefined;\n insert: RuleDefReturn<typeof insertClause> | undefined;\n }>([\n { ALT: () => {\n const del = SUBRULE1(deleteClause, undefined);\n const insert = OPTION2(() => SUBRULE1(insertClause, undefined));\n return { del, insert };\n } },\n { ALT: () => {\n const insert = SUBRULE2(insertClause, undefined);\n return { insert, del: undefined };\n } },\n ]);\n const using = SUBRULE1(usingClauseStar, undefined);\n CONSUME(l.where);\n const where = SUBRULE1(groupGraphPattern, undefined);\n\n return ACTION(() => C.factory.updateOperationModify(\n C.factory.sourceLocation(graph?.withToken, del, insert, where),\n insert?.val ?? [],\n del?.val ?? [],\n where,\n using,\n graph?.graph,\n ));\n },\n gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F }) => {\n if (ast.graph) {\n F.printFilter(ast, () => PRINT_WORD('WITH'));\n SUBRULE(iri, ast.graph, undefined);\n }\n if (ast.delete.length > 0) {\n F.printFilter(ast, () => PRINT_WORD('DELETE', '{'));\n SUBRULE(quads, F.wrap(ast.delete, ast.loc), undefined);\n F.printFilter(ast, () => PRINT_WORD('}'));\n }\n if (ast.insert.length > 0) {\n F.printFilter(ast, () => PRINT_WORD('INSERT', '{'));\n SUBRULE(quads, F.wrap(ast.insert, ast.loc), undefined);\n F.printFilter(ast, () => PRINT_WORD('}'));\n }\n SUBRULE(usingClauseStar, ast.from, undefined);\n F.printFilter(ast, () => PRINT_WORD('WHERE'));\n SUBRULE(groupGraphPattern, ast.where, undefined);\n },\n};\n\n/**\n * [[42]](https://www.w3.org/TR/sparql11-query/#rDeleteClause)\n */\nexport const deleteClause: SparqlGrammarRule<'deleteClause', Wrap<Quads[]>> = <const> {\n name: 'deleteClause',\n impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {\n const delToken = CONSUME(l.deleteClause);\n const couldCreateBlankNodes = ACTION(() => C.parseMode.delete('canCreateBlankNodes'));\n const del = SUBRULE(quadPattern, undefined);\n ACTION(() => couldCreateBlankNodes && C.parseMode.add('canCreateBlankNodes'));\n\n return ACTION(() => C.factory.wrap(del.val, C.factory.sourceLocation(delToken, del)));\n },\n};\n\n/**\n * [[43]](https://www.w3.org/TR/sparql11-query/#rInsertClause)\n */\nexport const insertClause: SparqlGrammarRule<'insertClause', Wrap<Quads[]>> = <const> {\n name: 'insertClause',\n impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {\n const insertToken = CONSUME(l.insertClause);\n const insert = SUBRULE(quadPattern, undefined);\n\n return ACTION(() => C.factory.wrap(insert.val, C.factory.sourceLocation(insertToken, insert)));\n },\n};\n\n/**\n * [[45]](https://www.w3.org/TR/sparql11-query/#rGraphOrDefault)\n */\nexport const graphOrDefault: SparqlGrammarRule<'graphOrDefault', GraphRefDefault | GraphRefSpecific> = <const> {\n name: 'graphOrDefault',\n impl: ({ ACTION, SUBRULE1, CONSUME, OPTION, OR }) => C => OR<GraphRefDefault | GraphRefSpecific>([\n { ALT: () => {\n const def = CONSUME(l.graph.default_);\n return ACTION(() => C.factory.graphRefDefault(C.factory.sourceLocation(def)));\n } },\n { ALT: () => {\n const graph = OPTION(() => CONSUME(l.graph.graph));\n const name = SUBRULE1(iri, undefined);\n return ACTION(() =>\n C.factory.graphRefSpecific(name, C.factory.sourceLocation(graph, name)));\n } },\n ]),\n};\n\n/**\n * [[46]](https://www.w3.org/TR/sparql11-query/#rGraphRef)\n */\nexport const graphRef: SparqlRule<'graphRef', GraphRefSpecific> = <const> {\n name: 'graphRef',\n impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {\n const graph = CONSUME(l.graph.graph);\n const val = SUBRULE(iri, undefined);\n return ACTION(() => C.factory.graphRefSpecific(val, C.factory.sourceLocation(graph, val)));\n },\n gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F }) => {\n F.printFilter(ast, () => PRINT_WORD('GRAPH'));\n SUBRULE(iri, ast.graph, undefined);\n },\n};\n\n/**\n * [[47]](https://www.w3.org/TR/sparql11-query/#rGraphRefAll)\n */\nexport const graphRefAll: SparqlRule<'graphRefAll', GraphRef> = <const> {\n name: 'graphRefAll',\n impl: ({ ACTION, SUBRULE, CONSUME, OR }) => C => OR<GraphRef>([\n { ALT: () => SUBRULE(graphRef, undefined) },\n { ALT: () => {\n const def = CONSUME(l.graph.default_);\n return ACTION(() => C.factory.graphRefDefault(C.factory.sourceLocation(def)));\n } },\n { ALT: () => {\n const named = CONSUME(l.graph.named);\n return ACTION(() => C.factory.graphRefNamed(C.factory.sourceLocation(named)));\n } },\n { ALT: () => {\n const graphAll = CONSUME(l.graph.graphAll);\n return ACTION(() => C.factory.graphRefAll(C.factory.sourceLocation(graphAll)));\n } },\n ]),\n gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F }) => {\n if (F.isGraphRefSpecific(ast)) {\n SUBRULE(graphRef, ast, undefined);\n } else if (F.isGraphRefDefault(ast)) {\n F.printFilter(ast, () => PRINT_WORD('DEFAULT'));\n } else if (F.isGraphRefNamed(ast)) {\n F.printFilter(ast, () => PRINT_WORD('NAMED'));\n } else if (F.isGraphRefAll(ast)) {\n F.printFilter(ast, () => PRINT_WORD('ALL'));\n }\n },\n};\n\n/**\n * [[50]](https://www.w3.org/TR/sparql11-query/#rQuads)\n */\nexport const quads: SparqlRule<'quads', Wrap<Quads[]>> = <const> {\n name: 'quads',\n impl: ({ ACTION, SUBRULE, CONSUME, MANY, SUBRULE1, SUBRULE2, OPTION1, OPTION2, OPTION3 }) => (C) => {\n const quads: Quads[] = [];\n let last: IToken | Localized | undefined;\n\n OPTION1(() => {\n const triples = SUBRULE1(triplesTemplate, undefined);\n last = triples;\n ACTION(() => quads.push(triples));\n });\n\n MANY(() => {\n const notTriples = SUBRULE(quadsNotTriples, undefined);\n last = notTriples;\n quads.push(notTriples);\n OPTION2(() => {\n const dotToken = CONSUME(l.symbols.dot);\n last = dotToken;\n return dotToken;\n });\n OPTION3(() => {\n const triples = SUBRULE2(triplesTemplate, undefined);\n last = triples;\n ACTION(() => quads.push(triples));\n });\n });\n\n return ACTION(() => C.factory.wrap(quads, C.factory.sourceLocation(quads.at(0), last)));\n },\n gImpl: ({ SUBRULE }) => (ast, { factory: F }) => {\n for (const quad of ast.val) {\n if (F.isPattern(quad)) {\n SUBRULE(triplesBlock, quad, undefined);\n } else {\n SUBRULE(quadsNotTriples, quad, undefined);\n }\n }\n },\n};\n\n/**\n * [[51]](https://www.w3.org/TR/sparql11-query/#rQuadsNotTriples)\n */\nexport const quadsNotTriples: SparqlRule<'quadsNotTriples', GraphQuads> = <const> {\n name: 'quadsNotTriples',\n impl: ({ ACTION, SUBRULE1, CONSUME, OPTION }) => (C) => {\n const graph = CONSUME(l.graph.graph);\n const name = SUBRULE1(varOrIri, undefined);\n CONSUME(l.symbols.LCurly);\n const triples = OPTION(() => SUBRULE1(triplesTemplate, undefined));\n const close = CONSUME(l.symbols.RCurly);\n\n return ACTION(() => C.factory.graphQuads(\n name,\n triples ?? C.factory.patternBgp([], C.factory.sourceLocationNoMaterialize()),\n C.factory.sourceLocation(graph, close),\n ));\n },\n gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F }) => {\n F.printFilter(ast, () => PRINT_WORD('GRAPH'));\n SUBRULE(varOrTerm, ast.graph, undefined);\n F.printFilter(ast, () => PRINT_WORD('{'));\n SUBRULE(triplesBlock, ast.triples, undefined);\n F.printFilter(ast, () => PRINT_WORD('}'));\n },\n};\n"]}
@@ -1,12 +0,0 @@
1
- export declare enum CommonIRIs {
2
- BOOLEAN = "http://www.w3.org/2001/XMLSchema#boolean",
3
- INTEGER = "http://www.w3.org/2001/XMLSchema#integer",
4
- DECIMAL = "http://www.w3.org/2001/XMLSchema#decimal",
5
- DOUBLE = "http://www.w3.org/2001/XMLSchema#double",
6
- STRING = "http://www.w3.org/2001/XMLSchema#string",
7
- FIRST = "http://www.w3.org/1999/02/22-rdf-syntax-ns#first",
8
- REST = "http://www.w3.org/1999/02/22-rdf-syntax-ns#rest",
9
- NIL = "http://www.w3.org/1999/02/22-rdf-syntax-ns#nil",
10
- TYPE = "http://www.w3.org/1999/02/22-rdf-syntax-ns#type",
11
- REIFIES = "http://www.w3.org/1999/02/22-rdf-syntax-ns#reifies"
12
- }
@@ -1,16 +0,0 @@
1
- export var CommonIRIs;
2
- (function (CommonIRIs) {
3
- // XSD
4
- CommonIRIs["BOOLEAN"] = "http://www.w3.org/2001/XMLSchema#boolean";
5
- CommonIRIs["INTEGER"] = "http://www.w3.org/2001/XMLSchema#integer";
6
- CommonIRIs["DECIMAL"] = "http://www.w3.org/2001/XMLSchema#decimal";
7
- CommonIRIs["DOUBLE"] = "http://www.w3.org/2001/XMLSchema#double";
8
- CommonIRIs["STRING"] = "http://www.w3.org/2001/XMLSchema#string";
9
- // RDF
10
- CommonIRIs["FIRST"] = "http://www.w3.org/1999/02/22-rdf-syntax-ns#first";
11
- CommonIRIs["REST"] = "http://www.w3.org/1999/02/22-rdf-syntax-ns#rest";
12
- CommonIRIs["NIL"] = "http://www.w3.org/1999/02/22-rdf-syntax-ns#nil";
13
- CommonIRIs["TYPE"] = "http://www.w3.org/1999/02/22-rdf-syntax-ns#type";
14
- CommonIRIs["REIFIES"] = "http://www.w3.org/1999/02/22-rdf-syntax-ns#reifies";
15
- })(CommonIRIs || (CommonIRIs = {}));
16
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["utils.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,UAaX;AAbD,WAAY,UAAU;IACpB,MAAM;IACN,kEAAoD,CAAA;IACpD,kEAAoD,CAAA;IACpD,kEAAoD,CAAA;IACpD,gEAAkD,CAAA;IAClD,gEAAkD,CAAA;IAClD,MAAM;IACN,wEAA0D,CAAA;IAC1D,sEAAwD,CAAA;IACxD,oEAAsD,CAAA;IACtD,sEAAwD,CAAA;IACxD,4EAA8D,CAAA;AAChE,CAAC,EAbW,UAAU,KAAV,UAAU,QAarB","sourcesContent":["export enum CommonIRIs {\n // XSD\n BOOLEAN = 'http://www.w3.org/2001/XMLSchema#boolean',\n INTEGER = 'http://www.w3.org/2001/XMLSchema#integer',\n DECIMAL = 'http://www.w3.org/2001/XMLSchema#decimal',\n DOUBLE = 'http://www.w3.org/2001/XMLSchema#double',\n STRING = 'http://www.w3.org/2001/XMLSchema#string',\n // RDF\n FIRST = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#first',\n REST = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#rest',\n NIL = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#nil',\n TYPE = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#type',\n REIFIES = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#reifies',\n}\n"]}