@traqula/generator-sparql-1-2 0.0.15 → 0.0.17
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.
- package/lib/index.cjs +958 -714
- package/lib/index.d.ts +29 -50
- package/lib/index.js +2 -2
- package/lib/index.js.map +1 -1
- package/package.json +8 -8
package/lib/index.cjs
CHANGED
|
@@ -24,8 +24,8 @@ __export(index_exports, {
|
|
|
24
24
|
});
|
|
25
25
|
module.exports = __toCommonJS(index_exports);
|
|
26
26
|
|
|
27
|
-
// ../../packages/core/lib/
|
|
28
|
-
var
|
|
27
|
+
// ../../packages/core/lib/AstCoreFactory.js
|
|
28
|
+
var AstCoreFactory = class {
|
|
29
29
|
wrap(val, loc) {
|
|
30
30
|
return { val, loc };
|
|
31
31
|
}
|
|
@@ -151,214 +151,6 @@ var CoreFactory = class {
|
|
|
151
151
|
}
|
|
152
152
|
};
|
|
153
153
|
|
|
154
|
-
// ../../packages/core/lib/generator-builder/dynamicGenerator.js
|
|
155
|
-
var DynamicGenerator = class {
|
|
156
|
-
rules;
|
|
157
|
-
factory = new CoreFactory();
|
|
158
|
-
__context = void 0;
|
|
159
|
-
origSource = "";
|
|
160
|
-
generatedUntil = 0;
|
|
161
|
-
expectsSpace;
|
|
162
|
-
stringBuilder = [];
|
|
163
|
-
constructor(rules) {
|
|
164
|
-
this.rules = rules;
|
|
165
|
-
for (const rule of Object.values(rules)) {
|
|
166
|
-
this[rule.name] = ((input, context, args) => {
|
|
167
|
-
this.expectsSpace = false;
|
|
168
|
-
this.stringBuilder.length = 0;
|
|
169
|
-
this.origSource = context.origSource;
|
|
170
|
-
this.generatedUntil = context?.offset ?? 0;
|
|
171
|
-
this.setContext(context);
|
|
172
|
-
this.subrule(rule, input, args);
|
|
173
|
-
this.catchup(this.origSource.length);
|
|
174
|
-
return this.stringBuilder.join("");
|
|
175
|
-
});
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
setContext(context) {
|
|
179
|
-
this.__context = context;
|
|
180
|
-
}
|
|
181
|
-
getSafeContext() {
|
|
182
|
-
return this.__context;
|
|
183
|
-
}
|
|
184
|
-
subrule = (cstDef, ast, ...arg) => {
|
|
185
|
-
const def = this.rules[cstDef.name];
|
|
186
|
-
if (!def) {
|
|
187
|
-
throw new Error(`Rule ${cstDef.name} not found`);
|
|
188
|
-
}
|
|
189
|
-
const generate = () => def.gImpl({
|
|
190
|
-
SUBRULE: this.subrule,
|
|
191
|
-
PRINT: this.print,
|
|
192
|
-
PRINT_SPACE_LEFT: this.printSpaceLeft,
|
|
193
|
-
PRINT_WORD: this.printWord,
|
|
194
|
-
PRINT_WORDS: this.printWords,
|
|
195
|
-
CATCHUP: this.catchup,
|
|
196
|
-
HANDLE_LOC: this.handleLoc
|
|
197
|
-
})(ast, this.getSafeContext(), ...arg);
|
|
198
|
-
if (this.factory.isLocalized(ast)) {
|
|
199
|
-
this.handleLoc(ast, generate);
|
|
200
|
-
} else {
|
|
201
|
-
generate();
|
|
202
|
-
}
|
|
203
|
-
};
|
|
204
|
-
handleLoc = (localized, handle) => {
|
|
205
|
-
if (this.factory.isSourceLocationNoMaterialize(localized.loc)) {
|
|
206
|
-
return;
|
|
207
|
-
}
|
|
208
|
-
if (this.factory.isSourceLocationStringReplace(localized.loc)) {
|
|
209
|
-
this.catchup(localized.loc.start);
|
|
210
|
-
this.print(localized.loc.newSource);
|
|
211
|
-
this.generatedUntil = localized.loc.end;
|
|
212
|
-
return;
|
|
213
|
-
}
|
|
214
|
-
if (this.factory.isSourceLocationNodeReplace(localized.loc)) {
|
|
215
|
-
this.catchup(localized.loc.start);
|
|
216
|
-
this.generatedUntil = localized.loc.end;
|
|
217
|
-
}
|
|
218
|
-
if (this.factory.isSourceLocationSource(localized.loc)) {
|
|
219
|
-
this.catchup(localized.loc.start);
|
|
220
|
-
}
|
|
221
|
-
const ret = handle();
|
|
222
|
-
if (this.factory.isSourceLocationSource(localized.loc)) {
|
|
223
|
-
this.catchup(localized.loc.end);
|
|
224
|
-
}
|
|
225
|
-
return ret;
|
|
226
|
-
};
|
|
227
|
-
catchup = (until) => {
|
|
228
|
-
const start = this.generatedUntil;
|
|
229
|
-
if (start < until) {
|
|
230
|
-
this.print(this.origSource.slice(start, until));
|
|
231
|
-
}
|
|
232
|
-
this.generatedUntil = Math.max(this.generatedUntil, until);
|
|
233
|
-
};
|
|
234
|
-
print = (...args) => {
|
|
235
|
-
const pureArgs = args.filter((x) => x.length > 0);
|
|
236
|
-
if (pureArgs.length > 0) {
|
|
237
|
-
const [head2, ...tail] = pureArgs;
|
|
238
|
-
if (this.expectsSpace) {
|
|
239
|
-
this.expectsSpace = false;
|
|
240
|
-
const blanks = /* @__PURE__ */ new Set(["\n", " ", " "]);
|
|
241
|
-
if (this.stringBuilder.length > 0 && !(blanks.has(head2[0]) || blanks.has(this.stringBuilder.at(-1).at(-1)))) {
|
|
242
|
-
this.stringBuilder.push(" ");
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
this.stringBuilder.push(head2);
|
|
246
|
-
this.stringBuilder.push(...tail);
|
|
247
|
-
}
|
|
248
|
-
};
|
|
249
|
-
printWord = (...args) => {
|
|
250
|
-
this.expectsSpace = true;
|
|
251
|
-
this.print(...args);
|
|
252
|
-
this.expectsSpace = true;
|
|
253
|
-
};
|
|
254
|
-
printSpaceLeft = (...args) => {
|
|
255
|
-
this.expectsSpace = true;
|
|
256
|
-
this.print(...args);
|
|
257
|
-
};
|
|
258
|
-
printWords = (...args) => {
|
|
259
|
-
for (const arg of args) {
|
|
260
|
-
this.printWord(arg);
|
|
261
|
-
}
|
|
262
|
-
};
|
|
263
|
-
};
|
|
264
|
-
|
|
265
|
-
// ../../packages/core/lib/generator-builder/generatorBuilder.js
|
|
266
|
-
function listToRuleDefMap(rules) {
|
|
267
|
-
const newRules = {};
|
|
268
|
-
for (const rule of rules) {
|
|
269
|
-
newRules[rule.name] = rule;
|
|
270
|
-
}
|
|
271
|
-
return newRules;
|
|
272
|
-
}
|
|
273
|
-
var GeneratorBuilder = class _GeneratorBuilder {
|
|
274
|
-
static create(start) {
|
|
275
|
-
if (start instanceof _GeneratorBuilder) {
|
|
276
|
-
return new _GeneratorBuilder({ ...start.rules });
|
|
277
|
-
}
|
|
278
|
-
return new _GeneratorBuilder(listToRuleDefMap(start));
|
|
279
|
-
}
|
|
280
|
-
rules;
|
|
281
|
-
constructor(startRules) {
|
|
282
|
-
this.rules = startRules;
|
|
283
|
-
}
|
|
284
|
-
widenContext() {
|
|
285
|
-
return this;
|
|
286
|
-
}
|
|
287
|
-
typePatch() {
|
|
288
|
-
return this;
|
|
289
|
-
}
|
|
290
|
-
/**
|
|
291
|
-
* Change the implementation of an existing generator rule.
|
|
292
|
-
*/
|
|
293
|
-
patchRule(patch) {
|
|
294
|
-
const self2 = this;
|
|
295
|
-
self2.rules[patch.name] = patch;
|
|
296
|
-
return self2;
|
|
297
|
-
}
|
|
298
|
-
/**
|
|
299
|
-
* Add a rule to the grammar. If the rule already exists, but the implementation differs, an error will be thrown.
|
|
300
|
-
*/
|
|
301
|
-
addRuleRedundant(rule) {
|
|
302
|
-
const self2 = this;
|
|
303
|
-
const rules = self2.rules;
|
|
304
|
-
if (rules[rule.name] !== void 0 && rules[rule.name] !== rule) {
|
|
305
|
-
throw new Error(`Rule ${rule.name} already exists in the GeneratorBuilder`);
|
|
306
|
-
}
|
|
307
|
-
rules[rule.name] = rule;
|
|
308
|
-
return self2;
|
|
309
|
-
}
|
|
310
|
-
/**
|
|
311
|
-
* Add a rule to the grammar. Will raise a typescript error if the rule already exists in the grammar.
|
|
312
|
-
*/
|
|
313
|
-
addRule(rule) {
|
|
314
|
-
return this.addRuleRedundant(rule);
|
|
315
|
-
}
|
|
316
|
-
addMany(...rules) {
|
|
317
|
-
this.rules = { ...this.rules, ...listToRuleDefMap(rules) };
|
|
318
|
-
return this;
|
|
319
|
-
}
|
|
320
|
-
/**
|
|
321
|
-
* Delete a grammar rule by its name.
|
|
322
|
-
*/
|
|
323
|
-
deleteRule(ruleName) {
|
|
324
|
-
delete this.rules[ruleName];
|
|
325
|
-
return this;
|
|
326
|
-
}
|
|
327
|
-
/**
|
|
328
|
-
* Merge this grammar GeneratorBuilder with another.
|
|
329
|
-
* It is best to merge the bigger grammar with the smaller one.
|
|
330
|
-
* If the two builders both have a grammar rule with the same name,
|
|
331
|
-
* no error will be thrown case they map to the same ruledef object.
|
|
332
|
-
* If they map to a different object, an error will be thrown.
|
|
333
|
-
* To fix this problem, the overridingRules array should contain a rule with the same conflicting name,
|
|
334
|
-
* this rule implementation will be used.
|
|
335
|
-
*/
|
|
336
|
-
merge(GeneratorBuilder2, overridingRules) {
|
|
337
|
-
const otherRules = { ...GeneratorBuilder2.rules };
|
|
338
|
-
const myRules = this.rules;
|
|
339
|
-
for (const rule of Object.values(myRules)) {
|
|
340
|
-
if (otherRules[rule.name] === void 0) {
|
|
341
|
-
otherRules[rule.name] = rule;
|
|
342
|
-
} else {
|
|
343
|
-
const existingRule = otherRules[rule.name];
|
|
344
|
-
if (existingRule !== rule) {
|
|
345
|
-
const override = overridingRules.find((x) => x.name === rule.name);
|
|
346
|
-
if (override) {
|
|
347
|
-
otherRules[rule.name] = override;
|
|
348
|
-
} else {
|
|
349
|
-
throw new Error(`Rule with name "${rule.name}" already exists in the GeneratorBuilder, specify an override to resolve conflict`);
|
|
350
|
-
}
|
|
351
|
-
}
|
|
352
|
-
}
|
|
353
|
-
}
|
|
354
|
-
this.rules = otherRules;
|
|
355
|
-
return this;
|
|
356
|
-
}
|
|
357
|
-
build() {
|
|
358
|
-
return new DynamicGenerator(this.rules);
|
|
359
|
-
}
|
|
360
|
-
};
|
|
361
|
-
|
|
362
154
|
// ../../node_modules/lodash-es/_freeGlobal.js
|
|
363
155
|
var freeGlobal = typeof global == "object" && global && global.Object === Object && global;
|
|
364
156
|
var freeGlobal_default = freeGlobal;
|
|
@@ -9570,28 +9362,284 @@ applyMixins(Parser, [
|
|
|
9570
9362
|
PerformanceTracer
|
|
9571
9363
|
]);
|
|
9572
9364
|
|
|
9573
|
-
// ../../packages/core/lib/
|
|
9574
|
-
|
|
9575
|
-
|
|
9576
|
-
|
|
9577
|
-
|
|
9365
|
+
// ../../packages/core/lib/utils.js
|
|
9366
|
+
function unCapitalize(str2) {
|
|
9367
|
+
return str2.charAt(0).toLowerCase() + str2.slice(1);
|
|
9368
|
+
}
|
|
9369
|
+
function createToken2(config) {
|
|
9370
|
+
return createToken(config);
|
|
9371
|
+
}
|
|
9372
|
+
var traqulaIndentation = "When you use this string, you expect traqula to handle indentation after every newline";
|
|
9373
|
+
|
|
9374
|
+
// ../../packages/core/lib/generator-builder/dynamicGenerator.js
|
|
9375
|
+
var DynamicGenerator = class {
|
|
9376
|
+
rules;
|
|
9377
|
+
factory = new AstCoreFactory();
|
|
9378
|
+
__context = void 0;
|
|
9379
|
+
origSource = "";
|
|
9380
|
+
generatedUntil = 0;
|
|
9381
|
+
expectsSpace;
|
|
9382
|
+
stringBuilder = [];
|
|
9383
|
+
constructor(rules) {
|
|
9384
|
+
this.rules = rules;
|
|
9385
|
+
for (const rule of Object.values(rules)) {
|
|
9386
|
+
this[rule.name] = ((input, context, args) => {
|
|
9387
|
+
this.expectsSpace = false;
|
|
9388
|
+
this.stringBuilder.length = 0;
|
|
9389
|
+
this.origSource = context.origSource;
|
|
9390
|
+
this.generatedUntil = context?.offset ?? 0;
|
|
9391
|
+
this.setContext(context);
|
|
9392
|
+
this.subrule(rule, input, args);
|
|
9393
|
+
this.catchup(this.origSource.length);
|
|
9394
|
+
return this.stringBuilder.join("");
|
|
9395
|
+
});
|
|
9396
|
+
}
|
|
9578
9397
|
}
|
|
9579
|
-
|
|
9580
|
-
this.
|
|
9398
|
+
setContext(context) {
|
|
9399
|
+
this.__context = context;
|
|
9581
9400
|
}
|
|
9582
|
-
|
|
9583
|
-
|
|
9584
|
-
|
|
9585
|
-
|
|
9586
|
-
|
|
9587
|
-
|
|
9588
|
-
|
|
9589
|
-
|
|
9590
|
-
|
|
9591
|
-
|
|
9592
|
-
|
|
9593
|
-
|
|
9594
|
-
|
|
9401
|
+
getSafeContext() {
|
|
9402
|
+
return this.__context;
|
|
9403
|
+
}
|
|
9404
|
+
subrule = (cstDef, ast, ...arg) => {
|
|
9405
|
+
const def = this.rules[cstDef.name];
|
|
9406
|
+
if (!def) {
|
|
9407
|
+
throw new Error(`Rule ${cstDef.name} not found`);
|
|
9408
|
+
}
|
|
9409
|
+
const generate = () => def.gImpl({
|
|
9410
|
+
SUBRULE: this.subrule,
|
|
9411
|
+
PRINT: this.print,
|
|
9412
|
+
PRINT_SPACE_LEFT: this.printSpaceLeft,
|
|
9413
|
+
PRINT_WORD: this.printWord,
|
|
9414
|
+
PRINT_WORDS: this.printWords,
|
|
9415
|
+
PRINT_ON_EMPTY: this.printOnEmpty,
|
|
9416
|
+
CATCHUP: this.catchup,
|
|
9417
|
+
HANDLE_LOC: this.handleLoc
|
|
9418
|
+
})(ast, this.getSafeContext(), ...arg);
|
|
9419
|
+
if (this.factory.isLocalized(ast)) {
|
|
9420
|
+
this.handleLoc(ast, generate);
|
|
9421
|
+
} else {
|
|
9422
|
+
generate();
|
|
9423
|
+
}
|
|
9424
|
+
};
|
|
9425
|
+
handleLoc = (localized, handle) => {
|
|
9426
|
+
if (this.factory.isSourceLocationNoMaterialize(localized.loc)) {
|
|
9427
|
+
return;
|
|
9428
|
+
}
|
|
9429
|
+
if (this.factory.isSourceLocationStringReplace(localized.loc)) {
|
|
9430
|
+
this.catchup(localized.loc.start);
|
|
9431
|
+
this.print(localized.loc.newSource);
|
|
9432
|
+
this.generatedUntil = localized.loc.end;
|
|
9433
|
+
return;
|
|
9434
|
+
}
|
|
9435
|
+
if (this.factory.isSourceLocationNodeReplace(localized.loc)) {
|
|
9436
|
+
this.catchup(localized.loc.start);
|
|
9437
|
+
this.generatedUntil = localized.loc.end;
|
|
9438
|
+
}
|
|
9439
|
+
if (this.factory.isSourceLocationSource(localized.loc)) {
|
|
9440
|
+
this.catchup(localized.loc.start);
|
|
9441
|
+
}
|
|
9442
|
+
const ret = handle();
|
|
9443
|
+
if (this.factory.isSourceLocationSource(localized.loc)) {
|
|
9444
|
+
this.catchup(localized.loc.end);
|
|
9445
|
+
}
|
|
9446
|
+
return ret;
|
|
9447
|
+
};
|
|
9448
|
+
catchup = (until) => {
|
|
9449
|
+
const start = this.generatedUntil;
|
|
9450
|
+
if (start < until) {
|
|
9451
|
+
this.print(this.origSource.slice(start, until));
|
|
9452
|
+
}
|
|
9453
|
+
this.generatedUntil = Math.max(this.generatedUntil, until);
|
|
9454
|
+
};
|
|
9455
|
+
print = (...args) => {
|
|
9456
|
+
const pureArgs = args.filter((x) => x.length > 0);
|
|
9457
|
+
if (pureArgs.length > 0) {
|
|
9458
|
+
const head2 = pureArgs[0];
|
|
9459
|
+
if (this.expectsSpace) {
|
|
9460
|
+
this.expectsSpace = false;
|
|
9461
|
+
const blanks = /* @__PURE__ */ new Set(["\n", " ", " "]);
|
|
9462
|
+
if (this.stringBuilder.length > 0 && !(blanks.has(head2[0]) || blanks.has(this.stringBuilder.at(-1).at(-1)))) {
|
|
9463
|
+
this.stringBuilder.push(" ");
|
|
9464
|
+
}
|
|
9465
|
+
}
|
|
9466
|
+
const context = this.getSafeContext();
|
|
9467
|
+
if (context[traqulaIndentation] && typeof context[traqulaIndentation] === "number") {
|
|
9468
|
+
const indent = context[traqulaIndentation];
|
|
9469
|
+
for (const str2 of pureArgs) {
|
|
9470
|
+
const [noNl, ...postNl] = str2.split("\n");
|
|
9471
|
+
this.stringBuilder.push(noNl);
|
|
9472
|
+
for (const subStr of postNl.map((line) => line.trimStart())) {
|
|
9473
|
+
this.stringBuilder.push("\n", " ".repeat(indent));
|
|
9474
|
+
if (subStr.length > 0) {
|
|
9475
|
+
this.stringBuilder.push(subStr);
|
|
9476
|
+
}
|
|
9477
|
+
}
|
|
9478
|
+
}
|
|
9479
|
+
} else {
|
|
9480
|
+
this.stringBuilder.push(...pureArgs);
|
|
9481
|
+
}
|
|
9482
|
+
}
|
|
9483
|
+
};
|
|
9484
|
+
printWord = (...args) => {
|
|
9485
|
+
this.expectsSpace = true;
|
|
9486
|
+
this.print(...args);
|
|
9487
|
+
this.expectsSpace = true;
|
|
9488
|
+
};
|
|
9489
|
+
printSpaceLeft = (...args) => {
|
|
9490
|
+
this.expectsSpace = true;
|
|
9491
|
+
this.print(...args);
|
|
9492
|
+
};
|
|
9493
|
+
printWords = (...args) => {
|
|
9494
|
+
for (const arg of args) {
|
|
9495
|
+
this.printWord(arg);
|
|
9496
|
+
}
|
|
9497
|
+
};
|
|
9498
|
+
printOnEmpty = (...args) => {
|
|
9499
|
+
let counter = this.stringBuilder.length - 1;
|
|
9500
|
+
let onEmpty = true;
|
|
9501
|
+
const isEmptyTest = /^[ \t\n]*$/u;
|
|
9502
|
+
while (counter >= 0 && onEmpty) {
|
|
9503
|
+
const cur = this.stringBuilder[counter];
|
|
9504
|
+
const indexOfNl = cur.lastIndexOf("\n");
|
|
9505
|
+
if (indexOfNl >= 0) {
|
|
9506
|
+
onEmpty = isEmptyTest.test(cur.slice(indexOfNl));
|
|
9507
|
+
if (onEmpty) {
|
|
9508
|
+
const newVal = cur.slice(0, indexOfNl);
|
|
9509
|
+
if (newVal) {
|
|
9510
|
+
this.stringBuilder[counter] = cur.slice(0, indexOfNl);
|
|
9511
|
+
} else {
|
|
9512
|
+
this.stringBuilder.splice(counter, 1);
|
|
9513
|
+
}
|
|
9514
|
+
}
|
|
9515
|
+
break;
|
|
9516
|
+
}
|
|
9517
|
+
onEmpty = isEmptyTest.test(cur);
|
|
9518
|
+
counter--;
|
|
9519
|
+
}
|
|
9520
|
+
this.print("\n", ...args);
|
|
9521
|
+
};
|
|
9522
|
+
};
|
|
9523
|
+
|
|
9524
|
+
// ../../packages/core/lib/generator-builder/generatorBuilder.js
|
|
9525
|
+
function listToRuleDefMap(rules) {
|
|
9526
|
+
const newRules = {};
|
|
9527
|
+
for (const rule of rules) {
|
|
9528
|
+
newRules[rule.name] = rule;
|
|
9529
|
+
}
|
|
9530
|
+
return newRules;
|
|
9531
|
+
}
|
|
9532
|
+
var GeneratorBuilder = class _GeneratorBuilder {
|
|
9533
|
+
static create(start) {
|
|
9534
|
+
if (start instanceof _GeneratorBuilder) {
|
|
9535
|
+
return new _GeneratorBuilder({ ...start.rules });
|
|
9536
|
+
}
|
|
9537
|
+
return new _GeneratorBuilder(listToRuleDefMap(start));
|
|
9538
|
+
}
|
|
9539
|
+
rules;
|
|
9540
|
+
constructor(startRules) {
|
|
9541
|
+
this.rules = startRules;
|
|
9542
|
+
}
|
|
9543
|
+
widenContext() {
|
|
9544
|
+
return this;
|
|
9545
|
+
}
|
|
9546
|
+
typePatch() {
|
|
9547
|
+
return this;
|
|
9548
|
+
}
|
|
9549
|
+
/**
|
|
9550
|
+
* Change the implementation of an existing generator rule.
|
|
9551
|
+
*/
|
|
9552
|
+
patchRule(patch) {
|
|
9553
|
+
const self2 = this;
|
|
9554
|
+
self2.rules[patch.name] = patch;
|
|
9555
|
+
return self2;
|
|
9556
|
+
}
|
|
9557
|
+
/**
|
|
9558
|
+
* Add a rule to the grammar. If the rule already exists, but the implementation differs, an error will be thrown.
|
|
9559
|
+
*/
|
|
9560
|
+
addRuleRedundant(rule) {
|
|
9561
|
+
const self2 = this;
|
|
9562
|
+
const rules = self2.rules;
|
|
9563
|
+
if (rules[rule.name] !== void 0 && rules[rule.name] !== rule) {
|
|
9564
|
+
throw new Error(`Rule ${rule.name} already exists in the GeneratorBuilder`);
|
|
9565
|
+
}
|
|
9566
|
+
rules[rule.name] = rule;
|
|
9567
|
+
return self2;
|
|
9568
|
+
}
|
|
9569
|
+
/**
|
|
9570
|
+
* Add a rule to the grammar. Will raise a typescript error if the rule already exists in the grammar.
|
|
9571
|
+
*/
|
|
9572
|
+
addRule(rule) {
|
|
9573
|
+
return this.addRuleRedundant(rule);
|
|
9574
|
+
}
|
|
9575
|
+
addMany(...rules) {
|
|
9576
|
+
this.rules = { ...this.rules, ...listToRuleDefMap(rules) };
|
|
9577
|
+
return this;
|
|
9578
|
+
}
|
|
9579
|
+
/**
|
|
9580
|
+
* Delete a grammar rule by its name.
|
|
9581
|
+
*/
|
|
9582
|
+
deleteRule(ruleName) {
|
|
9583
|
+
delete this.rules[ruleName];
|
|
9584
|
+
return this;
|
|
9585
|
+
}
|
|
9586
|
+
/**
|
|
9587
|
+
* Merge this grammar GeneratorBuilder with another.
|
|
9588
|
+
* It is best to merge the bigger grammar with the smaller one.
|
|
9589
|
+
* If the two builders both have a grammar rule with the same name,
|
|
9590
|
+
* no error will be thrown case they map to the same ruledef object.
|
|
9591
|
+
* If they map to a different object, an error will be thrown.
|
|
9592
|
+
* To fix this problem, the overridingRules array should contain a rule with the same conflicting name,
|
|
9593
|
+
* this rule implementation will be used.
|
|
9594
|
+
*/
|
|
9595
|
+
merge(GeneratorBuilder2, overridingRules) {
|
|
9596
|
+
const otherRules = { ...GeneratorBuilder2.rules };
|
|
9597
|
+
const myRules = this.rules;
|
|
9598
|
+
for (const rule of Object.values(myRules)) {
|
|
9599
|
+
if (otherRules[rule.name] === void 0) {
|
|
9600
|
+
otherRules[rule.name] = rule;
|
|
9601
|
+
} else {
|
|
9602
|
+
const existingRule = otherRules[rule.name];
|
|
9603
|
+
if (existingRule !== rule) {
|
|
9604
|
+
const override = overridingRules.find((x) => x.name === rule.name);
|
|
9605
|
+
if (override) {
|
|
9606
|
+
otherRules[rule.name] = override;
|
|
9607
|
+
} else {
|
|
9608
|
+
throw new Error(`Rule with name "${rule.name}" already exists in the GeneratorBuilder, specify an override to resolve conflict`);
|
|
9609
|
+
}
|
|
9610
|
+
}
|
|
9611
|
+
}
|
|
9612
|
+
}
|
|
9613
|
+
this.rules = otherRules;
|
|
9614
|
+
return this;
|
|
9615
|
+
}
|
|
9616
|
+
build() {
|
|
9617
|
+
return new DynamicGenerator(this.rules);
|
|
9618
|
+
}
|
|
9619
|
+
};
|
|
9620
|
+
|
|
9621
|
+
// ../../packages/core/lib/lexer-builder/LexerBuilder.js
|
|
9622
|
+
var LexerBuilder = class _LexerBuilder {
|
|
9623
|
+
tokens;
|
|
9624
|
+
static create(starter) {
|
|
9625
|
+
return new _LexerBuilder(starter);
|
|
9626
|
+
}
|
|
9627
|
+
constructor(starter) {
|
|
9628
|
+
this.tokens = starter?.tokens ? [...starter.tokens] : [];
|
|
9629
|
+
}
|
|
9630
|
+
merge(merge, overwrite = []) {
|
|
9631
|
+
const extraTokens = merge.tokens.filter((token) => {
|
|
9632
|
+
const overwriteToken = overwrite.find((t) => t.name === token.name);
|
|
9633
|
+
if (overwriteToken) {
|
|
9634
|
+
return false;
|
|
9635
|
+
}
|
|
9636
|
+
const match = this.tokens.find((t) => t.name === token.name);
|
|
9637
|
+
if (match) {
|
|
9638
|
+
if (match !== token) {
|
|
9639
|
+
throw new Error(`Token with name ${token.name} already exists. Implementation is different and no overwrite was provided.`);
|
|
9640
|
+
}
|
|
9641
|
+
return false;
|
|
9642
|
+
}
|
|
9595
9643
|
return true;
|
|
9596
9644
|
});
|
|
9597
9645
|
this.tokens.push(...extraTokens);
|
|
@@ -9667,16 +9715,13 @@ var LexerBuilder = class _LexerBuilder {
|
|
|
9667
9715
|
}
|
|
9668
9716
|
};
|
|
9669
9717
|
|
|
9670
|
-
// ../../packages/core/lib/utils.js
|
|
9671
|
-
function unCapitalize(str2) {
|
|
9672
|
-
return str2.charAt(0).toLowerCase() + str2.slice(1);
|
|
9673
|
-
}
|
|
9674
|
-
function createToken2(config) {
|
|
9675
|
-
return createToken(config);
|
|
9676
|
-
}
|
|
9677
|
-
|
|
9678
9718
|
// ../../packages/core/lib/Transformers.js
|
|
9679
9719
|
var TransformerType = class {
|
|
9720
|
+
clone(obj) {
|
|
9721
|
+
const newObj = Object.create(Object.getPrototypeOf(obj));
|
|
9722
|
+
Object.defineProperties(newObj, Object.getOwnPropertyDescriptors(obj));
|
|
9723
|
+
return newObj;
|
|
9724
|
+
}
|
|
9680
9725
|
safeObjectVisit(value, mapper) {
|
|
9681
9726
|
if (value && typeof value === "object") {
|
|
9682
9727
|
if (Array.isArray(value)) {
|
|
@@ -9686,104 +9731,213 @@ var TransformerType = class {
|
|
|
9686
9731
|
}
|
|
9687
9732
|
return value;
|
|
9688
9733
|
}
|
|
9689
|
-
|
|
9690
|
-
|
|
9691
|
-
|
|
9692
|
-
|
|
9693
|
-
|
|
9694
|
-
|
|
9695
|
-
|
|
9696
|
-
|
|
9697
|
-
|
|
9698
|
-
|
|
9699
|
-
|
|
9700
|
-
|
|
9701
|
-
|
|
9702
|
-
|
|
9703
|
-
|
|
9704
|
-
|
|
9705
|
-
|
|
9706
|
-
|
|
9707
|
-
|
|
9708
|
-
|
|
9709
|
-
|
|
9710
|
-
|
|
9711
|
-
|
|
9734
|
+
/**
|
|
9735
|
+
* Recursively transforms all objects that are not arrays. Mapper is called on deeper objects first.
|
|
9736
|
+
* @param startObject object to start iterating from
|
|
9737
|
+
* @param mapper mapper to transform the various objects - argument is a copy of the original
|
|
9738
|
+
* @param preVisitor callback that is evaluated before iterating deeper.
|
|
9739
|
+
* If continues is false, we do not iterate deeper, current object is still mapped. - default: true
|
|
9740
|
+
* If shortcut is true, we do not iterate deeper, nor do we branch out, this mapper will be the last one called.
|
|
9741
|
+
* - Default false
|
|
9742
|
+
*/
|
|
9743
|
+
transformObject(startObject, mapper, preVisitor = () => ({})) {
|
|
9744
|
+
let didShortCut = false;
|
|
9745
|
+
const recurse = (curObject) => {
|
|
9746
|
+
const copy3 = this.clone(curObject);
|
|
9747
|
+
const context = preVisitor(copy3);
|
|
9748
|
+
didShortCut = context.shortcut ?? false;
|
|
9749
|
+
const continues = context.continue ?? true;
|
|
9750
|
+
if (continues && !didShortCut) {
|
|
9751
|
+
for (const [key, value] of Object.entries(copy3)) {
|
|
9752
|
+
if (didShortCut) {
|
|
9753
|
+
return copy3;
|
|
9754
|
+
}
|
|
9755
|
+
copy3[key] = this.safeObjectVisit(value, (obj) => recurse(obj));
|
|
9756
|
+
}
|
|
9757
|
+
}
|
|
9758
|
+
return mapper(copy3);
|
|
9759
|
+
};
|
|
9760
|
+
return recurse(startObject);
|
|
9712
9761
|
}
|
|
9713
|
-
|
|
9714
|
-
|
|
9715
|
-
|
|
9716
|
-
|
|
9717
|
-
|
|
9718
|
-
|
|
9719
|
-
|
|
9720
|
-
|
|
9721
|
-
|
|
9722
|
-
|
|
9723
|
-
|
|
9724
|
-
|
|
9725
|
-
|
|
9762
|
+
/**
|
|
9763
|
+
* Visitor that visits all objects. Visits deeper objects first.
|
|
9764
|
+
*/
|
|
9765
|
+
visitObject(startObject, visitor, preVisitor = () => ({})) {
|
|
9766
|
+
let didShortCut = false;
|
|
9767
|
+
const recurse = (curObject) => {
|
|
9768
|
+
const context = preVisitor(curObject);
|
|
9769
|
+
didShortCut = context.shortcut ?? false;
|
|
9770
|
+
const continues = context.continue ?? true;
|
|
9771
|
+
if (continues && !didShortCut) {
|
|
9772
|
+
for (const value of Object.values(curObject)) {
|
|
9773
|
+
if (didShortCut) {
|
|
9774
|
+
return;
|
|
9775
|
+
}
|
|
9776
|
+
this.safeObjectVisit(value, (obj) => recurse(obj));
|
|
9777
|
+
}
|
|
9726
9778
|
}
|
|
9727
|
-
|
|
9779
|
+
visitor(curObject);
|
|
9780
|
+
};
|
|
9781
|
+
recurse(startObject);
|
|
9782
|
+
}
|
|
9783
|
+
transformNode(startObject, nodeCallBacks) {
|
|
9784
|
+
const transformWrapper = (curObject) => {
|
|
9785
|
+
const casted = curObject;
|
|
9786
|
+
if (casted.type) {
|
|
9787
|
+
const ogFunc = nodeCallBacks[casted.type]?.transform;
|
|
9788
|
+
if (ogFunc) {
|
|
9789
|
+
return ogFunc(casted);
|
|
9790
|
+
}
|
|
9791
|
+
}
|
|
9792
|
+
return curObject;
|
|
9793
|
+
};
|
|
9794
|
+
const preTransformWrapper = (curObject) => {
|
|
9795
|
+
const casted = curObject;
|
|
9796
|
+
if (casted.type) {
|
|
9797
|
+
const ogFunc = nodeCallBacks[casted.type]?.preVisitor;
|
|
9798
|
+
if (ogFunc) {
|
|
9799
|
+
return ogFunc(casted);
|
|
9800
|
+
}
|
|
9801
|
+
}
|
|
9802
|
+
return {};
|
|
9803
|
+
};
|
|
9804
|
+
return this.transformObject(startObject, transformWrapper, preTransformWrapper);
|
|
9805
|
+
}
|
|
9806
|
+
visitNode(startObject, nodeCallBacks) {
|
|
9807
|
+
const visitWrapper = (curObject) => {
|
|
9808
|
+
const casted = curObject;
|
|
9809
|
+
if (casted.type) {
|
|
9810
|
+
const ogFunc = nodeCallBacks[casted.type]?.visitor;
|
|
9811
|
+
if (ogFunc) {
|
|
9812
|
+
ogFunc(casted);
|
|
9813
|
+
}
|
|
9814
|
+
}
|
|
9815
|
+
};
|
|
9816
|
+
const preVisitWrapper = (curObject) => {
|
|
9817
|
+
const casted = curObject;
|
|
9818
|
+
if (casted.type) {
|
|
9819
|
+
const ogFunc = nodeCallBacks[casted.type]?.preVisitor;
|
|
9820
|
+
if (ogFunc) {
|
|
9821
|
+
return ogFunc(casted);
|
|
9822
|
+
}
|
|
9823
|
+
}
|
|
9824
|
+
return {};
|
|
9825
|
+
};
|
|
9826
|
+
this.visitObject(startObject, visitWrapper, preVisitWrapper);
|
|
9827
|
+
}
|
|
9828
|
+
traverseNodes(currentNode, traverse) {
|
|
9829
|
+
let didShortCut = false;
|
|
9830
|
+
const recurse = (curNode) => {
|
|
9831
|
+
const traverser = traverse[curNode.type];
|
|
9832
|
+
if (traverser) {
|
|
9833
|
+
const { next, shortcut } = traverser(curNode);
|
|
9834
|
+
didShortCut = shortcut ?? false;
|
|
9835
|
+
if (!didShortCut) {
|
|
9836
|
+
for (const node of next ?? []) {
|
|
9837
|
+
if (didShortCut) {
|
|
9838
|
+
return;
|
|
9839
|
+
}
|
|
9840
|
+
recurse(node);
|
|
9841
|
+
}
|
|
9842
|
+
}
|
|
9843
|
+
}
|
|
9844
|
+
};
|
|
9845
|
+
recurse(currentNode);
|
|
9728
9846
|
}
|
|
9729
9847
|
};
|
|
9730
9848
|
var TransformerSubType = class extends TransformerType {
|
|
9731
|
-
|
|
9732
|
-
|
|
9733
|
-
|
|
9734
|
-
|
|
9735
|
-
|
|
9736
|
-
|
|
9737
|
-
|
|
9738
|
-
|
|
9739
|
-
|
|
9740
|
-
|
|
9741
|
-
|
|
9742
|
-
|
|
9743
|
-
|
|
9744
|
-
|
|
9745
|
-
|
|
9746
|
-
|
|
9747
|
-
|
|
9748
|
-
|
|
9749
|
-
|
|
9750
|
-
|
|
9751
|
-
|
|
9752
|
-
|
|
9753
|
-
|
|
9754
|
-
|
|
9755
|
-
|
|
9756
|
-
|
|
9757
|
-
|
|
9758
|
-
|
|
9759
|
-
|
|
9760
|
-
|
|
9761
|
-
return copy3;
|
|
9849
|
+
transformNodeSpecific(startObject, nodeCallBacks, nodeSpecificCallBacks) {
|
|
9850
|
+
const transformWrapper = (curObject) => {
|
|
9851
|
+
let ogTransform;
|
|
9852
|
+
const casted = curObject;
|
|
9853
|
+
if (casted.type && casted.subType) {
|
|
9854
|
+
const specific = nodeSpecificCallBacks[casted.type];
|
|
9855
|
+
if (specific) {
|
|
9856
|
+
ogTransform = specific[casted.subType]?.transform;
|
|
9857
|
+
}
|
|
9858
|
+
if (!ogTransform) {
|
|
9859
|
+
ogTransform = nodeCallBacks[casted.type]?.transform;
|
|
9860
|
+
}
|
|
9861
|
+
}
|
|
9862
|
+
return ogTransform ? ogTransform(casted) : curObject;
|
|
9863
|
+
};
|
|
9864
|
+
const preVisitWrapper = (curObject) => {
|
|
9865
|
+
let ogPreVisit;
|
|
9866
|
+
const casted = curObject;
|
|
9867
|
+
if (casted.type && casted.subType) {
|
|
9868
|
+
const specific = nodeSpecificCallBacks[casted.type];
|
|
9869
|
+
if (specific) {
|
|
9870
|
+
ogPreVisit = specific[casted.subType]?.preVisitor;
|
|
9871
|
+
}
|
|
9872
|
+
if (!ogPreVisit) {
|
|
9873
|
+
ogPreVisit = nodeCallBacks[casted.type]?.preVisitor;
|
|
9874
|
+
}
|
|
9875
|
+
}
|
|
9876
|
+
return ogPreVisit ? ogPreVisit(casted) : curObject;
|
|
9877
|
+
};
|
|
9878
|
+
return this.transformObject(startObject, transformWrapper, preVisitWrapper);
|
|
9762
9879
|
}
|
|
9763
9880
|
/**
|
|
9764
9881
|
* When both nodeCallBack and NodeSpecific callBack are matched, will only look at nodeSpecifCallback
|
|
9765
9882
|
*/
|
|
9766
|
-
visitNodeSpecific(
|
|
9767
|
-
|
|
9768
|
-
|
|
9769
|
-
|
|
9770
|
-
|
|
9771
|
-
|
|
9772
|
-
|
|
9883
|
+
visitNodeSpecific(startObject, nodeCallBacks, nodeSpecificCallBacks) {
|
|
9884
|
+
const visitWrapper = (curObject) => {
|
|
9885
|
+
let ogTransform;
|
|
9886
|
+
const casted = curObject;
|
|
9887
|
+
if (casted.type && casted.subType) {
|
|
9888
|
+
const specific = nodeSpecificCallBacks[casted.type];
|
|
9889
|
+
if (specific) {
|
|
9890
|
+
ogTransform = specific[casted.subType]?.visitor;
|
|
9891
|
+
}
|
|
9892
|
+
if (!ogTransform) {
|
|
9893
|
+
ogTransform = nodeCallBacks[casted.type]?.visitor;
|
|
9894
|
+
}
|
|
9773
9895
|
}
|
|
9774
|
-
|
|
9775
|
-
|
|
9776
|
-
callback = nodeCallBacks[curObject.type];
|
|
9777
|
-
}
|
|
9778
|
-
let shouldIterate = true;
|
|
9779
|
-
if (callback) {
|
|
9780
|
-
shouldIterate = callback(curObject) ?? true;
|
|
9781
|
-
}
|
|
9782
|
-
if (shouldIterate) {
|
|
9783
|
-
for (const value of Object.values(curObject)) {
|
|
9784
|
-
this.safeObjectVisit(value, (obj) => this.visitNodeSpecific(obj, nodeCallBacks, nodeSpecificCallBacks));
|
|
9896
|
+
if (ogTransform) {
|
|
9897
|
+
ogTransform(casted);
|
|
9785
9898
|
}
|
|
9786
|
-
}
|
|
9899
|
+
};
|
|
9900
|
+
const preVisitWrapper = (curObject) => {
|
|
9901
|
+
let ogPreVisit;
|
|
9902
|
+
const casted = curObject;
|
|
9903
|
+
if (casted.type && casted.subType) {
|
|
9904
|
+
const specific = nodeSpecificCallBacks[casted.type];
|
|
9905
|
+
if (specific) {
|
|
9906
|
+
ogPreVisit = specific[casted.subType]?.preVisitor;
|
|
9907
|
+
}
|
|
9908
|
+
if (!ogPreVisit) {
|
|
9909
|
+
ogPreVisit = nodeCallBacks[casted.type]?.preVisitor;
|
|
9910
|
+
}
|
|
9911
|
+
}
|
|
9912
|
+
return ogPreVisit ? ogPreVisit(casted) : curObject;
|
|
9913
|
+
};
|
|
9914
|
+
this.visitObject(startObject, visitWrapper, preVisitWrapper);
|
|
9915
|
+
}
|
|
9916
|
+
traverseSubNodes(currentNode, traverseNode, traverseSubNode) {
|
|
9917
|
+
let didShortCut = false;
|
|
9918
|
+
const recurse = (curNode) => {
|
|
9919
|
+
let traverser;
|
|
9920
|
+
const subObj = traverseSubNode[curNode.type];
|
|
9921
|
+
if (subObj) {
|
|
9922
|
+
traverser = subObj[curNode.subType];
|
|
9923
|
+
}
|
|
9924
|
+
if (!traverser) {
|
|
9925
|
+
traverser = traverseNode[curNode.type];
|
|
9926
|
+
}
|
|
9927
|
+
if (traverser) {
|
|
9928
|
+
const { next, shortcut } = traverser(curNode);
|
|
9929
|
+
didShortCut = shortcut ?? false;
|
|
9930
|
+
if (!didShortCut) {
|
|
9931
|
+
for (const node of next ?? []) {
|
|
9932
|
+
if (didShortCut) {
|
|
9933
|
+
return;
|
|
9934
|
+
}
|
|
9935
|
+
recurse(node);
|
|
9936
|
+
}
|
|
9937
|
+
}
|
|
9938
|
+
}
|
|
9939
|
+
};
|
|
9940
|
+
recurse(currentNode);
|
|
9787
9941
|
}
|
|
9788
9942
|
};
|
|
9789
9943
|
|
|
@@ -11181,8 +11335,8 @@ function UpdateOperationFactoryMixin(Base) {
|
|
|
11181
11335
|
};
|
|
11182
11336
|
}
|
|
11183
11337
|
|
|
11184
|
-
// ../../packages/rules-sparql-1-1/lib/
|
|
11185
|
-
var
|
|
11338
|
+
// ../../packages/rules-sparql-1-1/lib/astFactory.js
|
|
11339
|
+
var AstFactory = class extends asArg(AstCoreFactory).call(ContextFactoryMixin).call(ExpressionFactoryMixin).call(GraphRefFactoryMixin).call(PathFactoryMixin).call(PatternFactoryMixin).call(QueryFactoryMixin).call(SolutionModifiersFactoryMixin).call(TermFactoryMixin).call(UpdateOperationFactoryMixin).returns() {
|
|
11186
11340
|
alwaysSparql11(obj) {
|
|
11187
11341
|
return true;
|
|
11188
11342
|
}
|
|
@@ -11279,12 +11433,12 @@ var CommonIRIs;
|
|
|
11279
11433
|
CommonIRIs2["NIL"] = "http://www.w3.org/1999/02/22-rdf-syntax-ns#nil";
|
|
11280
11434
|
CommonIRIs2["TYPE"] = "http://www.w3.org/1999/02/22-rdf-syntax-ns#type";
|
|
11281
11435
|
})(CommonIRIs || (CommonIRIs = {}));
|
|
11282
|
-
var
|
|
11436
|
+
var AstTransformer = class extends TransformerSubType {
|
|
11283
11437
|
};
|
|
11284
11438
|
|
|
11285
11439
|
// ../../packages/rules-sparql-1-1/lib/validation/validators.js
|
|
11286
|
-
var F = new
|
|
11287
|
-
var transformer = new
|
|
11440
|
+
var F = new AstFactory();
|
|
11441
|
+
var transformer = new AstTransformer();
|
|
11288
11442
|
function getAggregatesOfExpression(expression2) {
|
|
11289
11443
|
if (F.isExpressionAggregate(expression2)) {
|
|
11290
11444
|
return [expression2];
|
|
@@ -11363,77 +11517,69 @@ function queryIsGood(query2) {
|
|
|
11363
11517
|
}
|
|
11364
11518
|
}
|
|
11365
11519
|
}
|
|
11520
|
+
function notUndefined(some2) {
|
|
11521
|
+
return some2 !== void 0;
|
|
11522
|
+
}
|
|
11366
11523
|
function findPatternBoundedVars(iter, boundedVars) {
|
|
11367
|
-
|
|
11368
|
-
|
|
11369
|
-
|
|
11370
|
-
|
|
11371
|
-
|
|
11372
|
-
|
|
11373
|
-
|
|
11374
|
-
|
|
11375
|
-
|
|
11376
|
-
|
|
11377
|
-
|
|
11378
|
-
|
|
11379
|
-
|
|
11380
|
-
|
|
11381
|
-
|
|
11382
|
-
|
|
11383
|
-
|
|
11384
|
-
|
|
11385
|
-
|
|
11386
|
-
|
|
11524
|
+
transformer.traverseSubNodes(iter, {
|
|
11525
|
+
query: (op) => ({ next: [
|
|
11526
|
+
op.solutionModifiers.group
|
|
11527
|
+
].filter(notUndefined) }),
|
|
11528
|
+
triple: (op) => ({ next: [op.subject, op.predicate, op.object] }),
|
|
11529
|
+
path: (op) => ({ next: op.items }),
|
|
11530
|
+
tripleCollection: (op) => ({ next: [op.identifier, ...op.triples] })
|
|
11531
|
+
}, {
|
|
11532
|
+
query: {
|
|
11533
|
+
select: (op) => ({ next: [
|
|
11534
|
+
...op.variables.some((x) => F.isWildcard(x)) ? [op.where] : op.variables,
|
|
11535
|
+
op.solutionModifiers.group,
|
|
11536
|
+
op.values
|
|
11537
|
+
].filter(notUndefined) }),
|
|
11538
|
+
describe: (op) => ({ next: [
|
|
11539
|
+
...op.variables.some((x) => F.isWildcard(x)) ? [op.where] : op.variables,
|
|
11540
|
+
op.solutionModifiers.group,
|
|
11541
|
+
op.values
|
|
11542
|
+
].filter(notUndefined) })
|
|
11543
|
+
},
|
|
11544
|
+
solutionModifier: {
|
|
11545
|
+
group: (op) => ({
|
|
11546
|
+
next: op.groupings.filter((g) => "variable" in g).map((x) => x.variable)
|
|
11547
|
+
}),
|
|
11548
|
+
having: (op) => ({ next: op.having }),
|
|
11549
|
+
order: (op) => ({ next: op.orderDefs.map((x) => x.expression) })
|
|
11550
|
+
},
|
|
11551
|
+
pattern: {
|
|
11552
|
+
values: (op) => {
|
|
11553
|
+
for (const v of Object.keys(op.values.at(0) ?? {})) {
|
|
11387
11554
|
boundedVars.add(v);
|
|
11388
11555
|
}
|
|
11556
|
+
return {};
|
|
11557
|
+
},
|
|
11558
|
+
bgp: (op) => ({ next: op.triples }),
|
|
11559
|
+
group: (op) => ({ next: op.patterns }),
|
|
11560
|
+
union: (op) => ({ next: op.patterns }),
|
|
11561
|
+
optional: (op) => ({ next: op.patterns }),
|
|
11562
|
+
service: (op) => ({ next: [op.name, ...op.patterns] }),
|
|
11563
|
+
bind: (op) => ({ next: [op.variable] }),
|
|
11564
|
+
graph: (op) => ({ next: [op.name, ...op.patterns] }),
|
|
11565
|
+
minus: (op) => ({ next: op.patterns.slice(0, 1) })
|
|
11566
|
+
},
|
|
11567
|
+
term: {
|
|
11568
|
+
variable: (op) => {
|
|
11569
|
+
boundedVars.add(op.value);
|
|
11570
|
+
return {};
|
|
11389
11571
|
}
|
|
11390
11572
|
}
|
|
11391
|
-
}
|
|
11392
|
-
if (F.isTermVariable(iter)) {
|
|
11393
|
-
boundedVars.add(iter.value);
|
|
11394
|
-
}
|
|
11395
|
-
} else if (F.isTriple(iter)) {
|
|
11396
|
-
findPatternBoundedVars(iter.subject, boundedVars);
|
|
11397
|
-
findPatternBoundedVars(iter.predicate, boundedVars);
|
|
11398
|
-
findPatternBoundedVars(iter.object, boundedVars);
|
|
11399
|
-
} else if (F.isPath(iter)) {
|
|
11400
|
-
if (!F.isTerm(iter)) {
|
|
11401
|
-
for (const item of iter.items) {
|
|
11402
|
-
findPatternBoundedVars(item, boundedVars);
|
|
11403
|
-
}
|
|
11404
|
-
}
|
|
11405
|
-
} else if (F.isTripleCollection(iter) || F.isPatternBgp(iter)) {
|
|
11406
|
-
for (const triple of iter.triples) {
|
|
11407
|
-
findPatternBoundedVars(triple, boundedVars);
|
|
11408
|
-
}
|
|
11409
|
-
} else if (F.isPatternGroup(iter) || F.isPatternUnion(iter) || F.isPatternOptional(iter) || F.isPatternService(iter)) {
|
|
11410
|
-
for (const pattern of iter.patterns) {
|
|
11411
|
-
findPatternBoundedVars(pattern, boundedVars);
|
|
11412
|
-
}
|
|
11413
|
-
if (F.isPatternService(iter)) {
|
|
11414
|
-
findPatternBoundedVars(iter.name, boundedVars);
|
|
11415
|
-
}
|
|
11416
|
-
} else if (F.isPatternBind(iter)) {
|
|
11417
|
-
findPatternBoundedVars(iter.variable, boundedVars);
|
|
11418
|
-
} else if (F.isPatternValues(iter)) {
|
|
11419
|
-
for (const variable of Object.keys(iter.values.at(0) ?? {})) {
|
|
11420
|
-
boundedVars.add(variable);
|
|
11421
|
-
}
|
|
11422
|
-
} else if (F.isPatternGraph(iter)) {
|
|
11423
|
-
findPatternBoundedVars(iter.name, boundedVars);
|
|
11424
|
-
for (const pattern of iter.patterns) {
|
|
11425
|
-
findPatternBoundedVars(pattern, boundedVars);
|
|
11426
|
-
}
|
|
11427
|
-
}
|
|
11573
|
+
});
|
|
11428
11574
|
}
|
|
11429
11575
|
function checkNote13(patterns) {
|
|
11430
11576
|
for (const [index, pattern] of patterns.entries()) {
|
|
11431
11577
|
if (F.isPatternBind(pattern) && index > 0 && F.isPatternBgp(patterns[index - 1])) {
|
|
11432
11578
|
const bgp = patterns[index - 1];
|
|
11433
11579
|
const variables = [];
|
|
11434
|
-
transformer.visitNodeSpecific(bgp, {}, { term: { variable: (var_2) => {
|
|
11580
|
+
transformer.visitNodeSpecific(bgp, {}, { term: { variable: { visitor: (var_2) => {
|
|
11435
11581
|
variables.push(var_2);
|
|
11436
|
-
} } });
|
|
11582
|
+
} } } });
|
|
11437
11583
|
if (variables.some((var_2) => var_2.value === pattern.variable.value)) {
|
|
11438
11584
|
throw new Error(`Variable used to bind is already bound (?${pattern.variable.value})`);
|
|
11439
11585
|
}
|
|
@@ -11459,12 +11605,12 @@ function updateNoReuseBlankNodeLabels(updateQuery) {
|
|
|
11459
11605
|
const operation = update2.operation;
|
|
11460
11606
|
if (operation.subType === "insertdata") {
|
|
11461
11607
|
const blankNodesHere = /* @__PURE__ */ new Set();
|
|
11462
|
-
transformer.visitNodeSpecific(operation, {}, { term: { blankNode: (blankNode2) => {
|
|
11608
|
+
transformer.visitNodeSpecific(operation, {}, { term: { blankNode: { visitor: (blankNode2) => {
|
|
11463
11609
|
blankNodesHere.add(blankNode2.label);
|
|
11464
11610
|
if (blankLabelsUsedInInsertData.has(blankNode2.label)) {
|
|
11465
11611
|
throw new Error("Detected reuse blank node across different INSERT DATA clauses");
|
|
11466
11612
|
}
|
|
11467
|
-
} } });
|
|
11613
|
+
} } } });
|
|
11468
11614
|
for (const blankNode2 of blankNodesHere) {
|
|
11469
11615
|
blankLabelsUsedInInsertData.add(blankNode2);
|
|
11470
11616
|
}
|
|
@@ -11503,22 +11649,22 @@ var rdfLiteral = {
|
|
|
11503
11649
|
return OPTION(() => OR([
|
|
11504
11650
|
{ ALT: () => {
|
|
11505
11651
|
const lang2 = CONSUME(terminals_exports.langTag);
|
|
11506
|
-
return ACTION(() => C.
|
|
11652
|
+
return ACTION(() => C.astFactory.literalTerm(C.astFactory.sourceLocation(value, lang2), value.value, lang2.image.slice(1).toLowerCase()));
|
|
11507
11653
|
} },
|
|
11508
11654
|
{ ALT: () => {
|
|
11509
11655
|
CONSUME(symbols_exports.hathat);
|
|
11510
11656
|
const iriVal = SUBRULE1(iri2);
|
|
11511
|
-
return ACTION(() => C.
|
|
11657
|
+
return ACTION(() => C.astFactory.literalTerm(C.astFactory.sourceLocation(value, iriVal), value.value, iriVal));
|
|
11512
11658
|
} }
|
|
11513
11659
|
])) ?? value;
|
|
11514
11660
|
},
|
|
11515
|
-
gImpl: ({ SUBRULE, PRINT, PRINT_SPACE_LEFT }) => (ast, {
|
|
11516
|
-
|
|
11661
|
+
gImpl: ({ SUBRULE, PRINT, PRINT_SPACE_LEFT }) => (ast, { astFactory }) => {
|
|
11662
|
+
astFactory.printFilter(ast, () => PRINT_SPACE_LEFT(stringEscapedLexical(ast.value)));
|
|
11517
11663
|
if (ast.langOrIri) {
|
|
11518
11664
|
if (typeof ast.langOrIri === "string") {
|
|
11519
|
-
|
|
11665
|
+
astFactory.printFilter(ast, () => PRINT("@", ast.langOrIri));
|
|
11520
11666
|
} else {
|
|
11521
|
-
|
|
11667
|
+
astFactory.printFilter(ast, () => PRINT("^^"));
|
|
11522
11668
|
SUBRULE(iri2, ast.langOrIri);
|
|
11523
11669
|
}
|
|
11524
11670
|
}
|
|
@@ -11540,7 +11686,7 @@ var numericLiteralUnsigned = {
|
|
|
11540
11686
|
{ ALT: () => [CONSUME(terminals_exports.decimal), CommonIRIs.DECIMAL] },
|
|
11541
11687
|
{ ALT: () => [CONSUME(terminals_exports.double), CommonIRIs.DOUBLE] }
|
|
11542
11688
|
]);
|
|
11543
|
-
return ACTION(() => C.
|
|
11689
|
+
return ACTION(() => C.astFactory.literalTerm(C.astFactory.sourceLocation(parsed[0]), parsed[0].image, C.astFactory.namedNode(C.astFactory.sourceLocationNoMaterialize(), parsed[1])));
|
|
11544
11690
|
}
|
|
11545
11691
|
};
|
|
11546
11692
|
var numericLiteralPositive = {
|
|
@@ -11551,7 +11697,7 @@ var numericLiteralPositive = {
|
|
|
11551
11697
|
{ ALT: () => [CONSUME(terminals_exports.decimalPositive), CommonIRIs.DECIMAL] },
|
|
11552
11698
|
{ ALT: () => [CONSUME(terminals_exports.doublePositive), CommonIRIs.DOUBLE] }
|
|
11553
11699
|
]);
|
|
11554
|
-
return ACTION(() => C.
|
|
11700
|
+
return ACTION(() => C.astFactory.literalTerm(C.astFactory.sourceLocation(parsed[0]), parsed[0].image, C.astFactory.namedNode(C.astFactory.sourceLocationNoMaterialize(), parsed[1])));
|
|
11555
11701
|
}
|
|
11556
11702
|
};
|
|
11557
11703
|
var numericLiteralNegative = {
|
|
@@ -11562,7 +11708,7 @@ var numericLiteralNegative = {
|
|
|
11562
11708
|
{ ALT: () => [CONSUME(terminals_exports.decimalNegative), CommonIRIs.DECIMAL] },
|
|
11563
11709
|
{ ALT: () => [CONSUME(terminals_exports.doubleNegative), CommonIRIs.DOUBLE] }
|
|
11564
11710
|
]);
|
|
11565
|
-
return ACTION(() => C.
|
|
11711
|
+
return ACTION(() => C.astFactory.literalTerm(C.astFactory.sourceLocation(parsed[0]), parsed[0].image, C.astFactory.namedNode(C.astFactory.sourceLocationNoMaterialize(), parsed[1])));
|
|
11566
11712
|
}
|
|
11567
11713
|
};
|
|
11568
11714
|
var booleanLiteral = {
|
|
@@ -11572,7 +11718,7 @@ var booleanLiteral = {
|
|
|
11572
11718
|
{ ALT: () => CONSUME(true_) },
|
|
11573
11719
|
{ ALT: () => CONSUME(false_) }
|
|
11574
11720
|
]);
|
|
11575
|
-
return ACTION(() => C.
|
|
11721
|
+
return ACTION(() => C.astFactory.literalTerm(C.astFactory.sourceLocation(token), token.image.toLowerCase(), C.astFactory.namedNode(C.astFactory.sourceLocationNoMaterialize(), CommonIRIs.BOOLEAN)));
|
|
11576
11722
|
}
|
|
11577
11723
|
};
|
|
11578
11724
|
var string = {
|
|
@@ -11597,7 +11743,7 @@ var string = {
|
|
|
11597
11743
|
} }
|
|
11598
11744
|
]);
|
|
11599
11745
|
return ACTION(() => {
|
|
11600
|
-
const F3 = C.
|
|
11746
|
+
const F3 = C.astFactory;
|
|
11601
11747
|
const value = x[1].replaceAll(/\\([tnrbf"'\\])/gu, (_, char) => {
|
|
11602
11748
|
switch (char) {
|
|
11603
11749
|
case "t":
|
|
@@ -11624,16 +11770,16 @@ var iri2 = {
|
|
|
11624
11770
|
{ ALT: () => SUBRULE(iriFull) },
|
|
11625
11771
|
{ ALT: () => SUBRULE(prefixedName) }
|
|
11626
11772
|
]),
|
|
11627
|
-
gImpl: ({ SUBRULE }) => (ast, {
|
|
11773
|
+
gImpl: ({ SUBRULE }) => (ast, { astFactory: F3 }) => F3.isTermNamedPrefixed(ast) ? SUBRULE(prefixedName, ast) : SUBRULE(iriFull, ast)
|
|
11628
11774
|
};
|
|
11629
11775
|
var iriFull = {
|
|
11630
11776
|
name: "iriFull",
|
|
11631
11777
|
impl: ({ ACTION, CONSUME }) => (C) => {
|
|
11632
11778
|
const iriToken = CONSUME(terminals_exports.iriRef);
|
|
11633
|
-
return ACTION(() => C.
|
|
11779
|
+
return ACTION(() => C.astFactory.namedNode(C.astFactory.sourceLocation(iriToken), iriToken.image.slice(1, -1)));
|
|
11634
11780
|
},
|
|
11635
|
-
gImpl: ({ PRINT }) => (ast, {
|
|
11636
|
-
|
|
11781
|
+
gImpl: ({ PRINT }) => (ast, { astFactory: F3 }) => {
|
|
11782
|
+
F3.printFilter(ast, () => PRINT("<", ast.value, ">"));
|
|
11637
11783
|
}
|
|
11638
11784
|
};
|
|
11639
11785
|
var prefixedName = {
|
|
@@ -11643,16 +11789,16 @@ var prefixedName = {
|
|
|
11643
11789
|
const longName = CONSUME(terminals_exports.pNameLn);
|
|
11644
11790
|
return ACTION(() => {
|
|
11645
11791
|
const [prefix, localName] = longName.image.split(":");
|
|
11646
|
-
return C.
|
|
11792
|
+
return C.astFactory.namedNode(C.astFactory.sourceLocation(longName), localName, prefix);
|
|
11647
11793
|
});
|
|
11648
11794
|
} },
|
|
11649
11795
|
{ ALT: () => {
|
|
11650
11796
|
const shortName = CONSUME(terminals_exports.pNameNs);
|
|
11651
|
-
return ACTION(() => C.
|
|
11797
|
+
return ACTION(() => C.astFactory.namedNode(C.astFactory.sourceLocation(shortName), "", shortName.image.slice(0, -1)));
|
|
11652
11798
|
} }
|
|
11653
11799
|
]),
|
|
11654
|
-
gImpl: ({ PRINT_WORD }) => (ast, {
|
|
11655
|
-
|
|
11800
|
+
gImpl: ({ PRINT_WORD }) => (ast, { astFactory: F3 }) => {
|
|
11801
|
+
F3.printFilter(ast, () => PRINT_WORD(ast.prefix, ":", ast.value));
|
|
11656
11802
|
}
|
|
11657
11803
|
};
|
|
11658
11804
|
var canCreateBlankNodes = Symbol("canCreateBlankNodes");
|
|
@@ -11662,11 +11808,11 @@ var blankNode = {
|
|
|
11662
11808
|
const result = OR([
|
|
11663
11809
|
{ ALT: () => {
|
|
11664
11810
|
const labelToken = CONSUME(terminals_exports.blankNodeLabel);
|
|
11665
|
-
return ACTION(() => C.
|
|
11811
|
+
return ACTION(() => C.astFactory.blankNode(labelToken.image.slice(2), C.astFactory.sourceLocation(labelToken)));
|
|
11666
11812
|
} },
|
|
11667
11813
|
{ ALT: () => {
|
|
11668
11814
|
const anonToken = CONSUME(terminals_exports.anon);
|
|
11669
|
-
return ACTION(() => C.
|
|
11815
|
+
return ACTION(() => C.astFactory.blankNode(void 0, C.astFactory.sourceLocation(anonToken)));
|
|
11670
11816
|
} }
|
|
11671
11817
|
]);
|
|
11672
11818
|
ACTION(() => {
|
|
@@ -11676,15 +11822,15 @@ var blankNode = {
|
|
|
11676
11822
|
});
|
|
11677
11823
|
return result;
|
|
11678
11824
|
},
|
|
11679
|
-
gImpl: ({ PRINT_WORD }) => (ast, {
|
|
11680
|
-
|
|
11825
|
+
gImpl: ({ PRINT_WORD }) => (ast, { astFactory }) => {
|
|
11826
|
+
astFactory.printFilter(ast, () => PRINT_WORD("_:", ast.label.replace(/^e_/u, "")));
|
|
11681
11827
|
}
|
|
11682
11828
|
};
|
|
11683
11829
|
var verbA = {
|
|
11684
11830
|
name: "VerbA",
|
|
11685
11831
|
impl: ({ ACTION, CONSUME }) => (C) => {
|
|
11686
11832
|
const token = CONSUME(a);
|
|
11687
|
-
return ACTION(() => C.
|
|
11833
|
+
return ACTION(() => C.astFactory.namedNode(C.astFactory.sourceLocation(token), CommonIRIs.TYPE, void 0));
|
|
11688
11834
|
}
|
|
11689
11835
|
};
|
|
11690
11836
|
|
|
@@ -11701,7 +11847,7 @@ var prologue = {
|
|
|
11701
11847
|
]));
|
|
11702
11848
|
return result;
|
|
11703
11849
|
},
|
|
11704
|
-
gImpl: ({ SUBRULE }) => (ast, {
|
|
11850
|
+
gImpl: ({ SUBRULE }) => (ast, { astFactory: F3 }) => {
|
|
11705
11851
|
for (const context of ast) {
|
|
11706
11852
|
if (F3.isContextDefinitionBase(context)) {
|
|
11707
11853
|
SUBRULE(baseDecl2, context);
|
|
@@ -11716,11 +11862,12 @@ var baseDecl2 = {
|
|
|
11716
11862
|
impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {
|
|
11717
11863
|
const base = CONSUME(baseDecl);
|
|
11718
11864
|
const val = SUBRULE(iriFull);
|
|
11719
|
-
return ACTION(() => C.
|
|
11865
|
+
return ACTION(() => C.astFactory.contextDefinitionBase(C.astFactory.sourceLocation(base, val), val));
|
|
11720
11866
|
},
|
|
11721
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, {
|
|
11867
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F3 }) => {
|
|
11722
11868
|
F3.printFilter(ast, () => PRINT_WORD("BASE"));
|
|
11723
11869
|
SUBRULE(iri2, ast.value);
|
|
11870
|
+
F3.printFilter(ast, () => PRINT_WORD("\n"));
|
|
11724
11871
|
}
|
|
11725
11872
|
};
|
|
11726
11873
|
var prefixDecl2 = {
|
|
@@ -11729,13 +11876,14 @@ var prefixDecl2 = {
|
|
|
11729
11876
|
const prefix = CONSUME(prefixDecl);
|
|
11730
11877
|
const name = CONSUME(terminals_exports.pNameNs).image.slice(0, -1);
|
|
11731
11878
|
const value = SUBRULE(iriFull);
|
|
11732
|
-
return ACTION(() => C.
|
|
11879
|
+
return ACTION(() => C.astFactory.contextDefinitionPrefix(C.astFactory.sourceLocation(prefix, value), name, value));
|
|
11733
11880
|
},
|
|
11734
|
-
gImpl: ({ SUBRULE, PRINT_WORDS }) => (ast, {
|
|
11881
|
+
gImpl: ({ SUBRULE, PRINT_WORDS }) => (ast, { astFactory: F3 }) => {
|
|
11735
11882
|
F3.printFilter(ast, () => {
|
|
11736
11883
|
PRINT_WORDS("PREFIX", `${ast.key}:`);
|
|
11737
11884
|
});
|
|
11738
11885
|
SUBRULE(iri2, ast.value);
|
|
11886
|
+
F3.printFilter(ast, () => PRINT_WORDS("\n"));
|
|
11739
11887
|
}
|
|
11740
11888
|
};
|
|
11741
11889
|
var verb = {
|
|
@@ -11751,7 +11899,7 @@ var varOrTerm = {
|
|
|
11751
11899
|
{ GATE: () => C.parseMode.has("canParseVars"), ALT: () => SUBRULE(var_) },
|
|
11752
11900
|
{ ALT: () => SUBRULE(graphTerm) }
|
|
11753
11901
|
]),
|
|
11754
|
-
gImpl: ({ SUBRULE }) => (ast, {
|
|
11902
|
+
gImpl: ({ SUBRULE }) => (ast, { astFactory: F3 }) => {
|
|
11755
11903
|
if (F3.isTermVariable(ast)) {
|
|
11756
11904
|
return SUBRULE(var_, ast);
|
|
11757
11905
|
}
|
|
@@ -11772,9 +11920,9 @@ var var_ = {
|
|
|
11772
11920
|
{ ALT: () => CONSUME(terminals_exports.var1) },
|
|
11773
11921
|
{ ALT: () => CONSUME(terminals_exports.var2) }
|
|
11774
11922
|
]);
|
|
11775
|
-
return ACTION(() => C.
|
|
11923
|
+
return ACTION(() => C.astFactory.variable(varToken.image.slice(1), C.astFactory.sourceLocation(varToken)));
|
|
11776
11924
|
},
|
|
11777
|
-
gImpl: ({ PRINT_WORD }) => (ast, {
|
|
11925
|
+
gImpl: ({ PRINT_WORD }) => (ast, { astFactory: F3 }) => {
|
|
11778
11926
|
F3.printFilter(ast, () => PRINT_WORD(`?${ast.value}`));
|
|
11779
11927
|
}
|
|
11780
11928
|
};
|
|
@@ -11788,10 +11936,10 @@ var graphTerm = {
|
|
|
11788
11936
|
{ GATE: () => C.parseMode.has("canCreateBlankNodes"), ALT: () => SUBRULE(blankNode) },
|
|
11789
11937
|
{ ALT: () => {
|
|
11790
11938
|
const tokenNil = CONSUME(terminals_exports.nil);
|
|
11791
|
-
return ACTION(() => C.
|
|
11939
|
+
return ACTION(() => C.astFactory.namedNode(C.astFactory.sourceLocation(tokenNil), CommonIRIs.NIL));
|
|
11792
11940
|
} }
|
|
11793
11941
|
]),
|
|
11794
|
-
gImpl: ({ SUBRULE }) => (ast, {
|
|
11942
|
+
gImpl: ({ SUBRULE }) => (ast, { astFactory: F3 }) => {
|
|
11795
11943
|
if (F3.isTermNamed(ast)) {
|
|
11796
11944
|
SUBRULE(iri2, ast);
|
|
11797
11945
|
} else if (F3.isTermLiteral(ast)) {
|
|
@@ -11811,14 +11959,14 @@ function datasetClauseUsing(name, token) {
|
|
|
11811
11959
|
return OR([
|
|
11812
11960
|
{ ALT: () => {
|
|
11813
11961
|
const iri3 = SUBRULE(defaultGraphClause);
|
|
11814
|
-
return ACTION(() => C.
|
|
11962
|
+
return ACTION(() => C.astFactory.wrap({ clauseType: "default", value: iri3 }, C.astFactory.sourceLocation(start, iri3)));
|
|
11815
11963
|
} },
|
|
11816
11964
|
{ ALT: () => {
|
|
11817
11965
|
const namedClause = SUBRULE(namedGraphClause);
|
|
11818
|
-
return ACTION(() => C.
|
|
11966
|
+
return ACTION(() => C.astFactory.wrap({
|
|
11819
11967
|
clauseType: "named",
|
|
11820
11968
|
value: namedClause.val
|
|
11821
|
-
}, C.
|
|
11969
|
+
}, C.astFactory.sourceLocation(start, namedClause)));
|
|
11822
11970
|
} }
|
|
11823
11971
|
]);
|
|
11824
11972
|
}
|
|
@@ -11839,9 +11987,9 @@ function datasetClauseUsingStar(name, subRule, fromUsing) {
|
|
|
11839
11987
|
const clause = SUBRULE(subRule);
|
|
11840
11988
|
clauses.push(clause);
|
|
11841
11989
|
});
|
|
11842
|
-
return ACTION(() => C.
|
|
11990
|
+
return ACTION(() => C.astFactory.datasetClauses(clauses.map((clause) => clause.val), C.astFactory.sourceLocation(...clauses)));
|
|
11843
11991
|
},
|
|
11844
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, {
|
|
11992
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F3 }) => {
|
|
11845
11993
|
for (const clause of ast.clauses) {
|
|
11846
11994
|
F3.printFilter(ast, () => PRINT_WORD(fromUsing));
|
|
11847
11995
|
if (clause.clauseType === "named") {
|
|
@@ -11859,7 +12007,7 @@ var namedGraphClause = {
|
|
|
11859
12007
|
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
11860
12008
|
const named2 = CONSUME(graph_exports.named);
|
|
11861
12009
|
const iri3 = SUBRULE(sourceSelector);
|
|
11862
|
-
return ACTION(() => C.
|
|
12010
|
+
return ACTION(() => C.astFactory.wrap(iri3, C.astFactory.sourceLocation(named2, iri3)));
|
|
11863
12011
|
}
|
|
11864
12012
|
};
|
|
11865
12013
|
var sourceSelector = {
|
|
@@ -11876,7 +12024,7 @@ function funcExpr1(func) {
|
|
|
11876
12024
|
CONSUME(symbols_exports.LParen);
|
|
11877
12025
|
const arg = SUBRULE(expression);
|
|
11878
12026
|
const close = CONSUME(symbols_exports.RParen);
|
|
11879
|
-
return ACTION(() => C.
|
|
12027
|
+
return ACTION(() => C.astFactory.expressionOperation(operator.image, [arg], C.astFactory.sourceLocation(operator, close)));
|
|
11880
12028
|
}
|
|
11881
12029
|
};
|
|
11882
12030
|
}
|
|
@@ -11890,7 +12038,7 @@ function funcExpr2(func) {
|
|
|
11890
12038
|
CONSUME(symbols_exports.comma);
|
|
11891
12039
|
const arg2 = SUBRULE2(expression);
|
|
11892
12040
|
const close = CONSUME(symbols_exports.RParen);
|
|
11893
|
-
return ACTION(() => C.
|
|
12041
|
+
return ACTION(() => C.astFactory.expressionOperation(operator.image, [arg1, arg2], C.astFactory.sourceLocation(operator, close)));
|
|
11894
12042
|
}
|
|
11895
12043
|
};
|
|
11896
12044
|
}
|
|
@@ -11906,7 +12054,7 @@ function funcExpr3(func) {
|
|
|
11906
12054
|
CONSUME2(symbols_exports.comma);
|
|
11907
12055
|
const arg3 = SUBRULE3(expression);
|
|
11908
12056
|
const close = CONSUME(symbols_exports.RParen);
|
|
11909
|
-
return ACTION(() => C.
|
|
12057
|
+
return ACTION(() => C.astFactory.expressionOperation(operator.image, [arg1, arg2, arg3], C.astFactory.sourceLocation(operator, close)));
|
|
11910
12058
|
}
|
|
11911
12059
|
};
|
|
11912
12060
|
}
|
|
@@ -11918,7 +12066,7 @@ function funcVar1(func) {
|
|
|
11918
12066
|
CONSUME(symbols_exports.LParen);
|
|
11919
12067
|
const arg = SUBRULE(var_);
|
|
11920
12068
|
const close = CONSUME(symbols_exports.RParen);
|
|
11921
|
-
return ACTION(() => C.
|
|
12069
|
+
return ACTION(() => C.astFactory.expressionOperation(operator.image, [arg], C.astFactory.sourceLocation(operator, close)));
|
|
11922
12070
|
}
|
|
11923
12071
|
};
|
|
11924
12072
|
}
|
|
@@ -11932,11 +12080,11 @@ function funcExprOrNil1(func) {
|
|
|
11932
12080
|
CONSUME(symbols_exports.LParen);
|
|
11933
12081
|
const arg = SUBRULE(expression);
|
|
11934
12082
|
const close = CONSUME(symbols_exports.RParen);
|
|
11935
|
-
return ACTION(() => C.
|
|
12083
|
+
return ACTION(() => C.astFactory.expressionOperation(operator.image, [arg], C.astFactory.sourceLocation(operator, close)));
|
|
11936
12084
|
} },
|
|
11937
12085
|
{ ALT: () => {
|
|
11938
12086
|
const nil2 = CONSUME(terminals_exports.nil);
|
|
11939
|
-
return ACTION(() => C.
|
|
12087
|
+
return ACTION(() => C.astFactory.expressionOperation(operator.image, [], C.astFactory.sourceLocation(operator, nil2)));
|
|
11940
12088
|
} }
|
|
11941
12089
|
]);
|
|
11942
12090
|
}
|
|
@@ -11948,7 +12096,7 @@ function funcNil1(func) {
|
|
|
11948
12096
|
impl: ({ ACTION, CONSUME }) => (C) => {
|
|
11949
12097
|
const operator = CONSUME(func);
|
|
11950
12098
|
const nil2 = CONSUME(terminals_exports.nil);
|
|
11951
|
-
return ACTION(() => C.
|
|
12099
|
+
return ACTION(() => C.astFactory.expressionOperation(operator.image, [], C.astFactory.sourceLocation(operator, nil2)));
|
|
11952
12100
|
}
|
|
11953
12101
|
};
|
|
11954
12102
|
}
|
|
@@ -11958,7 +12106,7 @@ function funcExprList1(func) {
|
|
|
11958
12106
|
impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {
|
|
11959
12107
|
const operator = CONSUME(func);
|
|
11960
12108
|
const args = SUBRULE(expressionList);
|
|
11961
|
-
return ACTION(() => C.
|
|
12109
|
+
return ACTION(() => C.astFactory.expressionOperation(operator.image, args.val, C.astFactory.sourceLocation(operator, args)));
|
|
11962
12110
|
}
|
|
11963
12111
|
};
|
|
11964
12112
|
}
|
|
@@ -11976,7 +12124,7 @@ function funcExpr2or3(func) {
|
|
|
11976
12124
|
return SUBRULE3(expression);
|
|
11977
12125
|
});
|
|
11978
12126
|
const close = CONSUME(symbols_exports.RParen);
|
|
11979
|
-
return ACTION(() => C.
|
|
12127
|
+
return ACTION(() => C.astFactory.expressionOperation(operator.image, arg3 ? [arg1, arg2, arg3] : [arg1, arg2], C.astFactory.sourceLocation(operator, close)));
|
|
11980
12128
|
}
|
|
11981
12129
|
};
|
|
11982
12130
|
}
|
|
@@ -11996,7 +12144,7 @@ function funcExpr3or4(func) {
|
|
|
11996
12144
|
return SUBRULE4(expression);
|
|
11997
12145
|
});
|
|
11998
12146
|
const close = CONSUME(symbols_exports.RParen);
|
|
11999
|
-
return ACTION(() => C.
|
|
12147
|
+
return ACTION(() => C.astFactory.expressionOperation(operator.image, arg4 ? [arg1, arg2, arg3, arg4] : [arg1, arg2, arg3], C.astFactory.sourceLocation(operator, close)));
|
|
12000
12148
|
}
|
|
12001
12149
|
};
|
|
12002
12150
|
}
|
|
@@ -12006,7 +12154,7 @@ function funcGroupGraphPattern(func) {
|
|
|
12006
12154
|
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
12007
12155
|
const operator = CONSUME(func);
|
|
12008
12156
|
const group = SUBRULE(groupGraphPattern);
|
|
12009
|
-
return ACTION(() => C.
|
|
12157
|
+
return ACTION(() => C.astFactory.expressionPatternOperation(operator.image, group, C.astFactory.sourceLocation(operator, group)));
|
|
12010
12158
|
}
|
|
12011
12159
|
};
|
|
12012
12160
|
}
|
|
@@ -12019,7 +12167,7 @@ function baseAggregateFunc(func) {
|
|
|
12019
12167
|
const distinct2 = OPTION(() => CONSUME(distinct));
|
|
12020
12168
|
const expr1 = SUBRULE(expression);
|
|
12021
12169
|
const close = CONSUME(symbols_exports.RParen);
|
|
12022
|
-
return ACTION(() => C.
|
|
12170
|
+
return ACTION(() => C.astFactory.aggregate(operator.image, distinct2 !== void 0, expr1, void 0, C.astFactory.sourceLocation(operator, close)));
|
|
12023
12171
|
}
|
|
12024
12172
|
};
|
|
12025
12173
|
}
|
|
@@ -12159,17 +12307,17 @@ var aggregateCount = {
|
|
|
12159
12307
|
const expressionVal = OR([
|
|
12160
12308
|
{ ALT: () => {
|
|
12161
12309
|
const starToken = CONSUME(symbols_exports.star);
|
|
12162
|
-
return ACTION(() => C.
|
|
12310
|
+
return ACTION(() => C.astFactory.wildcard(C.astFactory.sourceLocation(starToken)));
|
|
12163
12311
|
} },
|
|
12164
12312
|
{ ALT: () => SUBRULE(expression) }
|
|
12165
12313
|
]);
|
|
12166
12314
|
const closeToken = CONSUME(symbols_exports.RParen);
|
|
12167
12315
|
return ACTION(() => {
|
|
12168
|
-
const F3 = C.
|
|
12169
|
-
if (C.
|
|
12170
|
-
return F3.aggregate(operatorToken.image, Boolean(distinctToken), expressionVal, void 0, C.
|
|
12316
|
+
const F3 = C.astFactory;
|
|
12317
|
+
if (C.astFactory.isWildcard(expressionVal)) {
|
|
12318
|
+
return F3.aggregate(operatorToken.image, Boolean(distinctToken), expressionVal, void 0, C.astFactory.sourceLocation(operatorToken, closeToken));
|
|
12171
12319
|
}
|
|
12172
|
-
return F3.aggregate(operatorToken.image, Boolean(distinctToken), expressionVal, void 0, C.
|
|
12320
|
+
return F3.aggregate(operatorToken.image, Boolean(distinctToken), expressionVal, void 0, C.astFactory.sourceLocation(operatorToken, closeToken));
|
|
12173
12321
|
});
|
|
12174
12322
|
}
|
|
12175
12323
|
};
|
|
@@ -12193,7 +12341,7 @@ var aggregateGroup_concat = {
|
|
|
12193
12341
|
});
|
|
12194
12342
|
const closeToken = CONSUME(symbols_exports.RParen);
|
|
12195
12343
|
return ACTION(() => {
|
|
12196
|
-
const F3 = C.
|
|
12344
|
+
const F3 = C.astFactory;
|
|
12197
12345
|
return F3.aggregate(operatorToken.image, Boolean(distinctToken), expr, sep?.value ?? " ", F3.sourceLocation(operatorToken, closeToken));
|
|
12198
12346
|
});
|
|
12199
12347
|
}
|
|
@@ -12223,7 +12371,7 @@ var aggregate = {
|
|
|
12223
12371
|
});
|
|
12224
12372
|
return result;
|
|
12225
12373
|
},
|
|
12226
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, {
|
|
12374
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F3 }) => {
|
|
12227
12375
|
F3.printFilter(ast, () => {
|
|
12228
12376
|
PRINT_WORD(ast.aggregation.toUpperCase(), "(");
|
|
12229
12377
|
if (ast.distinct) {
|
|
@@ -12250,7 +12398,7 @@ var path = {
|
|
|
12250
12398
|
};
|
|
12251
12399
|
var pathGenerator = {
|
|
12252
12400
|
name: "path",
|
|
12253
|
-
gImpl: ({ PRINT, SUBRULE }) => (ast, {
|
|
12401
|
+
gImpl: ({ PRINT, SUBRULE }) => (ast, { astFactory: F3 }, braces = true) => {
|
|
12254
12402
|
if (F3.isTerm(ast) && F3.isTermNamed(ast)) {
|
|
12255
12403
|
SUBRULE(iri2, ast);
|
|
12256
12404
|
} else {
|
|
@@ -12299,7 +12447,7 @@ function pathChainHelper(name, SEP, subType, subRule) {
|
|
|
12299
12447
|
tailEnd = SUBRULE2(subRule);
|
|
12300
12448
|
tail.push(tailEnd);
|
|
12301
12449
|
});
|
|
12302
|
-
return ACTION(() => tail.length === 0 ? head2 : C.
|
|
12450
|
+
return ACTION(() => tail.length === 0 ? head2 : C.astFactory.path(subType, [head2, ...tail], C.astFactory.sourceLocation(head2, tailEnd)));
|
|
12303
12451
|
}
|
|
12304
12452
|
};
|
|
12305
12453
|
}
|
|
@@ -12310,7 +12458,7 @@ var pathEltOrInverse = {
|
|
|
12310
12458
|
{ ALT: () => {
|
|
12311
12459
|
const hat2 = CONSUME(symbols_exports.hat);
|
|
12312
12460
|
const item = SUBRULE2(pathElt);
|
|
12313
|
-
return ACTION(() => C.
|
|
12461
|
+
return ACTION(() => C.astFactory.path("^", [item], C.astFactory.sourceLocation(hat2, item)));
|
|
12314
12462
|
} }
|
|
12315
12463
|
])
|
|
12316
12464
|
};
|
|
@@ -12321,7 +12469,7 @@ var pathElt = {
|
|
|
12321
12469
|
impl: ({ ACTION, SUBRULE, OPTION }) => (C) => {
|
|
12322
12470
|
const item = SUBRULE(pathPrimary);
|
|
12323
12471
|
const modification = OPTION(() => SUBRULE(pathMod));
|
|
12324
|
-
return ACTION(() => modification === void 0 ? item : C.
|
|
12472
|
+
return ACTION(() => modification === void 0 ? item : C.astFactory.path(modification.image, [item], C.astFactory.sourceLocation(item, modification)));
|
|
12325
12473
|
}
|
|
12326
12474
|
};
|
|
12327
12475
|
var pathMod = {
|
|
@@ -12353,7 +12501,7 @@ var pathNegatedPropertySet = {
|
|
|
12353
12501
|
return OR([
|
|
12354
12502
|
{ ALT: () => {
|
|
12355
12503
|
const noAlternative = SUBRULE1(pathOneInPropertySet);
|
|
12356
|
-
return ACTION(() => C.
|
|
12504
|
+
return ACTION(() => C.astFactory.path("!", [noAlternative], C.astFactory.sourceLocation(exclamation2, noAlternative)));
|
|
12357
12505
|
} },
|
|
12358
12506
|
{ ALT: () => {
|
|
12359
12507
|
const open = CONSUME(symbols_exports.LParen);
|
|
@@ -12366,7 +12514,7 @@ var pathNegatedPropertySet = {
|
|
|
12366
12514
|
});
|
|
12367
12515
|
const close = CONSUME(symbols_exports.RParen);
|
|
12368
12516
|
return ACTION(() => {
|
|
12369
|
-
const F3 = C.
|
|
12517
|
+
const F3 = C.astFactory;
|
|
12370
12518
|
if (tail.length === 0) {
|
|
12371
12519
|
return F3.path("!", [head2], F3.sourceLocation(exclamation2, close));
|
|
12372
12520
|
}
|
|
@@ -12387,7 +12535,7 @@ var pathOneInPropertySet = {
|
|
|
12387
12535
|
{ ALT: () => SUBRULE2(iri2) },
|
|
12388
12536
|
{ ALT: () => SUBRULE2(verbA) }
|
|
12389
12537
|
]);
|
|
12390
|
-
return ACTION(() => C.
|
|
12538
|
+
return ACTION(() => C.astFactory.path("^", [item], C.astFactory.sourceLocation(hat2, item)));
|
|
12391
12539
|
} }
|
|
12392
12540
|
])
|
|
12393
12541
|
};
|
|
@@ -12412,33 +12560,35 @@ function triplesDotSeperated(triplesSameSubjectSubrule) {
|
|
|
12412
12560
|
});
|
|
12413
12561
|
}
|
|
12414
12562
|
});
|
|
12415
|
-
return ACTION(() => C.
|
|
12563
|
+
return ACTION(() => C.astFactory.patternBgp(triples, C.astFactory.sourceLocation(...triples, dotToken)));
|
|
12416
12564
|
};
|
|
12417
12565
|
}
|
|
12418
12566
|
var triplesBlock = {
|
|
12419
12567
|
name: "triplesBlock",
|
|
12420
12568
|
impl: (implArgs) => (C) => triplesDotSeperated(triplesSameSubjectPath)(implArgs)(C),
|
|
12421
|
-
gImpl: ({ SUBRULE, PRINT_WORD, HANDLE_LOC }) => (ast, {
|
|
12569
|
+
gImpl: ({ SUBRULE, PRINT_WORD, HANDLE_LOC }) => (ast, { astFactory: F3 }) => {
|
|
12422
12570
|
for (const [index, triple] of ast.triples.entries()) {
|
|
12423
12571
|
HANDLE_LOC(triple, () => {
|
|
12424
12572
|
const nextTriple = ast.triples.at(index);
|
|
12425
12573
|
if (F3.isTripleCollection(triple)) {
|
|
12426
12574
|
SUBRULE(graphNodePath, triple);
|
|
12427
|
-
F3.printFilter(triple, () => PRINT_WORD("
|
|
12575
|
+
F3.printFilter(triple, () => PRINT_WORD(".\n"));
|
|
12428
12576
|
} else {
|
|
12429
12577
|
SUBRULE(graphNodePath, triple.subject);
|
|
12578
|
+
F3.printFilter(triple, () => PRINT_WORD(""));
|
|
12430
12579
|
if (F3.isTerm(triple.predicate) && F3.isTermVariable(triple.predicate)) {
|
|
12431
12580
|
SUBRULE(varOrTerm, triple.predicate);
|
|
12432
12581
|
} else {
|
|
12433
12582
|
SUBRULE(pathGenerator, triple.predicate, void 0);
|
|
12434
12583
|
}
|
|
12584
|
+
F3.printFilter(triple, () => PRINT_WORD(""));
|
|
12435
12585
|
SUBRULE(graphNodePath, triple.object);
|
|
12436
12586
|
if (nextTriple === void 0 || F3.isTripleCollection(nextTriple) || !F3.isSourceLocationNoMaterialize(nextTriple.subject.loc)) {
|
|
12437
|
-
F3.printFilter(ast, () => PRINT_WORD("
|
|
12587
|
+
F3.printFilter(ast, () => PRINT_WORD(".\n"));
|
|
12438
12588
|
} else if (F3.isSourceLocationNoMaterialize(nextTriple.predicate.loc)) {
|
|
12439
12589
|
F3.printFilter(ast, () => PRINT_WORD(","));
|
|
12440
12590
|
} else {
|
|
12441
|
-
F3.printFilter(ast, () => PRINT_WORD("
|
|
12591
|
+
F3.printFilter(ast, () => PRINT_WORD(";\n"));
|
|
12442
12592
|
}
|
|
12443
12593
|
}
|
|
12444
12594
|
});
|
|
@@ -12451,24 +12601,24 @@ function triplesSameSubjectImpl(name, allowPaths) {
|
|
|
12451
12601
|
impl: ({ ACTION, SUBRULE, OR }) => (C) => OR([
|
|
12452
12602
|
{ ALT: () => {
|
|
12453
12603
|
const subject = SUBRULE(varOrTerm);
|
|
12454
|
-
const res = SUBRULE(allowPaths ? propertyListPathNotEmpty : propertyListNotEmpty, ACTION(() => C.
|
|
12604
|
+
const res = SUBRULE(allowPaths ? propertyListPathNotEmpty : propertyListNotEmpty, ACTION(() => C.astFactory.dematerialized(subject)));
|
|
12455
12605
|
return ACTION(() => {
|
|
12456
12606
|
if (res.length > 0) {
|
|
12457
12607
|
res[0].subject = subject;
|
|
12458
|
-
res[0].loc = C.
|
|
12608
|
+
res[0].loc = C.astFactory.sourceLocation(subject, res[0]);
|
|
12459
12609
|
}
|
|
12460
12610
|
return res;
|
|
12461
12611
|
});
|
|
12462
12612
|
} },
|
|
12463
12613
|
{ ALT: () => {
|
|
12464
12614
|
const subjectNode = SUBRULE(allowPaths ? triplesNodePath : triplesNode);
|
|
12465
|
-
const restNode = SUBRULE(allowPaths ? propertyListPath : propertyList, ACTION(() => C.
|
|
12615
|
+
const restNode = SUBRULE(allowPaths ? propertyListPath : propertyList, ACTION(() => C.astFactory.graphNodeIdentifier(subjectNode)));
|
|
12466
12616
|
return ACTION(() => {
|
|
12467
12617
|
if (restNode.length === 0) {
|
|
12468
12618
|
return [subjectNode];
|
|
12469
12619
|
}
|
|
12470
12620
|
restNode[0].subject = subjectNode;
|
|
12471
|
-
restNode[0].loc = C.
|
|
12621
|
+
restNode[0].loc = C.astFactory.sourceLocation(subjectNode, restNode[0]);
|
|
12472
12622
|
return restNode;
|
|
12473
12623
|
});
|
|
12474
12624
|
} }
|
|
@@ -12552,7 +12702,7 @@ function objectImpl(name, allowPaths) {
|
|
|
12552
12702
|
name,
|
|
12553
12703
|
impl: ({ ACTION, SUBRULE }) => (C, subject, predicate) => {
|
|
12554
12704
|
const node = SUBRULE(allowPaths ? graphNodePath : graphNode);
|
|
12555
|
-
return ACTION(() => C.
|
|
12705
|
+
return ACTION(() => C.astFactory.triple(subject, predicate, node));
|
|
12556
12706
|
}
|
|
12557
12707
|
};
|
|
12558
12708
|
}
|
|
@@ -12569,7 +12719,7 @@ function collectionImpl(name, allowPaths) {
|
|
|
12569
12719
|
});
|
|
12570
12720
|
const endToken = CONSUME(symbols_exports.RParen);
|
|
12571
12721
|
return ACTION(() => {
|
|
12572
|
-
const F3 = C.
|
|
12722
|
+
const F3 = C.astFactory;
|
|
12573
12723
|
const triples = [];
|
|
12574
12724
|
const predFirst = F3.namedNode(F3.sourceLocationNoMaterialize(), CommonIRIs.FIRST, void 0);
|
|
12575
12725
|
const predRest = F3.namedNode(F3.sourceLocationNoMaterialize(), CommonIRIs.REST, void 0);
|
|
@@ -12593,7 +12743,7 @@ function collectionImpl(name, allowPaths) {
|
|
|
12593
12743
|
return F3.tripleCollectionList(listHead, triples, F3.sourceLocation(startToken, endToken));
|
|
12594
12744
|
});
|
|
12595
12745
|
},
|
|
12596
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, {
|
|
12746
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F3 }) => {
|
|
12597
12747
|
F3.printFilter(ast, () => PRINT_WORD("("));
|
|
12598
12748
|
for (const [idx, triple] of ast.triples.entries()) {
|
|
12599
12749
|
if (idx % 2 === 0) {
|
|
@@ -12624,13 +12774,17 @@ function blankNodePropertyListImpl(name, allowPaths) {
|
|
|
12624
12774
|
name,
|
|
12625
12775
|
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
12626
12776
|
const startToken = CONSUME(symbols_exports.LSquare);
|
|
12627
|
-
const blankNode2 = ACTION(() => C.
|
|
12777
|
+
const blankNode2 = ACTION(() => C.astFactory.blankNode(void 0, C.astFactory.sourceLocationNoMaterialize()));
|
|
12628
12778
|
const propList = SUBRULE(propertyPathNotEmptyImpl, blankNode2);
|
|
12629
12779
|
const endToken = CONSUME(symbols_exports.RSquare);
|
|
12630
|
-
return ACTION(() => C.
|
|
12780
|
+
return ACTION(() => C.astFactory.tripleCollectionBlankNodeProperties(blankNode2, propList, C.astFactory.sourceLocation(startToken, endToken)));
|
|
12631
12781
|
},
|
|
12632
|
-
gImpl: ({ SUBRULE, PRINT, PRINT_WORD, HANDLE_LOC }) => (ast,
|
|
12633
|
-
F3
|
|
12782
|
+
gImpl: ({ SUBRULE, PRINT, PRINT_WORD, HANDLE_LOC, PRINT_ON_EMPTY }) => (ast, c) => {
|
|
12783
|
+
const { astFactory: F3, indentInc } = c;
|
|
12784
|
+
F3.printFilter(ast, () => {
|
|
12785
|
+
c[traqulaIndentation] += indentInc;
|
|
12786
|
+
PRINT("[\n");
|
|
12787
|
+
});
|
|
12634
12788
|
for (const triple of ast.triples) {
|
|
12635
12789
|
HANDLE_LOC(triple, () => {
|
|
12636
12790
|
if (F3.isTerm(triple.predicate) && F3.isTermVariable(triple.predicate)) {
|
|
@@ -12638,11 +12792,15 @@ function blankNodePropertyListImpl(name, allowPaths) {
|
|
|
12638
12792
|
} else {
|
|
12639
12793
|
SUBRULE(pathGenerator, triple.predicate, void 0);
|
|
12640
12794
|
}
|
|
12795
|
+
F3.printFilter(triple, () => PRINT_WORD(""));
|
|
12641
12796
|
SUBRULE(graphNodePath, triple.object);
|
|
12642
|
-
F3.printFilter(ast, () => PRINT_WORD("
|
|
12797
|
+
F3.printFilter(ast, () => PRINT_WORD(";\n"));
|
|
12643
12798
|
});
|
|
12644
12799
|
}
|
|
12645
|
-
F3.printFilter(ast, () =>
|
|
12800
|
+
F3.printFilter(ast, () => {
|
|
12801
|
+
c[traqulaIndentation] -= indentInc;
|
|
12802
|
+
PRINT_ON_EMPTY("]");
|
|
12803
|
+
});
|
|
12646
12804
|
}
|
|
12647
12805
|
};
|
|
12648
12806
|
}
|
|
@@ -12659,7 +12817,7 @@ function graphNodeImpl(name, allowPaths) {
|
|
|
12659
12817
|
ALT: () => SUBRULE(triplesNodeRule)
|
|
12660
12818
|
}
|
|
12661
12819
|
]),
|
|
12662
|
-
gImpl: ({ SUBRULE }) => (ast, {
|
|
12820
|
+
gImpl: ({ SUBRULE }) => (ast, { astFactory: F3 }) => {
|
|
12663
12821
|
if (F3.isTerm(ast)) {
|
|
12664
12822
|
SUBRULE(varOrTerm, ast);
|
|
12665
12823
|
} else {
|
|
@@ -12677,9 +12835,9 @@ var whereClause = {
|
|
|
12677
12835
|
impl: ({ ACTION, SUBRULE, CONSUME, OPTION }) => (C) => {
|
|
12678
12836
|
const where2 = OPTION(() => CONSUME(where));
|
|
12679
12837
|
const group = SUBRULE(groupGraphPattern);
|
|
12680
|
-
return ACTION(() => C.
|
|
12838
|
+
return ACTION(() => C.astFactory.wrap(group, C.astFactory.sourceLocation(where2, group)));
|
|
12681
12839
|
},
|
|
12682
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, {
|
|
12840
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F3 }) => {
|
|
12683
12841
|
F3.printFilter(ast, () => PRINT_WORD("WHERE"));
|
|
12684
12842
|
SUBRULE(groupGraphPattern, ast.val);
|
|
12685
12843
|
}
|
|
@@ -12693,19 +12851,26 @@ var groupGraphPattern = {
|
|
|
12693
12851
|
{ ALT: () => SUBRULE(groupGraphPatternSub) }
|
|
12694
12852
|
]);
|
|
12695
12853
|
const close = CONSUME(symbols_exports.RCurly);
|
|
12696
|
-
return ACTION(() => C.
|
|
12854
|
+
return ACTION(() => C.astFactory.patternGroup(patterns, C.astFactory.sourceLocation(open, close)));
|
|
12697
12855
|
},
|
|
12698
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast,
|
|
12699
|
-
F3
|
|
12856
|
+
gImpl: ({ SUBRULE, PRINT_WORD, PRINT_ON_EMPTY }) => (ast, C) => {
|
|
12857
|
+
const { astFactory: F3, indentInc } = C;
|
|
12858
|
+
F3.printFilter(ast, () => {
|
|
12859
|
+
C[traqulaIndentation] += indentInc;
|
|
12860
|
+
PRINT_WORD("{\n");
|
|
12861
|
+
});
|
|
12700
12862
|
for (const pattern of ast.patterns) {
|
|
12701
12863
|
SUBRULE(generatePattern, pattern);
|
|
12702
12864
|
}
|
|
12703
|
-
F3.printFilter(ast, () =>
|
|
12865
|
+
F3.printFilter(ast, () => {
|
|
12866
|
+
C[traqulaIndentation] -= indentInc;
|
|
12867
|
+
PRINT_ON_EMPTY("}\n");
|
|
12868
|
+
});
|
|
12704
12869
|
}
|
|
12705
12870
|
};
|
|
12706
12871
|
var generatePattern = {
|
|
12707
12872
|
name: "generatePattern",
|
|
12708
|
-
gImpl: ({ SUBRULE }) => (ast, {
|
|
12873
|
+
gImpl: ({ SUBRULE }) => (ast, { astFactory: F3 }) => {
|
|
12709
12874
|
if (ast.type === "query") {
|
|
12710
12875
|
SUBRULE(query, F3.querySelect({
|
|
12711
12876
|
context: [],
|
|
@@ -12794,9 +12959,9 @@ var optionalGraphPattern = {
|
|
|
12794
12959
|
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
12795
12960
|
const optional2 = CONSUME(optional);
|
|
12796
12961
|
const group = SUBRULE(groupGraphPattern);
|
|
12797
|
-
return ACTION(() => C.
|
|
12962
|
+
return ACTION(() => C.astFactory.patternOptional(group.patterns, C.astFactory.sourceLocation(optional2, group)));
|
|
12798
12963
|
},
|
|
12799
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, {
|
|
12964
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F3 }) => {
|
|
12800
12965
|
F3.printFilter(ast, () => PRINT_WORD("OPTIONAL"));
|
|
12801
12966
|
SUBRULE(groupGraphPattern, F3.patternGroup(ast.patterns, ast.loc));
|
|
12802
12967
|
}
|
|
@@ -12807,9 +12972,9 @@ var graphGraphPattern = {
|
|
|
12807
12972
|
const graph2 = CONSUME(graph_exports.graph);
|
|
12808
12973
|
const name = SUBRULE(varOrIri);
|
|
12809
12974
|
const group = SUBRULE(groupGraphPattern);
|
|
12810
|
-
return ACTION(() => C.
|
|
12975
|
+
return ACTION(() => C.astFactory.patternGraph(name, group.patterns, C.astFactory.sourceLocation(graph2, group)));
|
|
12811
12976
|
},
|
|
12812
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, {
|
|
12977
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F3 }) => {
|
|
12813
12978
|
F3.printFilter(ast, () => PRINT_WORD("GRAPH"));
|
|
12814
12979
|
SUBRULE(varOrTerm, ast.name);
|
|
12815
12980
|
SUBRULE(groupGraphPattern, F3.patternGroup(ast.patterns, ast.loc));
|
|
@@ -12825,9 +12990,9 @@ var serviceGraphPattern = {
|
|
|
12825
12990
|
}) ?? false;
|
|
12826
12991
|
const name = SUBRULE1(varOrIri);
|
|
12827
12992
|
const group = SUBRULE1(groupGraphPattern);
|
|
12828
|
-
return ACTION(() => C.
|
|
12993
|
+
return ACTION(() => C.astFactory.patternService(name, group.patterns, silent2, C.astFactory.sourceLocation(service2, group)));
|
|
12829
12994
|
},
|
|
12830
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, {
|
|
12995
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F3 }) => {
|
|
12831
12996
|
F3.printFilter(ast, () => {
|
|
12832
12997
|
PRINT_WORD("SERVICE");
|
|
12833
12998
|
if (ast.silent) {
|
|
@@ -12847,14 +13012,14 @@ var bind2 = {
|
|
|
12847
13012
|
CONSUME(as);
|
|
12848
13013
|
const variable = SUBRULE(var_);
|
|
12849
13014
|
const close = CONSUME(symbols_exports.RParen);
|
|
12850
|
-
return ACTION(() => C.
|
|
13015
|
+
return ACTION(() => C.astFactory.patternBind(expressionVal, variable, C.astFactory.sourceLocation(bind3, close)));
|
|
12851
13016
|
},
|
|
12852
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, {
|
|
13017
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F3 }) => {
|
|
12853
13018
|
F3.printFilter(ast, () => PRINT_WORD("BIND", "("));
|
|
12854
13019
|
SUBRULE(expression, ast.expression);
|
|
12855
13020
|
F3.printFilter(ast, () => PRINT_WORD("AS"));
|
|
12856
13021
|
SUBRULE(var_, ast.variable);
|
|
12857
|
-
F3.printFilter(ast, () => PRINT_WORD(")"));
|
|
13022
|
+
F3.printFilter(ast, () => PRINT_WORD(")\n"));
|
|
12858
13023
|
}
|
|
12859
13024
|
};
|
|
12860
13025
|
var inlineData = {
|
|
@@ -12862,16 +13027,19 @@ var inlineData = {
|
|
|
12862
13027
|
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
12863
13028
|
const values3 = CONSUME(values2);
|
|
12864
13029
|
const datablock = SUBRULE(dataBlock);
|
|
12865
|
-
return ACTION(() => C.
|
|
13030
|
+
return ACTION(() => C.astFactory.patternValues(datablock.val, C.astFactory.sourceLocation(values3, datablock)));
|
|
12866
13031
|
},
|
|
12867
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast,
|
|
13032
|
+
gImpl: ({ SUBRULE, PRINT_WORD, PRINT_ON_EMPTY }) => (ast, C) => {
|
|
13033
|
+
const { astFactory: F3, indentInc } = C;
|
|
12868
13034
|
const variables = Object.keys(ast.values.at(0) ?? {});
|
|
12869
13035
|
F3.printFilter(ast, () => {
|
|
13036
|
+
PRINT_ON_EMPTY("");
|
|
12870
13037
|
PRINT_WORD("VALUES", "(");
|
|
12871
13038
|
for (const variable of variables) {
|
|
12872
13039
|
PRINT_WORD(`?${variable}`);
|
|
12873
13040
|
}
|
|
12874
|
-
|
|
13041
|
+
C[traqulaIndentation] += indentInc;
|
|
13042
|
+
PRINT_WORD(")", "{\n");
|
|
12875
13043
|
});
|
|
12876
13044
|
for (const mapping of ast.values) {
|
|
12877
13045
|
F3.printFilter(ast, () => PRINT_WORD("("));
|
|
@@ -12882,9 +13050,12 @@ var inlineData = {
|
|
|
12882
13050
|
SUBRULE(graphNodePath, mapping[variable]);
|
|
12883
13051
|
}
|
|
12884
13052
|
}
|
|
12885
|
-
F3.printFilter(ast, () => PRINT_WORD(")"));
|
|
13053
|
+
F3.printFilter(ast, () => PRINT_WORD(")\n"));
|
|
12886
13054
|
}
|
|
12887
|
-
F3.printFilter(ast, () =>
|
|
13055
|
+
F3.printFilter(ast, () => {
|
|
13056
|
+
C[traqulaIndentation] -= indentInc;
|
|
13057
|
+
PRINT_ON_EMPTY("}\n");
|
|
13058
|
+
});
|
|
12888
13059
|
}
|
|
12889
13060
|
};
|
|
12890
13061
|
var dataBlock = {
|
|
@@ -12907,7 +13078,7 @@ var inlineDataOneVar = {
|
|
|
12907
13078
|
});
|
|
12908
13079
|
});
|
|
12909
13080
|
const close = CONSUME(symbols_exports.RCurly);
|
|
12910
|
-
return ACTION(() => C.
|
|
13081
|
+
return ACTION(() => C.astFactory.wrap(res, C.astFactory.sourceLocation(varVal, close)));
|
|
12911
13082
|
}
|
|
12912
13083
|
};
|
|
12913
13084
|
var inlineDataFull = {
|
|
@@ -12924,7 +13095,7 @@ var inlineDataFull = {
|
|
|
12924
13095
|
res.push({});
|
|
12925
13096
|
});
|
|
12926
13097
|
const close = CONSUME1(symbols_exports.RCurly);
|
|
12927
|
-
return ACTION(() => C.
|
|
13098
|
+
return ACTION(() => C.astFactory.wrap(res, C.astFactory.sourceLocation(nil2, close)));
|
|
12928
13099
|
} },
|
|
12929
13100
|
{ ALT: () => {
|
|
12930
13101
|
const open = CONSUME1(symbols_exports.LParen);
|
|
@@ -12956,7 +13127,7 @@ var inlineDataFull = {
|
|
|
12956
13127
|
});
|
|
12957
13128
|
});
|
|
12958
13129
|
const close = CONSUME2(symbols_exports.RCurly);
|
|
12959
|
-
return ACTION(() => C.
|
|
13130
|
+
return ACTION(() => C.astFactory.wrap(res, C.astFactory.sourceLocation(open, close)));
|
|
12960
13131
|
} }
|
|
12961
13132
|
]);
|
|
12962
13133
|
}
|
|
@@ -12979,9 +13150,9 @@ var minusGraphPattern = {
|
|
|
12979
13150
|
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
12980
13151
|
const minus2 = CONSUME(minus);
|
|
12981
13152
|
const group = SUBRULE(groupGraphPattern);
|
|
12982
|
-
return ACTION(() => C.
|
|
13153
|
+
return ACTION(() => C.astFactory.patternMinus(group.patterns, C.astFactory.sourceLocation(minus2, group)));
|
|
12983
13154
|
},
|
|
12984
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, {
|
|
13155
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F3 }) => {
|
|
12985
13156
|
F3.printFilter(ast, () => PRINT_WORD("MINUS"));
|
|
12986
13157
|
SUBRULE(groupGraphPattern, F3.patternGroup(ast.patterns, ast.loc));
|
|
12987
13158
|
}
|
|
@@ -12997,9 +13168,9 @@ var groupOrUnionGraphPattern = {
|
|
|
12997
13168
|
const group2 = SUBRULE2(groupGraphPattern);
|
|
12998
13169
|
groups.push(group2);
|
|
12999
13170
|
});
|
|
13000
|
-
return ACTION(() => groups.length === 1 ? groups[0] : C.
|
|
13171
|
+
return ACTION(() => groups.length === 1 ? groups[0] : C.astFactory.patternUnion(groups, C.astFactory.sourceLocation(group, groups.at(-1))));
|
|
13001
13172
|
},
|
|
13002
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, {
|
|
13173
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F3 }) => {
|
|
13003
13174
|
if (F3.isPatternUnion(ast)) {
|
|
13004
13175
|
const [head2, ...tail] = ast.patterns;
|
|
13005
13176
|
SUBRULE(groupGraphPattern, head2);
|
|
@@ -13017,12 +13188,12 @@ var filter3 = {
|
|
|
13017
13188
|
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
13018
13189
|
const filterToken = CONSUME(filter2);
|
|
13019
13190
|
const expression2 = SUBRULE(constraint);
|
|
13020
|
-
return ACTION(() => C.
|
|
13191
|
+
return ACTION(() => C.astFactory.patternFilter(expression2, C.astFactory.sourceLocation(filterToken, expression2)));
|
|
13021
13192
|
},
|
|
13022
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, {
|
|
13193
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F3 }) => {
|
|
13023
13194
|
F3.printFilter(ast, () => PRINT_WORD("FILTER ("));
|
|
13024
13195
|
SUBRULE(expression, ast.expression);
|
|
13025
|
-
F3.printFilter(ast, () => PRINT_WORD(")"));
|
|
13196
|
+
F3.printFilter(ast, () => PRINT_WORD(")\n"));
|
|
13026
13197
|
}
|
|
13027
13198
|
};
|
|
13028
13199
|
var constraint = {
|
|
@@ -13038,7 +13209,7 @@ var functionCall = {
|
|
|
13038
13209
|
impl: ({ ACTION, SUBRULE }) => (C) => {
|
|
13039
13210
|
const func = SUBRULE(iri2);
|
|
13040
13211
|
const args = SUBRULE(argList);
|
|
13041
|
-
return ACTION(() => C.
|
|
13212
|
+
return ACTION(() => C.astFactory.expressionFunctionCall(func, args.val.args, args.val.distinct, C.astFactory.sourceLocation(func, args)));
|
|
13042
13213
|
}
|
|
13043
13214
|
};
|
|
13044
13215
|
|
|
@@ -13048,7 +13219,7 @@ var argList = {
|
|
|
13048
13219
|
impl: ({ ACTION, CONSUME, SUBRULE1, OPTION, OR, AT_LEAST_ONE_SEP }) => (C) => OR([
|
|
13049
13220
|
{ ALT: () => {
|
|
13050
13221
|
const nil2 = CONSUME(terminals_exports.nil);
|
|
13051
|
-
return ACTION(() => C.
|
|
13222
|
+
return ACTION(() => C.astFactory.wrap({ args: [], distinct: false }, C.astFactory.sourceLocation(nil2)));
|
|
13052
13223
|
} },
|
|
13053
13224
|
{ ALT: () => {
|
|
13054
13225
|
const args = [];
|
|
@@ -13065,10 +13236,10 @@ var argList = {
|
|
|
13065
13236
|
}
|
|
13066
13237
|
});
|
|
13067
13238
|
const close = CONSUME(symbols_exports.RParen);
|
|
13068
|
-
return ACTION(() => C.
|
|
13239
|
+
return ACTION(() => C.astFactory.wrap({ args, distinct: distinct2 }, C.astFactory.sourceLocation(open, close)));
|
|
13069
13240
|
} }
|
|
13070
13241
|
]),
|
|
13071
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, {
|
|
13242
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F3 }) => {
|
|
13072
13243
|
F3.printFilter(ast, () => {
|
|
13073
13244
|
PRINT_WORD("(");
|
|
13074
13245
|
if (ast.val.distinct) {
|
|
@@ -13091,7 +13262,7 @@ var expressionList = {
|
|
|
13091
13262
|
impl: ({ ACTION, CONSUME, MANY, OR, SUBRULE1, SUBRULE2 }) => (C) => OR([
|
|
13092
13263
|
{ ALT: () => {
|
|
13093
13264
|
const nil2 = CONSUME(terminals_exports.nil);
|
|
13094
|
-
return ACTION(() => C.
|
|
13265
|
+
return ACTION(() => C.astFactory.wrap([], C.astFactory.sourceLocation(nil2)));
|
|
13095
13266
|
} },
|
|
13096
13267
|
{ ALT: () => {
|
|
13097
13268
|
const open = CONSUME(symbols_exports.LParen);
|
|
@@ -13103,7 +13274,7 @@ var expressionList = {
|
|
|
13103
13274
|
args.push(expr);
|
|
13104
13275
|
});
|
|
13105
13276
|
const close = CONSUME(symbols_exports.RParen);
|
|
13106
|
-
return ACTION(() => C.
|
|
13277
|
+
return ACTION(() => C.astFactory.wrap(args, C.astFactory.sourceLocation(open, close)));
|
|
13107
13278
|
} }
|
|
13108
13279
|
])
|
|
13109
13280
|
};
|
|
@@ -13112,7 +13283,7 @@ var prefixOperator = /* @__PURE__ */ new Set(["!", "UPLUS", "UMINUS"]);
|
|
|
13112
13283
|
var expression = {
|
|
13113
13284
|
name: "expression",
|
|
13114
13285
|
impl: ({ SUBRULE }) => () => SUBRULE(conditionalOrExpression),
|
|
13115
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, {
|
|
13286
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F3 }) => {
|
|
13116
13287
|
if (F3.isTerm(ast)) {
|
|
13117
13288
|
SUBRULE(varOrTerm, ast);
|
|
13118
13289
|
} else if (F3.isExpressionOperator(ast)) {
|
|
@@ -13177,7 +13348,7 @@ var conditionalOrExpression = {
|
|
|
13177
13348
|
impl: ({ ACTION, MANY, CONSUME, SUBRULE1, SUBRULE2 }) => (C) => constructLeftDeep(() => SUBRULE1(conditionalAndExpression), () => {
|
|
13178
13349
|
CONSUME(symbols_exports.logicOr);
|
|
13179
13350
|
const args = SUBRULE2(conditionalAndExpression);
|
|
13180
|
-
return (left) => ACTION(() => C.
|
|
13351
|
+
return (left) => ACTION(() => C.astFactory.expressionOperation("||", [left, args], C.astFactory.sourceLocation(left, args)));
|
|
13181
13352
|
}, ACTION, MANY)
|
|
13182
13353
|
};
|
|
13183
13354
|
var conditionalAndExpression = {
|
|
@@ -13185,7 +13356,7 @@ var conditionalAndExpression = {
|
|
|
13185
13356
|
impl: ({ ACTION, MANY, SUBRULE1, SUBRULE2, CONSUME }) => (C) => constructLeftDeep(() => SUBRULE1(valueLogical), () => {
|
|
13186
13357
|
CONSUME(symbols_exports.logicAnd);
|
|
13187
13358
|
const arg = SUBRULE2(valueLogical);
|
|
13188
|
-
return (left) => ACTION(() => C.
|
|
13359
|
+
return (left) => ACTION(() => C.astFactory.expressionOperation("&&", [left, arg], C.astFactory.sourceLocation(left, arg)));
|
|
13189
13360
|
}, ACTION, MANY)
|
|
13190
13361
|
};
|
|
13191
13362
|
var valueLogical = {
|
|
@@ -13207,7 +13378,7 @@ var relationalExpression = {
|
|
|
13207
13378
|
{ ALT: () => CONSUME(symbols_exports.greaterThanEqual) }
|
|
13208
13379
|
]);
|
|
13209
13380
|
const expr = SUBRULE2(numericExpression);
|
|
13210
|
-
return ACTION(() => C.
|
|
13381
|
+
return ACTION(() => C.astFactory.expressionOperation(operator.image, [args1, expr], C.astFactory.sourceLocation(args1, expr)));
|
|
13211
13382
|
} },
|
|
13212
13383
|
{ ALT: () => {
|
|
13213
13384
|
const operator = OR3([
|
|
@@ -13215,7 +13386,7 @@ var relationalExpression = {
|
|
|
13215
13386
|
{ ALT: () => CONSUME(notIn) }
|
|
13216
13387
|
]);
|
|
13217
13388
|
const args = SUBRULE1(expressionList);
|
|
13218
|
-
return ACTION(() => C.
|
|
13389
|
+
return ACTION(() => C.astFactory.expressionOperation(operator.image, [args1, ...args.val], C.astFactory.sourceLocation(args1, args)));
|
|
13219
13390
|
} }
|
|
13220
13391
|
]));
|
|
13221
13392
|
return expression2 ?? args1;
|
|
@@ -13234,7 +13405,7 @@ var additiveExpression = {
|
|
|
13234
13405
|
{ ALT: () => CONSUME(symbols_exports.opMinus) }
|
|
13235
13406
|
]);
|
|
13236
13407
|
const arg = SUBRULE2(multiplicativeExpression);
|
|
13237
|
-
return ACTION(() => (left) => C.
|
|
13408
|
+
return ACTION(() => (left) => C.astFactory.expressionOperation(operator.image, [left, arg], C.astFactory.sourceLocation(left, arg)));
|
|
13238
13409
|
} },
|
|
13239
13410
|
{ ALT: () => {
|
|
13240
13411
|
const { operator, startInt } = OR3([
|
|
@@ -13265,9 +13436,9 @@ var additiveExpression = {
|
|
|
13265
13436
|
{ ALT: () => CONSUME(symbols_exports.slash) }
|
|
13266
13437
|
]);
|
|
13267
13438
|
const innerExpr = SUBRULE1(unaryExpression);
|
|
13268
|
-
return ACTION(() => (leftInner) => C.
|
|
13439
|
+
return ACTION(() => (leftInner) => C.astFactory.expressionOperation(innerOperator.image, [leftInner, innerExpr], C.astFactory.sourceLocation(leftInner, innerExpr)));
|
|
13269
13440
|
}, ACTION, MANY2);
|
|
13270
|
-
return (left) => C.
|
|
13441
|
+
return (left) => C.astFactory.expressionOperation(operator, [left, multiplicativeExpr], C.astFactory.sourceLocation(left, multiplicativeExpr));
|
|
13271
13442
|
} }
|
|
13272
13443
|
]), ACTION, MANY1)
|
|
13273
13444
|
};
|
|
@@ -13284,7 +13455,7 @@ var multiplicativeExpression = {
|
|
|
13284
13455
|
subType: "operation",
|
|
13285
13456
|
operator: operator.image,
|
|
13286
13457
|
args: [left, expr],
|
|
13287
|
-
loc: C.
|
|
13458
|
+
loc: C.astFactory.sourceLocation(left, expr)
|
|
13288
13459
|
});
|
|
13289
13460
|
}, ACTION, MANY)
|
|
13290
13461
|
};
|
|
@@ -13299,7 +13470,7 @@ var unaryExpression = {
|
|
|
13299
13470
|
{ ALT: () => CONSUME(symbols_exports.opMinus) }
|
|
13300
13471
|
]);
|
|
13301
13472
|
const expr = SUBRULE2(primaryExpression);
|
|
13302
|
-
return ACTION(() => C.
|
|
13473
|
+
return ACTION(() => C.astFactory.expressionOperation(operator.image === "!" ? "!" : operator.image === "+" ? "UPLUS" : "UMINUS", [expr], C.astFactory.sourceLocation(operator, expr)));
|
|
13303
13474
|
} }
|
|
13304
13475
|
])
|
|
13305
13476
|
};
|
|
@@ -13322,7 +13493,7 @@ var brackettedExpression = {
|
|
|
13322
13493
|
const expr = SUBRULE(expression);
|
|
13323
13494
|
const close = CONSUME(symbols_exports.RParen);
|
|
13324
13495
|
return ACTION(() => {
|
|
13325
|
-
expr.loc = C.
|
|
13496
|
+
expr.loc = C.astFactory.sourceLocation(open, close);
|
|
13326
13497
|
return expr;
|
|
13327
13498
|
});
|
|
13328
13499
|
}
|
|
@@ -13344,13 +13515,13 @@ var iriOrFunction = {
|
|
|
13344
13515
|
function: iriVal,
|
|
13345
13516
|
args: args.val.args,
|
|
13346
13517
|
distinct: distinct2,
|
|
13347
|
-
loc: C.
|
|
13518
|
+
loc: C.astFactory.sourceLocation(iriVal, args)
|
|
13348
13519
|
};
|
|
13349
13520
|
});
|
|
13350
13521
|
});
|
|
13351
13522
|
return functionCall2 ?? iriVal;
|
|
13352
13523
|
},
|
|
13353
|
-
gImpl: ({ SUBRULE }) => (ast, {
|
|
13524
|
+
gImpl: ({ SUBRULE }) => (ast, { astFactory: F3 }) => {
|
|
13354
13525
|
if (F3.isTermNamed(ast)) {
|
|
13355
13526
|
SUBRULE(iri2, ast);
|
|
13356
13527
|
} else {
|
|
@@ -13403,11 +13574,14 @@ var groupClause = {
|
|
|
13403
13574
|
type: "solutionModifier",
|
|
13404
13575
|
subType: "group",
|
|
13405
13576
|
groupings,
|
|
13406
|
-
loc: C.
|
|
13577
|
+
loc: C.astFactory.sourceLocation(start, groupings.at(-1))
|
|
13407
13578
|
}));
|
|
13408
13579
|
},
|
|
13409
|
-
gImpl: ({ PRINT_WORDS, SUBRULE }) => (ast, {
|
|
13410
|
-
F3.printFilter(ast, () =>
|
|
13580
|
+
gImpl: ({ PRINT_WORDS, SUBRULE, PRINT_ON_EMPTY }) => (ast, { astFactory: F3 }) => {
|
|
13581
|
+
F3.printFilter(ast, () => {
|
|
13582
|
+
PRINT_ON_EMPTY("");
|
|
13583
|
+
PRINT_WORDS("GROUP", "BY");
|
|
13584
|
+
});
|
|
13411
13585
|
for (const grouping of ast.groupings) {
|
|
13412
13586
|
if (F3.isExpression(grouping)) {
|
|
13413
13587
|
SUBRULE(expression, grouping);
|
|
@@ -13441,7 +13615,7 @@ var groupCondition = {
|
|
|
13441
13615
|
return {
|
|
13442
13616
|
variable,
|
|
13443
13617
|
value: expressionValue,
|
|
13444
|
-
loc: C.
|
|
13618
|
+
loc: C.astFactory.sourceLocation(open, close)
|
|
13445
13619
|
};
|
|
13446
13620
|
}
|
|
13447
13621
|
return expressionValue;
|
|
@@ -13460,10 +13634,13 @@ var havingClause = {
|
|
|
13460
13634
|
expressions.push(SUBRULE(havingCondition));
|
|
13461
13635
|
});
|
|
13462
13636
|
ACTION(() => !couldParseAgg && C.parseMode.delete("canParseAggregate"));
|
|
13463
|
-
return ACTION(() => C.
|
|
13637
|
+
return ACTION(() => C.astFactory.solutionModifierHaving(expressions, C.astFactory.sourceLocation(having2, expressions.at(-1))));
|
|
13464
13638
|
},
|
|
13465
|
-
gImpl: ({ PRINT_WORD, SUBRULE }) => (ast, {
|
|
13466
|
-
F3.printFilter(ast, () =>
|
|
13639
|
+
gImpl: ({ PRINT_WORD, PRINT_ON_EMPTY, SUBRULE }) => (ast, { astFactory: F3 }) => {
|
|
13640
|
+
F3.printFilter(ast, () => {
|
|
13641
|
+
PRINT_ON_EMPTY("");
|
|
13642
|
+
PRINT_WORD("HAVING");
|
|
13643
|
+
});
|
|
13467
13644
|
for (const having2 of ast.having) {
|
|
13468
13645
|
SUBRULE(expression, having2);
|
|
13469
13646
|
}
|
|
@@ -13484,10 +13661,13 @@ var orderClause = {
|
|
|
13484
13661
|
orderings.push(SUBRULE1(orderCondition));
|
|
13485
13662
|
});
|
|
13486
13663
|
ACTION(() => !couldParseAgg && C.parseMode.delete("canParseAggregate"));
|
|
13487
|
-
return ACTION(() => C.
|
|
13664
|
+
return ACTION(() => C.astFactory.solutionModifierOrder(orderings, C.astFactory.sourceLocation(order2, orderings.at(-1))));
|
|
13488
13665
|
},
|
|
13489
|
-
gImpl: ({ PRINT_WORDS, SUBRULE }) => (ast, {
|
|
13490
|
-
F3.printFilter(ast, () =>
|
|
13666
|
+
gImpl: ({ PRINT_WORDS, PRINT_ON_EMPTY, SUBRULE }) => (ast, { astFactory: F3 }) => {
|
|
13667
|
+
F3.printFilter(ast, () => {
|
|
13668
|
+
PRINT_ON_EMPTY("");
|
|
13669
|
+
PRINT_WORDS("ORDER", "BY");
|
|
13670
|
+
});
|
|
13491
13671
|
for (const ordering of ast.orderDefs) {
|
|
13492
13672
|
if (ordering.descending) {
|
|
13493
13673
|
F3.printFilter(ast, () => PRINT_WORDS("DESC"));
|
|
@@ -13518,7 +13698,7 @@ var orderCondition = {
|
|
|
13518
13698
|
return ACTION(() => ({
|
|
13519
13699
|
expression: expr,
|
|
13520
13700
|
descending: descending[0],
|
|
13521
|
-
loc: C.
|
|
13701
|
+
loc: C.astFactory.sourceLocation(descending[1], expr)
|
|
13522
13702
|
}));
|
|
13523
13703
|
} },
|
|
13524
13704
|
{ ALT: () => {
|
|
@@ -13537,16 +13717,17 @@ var limitOffsetClauses = {
|
|
|
13537
13717
|
{ ALT: () => {
|
|
13538
13718
|
const limit2 = SUBRULE1(limitClause);
|
|
13539
13719
|
const offset2 = OPTION1(() => SUBRULE1(offsetClause));
|
|
13540
|
-
return ACTION(() => C.
|
|
13720
|
+
return ACTION(() => C.astFactory.solutionModifierLimitOffset(limit2.val, offset2?.val, C.astFactory.sourceLocation(limit2, ...offset2 ? [offset2] : [])));
|
|
13541
13721
|
} },
|
|
13542
13722
|
{ ALT: () => {
|
|
13543
13723
|
const offset2 = SUBRULE2(offsetClause);
|
|
13544
13724
|
const limit2 = OPTION2(() => SUBRULE2(limitClause));
|
|
13545
|
-
return ACTION(() => C.
|
|
13725
|
+
return ACTION(() => C.astFactory.solutionModifierLimitOffset(limit2?.val, offset2.val, C.astFactory.sourceLocation(offset2, limit2)));
|
|
13546
13726
|
} }
|
|
13547
13727
|
]),
|
|
13548
|
-
gImpl: ({ PRINT_WORDS }) => (ast, {
|
|
13728
|
+
gImpl: ({ PRINT_WORDS, PRINT_ON_EMPTY }) => (ast, { astFactory: F3 }) => {
|
|
13549
13729
|
F3.printFilter(ast, () => {
|
|
13730
|
+
PRINT_ON_EMPTY("");
|
|
13550
13731
|
if (ast.limit) {
|
|
13551
13732
|
PRINT_WORDS("LIMIT", String(ast.limit));
|
|
13552
13733
|
}
|
|
@@ -13562,7 +13743,7 @@ var limitClause = {
|
|
|
13562
13743
|
const offset2 = CONSUME(limit);
|
|
13563
13744
|
const value = CONSUME(terminals_exports.integer);
|
|
13564
13745
|
const val = Number.parseInt(value.image, 10);
|
|
13565
|
-
return ACTION(() => C.
|
|
13746
|
+
return ACTION(() => C.astFactory.wrap(val, C.astFactory.sourceLocation(offset2, value)));
|
|
13566
13747
|
}
|
|
13567
13748
|
};
|
|
13568
13749
|
var offsetClause = {
|
|
@@ -13571,7 +13752,7 @@ var offsetClause = {
|
|
|
13571
13752
|
const offset2 = CONSUME(offset);
|
|
13572
13753
|
const value = CONSUME(terminals_exports.integer);
|
|
13573
13754
|
const val = Number.parseInt(value.image, 10);
|
|
13574
|
-
return ACTION(() => C.
|
|
13755
|
+
return ACTION(() => C.astFactory.wrap(val, C.astFactory.sourceLocation(offset2, value)));
|
|
13575
13756
|
}
|
|
13576
13757
|
};
|
|
13577
13758
|
|
|
@@ -13596,10 +13777,10 @@ var query = {
|
|
|
13596
13777
|
...subType,
|
|
13597
13778
|
type: "query",
|
|
13598
13779
|
...values3 && { values: values3 },
|
|
13599
|
-
loc: C.
|
|
13780
|
+
loc: C.astFactory.sourceLocation(prologueValues.at(0), subType, values3)
|
|
13600
13781
|
}));
|
|
13601
13782
|
},
|
|
13602
|
-
gImpl: ({ SUBRULE }) => (ast, {
|
|
13783
|
+
gImpl: ({ SUBRULE }) => (ast, { astFactory: F3 }) => {
|
|
13603
13784
|
SUBRULE(prologue, ast.context);
|
|
13604
13785
|
if (F3.isQuerySelect(ast)) {
|
|
13605
13786
|
SUBRULE(selectQuery, ast);
|
|
@@ -13629,13 +13810,13 @@ var selectQuery = {
|
|
|
13629
13810
|
solutionModifiers: modifiers,
|
|
13630
13811
|
datasets: from2,
|
|
13631
13812
|
...selectVal.val,
|
|
13632
|
-
loc: C.
|
|
13813
|
+
loc: C.astFactory.sourceLocation(selectVal, where2, modifiers.group, modifiers.having, modifiers.order, modifiers.limitOffset)
|
|
13633
13814
|
};
|
|
13634
13815
|
queryIsGood(ret);
|
|
13635
13816
|
return ret;
|
|
13636
13817
|
});
|
|
13637
13818
|
},
|
|
13638
|
-
gImpl: ({ SUBRULE }) => (ast, {
|
|
13819
|
+
gImpl: ({ SUBRULE }) => (ast, { astFactory: F3 }) => {
|
|
13639
13820
|
SUBRULE(selectClause, F3.wrap({
|
|
13640
13821
|
variables: ast.variables,
|
|
13641
13822
|
distinct: ast.distinct,
|
|
@@ -13653,14 +13834,14 @@ var subSelect = {
|
|
|
13653
13834
|
const where2 = SUBRULE(whereClause);
|
|
13654
13835
|
const modifiers = SUBRULE(solutionModifier);
|
|
13655
13836
|
const values3 = SUBRULE(valuesClause);
|
|
13656
|
-
return ACTION(() => C.
|
|
13837
|
+
return ACTION(() => C.astFactory.querySelect({
|
|
13657
13838
|
where: where2.val,
|
|
13658
|
-
datasets: C.
|
|
13839
|
+
datasets: C.astFactory.datasetClauses([], C.astFactory.sourceLocation()),
|
|
13659
13840
|
context: [],
|
|
13660
13841
|
solutionModifiers: modifiers,
|
|
13661
13842
|
...selectVal.val,
|
|
13662
13843
|
...values3 && { values: values3 }
|
|
13663
|
-
}, C.
|
|
13844
|
+
}, C.astFactory.sourceLocation(selectVal, where2, modifiers.group, modifiers.having, modifiers.order, modifiers.limitOffset, values3)));
|
|
13664
13845
|
}
|
|
13665
13846
|
};
|
|
13666
13847
|
var selectClause = {
|
|
@@ -13691,7 +13872,7 @@ var selectClause = {
|
|
|
13691
13872
|
const star2 = CONSUME(symbols_exports.star);
|
|
13692
13873
|
return ACTION(() => {
|
|
13693
13874
|
last2 = star2;
|
|
13694
|
-
return { variables: [C.
|
|
13875
|
+
return { variables: [C.astFactory.wildcard(C.astFactory.sourceLocation(star2))], ...distRed };
|
|
13695
13876
|
});
|
|
13696
13877
|
} },
|
|
13697
13878
|
{ ALT: () => {
|
|
@@ -13721,7 +13902,7 @@ var selectClause = {
|
|
|
13721
13902
|
throw new Error(`Variable ${variable.value} used more than once in SELECT clause`);
|
|
13722
13903
|
}
|
|
13723
13904
|
usedVars.push(variable);
|
|
13724
|
-
variables.push(C.
|
|
13905
|
+
variables.push(C.astFactory.patternBind(expr, variable, C.astFactory.sourceLocation(open, last2)));
|
|
13725
13906
|
});
|
|
13726
13907
|
} }
|
|
13727
13908
|
]));
|
|
@@ -13729,9 +13910,9 @@ var selectClause = {
|
|
|
13729
13910
|
} }
|
|
13730
13911
|
]);
|
|
13731
13912
|
ACTION(() => !couldParseAgg && C.parseMode.delete("canParseAggregate"));
|
|
13732
|
-
return ACTION(() => C.
|
|
13913
|
+
return ACTION(() => C.astFactory.wrap(val, C.astFactory.sourceLocation(select2, last2)));
|
|
13733
13914
|
},
|
|
13734
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, {
|
|
13915
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F3 }) => {
|
|
13735
13916
|
F3.printFilter(ast, () => {
|
|
13736
13917
|
PRINT_WORD("SELECT");
|
|
13737
13918
|
if (ast.val.distinct) {
|
|
@@ -13771,7 +13952,7 @@ var constructQuery = {
|
|
|
13771
13952
|
datasets: from2,
|
|
13772
13953
|
where: where2.val,
|
|
13773
13954
|
solutionModifiers: modifiers,
|
|
13774
|
-
loc: C.
|
|
13955
|
+
loc: C.astFactory.sourceLocation(construct2, where2, modifiers.group, modifiers.having, modifiers.order, modifiers.limitOffset)
|
|
13775
13956
|
}));
|
|
13776
13957
|
} },
|
|
13777
13958
|
{ ALT: () => {
|
|
@@ -13783,19 +13964,26 @@ var constructQuery = {
|
|
|
13783
13964
|
subType: "construct",
|
|
13784
13965
|
template: template.val,
|
|
13785
13966
|
datasets: from2,
|
|
13786
|
-
where: C.
|
|
13967
|
+
where: C.astFactory.patternGroup([template.val], C.astFactory.sourceLocation()),
|
|
13787
13968
|
solutionModifiers: modifiers,
|
|
13788
|
-
loc: C.
|
|
13969
|
+
loc: C.astFactory.sourceLocation(construct2, template, modifiers.group, modifiers.having, modifiers.order, modifiers.limitOffset)
|
|
13789
13970
|
}));
|
|
13790
13971
|
} }
|
|
13791
13972
|
]);
|
|
13792
13973
|
},
|
|
13793
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast,
|
|
13974
|
+
gImpl: ({ SUBRULE, PRINT_WORD, PRINT_ON_EMPTY }) => (ast, C) => {
|
|
13975
|
+
const { astFactory: F3, indentInc } = C;
|
|
13794
13976
|
F3.printFilter(ast, () => PRINT_WORD("CONSTRUCT"));
|
|
13795
13977
|
if (!F3.isSourceLocationNoMaterialize(ast.where.loc)) {
|
|
13796
|
-
F3.printFilter(ast, () =>
|
|
13978
|
+
F3.printFilter(ast, () => {
|
|
13979
|
+
C[traqulaIndentation] += indentInc;
|
|
13980
|
+
PRINT_WORD("{\n");
|
|
13981
|
+
});
|
|
13797
13982
|
SUBRULE(triplesBlock, ast.template);
|
|
13798
|
-
F3.printFilter(ast, () =>
|
|
13983
|
+
F3.printFilter(ast, () => {
|
|
13984
|
+
C[traqulaIndentation] -= indentInc;
|
|
13985
|
+
PRINT_ON_EMPTY("}\n");
|
|
13986
|
+
});
|
|
13799
13987
|
}
|
|
13800
13988
|
SUBRULE(datasetClauseStar, ast.datasets);
|
|
13801
13989
|
if (F3.isSourceLocationNoMaterialize(ast.where.loc)) {
|
|
@@ -13820,7 +14008,7 @@ var describeQuery = {
|
|
|
13820
14008
|
} },
|
|
13821
14009
|
{ ALT: () => {
|
|
13822
14010
|
const star2 = CONSUME(symbols_exports.star);
|
|
13823
|
-
return [ACTION(() => C.
|
|
14011
|
+
return [ACTION(() => C.astFactory.wildcard(C.astFactory.sourceLocation(star2)))];
|
|
13824
14012
|
} }
|
|
13825
14013
|
]);
|
|
13826
14014
|
const from2 = SUBRULE1(datasetClauseStar);
|
|
@@ -13832,10 +14020,10 @@ var describeQuery = {
|
|
|
13832
14020
|
datasets: from2,
|
|
13833
14021
|
...where2 && { where: where2.val },
|
|
13834
14022
|
solutionModifiers: modifiers,
|
|
13835
|
-
loc: C.
|
|
14023
|
+
loc: C.astFactory.sourceLocation(describe2, ...variables, from2, where2, modifiers.group, modifiers.having, modifiers.order, modifiers.limitOffset)
|
|
13836
14024
|
}));
|
|
13837
14025
|
},
|
|
13838
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, {
|
|
14026
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F3 }) => {
|
|
13839
14027
|
F3.printFilter(ast, () => PRINT_WORD("DESCRIBE"));
|
|
13840
14028
|
if (F3.isWildcard(ast.variables[0])) {
|
|
13841
14029
|
F3.printFilter(ast, () => PRINT_WORD("*"));
|
|
@@ -13863,10 +14051,10 @@ var askQuery = {
|
|
|
13863
14051
|
datasets: from2,
|
|
13864
14052
|
where: where2.val,
|
|
13865
14053
|
solutionModifiers: modifiers,
|
|
13866
|
-
loc: C.
|
|
14054
|
+
loc: C.astFactory.sourceLocation(ask2, from2, where2, modifiers.group, modifiers.having, modifiers.order, modifiers.limitOffset)
|
|
13867
14055
|
}));
|
|
13868
14056
|
},
|
|
13869
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, {
|
|
14057
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F3 }) => {
|
|
13870
14058
|
F3.printFilter(ast, () => PRINT_WORD("ASK"));
|
|
13871
14059
|
SUBRULE(datasetClauseStar, ast.datasets);
|
|
13872
14060
|
SUBRULE(whereClause, F3.wrap(ast.where, ast.loc));
|
|
@@ -13883,7 +14071,7 @@ var constructTemplate = {
|
|
|
13883
14071
|
const open = CONSUME(symbols_exports.LCurly);
|
|
13884
14072
|
const triples = OPTION(() => SUBRULE1(constructTriples));
|
|
13885
14073
|
const close = CONSUME(symbols_exports.RCurly);
|
|
13886
|
-
return ACTION(() => C.
|
|
14074
|
+
return ACTION(() => C.astFactory.wrap(triples ?? C.astFactory.patternBgp([], C.astFactory.sourceLocation()), C.astFactory.sourceLocation(open, close)));
|
|
13887
14075
|
}
|
|
13888
14076
|
};
|
|
13889
14077
|
var constructTriples = {
|
|
@@ -13920,13 +14108,13 @@ var update = {
|
|
|
13920
14108
|
const update2 = {
|
|
13921
14109
|
type: "update",
|
|
13922
14110
|
updates,
|
|
13923
|
-
loc: C.
|
|
14111
|
+
loc: C.astFactory.sourceLocation(...updates[0].context, updates[0].operation, ...updates.at(-1).context, updates.at(-1)?.operation)
|
|
13924
14112
|
};
|
|
13925
14113
|
updateNoReuseBlankNodeLabels(update2);
|
|
13926
14114
|
return update2;
|
|
13927
14115
|
});
|
|
13928
14116
|
},
|
|
13929
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, {
|
|
14117
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F3 }) => {
|
|
13930
14118
|
const [head2, ...tail] = ast.updates;
|
|
13931
14119
|
if (head2) {
|
|
13932
14120
|
SUBRULE(prologue, head2.context);
|
|
@@ -14006,9 +14194,9 @@ var load2 = {
|
|
|
14006
14194
|
CONSUME(loadInto);
|
|
14007
14195
|
return SUBRULE1(graphRef);
|
|
14008
14196
|
});
|
|
14009
|
-
return ACTION(() => C.
|
|
14197
|
+
return ACTION(() => C.astFactory.updateOperationLoad(C.astFactory.sourceLocation(loadToken, source, destination), source, Boolean(silent2), destination));
|
|
14010
14198
|
},
|
|
14011
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, {
|
|
14199
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F3 }) => {
|
|
14012
14200
|
F3.printFilter(ast, () => {
|
|
14013
14201
|
PRINT_WORD("LOAD");
|
|
14014
14202
|
if (ast.silent) {
|
|
@@ -14029,9 +14217,9 @@ function clearOrDrop(operation) {
|
|
|
14029
14217
|
const opToken = CONSUME(operation);
|
|
14030
14218
|
const silent2 = OPTION(() => CONSUME(silent));
|
|
14031
14219
|
const destination = SUBRULE1(graphRefAll);
|
|
14032
|
-
return ACTION(() => C.
|
|
14220
|
+
return ACTION(() => C.astFactory.updateOperationClearDrop(unCapitalize(operation.name), Boolean(silent2), destination, C.astFactory.sourceLocation(opToken, destination)));
|
|
14033
14221
|
},
|
|
14034
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, {
|
|
14222
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F3 }) => {
|
|
14035
14223
|
F3.printFilter(ast, () => {
|
|
14036
14224
|
PRINT_WORD(operation.name.toUpperCase());
|
|
14037
14225
|
if (ast.silent) {
|
|
@@ -14050,9 +14238,9 @@ var create2 = {
|
|
|
14050
14238
|
const createToken3 = CONSUME(create);
|
|
14051
14239
|
const silent2 = OPTION(() => CONSUME(silent));
|
|
14052
14240
|
const destination = SUBRULE1(graphRef);
|
|
14053
|
-
return ACTION(() => C.
|
|
14241
|
+
return ACTION(() => C.astFactory.updateOperationCreate(destination, Boolean(silent2), C.astFactory.sourceLocation(createToken3, destination)));
|
|
14054
14242
|
},
|
|
14055
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, {
|
|
14243
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F3 }) => {
|
|
14056
14244
|
F3.printFilter(ast, () => {
|
|
14057
14245
|
PRINT_WORD("CREATE");
|
|
14058
14246
|
if (ast.silent) {
|
|
@@ -14071,9 +14259,9 @@ function copyMoveAddOperation(operation) {
|
|
|
14071
14259
|
const source = SUBRULE1(graphOrDefault);
|
|
14072
14260
|
CONSUME(to);
|
|
14073
14261
|
const destination = SUBRULE2(graphOrDefault);
|
|
14074
|
-
return ACTION(() => C.
|
|
14262
|
+
return ACTION(() => C.astFactory.updateOperationAddMoveCopy(unCapitalize(operation.name), source, destination, Boolean(silent2), C.astFactory.sourceLocation(op, destination)));
|
|
14075
14263
|
},
|
|
14076
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, {
|
|
14264
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F3 }) => {
|
|
14077
14265
|
F3.printFilter(ast, () => {
|
|
14078
14266
|
PRINT_WORD(operation.name.toUpperCase());
|
|
14079
14267
|
if (ast.silent) {
|
|
@@ -14095,7 +14283,7 @@ var quadPattern = {
|
|
|
14095
14283
|
const open = CONSUME(symbols_exports.LCurly);
|
|
14096
14284
|
const val = SUBRULE1(quads);
|
|
14097
14285
|
const close = CONSUME(symbols_exports.RCurly);
|
|
14098
|
-
return ACTION(() => C.
|
|
14286
|
+
return ACTION(() => C.astFactory.wrap(val.val, C.astFactory.sourceLocation(open, close)));
|
|
14099
14287
|
}
|
|
14100
14288
|
};
|
|
14101
14289
|
var quadData = {
|
|
@@ -14106,7 +14294,7 @@ var quadData = {
|
|
|
14106
14294
|
const val = SUBRULE1(quads);
|
|
14107
14295
|
ACTION(() => couldParseVars && C.parseMode.add("canParseVars"));
|
|
14108
14296
|
const close = CONSUME(symbols_exports.RCurly);
|
|
14109
|
-
return ACTION(() => C.
|
|
14297
|
+
return ACTION(() => C.astFactory.wrap(val.val, C.astFactory.sourceLocation(open, close)));
|
|
14110
14298
|
}
|
|
14111
14299
|
};
|
|
14112
14300
|
function insertDeleteDelWhere(name, subType, cons1, cons2, dataRule) {
|
|
@@ -14123,12 +14311,26 @@ function insertDeleteDelWhere(name, subType, cons1, cons2, dataRule) {
|
|
|
14123
14311
|
if (name !== "insertData") {
|
|
14124
14312
|
ACTION(() => couldCreateBlankNodes && C.parseMode.add("canCreateBlankNodes"));
|
|
14125
14313
|
}
|
|
14126
|
-
return ACTION(() => C.
|
|
14314
|
+
return ACTION(() => C.astFactory.updateOperationInsDelDataWhere(subType, data.val, C.astFactory.sourceLocation(insDelToken, data)));
|
|
14127
14315
|
},
|
|
14128
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast,
|
|
14129
|
-
|
|
14316
|
+
gImpl: ({ SUBRULE, PRINT_WORD, PRINT_ON_EMPTY }) => (ast, C) => {
|
|
14317
|
+
const { astFactory: F3, indentInc } = C;
|
|
14318
|
+
F3.printFilter(ast, () => {
|
|
14319
|
+
C[traqulaIndentation] += indentInc;
|
|
14320
|
+
if (subType === "insertdata") {
|
|
14321
|
+
PRINT_WORD("INSERT DATA");
|
|
14322
|
+
} else if (subType === "deletedata") {
|
|
14323
|
+
PRINT_WORD("DELETE DATA");
|
|
14324
|
+
} else if (subType === "deletewhere") {
|
|
14325
|
+
PRINT_WORD("DELETE WHERE");
|
|
14326
|
+
}
|
|
14327
|
+
PRINT_WORD("{\n");
|
|
14328
|
+
});
|
|
14130
14329
|
SUBRULE(quads, F3.wrap(ast.data, ast.loc));
|
|
14131
|
-
F3.printFilter(ast, () =>
|
|
14330
|
+
F3.printFilter(ast, () => {
|
|
14331
|
+
C[traqulaIndentation] -= indentInc;
|
|
14332
|
+
PRINT_ON_EMPTY("}\n");
|
|
14333
|
+
});
|
|
14132
14334
|
}
|
|
14133
14335
|
};
|
|
14134
14336
|
}
|
|
@@ -14157,22 +14359,35 @@ var modify = {
|
|
|
14157
14359
|
const using = SUBRULE1(usingClauseStar);
|
|
14158
14360
|
CONSUME(where);
|
|
14159
14361
|
const where2 = SUBRULE1(groupGraphPattern);
|
|
14160
|
-
return ACTION(() => C.
|
|
14362
|
+
return ACTION(() => C.astFactory.updateOperationModify(C.astFactory.sourceLocation(graph2?.withToken, del, insert, where2), insert?.val ?? [], del?.val ?? [], where2, using, graph2?.graph));
|
|
14161
14363
|
},
|
|
14162
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast,
|
|
14364
|
+
gImpl: ({ SUBRULE, PRINT_WORD, PRINT_ON_EMPTY }) => (ast, C) => {
|
|
14365
|
+
const { astFactory: F3, indentInc } = C;
|
|
14163
14366
|
if (ast.graph) {
|
|
14164
14367
|
F3.printFilter(ast, () => PRINT_WORD("WITH"));
|
|
14165
14368
|
SUBRULE(iri2, ast.graph);
|
|
14166
14369
|
}
|
|
14167
14370
|
if (ast.delete.length > 0) {
|
|
14168
|
-
F3.printFilter(ast, () =>
|
|
14371
|
+
F3.printFilter(ast, () => {
|
|
14372
|
+
C[traqulaIndentation] += indentInc;
|
|
14373
|
+
PRINT_WORD("DELETE", "{\n");
|
|
14374
|
+
});
|
|
14169
14375
|
SUBRULE(quads, F3.wrap(ast.delete, ast.loc));
|
|
14170
|
-
F3.printFilter(ast, () =>
|
|
14376
|
+
F3.printFilter(ast, () => {
|
|
14377
|
+
C[traqulaIndentation] -= indentInc;
|
|
14378
|
+
PRINT_ON_EMPTY("}\n");
|
|
14379
|
+
});
|
|
14171
14380
|
}
|
|
14172
14381
|
if (ast.insert.length > 0) {
|
|
14173
|
-
F3.printFilter(ast, () =>
|
|
14382
|
+
F3.printFilter(ast, () => {
|
|
14383
|
+
C[traqulaIndentation] += indentInc;
|
|
14384
|
+
PRINT_WORD("INSERT", "{\n");
|
|
14385
|
+
});
|
|
14174
14386
|
SUBRULE(quads, F3.wrap(ast.insert, ast.loc));
|
|
14175
|
-
F3.printFilter(ast, () =>
|
|
14387
|
+
F3.printFilter(ast, () => {
|
|
14388
|
+
C[traqulaIndentation] -= indentInc;
|
|
14389
|
+
PRINT_ON_EMPTY("}\n");
|
|
14390
|
+
});
|
|
14176
14391
|
}
|
|
14177
14392
|
SUBRULE(usingClauseStar, ast.from);
|
|
14178
14393
|
F3.printFilter(ast, () => PRINT_WORD("WHERE"));
|
|
@@ -14186,7 +14401,7 @@ var deleteClause2 = {
|
|
|
14186
14401
|
const couldCreateBlankNodes = ACTION(() => C.parseMode.delete("canCreateBlankNodes"));
|
|
14187
14402
|
const del = SUBRULE(quadPattern);
|
|
14188
14403
|
ACTION(() => couldCreateBlankNodes && C.parseMode.add("canCreateBlankNodes"));
|
|
14189
|
-
return ACTION(() => C.
|
|
14404
|
+
return ACTION(() => C.astFactory.wrap(del.val, C.astFactory.sourceLocation(delToken, del)));
|
|
14190
14405
|
}
|
|
14191
14406
|
};
|
|
14192
14407
|
var insertClause2 = {
|
|
@@ -14194,7 +14409,7 @@ var insertClause2 = {
|
|
|
14194
14409
|
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
14195
14410
|
const insertToken = CONSUME(insertClause);
|
|
14196
14411
|
const insert = SUBRULE(quadPattern);
|
|
14197
|
-
return ACTION(() => C.
|
|
14412
|
+
return ACTION(() => C.astFactory.wrap(insert.val, C.astFactory.sourceLocation(insertToken, insert)));
|
|
14198
14413
|
}
|
|
14199
14414
|
};
|
|
14200
14415
|
var graphOrDefault = {
|
|
@@ -14202,12 +14417,12 @@ var graphOrDefault = {
|
|
|
14202
14417
|
impl: ({ ACTION, SUBRULE1, CONSUME, OPTION, OR }) => (C) => OR([
|
|
14203
14418
|
{ ALT: () => {
|
|
14204
14419
|
const def = CONSUME(graph_exports.default_);
|
|
14205
|
-
return ACTION(() => C.
|
|
14420
|
+
return ACTION(() => C.astFactory.graphRefDefault(C.astFactory.sourceLocation(def)));
|
|
14206
14421
|
} },
|
|
14207
14422
|
{ ALT: () => {
|
|
14208
14423
|
const graph2 = OPTION(() => CONSUME(graph_exports.graph));
|
|
14209
14424
|
const name = SUBRULE1(iri2);
|
|
14210
|
-
return ACTION(() => C.
|
|
14425
|
+
return ACTION(() => C.astFactory.graphRefSpecific(name, C.astFactory.sourceLocation(graph2, name)));
|
|
14211
14426
|
} }
|
|
14212
14427
|
])
|
|
14213
14428
|
};
|
|
@@ -14216,9 +14431,9 @@ var graphRef = {
|
|
|
14216
14431
|
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
14217
14432
|
const graph2 = CONSUME(graph_exports.graph);
|
|
14218
14433
|
const val = SUBRULE(iri2);
|
|
14219
|
-
return ACTION(() => C.
|
|
14434
|
+
return ACTION(() => C.astFactory.graphRefSpecific(val, C.astFactory.sourceLocation(graph2, val)));
|
|
14220
14435
|
},
|
|
14221
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, {
|
|
14436
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F3 }) => {
|
|
14222
14437
|
F3.printFilter(ast, () => PRINT_WORD("GRAPH"));
|
|
14223
14438
|
SUBRULE(iri2, ast.graph);
|
|
14224
14439
|
}
|
|
@@ -14229,18 +14444,18 @@ var graphRefAll = {
|
|
|
14229
14444
|
{ ALT: () => SUBRULE(graphRef) },
|
|
14230
14445
|
{ ALT: () => {
|
|
14231
14446
|
const def = CONSUME(graph_exports.default_);
|
|
14232
|
-
return ACTION(() => C.
|
|
14447
|
+
return ACTION(() => C.astFactory.graphRefDefault(C.astFactory.sourceLocation(def)));
|
|
14233
14448
|
} },
|
|
14234
14449
|
{ ALT: () => {
|
|
14235
14450
|
const named2 = CONSUME(graph_exports.named);
|
|
14236
|
-
return ACTION(() => C.
|
|
14451
|
+
return ACTION(() => C.astFactory.graphRefNamed(C.astFactory.sourceLocation(named2)));
|
|
14237
14452
|
} },
|
|
14238
14453
|
{ ALT: () => {
|
|
14239
14454
|
const graphAll2 = CONSUME(graph_exports.graphAll);
|
|
14240
|
-
return ACTION(() => C.
|
|
14455
|
+
return ACTION(() => C.astFactory.graphRefAll(C.astFactory.sourceLocation(graphAll2)));
|
|
14241
14456
|
} }
|
|
14242
14457
|
]),
|
|
14243
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, {
|
|
14458
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F3 }) => {
|
|
14244
14459
|
if (F3.isGraphRefSpecific(ast)) {
|
|
14245
14460
|
SUBRULE(graphRef, ast);
|
|
14246
14461
|
} else if (F3.isGraphRefDefault(ast)) {
|
|
@@ -14277,9 +14492,9 @@ var quads = {
|
|
|
14277
14492
|
ACTION(() => quads2.push(triples));
|
|
14278
14493
|
});
|
|
14279
14494
|
});
|
|
14280
|
-
return ACTION(() => C.
|
|
14495
|
+
return ACTION(() => C.astFactory.wrap(quads2, C.astFactory.sourceLocation(quads2.at(0), last2)));
|
|
14281
14496
|
},
|
|
14282
|
-
gImpl: ({ SUBRULE }) => (ast, {
|
|
14497
|
+
gImpl: ({ SUBRULE }) => (ast, { astFactory: F3 }) => {
|
|
14283
14498
|
for (const quad of ast.val) {
|
|
14284
14499
|
if (F3.isPattern(quad)) {
|
|
14285
14500
|
SUBRULE(triplesBlock, quad);
|
|
@@ -14297,14 +14512,21 @@ var quadsNotTriples = {
|
|
|
14297
14512
|
CONSUME(symbols_exports.LCurly);
|
|
14298
14513
|
const triples = OPTION(() => SUBRULE1(triplesTemplate));
|
|
14299
14514
|
const close = CONSUME(symbols_exports.RCurly);
|
|
14300
|
-
return ACTION(() => C.
|
|
14515
|
+
return ACTION(() => C.astFactory.graphQuads(name, triples ?? C.astFactory.patternBgp([], C.astFactory.sourceLocationNoMaterialize()), C.astFactory.sourceLocation(graph2, close)));
|
|
14301
14516
|
},
|
|
14302
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast,
|
|
14517
|
+
gImpl: ({ SUBRULE, PRINT_WORD, PRINT_ON_EMPTY }) => (ast, C) => {
|
|
14518
|
+
const { astFactory: F3, indentInc } = C;
|
|
14303
14519
|
F3.printFilter(ast, () => PRINT_WORD("GRAPH"));
|
|
14304
14520
|
SUBRULE(varOrTerm, ast.graph);
|
|
14305
|
-
F3.printFilter(ast, () =>
|
|
14521
|
+
F3.printFilter(ast, () => {
|
|
14522
|
+
C[traqulaIndentation] += indentInc;
|
|
14523
|
+
PRINT_WORD("{\n");
|
|
14524
|
+
});
|
|
14306
14525
|
SUBRULE(triplesBlock, ast.triples);
|
|
14307
|
-
F3.printFilter(ast, () =>
|
|
14526
|
+
F3.printFilter(ast, () => {
|
|
14527
|
+
C[traqulaIndentation] -= indentInc;
|
|
14528
|
+
PRINT_ON_EMPTY("}\n");
|
|
14529
|
+
});
|
|
14308
14530
|
}
|
|
14309
14531
|
};
|
|
14310
14532
|
|
|
@@ -14327,7 +14549,7 @@ var queryOrUpdate = {
|
|
|
14327
14549
|
...subType,
|
|
14328
14550
|
type: "query",
|
|
14329
14551
|
...values3 && { values: values3 },
|
|
14330
|
-
loc: C.
|
|
14552
|
+
loc: C.astFactory.sourceLocation(prologueValues.at(0), subType, values3)
|
|
14331
14553
|
}));
|
|
14332
14554
|
} },
|
|
14333
14555
|
{ ALT: () => {
|
|
@@ -14351,7 +14573,7 @@ var queryOrUpdate = {
|
|
|
14351
14573
|
const update2 = {
|
|
14352
14574
|
type: "update",
|
|
14353
14575
|
updates,
|
|
14354
|
-
loc: C.
|
|
14576
|
+
loc: C.astFactory.sourceLocation(...updates[0].context, updates[0].operation, ...updates.at(-1).context, updates.at(-1)?.operation)
|
|
14355
14577
|
};
|
|
14356
14578
|
updateNoReuseBlankNodeLabels(update2);
|
|
14357
14579
|
return update2;
|
|
@@ -14359,7 +14581,7 @@ var queryOrUpdate = {
|
|
|
14359
14581
|
} }
|
|
14360
14582
|
]);
|
|
14361
14583
|
},
|
|
14362
|
-
gImpl: ({ SUBRULE }) => (ast, {
|
|
14584
|
+
gImpl: ({ SUBRULE }) => (ast, { astFactory: F3 }) => {
|
|
14363
14585
|
if (F3.isQuery(ast)) {
|
|
14364
14586
|
SUBRULE(query, ast);
|
|
14365
14587
|
} else {
|
|
@@ -14463,8 +14685,78 @@ var LANG_DIR = createToken2({
|
|
|
14463
14685
|
});
|
|
14464
14686
|
var sparql12LexerBuilder = LexerBuilder.create(lexer_exports.sparql11LexerBuilder).addBefore(lexer_exports.symbols.logicAnd, tilde, annotationOpen, annotationClose, tripleTermOpen, tripleTermClose, reificationOpen, reificationClose, version).addBefore(lexer_exports.builtIn.langmatches, buildInLangDir, buildInStrLangDir, buildInHasLangDir, buildInHasLang, buildInIsTRIPLE, buildInTRIPLE, buildInSUBJECT, buildInPREDICATE, buildInOBJECT).addBefore(lexer_exports.terminals.langTag, LANG_DIR).delete(lexer_exports.terminals.langTag);
|
|
14465
14687
|
|
|
14688
|
+
// ../../packages/rules-sparql-1-2/lib/AstFactory.js
|
|
14689
|
+
var AstFactory2 = class extends AstFactory {
|
|
14690
|
+
termTriple(subject, predicate, object3, loc) {
|
|
14691
|
+
return {
|
|
14692
|
+
type: "term",
|
|
14693
|
+
subType: "triple",
|
|
14694
|
+
subject,
|
|
14695
|
+
predicate,
|
|
14696
|
+
object: object3,
|
|
14697
|
+
loc
|
|
14698
|
+
};
|
|
14699
|
+
}
|
|
14700
|
+
isTermTriple(obj) {
|
|
14701
|
+
return this.isOfSubType(obj, "term", "triple");
|
|
14702
|
+
}
|
|
14703
|
+
tripleCollectionReifiedTriple(loc, subject, predicate, object3, reifier2) {
|
|
14704
|
+
return {
|
|
14705
|
+
type: "tripleCollection",
|
|
14706
|
+
subType: "reifiedTriple",
|
|
14707
|
+
triples: [this.triple(subject, predicate, object3)],
|
|
14708
|
+
identifier: reifier2 ?? this.blankNode(void 0, this.sourceLocationNoMaterialize()),
|
|
14709
|
+
loc
|
|
14710
|
+
};
|
|
14711
|
+
}
|
|
14712
|
+
isTripleCollectionReifiedTriple(obj) {
|
|
14713
|
+
return this.isOfSubType(obj, "tripleCollection", "reifiedTriple");
|
|
14714
|
+
}
|
|
14715
|
+
tripleCollectionBlankNodeProperties(identifier, triples, loc) {
|
|
14716
|
+
return {
|
|
14717
|
+
type: "tripleCollection",
|
|
14718
|
+
subType: "blankNodeProperties",
|
|
14719
|
+
triples,
|
|
14720
|
+
identifier,
|
|
14721
|
+
loc
|
|
14722
|
+
};
|
|
14723
|
+
}
|
|
14724
|
+
/**
|
|
14725
|
+
* Overwritten triple constructor to always contain an empty annotations list
|
|
14726
|
+
*/
|
|
14727
|
+
triple = (subject, predicate, object3, loc) => ({
|
|
14728
|
+
type: "triple",
|
|
14729
|
+
subject,
|
|
14730
|
+
predicate,
|
|
14731
|
+
object: object3,
|
|
14732
|
+
annotations: [],
|
|
14733
|
+
loc: loc ?? this.sourceLocation(subject, predicate, object3)
|
|
14734
|
+
});
|
|
14735
|
+
annotatedTriple(subject, predicate, object3, annotations, loc) {
|
|
14736
|
+
return {
|
|
14737
|
+
type: "triple",
|
|
14738
|
+
subject,
|
|
14739
|
+
predicate,
|
|
14740
|
+
object: object3,
|
|
14741
|
+
annotations: annotations ?? [],
|
|
14742
|
+
loc: loc ?? this.sourceLocation(subject, predicate, object3, ...annotations ?? [])
|
|
14743
|
+
};
|
|
14744
|
+
}
|
|
14745
|
+
contextDefinitionVersion(version2, loc) {
|
|
14746
|
+
return {
|
|
14747
|
+
type: "contextDef",
|
|
14748
|
+
subType: "version",
|
|
14749
|
+
version: version2,
|
|
14750
|
+
loc
|
|
14751
|
+
};
|
|
14752
|
+
}
|
|
14753
|
+
isContextDefinitionVersion(obj) {
|
|
14754
|
+
return this.isOfSubType(obj, "contextDef", "version");
|
|
14755
|
+
}
|
|
14756
|
+
};
|
|
14757
|
+
|
|
14466
14758
|
// ../../packages/rules-sparql-1-2/lib/validators.js
|
|
14467
|
-
var F2 = new
|
|
14759
|
+
var F2 = new AstFactory2();
|
|
14468
14760
|
function isLangDir(dir) {
|
|
14469
14761
|
return dir === "ltr" || dir === "rtl";
|
|
14470
14762
|
}
|
|
@@ -14486,11 +14778,11 @@ var versionDecl = {
|
|
|
14486
14778
|
impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
|
|
14487
14779
|
const versionToken = CONSUME(version);
|
|
14488
14780
|
const identifier = SUBRULE(versionSpecifier);
|
|
14489
|
-
return ACTION(() => C.
|
|
14781
|
+
return ACTION(() => C.astFactory.contextDefinitionVersion(identifier.val, C.astFactory.sourceLocation(versionToken, identifier)));
|
|
14490
14782
|
},
|
|
14491
|
-
gImpl: ({ PRINT_WORDS }) => (ast, {
|
|
14783
|
+
gImpl: ({ PRINT_WORDS }) => (ast, { astFactory: F3 }) => {
|
|
14492
14784
|
F3.printFilter(ast, () => {
|
|
14493
|
-
PRINT_WORDS("VERSION", `${grammar_exports.stringEscapedLexical(ast.version)}
|
|
14785
|
+
PRINT_WORDS("VERSION", `${grammar_exports.stringEscapedLexical(ast.version)}`, "\n");
|
|
14494
14786
|
});
|
|
14495
14787
|
}
|
|
14496
14788
|
};
|
|
@@ -14501,7 +14793,7 @@ var versionSpecifier = {
|
|
|
14501
14793
|
{ ALT: () => CONSUME(lexer_exports.terminals.stringLiteral1) },
|
|
14502
14794
|
{ ALT: () => CONSUME(lexer_exports.terminals.stringLiteral2) }
|
|
14503
14795
|
]);
|
|
14504
|
-
return ACTION(() => C.
|
|
14796
|
+
return ACTION(() => C.astFactory.wrap(token.image.slice(1, -1), C.astFactory.sourceLocation(token)));
|
|
14505
14797
|
}
|
|
14506
14798
|
};
|
|
14507
14799
|
var prologue2 = {
|
|
@@ -14517,7 +14809,7 @@ var prologue2 = {
|
|
|
14517
14809
|
]));
|
|
14518
14810
|
return result;
|
|
14519
14811
|
},
|
|
14520
|
-
gImpl: ({ SUBRULE }) => (ast, {
|
|
14812
|
+
gImpl: ({ SUBRULE }) => (ast, { astFactory: F3 }) => {
|
|
14521
14813
|
for (const context of ast) {
|
|
14522
14814
|
if (F3.isContextDefinitionBase(context)) {
|
|
14523
14815
|
SUBRULE(grammar_exports.baseDecl, context);
|
|
@@ -14534,7 +14826,7 @@ function reifiedTripleBlockImpl(name, allowPath) {
|
|
|
14534
14826
|
name,
|
|
14535
14827
|
impl: ({ ACTION, SUBRULE }) => (C) => {
|
|
14536
14828
|
const triple = SUBRULE(reifiedTriple);
|
|
14537
|
-
const properties = SUBRULE(allowPath ? grammar_exports.propertyListPath : grammar_exports.propertyList, ACTION(() => C.
|
|
14829
|
+
const properties = SUBRULE(allowPath ? grammar_exports.propertyListPath : grammar_exports.propertyList, ACTION(() => C.astFactory.dematerialized(triple.identifier)));
|
|
14538
14830
|
return ACTION(() => [triple, ...properties]);
|
|
14539
14831
|
}
|
|
14540
14832
|
};
|
|
@@ -14557,7 +14849,7 @@ var reifier = {
|
|
|
14557
14849
|
if (reifier2 === void 0 && !C.parseMode.has("canCreateBlankNodes")) {
|
|
14558
14850
|
throw new Error("Cannot create blanknodes in current parse mode");
|
|
14559
14851
|
}
|
|
14560
|
-
return C.
|
|
14852
|
+
return C.astFactory.wrap(reifier2 ?? C.astFactory.blankNode(void 0, C.astFactory.sourceLocation()), C.astFactory.sourceLocation(tildeToken, reifier2));
|
|
14561
14853
|
});
|
|
14562
14854
|
}
|
|
14563
14855
|
};
|
|
@@ -14587,7 +14879,7 @@ function objectImpl2(name, allowPaths) {
|
|
|
14587
14879
|
const objectVal = SUBRULE(allowPaths ? graphNodePath2 : graphNode2);
|
|
14588
14880
|
const annotationVal = SUBRULE(allowPaths ? annotationPath : annotation);
|
|
14589
14881
|
return ACTION(() => {
|
|
14590
|
-
const F3 = C.
|
|
14882
|
+
const F3 = C.astFactory;
|
|
14591
14883
|
if (F3.isPathPure(predicate) && annotationVal.length > 0) {
|
|
14592
14884
|
throw new Error("Note 17 violation");
|
|
14593
14885
|
}
|
|
@@ -14616,7 +14908,7 @@ function annotationImpl(name, allowPaths) {
|
|
|
14616
14908
|
if (!currentReifier && !C.parseMode.has("canCreateBlankNodes")) {
|
|
14617
14909
|
throw new Error("Cannot create blanknodes in current parse mode");
|
|
14618
14910
|
}
|
|
14619
|
-
currentReifier = currentReifier ?? C.
|
|
14911
|
+
currentReifier = currentReifier ?? C.astFactory.blankNode(void 0, C.astFactory.sourceLocation());
|
|
14620
14912
|
});
|
|
14621
14913
|
const block = SUBRULE(allowPaths ? annotationBlockPath : annotationBlock, currentReifier);
|
|
14622
14914
|
ACTION(() => {
|
|
@@ -14628,7 +14920,7 @@ function annotationImpl(name, allowPaths) {
|
|
|
14628
14920
|
});
|
|
14629
14921
|
return annotations;
|
|
14630
14922
|
},
|
|
14631
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, {
|
|
14923
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F3 }) => {
|
|
14632
14924
|
for (const annotation2 of ast) {
|
|
14633
14925
|
if (F3.isTripleCollectionBlankNodeProperties(annotation2)) {
|
|
14634
14926
|
SUBRULE(annotationBlockPath, annotation2);
|
|
@@ -14649,11 +14941,18 @@ function annotationBlockImpl(name, allowPaths) {
|
|
|
14649
14941
|
const open = CONSUME(annotationOpen);
|
|
14650
14942
|
const res = SUBRULE(allowPaths ? grammar_exports.propertyListPathNotEmpty : grammar_exports.propertyListNotEmpty, arg);
|
|
14651
14943
|
const close = CONSUME(annotationClose);
|
|
14652
|
-
return ACTION(() => C.
|
|
14944
|
+
return ACTION(() => C.astFactory.tripleCollectionBlankNodeProperties(arg, res, C.astFactory.sourceLocation(open, close)));
|
|
14653
14945
|
},
|
|
14654
|
-
gImpl: ({ SUBRULE, PRINT_WORD, HANDLE_LOC }) => (ast,
|
|
14655
|
-
F3
|
|
14656
|
-
|
|
14946
|
+
gImpl: ({ SUBRULE, PRINT_WORD, HANDLE_LOC, PRINT_ON_EMPTY }) => (ast, C) => {
|
|
14947
|
+
const { astFactory: F3, indentInc } = C;
|
|
14948
|
+
F3.printFilter(ast, () => {
|
|
14949
|
+
PRINT_WORD("{|");
|
|
14950
|
+
if (ast.triples.length > 1) {
|
|
14951
|
+
C[traqulaIndentation] += indentInc;
|
|
14952
|
+
PRINT_WORD("\n");
|
|
14953
|
+
}
|
|
14954
|
+
});
|
|
14955
|
+
function printTriple(triple) {
|
|
14657
14956
|
HANDLE_LOC(triple, () => {
|
|
14658
14957
|
if (F3.isTerm(triple.predicate)) {
|
|
14659
14958
|
SUBRULE(graphNodePath2, triple.predicate);
|
|
@@ -14661,10 +14960,21 @@ function annotationBlockImpl(name, allowPaths) {
|
|
|
14661
14960
|
SUBRULE(grammar_exports.pathGenerator, triple.predicate, void 0);
|
|
14662
14961
|
}
|
|
14663
14962
|
SUBRULE(graphNodePath2, triple.object);
|
|
14664
|
-
F3.printFilter(ast, () => PRINT_WORD(";"));
|
|
14665
14963
|
});
|
|
14666
14964
|
}
|
|
14667
|
-
|
|
14965
|
+
const [head2, ...tail] = ast.triples;
|
|
14966
|
+
printTriple(head2);
|
|
14967
|
+
for (const triple of tail) {
|
|
14968
|
+
F3.printFilter(ast, () => PRINT_WORD(";\n"));
|
|
14969
|
+
printTriple(triple);
|
|
14970
|
+
}
|
|
14971
|
+
F3.printFilter(ast, () => {
|
|
14972
|
+
if (ast.triples.length > 1) {
|
|
14973
|
+
PRINT_ON_EMPTY("|}\n");
|
|
14974
|
+
} else {
|
|
14975
|
+
PRINT_WORD("|}");
|
|
14976
|
+
}
|
|
14977
|
+
});
|
|
14668
14978
|
}
|
|
14669
14979
|
};
|
|
14670
14980
|
}
|
|
@@ -14684,7 +14994,7 @@ var graphNodePath2 = {
|
|
|
14684
14994
|
{ ALT: () => $.SUBRULE(reifiedTriple) }
|
|
14685
14995
|
]),
|
|
14686
14996
|
gImpl: ($) => (ast, C) => {
|
|
14687
|
-
if (C.
|
|
14997
|
+
if (C.astFactory.isTripleCollectionReifiedTriple(ast)) {
|
|
14688
14998
|
$.SUBRULE(reifiedTriple, ast);
|
|
14689
14999
|
} else {
|
|
14690
15000
|
grammar_exports.graphNodePath.gImpl($)(ast, C);
|
|
@@ -14702,7 +15012,7 @@ var varOrTerm2 = {
|
|
|
14702
15012
|
{ ALT: () => SUBRULE(grammar_exports.blankNode) },
|
|
14703
15013
|
{ ALT: () => {
|
|
14704
15014
|
const token = CONSUME(lexer_exports.terminals.nil);
|
|
14705
|
-
return ACTION(() => C.
|
|
15015
|
+
return ACTION(() => C.astFactory.namedNode(C.astFactory.sourceLocation(token), CommonIRIs.NIL));
|
|
14706
15016
|
} },
|
|
14707
15017
|
{ ALT: () => SUBRULE(tripleTerm) }
|
|
14708
15018
|
])
|
|
@@ -14721,10 +15031,10 @@ var reifiedTriple = {
|
|
|
14721
15031
|
if (reifierVal === void 0 && !C.parseMode.has("canCreateBlankNodes")) {
|
|
14722
15032
|
throw new Error("Cannot create blanknodes in current parse mode");
|
|
14723
15033
|
}
|
|
14724
|
-
return C.
|
|
15034
|
+
return C.astFactory.tripleCollectionReifiedTriple(C.astFactory.sourceLocation(open, close), subject, predicate, object3, reifierVal?.val);
|
|
14725
15035
|
});
|
|
14726
15036
|
},
|
|
14727
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, {
|
|
15037
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F3 }) => {
|
|
14728
15038
|
F3.printFilter(ast, () => PRINT_WORD("<<"));
|
|
14729
15039
|
const triple = ast.triples[0];
|
|
14730
15040
|
SUBRULE(graphNodePath2, triple.subject);
|
|
@@ -14763,9 +15073,9 @@ var tripleTerm = {
|
|
|
14763
15073
|
const predicate = SUBRULE(grammar_exports.verb);
|
|
14764
15074
|
const object3 = SUBRULE(tripleTermObject);
|
|
14765
15075
|
const close = CONSUME(tripleTermClose);
|
|
14766
|
-
return ACTION(() => C.
|
|
15076
|
+
return ACTION(() => C.astFactory.termTriple(subject, predicate, object3, C.astFactory.sourceLocation(open, close)));
|
|
14767
15077
|
},
|
|
14768
|
-
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, {
|
|
15078
|
+
gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { astFactory: F3 }) => {
|
|
14769
15079
|
F3.printFilter(ast, () => PRINT_WORD("<<("));
|
|
14770
15080
|
SUBRULE(graphNodePath2, ast.subject);
|
|
14771
15081
|
SUBRULE(graphNodePath2, ast.predicate);
|
|
@@ -14798,12 +15108,12 @@ var tripleTermData = {
|
|
|
14798
15108
|
{ ALT: () => SUBRULE(grammar_exports.iri) },
|
|
14799
15109
|
{ ALT: () => {
|
|
14800
15110
|
const token = CONSUME(lexer_exports.a);
|
|
14801
|
-
return ACTION(() => C.
|
|
15111
|
+
return ACTION(() => C.astFactory.namedNode(C.astFactory.sourceLocation(token), CommonIRIs.TYPE));
|
|
14802
15112
|
} }
|
|
14803
15113
|
]);
|
|
14804
15114
|
const object3 = SUBRULE(tripleTermDataObject);
|
|
14805
15115
|
const close = CONSUME(tripleTermClose);
|
|
14806
|
-
return ACTION(() => C.
|
|
15116
|
+
return ACTION(() => C.astFactory.termTriple(subject, predicate, object3, C.astFactory.sourceLocation(open, close)));
|
|
14807
15117
|
}
|
|
14808
15118
|
};
|
|
14809
15119
|
var tripleTermDataSubject = {
|
|
@@ -14835,7 +15145,7 @@ var exprTripleTerm = {
|
|
|
14835
15145
|
const predicate = SUBRULE(grammar_exports.verb);
|
|
14836
15146
|
const object3 = SUBRULE(exprTripleTermObject);
|
|
14837
15147
|
const close = CONSUME(tripleTermClose);
|
|
14838
|
-
return ACTION(() => C.
|
|
15148
|
+
return ACTION(() => C.astFactory.termTriple(subject, predicate, object3, C.astFactory.sourceLocation(open, close)));
|
|
14839
15149
|
}
|
|
14840
15150
|
};
|
|
14841
15151
|
var exprTripleTermSubject = {
|
|
@@ -14885,7 +15195,7 @@ var rdfLiteral2 = {
|
|
|
14885
15195
|
{ ALT: () => {
|
|
14886
15196
|
const langTag2 = CONSUME(LANG_DIR);
|
|
14887
15197
|
return ACTION(() => {
|
|
14888
|
-
const literal = C.
|
|
15198
|
+
const literal = C.astFactory.literalTerm(C.astFactory.sourceLocation(value, langTag2), value.value, langTag2.image.slice(1).toLowerCase());
|
|
14889
15199
|
langTagHasCorrectRange(literal);
|
|
14890
15200
|
return literal;
|
|
14891
15201
|
});
|
|
@@ -14893,7 +15203,7 @@ var rdfLiteral2 = {
|
|
|
14893
15203
|
{ ALT: () => {
|
|
14894
15204
|
CONSUME(lexer_exports.symbols.hathat);
|
|
14895
15205
|
const iriVal = SUBRULE(grammar_exports.iri);
|
|
14896
|
-
return ACTION(() => C.
|
|
15206
|
+
return ACTION(() => C.astFactory.literalTerm(C.astFactory.sourceLocation(value, iriVal), value.value, iriVal));
|
|
14897
15207
|
} }
|
|
14898
15208
|
])) ?? value;
|
|
14899
15209
|
}
|
|
@@ -14905,7 +15215,7 @@ var unaryExpression2 = {
|
|
|
14905
15215
|
{ ALT: () => {
|
|
14906
15216
|
const operator = CONSUME(lexer_exports.symbols.exclamation);
|
|
14907
15217
|
const expr = SUBRULE1(unaryExpression2);
|
|
14908
|
-
return ACTION(() => C.
|
|
15218
|
+
return ACTION(() => C.astFactory.expressionOperation("!", [expr], C.astFactory.sourceLocation(operator, expr)));
|
|
14909
15219
|
} },
|
|
14910
15220
|
{ ALT: () => {
|
|
14911
15221
|
const operator = OR2([
|
|
@@ -14913,34 +15223,36 @@ var unaryExpression2 = {
|
|
|
14913
15223
|
{ ALT: () => CONSUME(lexer_exports.symbols.opMinus) }
|
|
14914
15224
|
]);
|
|
14915
15225
|
const expr = SUBRULE2(primaryExpression2);
|
|
14916
|
-
return ACTION(() => C.
|
|
15226
|
+
return ACTION(() => C.astFactory.expressionOperation(operator.image === "!" ? "!" : operator.image === "+" ? "UPLUS" : "UMINUS", [expr], C.astFactory.sourceLocation(operator, expr)));
|
|
14917
15227
|
} }
|
|
14918
15228
|
])
|
|
14919
15229
|
};
|
|
14920
15230
|
var generateTriplesBlock = {
|
|
14921
15231
|
name: "triplesBlock",
|
|
14922
|
-
gImpl: ({ SUBRULE, PRINT_WORD, HANDLE_LOC }) => (ast, {
|
|
15232
|
+
gImpl: ({ SUBRULE, PRINT_WORD, HANDLE_LOC }) => (ast, { astFactory: F3 }) => {
|
|
14923
15233
|
for (const [index, triple] of ast.triples.entries()) {
|
|
14924
15234
|
HANDLE_LOC(triple, () => {
|
|
14925
15235
|
const nextTriple = ast.triples.at(index);
|
|
14926
15236
|
if (F3.isTripleCollection(triple)) {
|
|
14927
15237
|
SUBRULE(graphNodePath2, triple);
|
|
14928
|
-
F3.printFilter(triple, () => PRINT_WORD("
|
|
15238
|
+
F3.printFilter(triple, () => PRINT_WORD(".\n"));
|
|
14929
15239
|
} else {
|
|
14930
15240
|
SUBRULE(graphNodePath2, triple.subject);
|
|
15241
|
+
F3.printFilter(ast, () => PRINT_WORD(""));
|
|
14931
15242
|
if (F3.isPathPure(triple.predicate)) {
|
|
14932
15243
|
SUBRULE(grammar_exports.pathGenerator, triple.predicate, void 0);
|
|
14933
15244
|
} else {
|
|
14934
15245
|
SUBRULE(graphNodePath2, triple.predicate);
|
|
14935
15246
|
}
|
|
15247
|
+
F3.printFilter(ast, () => PRINT_WORD(""));
|
|
14936
15248
|
SUBRULE(graphNodePath2, triple.object);
|
|
14937
15249
|
SUBRULE(annotationPath, triple.annotations ?? []);
|
|
14938
15250
|
if (nextTriple === void 0 || F3.isTripleCollection(nextTriple) || !F3.isSourceLocationNoMaterialize(nextTriple.subject.loc)) {
|
|
14939
|
-
F3.printFilter(ast, () => PRINT_WORD("
|
|
15251
|
+
F3.printFilter(ast, () => PRINT_WORD(".\n"));
|
|
14940
15252
|
} else if (F3.isSourceLocationNoMaterialize(nextTriple.predicate.loc)) {
|
|
14941
15253
|
F3.printFilter(ast, () => PRINT_WORD(","));
|
|
14942
15254
|
} else {
|
|
14943
|
-
F3.printFilter(ast, () => PRINT_WORD("
|
|
15255
|
+
F3.printFilter(ast, () => PRINT_WORD(";\n"));
|
|
14944
15256
|
}
|
|
14945
15257
|
}
|
|
14946
15258
|
});
|
|
@@ -14950,7 +15262,7 @@ var generateTriplesBlock = {
|
|
|
14950
15262
|
var generateGraphTerm = {
|
|
14951
15263
|
name: "graphTerm",
|
|
14952
15264
|
gImpl: ($) => (ast, C) => {
|
|
14953
|
-
if (C.
|
|
15265
|
+
if (C.astFactory.isTermTriple(ast)) {
|
|
14954
15266
|
$.SUBRULE(tripleTerm, ast);
|
|
14955
15267
|
} else {
|
|
14956
15268
|
grammar_exports.graphTerm.gImpl($)(ast, C);
|
|
@@ -14958,86 +15270,18 @@ var generateGraphTerm = {
|
|
|
14958
15270
|
}
|
|
14959
15271
|
};
|
|
14960
15272
|
|
|
14961
|
-
// ../../packages/rules-sparql-1-2/lib/Factory.js
|
|
14962
|
-
var Factory2 = class extends Factory {
|
|
14963
|
-
termTriple(subject, predicate, object3, loc) {
|
|
14964
|
-
return {
|
|
14965
|
-
type: "term",
|
|
14966
|
-
subType: "triple",
|
|
14967
|
-
subject,
|
|
14968
|
-
predicate,
|
|
14969
|
-
object: object3,
|
|
14970
|
-
loc
|
|
14971
|
-
};
|
|
14972
|
-
}
|
|
14973
|
-
isTermTriple(obj) {
|
|
14974
|
-
return this.isOfSubType(obj, "term", "triple");
|
|
14975
|
-
}
|
|
14976
|
-
tripleCollectionReifiedTriple(loc, subject, predicate, object3, reifier2) {
|
|
14977
|
-
return {
|
|
14978
|
-
type: "tripleCollection",
|
|
14979
|
-
subType: "reifiedTriple",
|
|
14980
|
-
triples: [this.triple(subject, predicate, object3)],
|
|
14981
|
-
identifier: reifier2 ?? this.blankNode(void 0, this.sourceLocationNoMaterialize()),
|
|
14982
|
-
loc
|
|
14983
|
-
};
|
|
14984
|
-
}
|
|
14985
|
-
isTripleCollectionReifiedTriple(obj) {
|
|
14986
|
-
return this.isOfSubType(obj, "tripleCollection", "reifiedTriple");
|
|
14987
|
-
}
|
|
14988
|
-
tripleCollectionBlankNodeProperties(identifier, triples, loc) {
|
|
14989
|
-
return {
|
|
14990
|
-
type: "tripleCollection",
|
|
14991
|
-
subType: "blankNodeProperties",
|
|
14992
|
-
triples,
|
|
14993
|
-
identifier,
|
|
14994
|
-
loc
|
|
14995
|
-
};
|
|
14996
|
-
}
|
|
14997
|
-
/**
|
|
14998
|
-
* Overwritten triple constructor to always contain an empty annotations list
|
|
14999
|
-
*/
|
|
15000
|
-
triple = (subject, predicate, object3, loc) => ({
|
|
15001
|
-
type: "triple",
|
|
15002
|
-
subject,
|
|
15003
|
-
predicate,
|
|
15004
|
-
object: object3,
|
|
15005
|
-
annotations: [],
|
|
15006
|
-
loc: loc ?? this.sourceLocation(subject, predicate, object3)
|
|
15007
|
-
});
|
|
15008
|
-
annotatedTriple(subject, predicate, object3, annotations, loc) {
|
|
15009
|
-
return {
|
|
15010
|
-
type: "triple",
|
|
15011
|
-
subject,
|
|
15012
|
-
predicate,
|
|
15013
|
-
object: object3,
|
|
15014
|
-
annotations: annotations ?? [],
|
|
15015
|
-
loc: loc ?? this.sourceLocation(subject, predicate, object3, ...annotations ?? [])
|
|
15016
|
-
};
|
|
15017
|
-
}
|
|
15018
|
-
contextDefinitionVersion(version2, loc) {
|
|
15019
|
-
return {
|
|
15020
|
-
type: "contextDef",
|
|
15021
|
-
subType: "version",
|
|
15022
|
-
version: version2,
|
|
15023
|
-
loc
|
|
15024
|
-
};
|
|
15025
|
-
}
|
|
15026
|
-
isContextDefinitionVersion(obj) {
|
|
15027
|
-
return this.isOfSubType(obj, "contextDef", "version");
|
|
15028
|
-
}
|
|
15029
|
-
};
|
|
15030
|
-
|
|
15031
15273
|
// ../../packages/rules-sparql-1-2/lib/parserUtils.js
|
|
15032
15274
|
function completeParseContext2(context) {
|
|
15033
15275
|
return {
|
|
15034
|
-
|
|
15276
|
+
astFactory: context.astFactory ?? new AstFactory2(),
|
|
15035
15277
|
baseIRI: context.baseIRI,
|
|
15036
15278
|
prefixes: { ...context.prefixes },
|
|
15037
15279
|
origSource: context.origSource ?? "",
|
|
15038
15280
|
offset: context.offset,
|
|
15039
15281
|
parseMode: context.parseMode ? new Set(context.parseMode) : /* @__PURE__ */ new Set(["canParseVars", "canCreateBlankNodes"]),
|
|
15040
|
-
skipValidation: context.skipValidation ?? false
|
|
15282
|
+
skipValidation: context.skipValidation ?? false,
|
|
15283
|
+
indentInc: context.indentInc ?? 2,
|
|
15284
|
+
[traqulaIndentation]: context[traqulaIndentation] ?? 0
|
|
15041
15285
|
};
|
|
15042
15286
|
}
|
|
15043
15287
|
|
|
@@ -15045,7 +15289,7 @@ function completeParseContext2(context) {
|
|
|
15045
15289
|
var sparql12GeneratorBuilder = GeneratorBuilder.create(sparql11GeneratorBuilder).widenContext().typePatch().addRule(grammar_exports2.tripleTerm).addRule(grammar_exports2.reifiedTriple).patchRule(grammar_exports2.graphNodePath).addRule(grammar_exports2.annotationBlockPath).addRule(grammar_exports2.annotationPath).addRule(grammar_exports2.versionDecl).patchRule(grammar_exports2.prologue).patchRule(grammar_exports2.generateTriplesBlock).patchRule(grammar_exports2.generateGraphTerm);
|
|
15046
15290
|
var Generator = class {
|
|
15047
15291
|
generator = sparql12GeneratorBuilder.build();
|
|
15048
|
-
F = new
|
|
15292
|
+
F = new AstFactory2();
|
|
15049
15293
|
generate(ast, context = {}) {
|
|
15050
15294
|
return this.generator.queryOrUpdate(ast, completeParseContext2(context));
|
|
15051
15295
|
}
|