@traqula/rules-sparql-1-2 0.0.1-alpha.148 → 0.0.1-alpha.176

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 CHANGED
@@ -21,7 +21,8 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
21
21
  var index_exports = {};
22
22
  __export(index_exports, {
23
23
  gram: () => grammar_exports2,
24
- lex: () => lexer_exports2
24
+ lex: () => lexer_exports2,
25
+ types: () => sparql12Types_exports
25
26
  });
26
27
  module.exports = __toCommonJS(index_exports);
27
28
 
@@ -70,53 +71,369 @@ __export(grammar_exports2, {
70
71
  varOrTerm: () => varOrTerm2
71
72
  });
72
73
 
73
- // lib/lexer.ts
74
- var lexer_exports2 = {};
75
- __export(lexer_exports2, {
76
- LANG_DIR: () => LANG_DIR,
77
- annotationClose: () => annotationClose,
78
- annotationOpen: () => annotationOpen,
79
- builtinHasLang: () => builtinHasLang,
80
- builtinHasLangDir: () => builtinHasLangDir,
81
- builtinIsTRIPLE: () => builtinIsTRIPLE,
82
- builtinLangDir: () => builtinLangDir,
83
- builtinOBJECT: () => builtinOBJECT,
84
- builtinPREDICATE: () => builtinPREDICATE,
85
- builtinSUBJECT: () => builtinSUBJECT,
86
- builtinStrLangDir: () => builtinStrLangDir,
87
- builtinTRIPLE: () => builtinTRIPLE,
88
- reificationClose: () => reificationClose,
89
- reificationOpen: () => reificationOpen,
90
- sparql12Tokens: () => sparql12Tokens,
91
- tilde: () => tilde,
92
- tripleTermClose: () => tripleTermClose,
93
- tripleTermOpen: () => tripleTermOpen
74
+ // ../rules-sparql-1-1/lib/grammar/index.ts
75
+ var grammar_exports = {};
76
+ __export(grammar_exports, {
77
+ add: () => add2,
78
+ additiveExpression: () => additiveExpression,
79
+ aggregate: () => aggregate,
80
+ aggregateAvg: () => aggregateAvg,
81
+ aggregateCount: () => aggregateCount,
82
+ aggregateGroup_concat: () => aggregateGroup_concat,
83
+ aggregateMax: () => aggregateMax,
84
+ aggregateMin: () => aggregateMin,
85
+ aggregateSample: () => aggregateSample,
86
+ aggregateSum: () => aggregateSum,
87
+ argList: () => argList,
88
+ askQuery: () => askQuery,
89
+ baseAggregateFunc: () => baseAggregateFunc,
90
+ baseDecl: () => baseDecl2,
91
+ bind: () => bind2,
92
+ blankNode: () => blankNode,
93
+ blankNodePropertyList: () => blankNodePropertyList,
94
+ blankNodePropertyListPath: () => blankNodePropertyListPath,
95
+ booleanLiteral: () => booleanLiteral,
96
+ brackettedExpression: () => brackettedExpression,
97
+ builtInAbs: () => builtInAbs,
98
+ builtInBnodeSparqlJs: () => builtInBnodeSparqlJs,
99
+ builtInBound: () => builtInBound,
100
+ builtInCall: () => builtInCall,
101
+ builtInCallList: () => builtInCallList,
102
+ builtInCeil: () => builtInCeil,
103
+ builtInCoalesce: () => builtInCoalesce,
104
+ builtInConcat: () => builtInConcat,
105
+ builtInContains: () => builtInContains,
106
+ builtInDatatype: () => builtInDatatype,
107
+ builtInDay: () => builtInDay,
108
+ builtInEncode_for_uri: () => builtInEncode_for_uri,
109
+ builtInFloor: () => builtInFloor,
110
+ builtInHours: () => builtInHours,
111
+ builtInIf: () => builtInIf,
112
+ builtInIri: () => builtInIri,
113
+ builtInIsblank: () => builtInIsblank,
114
+ builtInIsiri: () => builtInIsiri,
115
+ builtInIsliteral: () => builtInIsliteral,
116
+ builtInIsnumeric: () => builtInIsnumeric,
117
+ builtInIsuri: () => builtInIsuri,
118
+ builtInLang: () => builtInLang,
119
+ builtInLangmatches: () => builtInLangmatches,
120
+ builtInLcase: () => builtInLcase,
121
+ builtInMd5: () => builtInMd5,
122
+ builtInMinutes: () => builtInMinutes,
123
+ builtInMonth: () => builtInMonth,
124
+ builtInNow: () => builtInNow,
125
+ builtInRand: () => builtInRand,
126
+ builtInRound: () => builtInRound,
127
+ builtInSameterm: () => builtInSameterm,
128
+ builtInSeconds: () => builtInSeconds,
129
+ builtInSha1: () => builtInSha1,
130
+ builtInSha256: () => builtInSha256,
131
+ builtInSha384: () => builtInSha384,
132
+ builtInSha512: () => builtInSha512,
133
+ builtInStr: () => builtInStr,
134
+ builtInStrafter: () => builtInStrafter,
135
+ builtInStrbefore: () => builtInStrbefore,
136
+ builtInStrdt: () => builtInStrdt,
137
+ builtInStrends: () => builtInStrends,
138
+ builtInStrlang: () => builtInStrlang,
139
+ builtInStrlen: () => builtInStrlen,
140
+ builtInStrstarts: () => builtInStrstarts,
141
+ builtInStruuid: () => builtInStruuid,
142
+ builtInTimezone: () => builtInTimezone,
143
+ builtInTz: () => builtInTz,
144
+ builtInUcase: () => builtInUcase,
145
+ builtInUri: () => builtInUri,
146
+ builtInUuid: () => builtInUuid,
147
+ builtInYear: () => builtInYear,
148
+ canCreateBlankNodes: () => canCreateBlankNodes,
149
+ clear: () => clear2,
150
+ collection: () => collection,
151
+ collectionPath: () => collectionPath,
152
+ conditionalAndExpression: () => conditionalAndExpression,
153
+ conditionalOrExpression: () => conditionalOrExpression,
154
+ constraint: () => constraint,
155
+ constructQuery: () => constructQuery,
156
+ constructTemplate: () => constructTemplate,
157
+ constructTriples: () => constructTriples,
158
+ copy: () => copy2,
159
+ create: () => create2,
160
+ dataBlock: () => dataBlock,
161
+ dataBlockValue: () => dataBlockValue,
162
+ datasetClause: () => datasetClause,
163
+ defaultGraphClause: () => defaultGraphClause,
164
+ deleteClause: () => deleteClause2,
165
+ deleteData: () => deleteData,
166
+ deleteWhere: () => deleteWhere,
167
+ describeQuery: () => describeQuery,
168
+ drop: () => drop3,
169
+ existsFunc: () => existsFunc,
170
+ expression: () => expression,
171
+ expressionList: () => expressionList,
172
+ filter: () => filter3,
173
+ funcExpr1: () => funcExpr1,
174
+ funcExpr2: () => funcExpr2,
175
+ funcExpr2or3: () => funcExpr2or3,
176
+ funcExpr3: () => funcExpr3,
177
+ funcExpr3or4: () => funcExpr3or4,
178
+ funcExprList1: () => funcExprList1,
179
+ funcExprOrNil1: () => funcExprOrNil1,
180
+ funcGroupGraphPattern: () => funcGroupGraphPattern,
181
+ funcNil1: () => funcNil1,
182
+ funcVar1: () => funcVar1,
183
+ functionCall: () => functionCall,
184
+ graphGraphPattern: () => graphGraphPattern,
185
+ graphNode: () => graphNode,
186
+ graphNodePath: () => graphNodePath,
187
+ graphOrDefault: () => graphOrDefault,
188
+ graphPatternNotTriples: () => graphPatternNotTriples,
189
+ graphRef: () => graphRef,
190
+ graphRefAll: () => graphRefAll,
191
+ graphTerm: () => graphTerm,
192
+ groupClause: () => groupClause,
193
+ groupCondition: () => groupCondition,
194
+ groupGraphPattern: () => groupGraphPattern,
195
+ groupGraphPatternSub: () => groupGraphPatternSub,
196
+ groupOrUnionGraphPattern: () => groupOrUnionGraphPattern,
197
+ havingClause: () => havingClause,
198
+ havingCondition: () => havingCondition,
199
+ inlineData: () => inlineData,
200
+ inlineDataFull: () => inlineDataFull,
201
+ inlineDataOneVar: () => inlineDataOneVar,
202
+ insertClause: () => insertClause2,
203
+ insertData: () => insertData,
204
+ iri: () => iri2,
205
+ iriOrFunction: () => iriOrFunction,
206
+ limitClause: () => limitClause,
207
+ limitOffsetClauses: () => limitOffsetClauses,
208
+ load: () => load2,
209
+ minusGraphPattern: () => minusGraphPattern,
210
+ modify: () => modify,
211
+ move: () => move2,
212
+ multiplicativeExpression: () => multiplicativeExpression,
213
+ namedGraphClause: () => namedGraphClause,
214
+ notExistsFunc: () => notExistsFunc,
215
+ numericExpression: () => numericExpression,
216
+ numericLiteral: () => numericLiteral,
217
+ numericLiteralNegative: () => numericLiteralNegative,
218
+ numericLiteralPositive: () => numericLiteralPositive,
219
+ numericLiteralUnsigned: () => numericLiteralUnsigned,
220
+ object: () => object,
221
+ objectList: () => objectList,
222
+ objectListPath: () => objectListPath,
223
+ objectPath: () => objectPath,
224
+ offsetClause: () => offsetClause,
225
+ optionalGraphPattern: () => optionalGraphPattern,
226
+ orderClause: () => orderClause,
227
+ orderCondition: () => orderCondition,
228
+ path: () => path,
229
+ pathAlternative: () => pathAlternative,
230
+ pathElt: () => pathElt,
231
+ pathEltOrInverse: () => pathEltOrInverse,
232
+ pathHelper: () => pathHelper,
233
+ pathMod: () => pathMod,
234
+ pathNegatedPropertySet: () => pathNegatedPropertySet,
235
+ pathOneInPropertySet: () => pathOneInPropertySet,
236
+ pathPrimary: () => pathPrimary,
237
+ pathSequence: () => pathSequence,
238
+ prefixDecl: () => prefixDecl2,
239
+ prefixedName: () => prefixedName,
240
+ primaryExpression: () => primaryExpression,
241
+ prologue: () => prologue,
242
+ propertyList: () => propertyList,
243
+ propertyListNotEmpty: () => propertyListNotEmpty,
244
+ propertyListPath: () => propertyListPath,
245
+ propertyListPathNotEmpty: () => propertyListPathNotEmpty,
246
+ quadData: () => quadData,
247
+ quadPattern: () => quadPattern,
248
+ quads: () => quads,
249
+ quadsNotTriples: () => quadsNotTriples,
250
+ query: () => query,
251
+ queryUnit: () => queryUnit,
252
+ rdfLiteral: () => rdfLiteral,
253
+ regexExpression: () => regexExpression,
254
+ relationalExpression: () => relationalExpression,
255
+ selectClause: () => selectClause,
256
+ selectQuery: () => selectQuery,
257
+ serviceGraphPattern: () => serviceGraphPattern,
258
+ solutionModifier: () => solutionModifier,
259
+ sourceSelector: () => sourceSelector,
260
+ strReplaceExpression: () => strReplaceExpression,
261
+ string: () => string,
262
+ subSelect: () => subSelect,
263
+ substringExpression: () => substringExpression,
264
+ triplesBlock: () => triplesBlock,
265
+ triplesNode: () => triplesNode,
266
+ triplesNodePath: () => triplesNodePath,
267
+ triplesSameSubject: () => triplesSameSubject,
268
+ triplesSameSubjectPath: () => triplesSameSubjectPath,
269
+ triplesTemplate: () => triplesTemplate,
270
+ unaryExpression: () => unaryExpression,
271
+ update: () => update,
272
+ update1: () => update1,
273
+ updateUnit: () => updateUnit,
274
+ usingClause: () => usingClause2,
275
+ valueLogical: () => valueLogical,
276
+ valuesClause: () => valuesClause,
277
+ varOrIri: () => varOrIri,
278
+ varOrTerm: () => varOrTerm,
279
+ var_: () => var_,
280
+ verb: () => verb,
281
+ verbA: () => verbA,
282
+ verbPath: () => verbPath,
283
+ verbSimple: () => verbSimple,
284
+ whereClause: () => whereClause
94
285
  });
95
286
 
96
- // ../../node_modules/lodash-es/_freeGlobal.js
97
- var freeGlobal = typeof global == "object" && global && global.Object === Object && global;
98
- var freeGlobal_default = freeGlobal;
99
-
100
- // ../../node_modules/lodash-es/_root.js
101
- var freeSelf = typeof self == "object" && self && self.Object === Object && self;
102
- var root = freeGlobal_default || freeSelf || Function("return this")();
103
- var root_default = root;
104
-
105
- // ../../node_modules/lodash-es/_Symbol.js
106
- var Symbol2 = root_default.Symbol;
107
- var Symbol_default = Symbol2;
108
-
109
- // ../../node_modules/lodash-es/_getRawTag.js
110
- var objectProto = Object.prototype;
111
- var hasOwnProperty = objectProto.hasOwnProperty;
112
- var nativeObjectToString = objectProto.toString;
113
- var symToStringTag = Symbol_default ? Symbol_default.toStringTag : void 0;
114
- function getRawTag(value) {
115
- var isOwn = hasOwnProperty.call(value, symToStringTag), tag = value[symToStringTag];
116
- try {
117
- value[symToStringTag] = void 0;
118
- var unmasked = true;
119
- } catch (e) {
287
+ // ../rules-sparql-1-1/lib/lexer/index.ts
288
+ var lexer_exports = {};
289
+ __export(lexer_exports, {
290
+ a: () => a,
291
+ add: () => add,
292
+ allBaseTokens: () => allBaseTokens,
293
+ as: () => as,
294
+ ask: () => ask,
295
+ baseDecl: () => baseDecl,
296
+ bind: () => bind,
297
+ builtIn: () => BuildinCalls_exports,
298
+ clear: () => clear,
299
+ construct: () => construct,
300
+ copy: () => copy,
301
+ create: () => create,
302
+ dataClause: () => dataClause,
303
+ deleteClause: () => deleteClause,
304
+ describe: () => describe,
305
+ distinct: () => distinct,
306
+ drop: () => drop2,
307
+ false_: () => false_,
308
+ filter: () => filter2,
309
+ from: () => from,
310
+ graph: () => graph_exports,
311
+ groupBy: () => groupBy2,
312
+ having: () => having,
313
+ in_: () => in_,
314
+ insertClause: () => insertClause,
315
+ limit: () => limit,
316
+ load: () => load,
317
+ loadInto: () => loadInto,
318
+ minus: () => minus,
319
+ modifyWith: () => modifyWith,
320
+ move: () => move,
321
+ notIn: () => notIn,
322
+ offset: () => offset,
323
+ optional: () => optional,
324
+ order: () => order,
325
+ orderAsc: () => orderAsc,
326
+ orderDesc: () => orderDesc,
327
+ prefixDecl: () => prefixDecl,
328
+ reduced: () => reduced,
329
+ select: () => select,
330
+ separator: () => separator,
331
+ service: () => service,
332
+ silent: () => silent,
333
+ sparql11Tokens: () => sparql11Tokens,
334
+ symbols: () => symbols_exports,
335
+ terminals: () => terminals_exports,
336
+ to: () => to,
337
+ true_: () => true_,
338
+ undef: () => undef,
339
+ union: () => union,
340
+ usingClause: () => usingClause,
341
+ values: () => values2,
342
+ where: () => where
343
+ });
344
+
345
+ // ../rules-sparql-1-1/lib/lexer/BuildinCalls.ts
346
+ var BuildinCalls_exports = {};
347
+ __export(BuildinCalls_exports, {
348
+ BuildInCalls: () => BuildInCalls,
349
+ abs: () => abs,
350
+ allBuiltInCalls: () => allBuiltInCalls,
351
+ avg: () => avg,
352
+ bnode: () => bnode,
353
+ bound: () => bound,
354
+ ceil: () => ceil,
355
+ coalesce: () => coalesce,
356
+ concat: () => concat,
357
+ contains: () => contains,
358
+ count: () => count,
359
+ datatype: () => datatype,
360
+ day: () => day,
361
+ encode_for_uri: () => encode_for_uri,
362
+ exists: () => exists,
363
+ floor: () => floor,
364
+ groupConcat: () => groupConcat,
365
+ hours: () => hours,
366
+ if_: () => if_,
367
+ iri: () => iri,
368
+ isblank: () => isblank,
369
+ isiri: () => isiri,
370
+ isliteral: () => isliteral,
371
+ isnumeric: () => isnumeric,
372
+ isuri: () => isuri,
373
+ lang: () => lang,
374
+ langmatches: () => langmatches,
375
+ lcase: () => lcase,
376
+ max: () => max,
377
+ md5: () => md5,
378
+ min: () => min,
379
+ minutes: () => minutes,
380
+ month: () => month,
381
+ notexists: () => notexists,
382
+ now: () => now,
383
+ rand: () => rand,
384
+ regex: () => regex,
385
+ replace: () => replace,
386
+ round: () => round,
387
+ sameterm: () => sameterm,
388
+ sample: () => sample,
389
+ seconds: () => seconds,
390
+ sha1: () => sha1,
391
+ sha256: () => sha256,
392
+ sha384: () => sha384,
393
+ sha512: () => sha512,
394
+ str: () => str,
395
+ strafter: () => strafter,
396
+ strbefore: () => strbefore,
397
+ strdt: () => strdt,
398
+ strends: () => strends,
399
+ strlang: () => strlang,
400
+ strlen: () => strlen,
401
+ strstarts: () => strstarts,
402
+ struuid: () => struuid,
403
+ substr: () => substr,
404
+ sum: () => sum,
405
+ timezone: () => timezone,
406
+ tz: () => tz,
407
+ ucase: () => ucase,
408
+ uri: () => uri,
409
+ uuid: () => uuid,
410
+ year: () => year
411
+ });
412
+
413
+ // ../../node_modules/lodash-es/_freeGlobal.js
414
+ var freeGlobal = typeof global == "object" && global && global.Object === Object && global;
415
+ var freeGlobal_default = freeGlobal;
416
+
417
+ // ../../node_modules/lodash-es/_root.js
418
+ var freeSelf = typeof self == "object" && self && self.Object === Object && self;
419
+ var root = freeGlobal_default || freeSelf || Function("return this")();
420
+ var root_default = root;
421
+
422
+ // ../../node_modules/lodash-es/_Symbol.js
423
+ var Symbol2 = root_default.Symbol;
424
+ var Symbol_default = Symbol2;
425
+
426
+ // ../../node_modules/lodash-es/_getRawTag.js
427
+ var objectProto = Object.prototype;
428
+ var hasOwnProperty = objectProto.hasOwnProperty;
429
+ var nativeObjectToString = objectProto.toString;
430
+ var symToStringTag = Symbol_default ? Symbol_default.toStringTag : void 0;
431
+ function getRawTag(value) {
432
+ var isOwn = hasOwnProperty.call(value, symToStringTag), tag = value[symToStringTag];
433
+ try {
434
+ value[symToStringTag] = void 0;
435
+ var unmasked = true;
436
+ } catch (e) {
120
437
  }
121
438
  var result = nativeObjectToString.call(value);
122
439
  if (unmasked) {
@@ -9304,42 +9621,6 @@ applyMixins(Parser, [
9304
9621
  PerformanceTracer
9305
9622
  ]);
9306
9623
 
9307
- // ../core/lib/grammar-helpers/utils.ts
9308
- function unCapitalize(str2) {
9309
- return str2.charAt(0).toLowerCase() + str2.slice(1);
9310
- }
9311
- function resolveIRI(iri3, base) {
9312
- if (/^[a-z][\d+.a-z-]*:/iu.test(iri3)) {
9313
- return iri3;
9314
- }
9315
- if (!base) {
9316
- throw new Error(`Cannot resolve relative IRI ${iri3} because no base IRI was set.`);
9317
- }
9318
- switch (iri3[0]) {
9319
- // An empty relative IRI indicates the base IRI
9320
- case void 0:
9321
- return base;
9322
- // Resolve relative fragment IRIs against the base IRI
9323
- case "#":
9324
- return base + iri3;
9325
- // Resolve relative query string IRIs by replacing the query string
9326
- case "?":
9327
- return base.replace(/(?:\?.*)?$/u, iri3);
9328
- // Resolve root relative IRIs at the root of the base IRI
9329
- case "/":
9330
- const baseMatch = base.match(/^(?:[a-z]+:\/*)?[^\/]*/);
9331
- if (!baseMatch) {
9332
- throw new Error(`Could not determine relative IRI using base: ${base}`);
9333
- }
9334
- const baseRoot = baseMatch[0];
9335
- return baseRoot + iri3;
9336
- // Resolve all other IRIs at the base IRI's path
9337
- default:
9338
- const basePath = base.replace(/[^\/:]*$/, "");
9339
- return basePath + iri3;
9340
- }
9341
- }
9342
-
9343
9624
  // ../core/lib/lexer-builder/LexerBuilder.ts
9344
9625
  var LexerBuilder = class _LexerBuilder {
9345
9626
  static create(starter) {
@@ -9348,9 +9629,6 @@ var LexerBuilder = class _LexerBuilder {
9348
9629
  constructor(starter) {
9349
9630
  this.tokens = starter?.tokens ? [...starter.tokens] : [];
9350
9631
  }
9351
- get(index) {
9352
- return this.tokens[index];
9353
- }
9354
9632
  merge(merge, overwrite = []) {
9355
9633
  const extraTokens = merge.tokens.filter((token) => {
9356
9634
  const overwriteToken = overwrite.find((t) => t.name === token.name);
@@ -9420,372 +9698,30 @@ var LexerBuilder = class _LexerBuilder {
9420
9698
  }
9421
9699
  return this;
9422
9700
  }
9423
- build() {
9424
- return this.tokens;
9425
- }
9426
- };
9427
-
9428
- // ../core/lib/lexer-helper/utils.ts
9429
- function createToken2(config) {
9430
- return createToken(config);
9431
- }
9432
-
9433
- // ../core/lib/Wildcard.ts
9434
- var Wildcard = class {
9435
- constructor() {
9436
- this.value = "*";
9437
- this.termType = "Wildcard";
9438
- return WILDCARD ?? this;
9439
- }
9440
- equals(other) {
9441
- return Boolean(other && this.termType === other.termType);
9442
- }
9443
- toJSON() {
9444
- const { value, ...rest } = this;
9445
- return rest;
9446
- }
9447
- };
9448
- var WILDCARD;
9449
- WILDCARD = new Wildcard();
9450
-
9451
- // ../rules-sparql-1-1/lib/grammar/index.ts
9452
- var grammar_exports = {};
9453
- __export(grammar_exports, {
9454
- add: () => add2,
9455
- additiveExpression: () => additiveExpression,
9456
- aggregate: () => aggregate,
9457
- aggregateAvg: () => aggregateAvg,
9458
- aggregateCount: () => aggregateCount,
9459
- aggregateGroup_concat: () => aggregateGroup_concat,
9460
- aggregateMax: () => aggregateMax,
9461
- aggregateMin: () => aggregateMin,
9462
- aggregateSample: () => aggregateSample,
9463
- aggregateSum: () => aggregateSum,
9464
- argList: () => argList,
9465
- askQuery: () => askQuery,
9466
- baseAggregateFunc: () => baseAggregateFunc,
9467
- baseDecl: () => baseDecl2,
9468
- bind: () => bind2,
9469
- blankNode: () => blankNode,
9470
- blankNodePropertyList: () => blankNodePropertyList,
9471
- blankNodePropertyListPath: () => blankNodePropertyListPath,
9472
- booleanLiteral: () => booleanLiteral,
9473
- brackettedExpression: () => brackettedExpression,
9474
- builtInAbs: () => builtInAbs,
9475
- builtInBnodeSparqlJs: () => builtInBnodeSparqlJs,
9476
- builtInBound: () => builtInBound,
9477
- builtInCall: () => builtInCall,
9478
- builtInCallList: () => builtInCallList,
9479
- builtInCeil: () => builtInCeil,
9480
- builtInCoalesce: () => builtInCoalesce,
9481
- builtInConcat: () => builtInConcat,
9482
- builtInContains: () => builtInContains,
9483
- builtInDatatype: () => builtInDatatype,
9484
- builtInDay: () => builtInDay,
9485
- builtInEncode_for_uri: () => builtInEncode_for_uri,
9486
- builtInFloor: () => builtInFloor,
9487
- builtInHours: () => builtInHours,
9488
- builtInIf: () => builtInIf,
9489
- builtInIri: () => builtInIri,
9490
- builtInIsblank: () => builtInIsblank,
9491
- builtInIsiri: () => builtInIsiri,
9492
- builtInIsliteral: () => builtInIsliteral,
9493
- builtInIsnumeric: () => builtInIsnumeric,
9494
- builtInIsuri: () => builtInIsuri,
9495
- builtInLang: () => builtInLang,
9496
- builtInLangmatches: () => builtInLangmatches,
9497
- builtInLcase: () => builtInLcase,
9498
- builtInMd5: () => builtInMd5,
9499
- builtInMinutes: () => builtInMinutes,
9500
- builtInMonth: () => builtInMonth,
9501
- builtInNow: () => builtInNow,
9502
- builtInRand: () => builtInRand,
9503
- builtInRound: () => builtInRound,
9504
- builtInSameterm: () => builtInSameterm,
9505
- builtInSeconds: () => builtInSeconds,
9506
- builtInSha1: () => builtInSha1,
9507
- builtInSha256: () => builtInSha256,
9508
- builtInSha384: () => builtInSha384,
9509
- builtInSha512: () => builtInSha512,
9510
- builtInStr: () => builtInStr,
9511
- builtInStrafter: () => builtInStrafter,
9512
- builtInStrbefore: () => builtInStrbefore,
9513
- builtInStrdt: () => builtInStrdt,
9514
- builtInStrends: () => builtInStrends,
9515
- builtInStrlang: () => builtInStrlang,
9516
- builtInStrlen: () => builtInStrlen,
9517
- builtInStrstarts: () => builtInStrstarts,
9518
- builtInStruuid: () => builtInStruuid,
9519
- builtInTimezone: () => builtInTimezone,
9520
- builtInTz: () => builtInTz,
9521
- builtInUcase: () => builtInUcase,
9522
- builtInUri: () => builtInUri,
9523
- builtInUuid: () => builtInUuid,
9524
- builtInYear: () => builtInYear,
9525
- canCreateBlankNodes: () => canCreateBlankNodes,
9526
- clear: () => clear2,
9527
- collection: () => collection,
9528
- collectionPath: () => collectionPath,
9529
- conditionalAndExpression: () => conditionalAndExpression,
9530
- conditionalOrExpression: () => conditionalOrExpression,
9531
- constraint: () => constraint,
9532
- constructQuery: () => constructQuery,
9533
- constructTemplate: () => constructTemplate,
9534
- constructTriples: () => constructTriples,
9535
- copy: () => copy2,
9536
- create: () => create2,
9537
- dataBlock: () => dataBlock,
9538
- dataBlockValue: () => dataBlockValue,
9539
- datasetClause: () => datasetClause,
9540
- defaultGraphClause: () => defaultGraphClause,
9541
- deleteClause: () => deleteClause2,
9542
- deleteData: () => deleteData,
9543
- deleteWhere: () => deleteWhere,
9544
- describeQuery: () => describeQuery,
9545
- drop: () => drop3,
9546
- existsFunc: () => existsFunc,
9547
- expression: () => expression,
9548
- expressionList: () => expressionList,
9549
- filter: () => filter3,
9550
- funcExpr1: () => funcExpr1,
9551
- funcExpr2: () => funcExpr2,
9552
- funcExpr2or3: () => funcExpr2or3,
9553
- funcExpr3: () => funcExpr3,
9554
- funcExpr3or4: () => funcExpr3or4,
9555
- funcExprList1: () => funcExprList1,
9556
- funcExprOrNil1: () => funcExprOrNil1,
9557
- funcGroupGraphPattern: () => funcGroupGraphPattern,
9558
- funcNil1: () => funcNil1,
9559
- funcVar1: () => funcVar1,
9560
- functionCall: () => functionCall,
9561
- graphGraphPattern: () => graphGraphPattern,
9562
- graphNode: () => graphNode,
9563
- graphNodePath: () => graphNodePath,
9564
- graphOrDefault: () => graphOrDefault,
9565
- graphPatternNotTriples: () => graphPatternNotTriples,
9566
- graphRef: () => graphRef,
9567
- graphRefAll: () => graphRefAll,
9568
- graphTerm: () => graphTerm,
9569
- groupClause: () => groupClause,
9570
- groupCondition: () => groupCondition,
9571
- groupGraphPattern: () => groupGraphPattern,
9572
- groupGraphPatternSub: () => groupGraphPatternSub,
9573
- groupOrUnionGraphPattern: () => groupOrUnionGraphPattern,
9574
- havingClause: () => havingClause,
9575
- havingCondition: () => havingCondition,
9576
- inlineData: () => inlineData,
9577
- inlineDataFull: () => inlineDataFull,
9578
- inlineDataOneVar: () => inlineDataOneVar,
9579
- insertClause: () => insertClause2,
9580
- insertData: () => insertData,
9581
- iri: () => iri2,
9582
- iriOrFunction: () => iriOrFunction,
9583
- limitClause: () => limitClause,
9584
- limitOffsetClauses: () => limitOffsetClauses,
9585
- load: () => load2,
9586
- minusGraphPattern: () => minusGraphPattern,
9587
- modify: () => modify,
9588
- move: () => move2,
9589
- multiplicativeExpression: () => multiplicativeExpression,
9590
- namedGraphClause: () => namedGraphClause,
9591
- notExistsFunc: () => notExistsFunc,
9592
- numericExpression: () => numericExpression,
9593
- numericLiteral: () => numericLiteral,
9594
- numericLiteralNegative: () => numericLiteralNegative,
9595
- numericLiteralPositive: () => numericLiteralPositive,
9596
- numericLiteralUnsigned: () => numericLiteralUnsigned,
9597
- object: () => object,
9598
- objectList: () => objectList,
9599
- objectListPath: () => objectListPath,
9600
- objectPath: () => objectPath,
9601
- offsetClause: () => offsetClause,
9602
- optionalGraphPattern: () => optionalGraphPattern,
9603
- orderClause: () => orderClause,
9604
- orderCondition: () => orderCondition,
9605
- path: () => path,
9606
- pathAlternative: () => pathAlternative,
9607
- pathElt: () => pathElt,
9608
- pathEltOrInverse: () => pathEltOrInverse,
9609
- pathHelper: () => pathHelper,
9610
- pathMod: () => pathMod,
9611
- pathNegatedPropertySet: () => pathNegatedPropertySet,
9612
- pathOneInPropertySet: () => pathOneInPropertySet,
9613
- pathPrimary: () => pathPrimary,
9614
- pathSequence: () => pathSequence,
9615
- prefixDecl: () => prefixDecl2,
9616
- prefixedName: () => prefixedName,
9617
- primaryExpression: () => primaryExpression,
9618
- prologue: () => prologue,
9619
- propertyList: () => propertyList,
9620
- propertyListNotEmpty: () => propertyListNotEmpty,
9621
- propertyListPath: () => propertyListPath,
9622
- propertyListPathNotEmpty: () => propertyListPathNotEmpty,
9623
- quadData: () => quadData,
9624
- quadPattern: () => quadPattern,
9625
- quads: () => quads,
9626
- quadsNotTriples: () => quadsNotTriples,
9627
- query: () => query,
9628
- queryUnit: () => queryUnit,
9629
- rdfLiteral: () => rdfLiteral,
9630
- regexExpression: () => regexExpression,
9631
- relationalExpression: () => relationalExpression,
9632
- selectClause: () => selectClause,
9633
- selectQuery: () => selectQuery,
9634
- serviceGraphPattern: () => serviceGraphPattern,
9635
- solutionModifier: () => solutionModifier,
9636
- sourceSelector: () => sourceSelector,
9637
- strReplaceExpression: () => strReplaceExpression,
9638
- string: () => string,
9639
- subSelect: () => subSelect,
9640
- substringExpression: () => substringExpression,
9641
- triplesBlock: () => triplesBlock,
9642
- triplesNode: () => triplesNode,
9643
- triplesNodePath: () => triplesNodePath,
9644
- triplesSameSubject: () => triplesSameSubject,
9645
- triplesSameSubjectPath: () => triplesSameSubjectPath,
9646
- triplesTemplate: () => triplesTemplate,
9647
- unaryExpression: () => unaryExpression,
9648
- update: () => update,
9649
- update1: () => update1,
9650
- updateUnit: () => updateUnit,
9651
- usingClause: () => usingClause2,
9652
- valueLogical: () => valueLogical,
9653
- valuesClause: () => valuesClause,
9654
- varOrIri: () => varOrIri,
9655
- varOrTerm: () => varOrTerm,
9656
- var_: () => var_,
9657
- verb: () => verb,
9658
- verbA: () => verbA,
9659
- verbPath: () => verbPath,
9660
- verbSimple: () => verbSimple,
9661
- whereClause: () => whereClause
9662
- });
9663
-
9664
- // ../rules-sparql-1-1/lib/lexer/index.ts
9665
- var lexer_exports = {};
9666
- __export(lexer_exports, {
9667
- a: () => a,
9668
- add: () => add,
9669
- allBaseTokens: () => allBaseTokens,
9670
- as: () => as,
9671
- ask: () => ask,
9672
- baseDecl: () => baseDecl,
9673
- bind: () => bind,
9674
- builtIn: () => BuildinCalls_exports,
9675
- clear: () => clear,
9676
- construct: () => construct,
9677
- copy: () => copy,
9678
- create: () => create,
9679
- dataClause: () => dataClause,
9680
- deleteClause: () => deleteClause,
9681
- describe: () => describe,
9682
- distinct: () => distinct,
9683
- drop: () => drop2,
9684
- false_: () => false_,
9685
- filter: () => filter2,
9686
- from: () => from,
9687
- graph: () => graph_exports,
9688
- groupBy: () => groupBy2,
9689
- having: () => having,
9690
- in_: () => in_,
9691
- insertClause: () => insertClause,
9692
- limit: () => limit,
9693
- load: () => load,
9694
- loadInto: () => loadInto,
9695
- minus: () => minus,
9696
- modifyWith: () => modifyWith,
9697
- move: () => move,
9698
- notIn: () => notIn,
9699
- offset: () => offset,
9700
- optional: () => optional,
9701
- order: () => order,
9702
- orderAsc: () => orderAsc,
9703
- orderDesc: () => orderDesc,
9704
- prefixDecl: () => prefixDecl,
9705
- reduced: () => reduced,
9706
- select: () => select,
9707
- separator: () => separator,
9708
- service: () => service,
9709
- silent: () => silent,
9710
- sparql11Tokens: () => sparql11Tokens,
9711
- symbols: () => symbols_exports,
9712
- terminals: () => terminals_exports,
9713
- to: () => to,
9714
- true_: () => true_,
9715
- undef: () => undef,
9716
- union: () => union,
9717
- usingClause: () => usingClause,
9718
- values: () => values2,
9719
- where: () => where
9720
- });
9701
+ build(lexerConfig) {
9702
+ return new Lexer(this.tokens, {
9703
+ positionTracking: "onlyStart",
9704
+ recoveryEnabled: false,
9705
+ // SafeMode: true,
9706
+ // SkipValidations: true,
9707
+ ensureOptimizations: true,
9708
+ ...lexerConfig
9709
+ });
9710
+ }
9711
+ get tokenVocabulary() {
9712
+ return this.tokens;
9713
+ }
9714
+ };
9715
+
9716
+ // ../core/lib/utils.ts
9717
+ function unCapitalize(str2) {
9718
+ return str2.charAt(0).toLowerCase() + str2.slice(1);
9719
+ }
9720
+ function createToken2(config) {
9721
+ return createToken(config);
9722
+ }
9721
9723
 
9722
9724
  // ../rules-sparql-1-1/lib/lexer/BuildinCalls.ts
9723
- var BuildinCalls_exports = {};
9724
- __export(BuildinCalls_exports, {
9725
- BuildInCalls: () => BuildInCalls,
9726
- abs: () => abs,
9727
- allBuiltInCalls: () => allBuiltInCalls,
9728
- avg: () => avg,
9729
- bnode: () => bnode,
9730
- bound: () => bound,
9731
- ceil: () => ceil,
9732
- coalesce: () => coalesce,
9733
- concat: () => concat,
9734
- contains: () => contains,
9735
- count: () => count,
9736
- datatype: () => datatype,
9737
- day: () => day,
9738
- encode_for_uri: () => encode_for_uri,
9739
- exists: () => exists,
9740
- floor: () => floor,
9741
- groupConcat: () => groupConcat,
9742
- hours: () => hours,
9743
- if_: () => if_,
9744
- iri: () => iri,
9745
- isblank: () => isblank,
9746
- isiri: () => isiri,
9747
- isliteral: () => isliteral,
9748
- isnumeric: () => isnumeric,
9749
- isuri: () => isuri,
9750
- lang: () => lang,
9751
- langmatches: () => langmatches,
9752
- lcase: () => lcase,
9753
- max: () => max,
9754
- md5: () => md5,
9755
- min: () => min,
9756
- minutes: () => minutes,
9757
- month: () => month,
9758
- notexists: () => notexists,
9759
- now: () => now,
9760
- rand: () => rand,
9761
- regex: () => regex,
9762
- replace: () => replace,
9763
- round: () => round,
9764
- sameterm: () => sameterm,
9765
- sample: () => sample,
9766
- seconds: () => seconds,
9767
- sha1: () => sha1,
9768
- sha256: () => sha256,
9769
- sha384: () => sha384,
9770
- sha512: () => sha512,
9771
- str: () => str,
9772
- strafter: () => strafter,
9773
- strbefore: () => strbefore,
9774
- strdt: () => strdt,
9775
- strends: () => strends,
9776
- strlang: () => strlang,
9777
- strlen: () => strlen,
9778
- strstarts: () => strstarts,
9779
- struuid: () => struuid,
9780
- substr: () => substr,
9781
- sum: () => sum,
9782
- timezone: () => timezone,
9783
- tz: () => tz,
9784
- ucase: () => ucase,
9785
- uri: () => uri,
9786
- uuid: () => uuid,
9787
- year: () => year
9788
- });
9789
9725
  var BuildInCalls = /* @__PURE__ */ ((BuildInCalls2) => {
9790
9726
  BuildInCalls2["Str"] = "builtInStr";
9791
9727
  BuildInCalls2["Lang"] = "builtInLang";
@@ -10203,25 +10139,25 @@ __export(terminals_exports, {
10203
10139
  ws: () => ws,
10204
10140
  wsPattern: () => wsPattern
10205
10141
  });
10206
- var pnCharsBasePattern = /[A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]|[\uD800-\uDB7F][\uDC00-\uDFFF]/;
10142
+ var pnCharsBasePattern = /[A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]|[\uD800-\uDB7F][\uDC00-\uDFFF]/;
10207
10143
  var pnCharsUPattern = new RegExp(`${pnCharsBasePattern.source}|_`);
10208
10144
  var varNamePattern = new RegExp(`((${pnCharsUPattern.source})|[0-9])((${pnCharsUPattern.source})|[0-9]|[\xB7\u0300-\u036F\u203F-\u2040])*`);
10209
- var iriRefPattern = /<([^\\<>"{}|^`\u0000-\u0020])*>/;
10145
+ var iriRefPattern = /<([^\u0000-\u0020"<>\\^`{|}])*>/;
10210
10146
  var pnCharsPattern = new RegExp(`(${pnCharsUPattern.source})|[\\-0-9\xB7\u0300-\u036F\u203F-\u2040]`);
10211
10147
  var pnPrefixPattern = new RegExp(`(${pnCharsBasePattern.source})(((${pnCharsPattern.source})|\\.)*(${pnCharsPattern.source}))?`);
10212
10148
  var pNameNsPattern = new RegExp(`(${pnPrefixPattern.source})?:`);
10213
- var percentPattern = /%[0-9A-Fa-f][0-9A-Fa-f]/;
10214
- var pnLocalEscPattern = /\\[_~.\-!$&'()*+,;=\\/?#@%]/;
10149
+ var percentPattern = /%[\dA-Fa-f]{2}/;
10150
+ var pnLocalEscPattern = /\\[!#$%&'()*+,./;=?@\\_~-]/;
10215
10151
  var plxPattern = new RegExp(`(${percentPattern.source})|(${pnLocalEscPattern.source})`);
10216
10152
  var pnLocalPattern = new RegExp(`((${pnCharsUPattern.source})|:|[0-9]|(${plxPattern.source}))(((${pnCharsPattern.source})|\\.|:|(${plxPattern.source}))*((${pnCharsPattern.source})|:|(${plxPattern.source})))?`);
10217
10153
  var pNameLnPattern = new RegExp(`(${pNameNsPattern.source})(${pnLocalPattern.source})`);
10218
- var blankNodeLabelPattern = new RegExp(`_:(?:(?:${pnCharsUPattern.source})|[0-9])(?:(?:(?:${pnCharsPattern.source})|\\.)*(${pnCharsPattern.source}))?`);
10154
+ var blankNodeLabelPattern = new RegExp(`_:((${pnCharsUPattern.source})|[0-9])(((${pnCharsPattern.source})|\\.)*(${pnCharsPattern.source}))?`);
10219
10155
  var var1Pattern = new RegExp(`\\?(${varNamePattern.source})`);
10220
10156
  var var2Pattern = new RegExp(`\\$(${varNamePattern.source})`);
10221
- var langTagPattern = /@[a-zA-Z]+(-[a-zA-Z0-9]+)*/;
10222
- var integerPattern = /[0-9]+/;
10223
- var decimalPattern2 = /[0-9]+\.[0-9]+/;
10224
- var exponentPattern = /[eE][+-]?[0-9]+/;
10157
+ var langTagPattern = /@[A-Za-z]+(-[\dA-Za-z]+)*/;
10158
+ var integerPattern = /\d+/;
10159
+ var decimalPattern2 = /\d+\.\d+/;
10160
+ var exponentPattern = /[Ee][+-]?\d+/;
10225
10161
  var doublePattern = new RegExp(`([0-9]+\\.[0-9]*(${exponentPattern.source}))|(\\.[0-9]+(${exponentPattern.source}))|([0-9]+(${exponentPattern.source}))`);
10226
10162
  var interferePositivePattern = new RegExp(`\\+${integerPattern.source}`);
10227
10163
  var decimalPositivePattern = new RegExp(`\\+${decimalPattern2.source}`);
@@ -10230,11 +10166,11 @@ var integerNegativePattern = new RegExp(`-${integerPattern.source}`);
10230
10166
  var decimalNegativePattern = new RegExp(`-${decimalPattern2.source}`);
10231
10167
  var doubleNegativePattern = new RegExp(`-${doublePattern.source}`);
10232
10168
  var echarPattern = /\\[\\"'bfnrt]/u;
10233
- var stringLiteral1Pattern = new RegExp(`'(?:([^\\u0027\\u005C\\u000A\r])|(?:${echarPattern.source}))*'`);
10234
- var stringLiteral2Pattern = new RegExp(`"(?:([^\\u0022\\u005C\\u000A\\u000D])|(?:${echarPattern.source}))*"`);
10169
+ var stringLiteral1Pattern = new RegExp(`'(([^\\u0027\\u005C\\u000A\r])|(${echarPattern.source}))*'`);
10170
+ var stringLiteral2Pattern = new RegExp(`"(([^\\u0022\\u005C\\u000A\\u000D])|(${echarPattern.source}))*"`);
10235
10171
  var stringLiteralLong1Pattern = new RegExp(`'''(('|(''))?([^'\\\\]|(${echarPattern.source})))*'''`);
10236
10172
  var stringLiteralLong2Pattern = new RegExp(`"""(("|(""))?([^"\\\\]|(${echarPattern.source})))*"""`);
10237
- var wsPattern = /[\u0020\u0009\u000D\u000A]/;
10173
+ var wsPattern = /[\u0009\u000A\u000D ]/;
10238
10174
  var nilPattern = new RegExp(`\\((${wsPattern.source})*\\)`);
10239
10175
  var anonPattern = new RegExp(`\\[(${wsPattern.source})*\\]`);
10240
10176
  var iriRef = createToken2({ name: "IriRef", pattern: iriRefPattern });
@@ -10387,6 +10323,59 @@ var allBaseTokens = LexerBuilder.create().add(
10387
10323
  );
10388
10324
  var sparql11Tokens = LexerBuilder.create(allTerminals).merge(allBaseTokens).merge(allBuiltInCalls).merge(allGraphTokens).merge(allSymbols).moveBefore(datatype, dataClause).moveAfter(avg, a);
10389
10325
 
10326
+ // ../rules-sparql-1-1/lib/Wildcard.ts
10327
+ var Wildcard = class {
10328
+ constructor() {
10329
+ this.value = "*";
10330
+ this.termType = "Wildcard";
10331
+ return WILDCARD ?? this;
10332
+ }
10333
+ equals(other) {
10334
+ return Boolean(other && this.termType === other.termType);
10335
+ }
10336
+ toJSON() {
10337
+ const { value, ...rest } = this;
10338
+ return rest;
10339
+ }
10340
+ };
10341
+ var WILDCARD;
10342
+ WILDCARD = new Wildcard();
10343
+
10344
+ // ../rules-sparql-1-1/lib/grammar-helpers/utils.ts
10345
+ function resolveIRI(iri3, base) {
10346
+ if (/^[a-z][\d+.a-z-]*:/iu.test(iri3)) {
10347
+ return iri3;
10348
+ }
10349
+ if (!base) {
10350
+ throw new Error(`Cannot resolve relative IRI ${iri3} because no base IRI was set.`);
10351
+ }
10352
+ switch (iri3[0]) {
10353
+ // An empty relative IRI indicates the base IRI
10354
+ case void 0:
10355
+ return base;
10356
+ // Resolve relative fragment IRIs against the base IRI
10357
+ case "#":
10358
+ return base + iri3;
10359
+ // Resolve relative query string IRIs by replacing the query string
10360
+ case "?":
10361
+ return base.replace(/(?:\?.*)?$/u, iri3);
10362
+ // Resolve root relative IRIs at the root of the base IRI
10363
+ case "/": {
10364
+ const baseMatch = /^(?:[a-z]+:\/*)?[^/]*/u.exec(base);
10365
+ if (!baseMatch) {
10366
+ throw new Error(`Could not determine relative IRI using base: ${base}`);
10367
+ }
10368
+ const baseRoot = baseMatch[0];
10369
+ return baseRoot + iri3;
10370
+ }
10371
+ // Resolve all other IRIs at the base IRI's path
10372
+ default: {
10373
+ const basePath = base.replace(/[^/:]*$/u, "");
10374
+ return basePath + iri3;
10375
+ }
10376
+ }
10377
+ }
10378
+
10390
10379
  // ../rules-sparql-1-1/lib/grammar/literals.ts
10391
10380
  var rdfLiteral = {
10392
10381
  name: "rdfLiteral",
@@ -10402,6 +10391,16 @@ var rdfLiteral = {
10402
10391
  }
10403
10392
  ]));
10404
10393
  return ACTION(() => C.dataFactory.literal(value, languageOrDatatype));
10394
+ },
10395
+ gImpl: ({ SUBRULE }) => (ast) => {
10396
+ const lexical = SUBRULE(string, ast.value, void 0);
10397
+ if (ast.direction) {
10398
+ return `${lexical}@${ast.language}--${ast.direction}`;
10399
+ }
10400
+ if (ast.language) {
10401
+ return `${lexical}@${ast.language}`;
10402
+ }
10403
+ return `${lexical}^^<${ast.datatype.value}>`;
10405
10404
  }
10406
10405
  };
10407
10406
  var numericLiteral = {
@@ -10501,6 +10500,29 @@ var string = {
10501
10500
  return char;
10502
10501
  }
10503
10502
  }));
10503
+ },
10504
+ gImpl: () => (ast) => {
10505
+ const lexical = ast.replaceAll(/["\\\t\n\r\b\f]/gu, (char) => {
10506
+ switch (char) {
10507
+ case " ":
10508
+ return "\\t";
10509
+ case "\n":
10510
+ return "\\n";
10511
+ case "\r":
10512
+ return "\\r";
10513
+ case "\b":
10514
+ return "\\b";
10515
+ case "\f":
10516
+ return "\\f";
10517
+ case '"':
10518
+ return '\\"';
10519
+ case "\\":
10520
+ return "\\\\";
10521
+ default:
10522
+ return char;
10523
+ }
10524
+ });
10525
+ return `"${lexical}"`;
10504
10526
  }
10505
10527
  };
10506
10528
  var iri2 = {
@@ -10511,7 +10533,8 @@ var iri2 = {
10511
10533
  return ACTION(() => C.dataFactory.namedNode(resolveIRI(iriVal, C.baseIRI)));
10512
10534
  } },
10513
10535
  { ALT: () => SUBRULE(prefixedName, void 0) }
10514
- ])
10536
+ ]),
10537
+ gImpl: () => (ast) => `<${ast.value}>`
10515
10538
  };
10516
10539
  var prefixedName = {
10517
10540
  name: "prefixedName",
@@ -10554,7 +10577,8 @@ var blankNode = {
10554
10577
  }
10555
10578
  });
10556
10579
  return result;
10557
- }
10580
+ },
10581
+ gImpl: () => (ast) => `_:${ast.value}`
10558
10582
  };
10559
10583
 
10560
10584
  // ../rules-sparql-1-1/lib/grammar/dataSetClause.ts
@@ -10566,7 +10590,8 @@ var datasetClause = {
10566
10590
  { ALT: () => ({ value: SUBRULE(defaultGraphClause, void 0), type: "default" }) },
10567
10591
  { ALT: () => ({ value: SUBRULE(namedGraphClause, void 0), type: "named" }) }
10568
10592
  ]);
10569
- }
10593
+ },
10594
+ gImpl: () => (ast) => `FROM ${ast.type}`
10570
10595
  };
10571
10596
  var defaultGraphClause = {
10572
10597
  name: "defaultGraphClause",
@@ -10579,24 +10604,195 @@ var namedGraphClause = {
10579
10604
  return SUBRULE(sourceSelector, void 0);
10580
10605
  }
10581
10606
  };
10582
- var sourceSelector = {
10583
- name: "sourceSelector",
10584
- impl: ({ SUBRULE }) => () => SUBRULE(iri2, void 0)
10585
- };
10607
+ var sourceSelector = {
10608
+ name: "sourceSelector",
10609
+ impl: ({ SUBRULE }) => () => SUBRULE(iri2, void 0)
10610
+ };
10611
+
10612
+ // ../rules-sparql-1-1/lib/grammar/general.ts
10613
+ var prologue = {
10614
+ name: "prologue",
10615
+ impl: ({ ACTION, SUBRULE, MANY, OR }) => (C) => {
10616
+ const result = ACTION(() => ({
10617
+ prefixes: {},
10618
+ ...C.baseIRI && { base: C.baseIRI }
10619
+ }));
10620
+ MANY(() => {
10621
+ OR([
10622
+ {
10623
+ ALT: () => {
10624
+ const base = SUBRULE(baseDecl2, void 0);
10625
+ ACTION(() => result.base = base);
10626
+ }
10627
+ },
10628
+ {
10629
+ ALT: () => {
10630
+ const pref = SUBRULE(prefixDecl2, void 0);
10631
+ ACTION(() => {
10632
+ const [name, value] = pref;
10633
+ result.prefixes[name] = value;
10634
+ });
10635
+ }
10636
+ }
10637
+ ]);
10638
+ });
10639
+ return result;
10640
+ },
10641
+ gImpl: () => (ast) => {
10642
+ const rules = [];
10643
+ if (ast.base) {
10644
+ rules.push(`BASE <${ast.base}>`);
10645
+ }
10646
+ for (const [key, value] of Object.entries(ast.prefixes)) {
10647
+ rules.push(`PREFIX ${key}: <${value}>`);
10648
+ }
10649
+ return rules.join("\n");
10650
+ }
10651
+ };
10652
+ var baseDecl2 = {
10653
+ name: "baseDecl",
10654
+ impl: ({ CONSUME, ACTION }) => (C) => {
10655
+ CONSUME(baseDecl);
10656
+ const base = CONSUME(terminals_exports.iriRef).image.slice(1, -1);
10657
+ return ACTION(() => {
10658
+ C.baseIRI = base;
10659
+ return base;
10660
+ });
10661
+ }
10662
+ };
10663
+ var prefixDecl2 = {
10664
+ name: "prefixDecl",
10665
+ impl: ({ CONSUME, ACTION }) => (C) => {
10666
+ CONSUME(prefixDecl);
10667
+ const name = CONSUME(terminals_exports.pNameNs).image.slice(0, -1);
10668
+ const value = CONSUME(terminals_exports.iriRef).image.slice(1, -1);
10669
+ return ACTION(() => {
10670
+ const fullIri = resolveIRI(value, C.baseIRI);
10671
+ C.prefixes[name] = fullIri;
10672
+ return [name, fullIri];
10673
+ });
10674
+ }
10675
+ };
10676
+ var verb = {
10677
+ name: "verb",
10678
+ impl: ({ SUBRULE, OR }) => () => OR([
10679
+ { ALT: () => SUBRULE(varOrIri, void 0) },
10680
+ {
10681
+ ALT: () => SUBRULE(verbA, void 0)
10682
+ }
10683
+ ])
10684
+ };
10685
+ var verbA = {
10686
+ name: "VerbA",
10687
+ impl: ({ ACTION, CONSUME }) => (C) => {
10688
+ CONSUME(a);
10689
+ return ACTION(() => C.dataFactory.namedNode("http://www.w3.org/1999/02/22-rdf-syntax-ns#type" /* TYPE */));
10690
+ }
10691
+ };
10692
+ var varOrTerm = {
10693
+ name: "varOrTerm",
10694
+ impl: ({ SUBRULE, OR }) => (C) => OR([
10695
+ { GATE: () => C.parseMode.has("canParseVars"), ALT: () => SUBRULE(var_, void 0) },
10696
+ { ALT: () => SUBRULE(graphTerm, void 0) }
10697
+ ]),
10698
+ gImpl: ({ SUBRULE }) => (ast) => {
10699
+ if (ast.termType === "Variable") {
10700
+ return SUBRULE(var_, ast, void 0);
10701
+ }
10702
+ if (ast.termType === "NamedNode") {
10703
+ return SUBRULE(iri2, ast, void 0);
10704
+ }
10705
+ if (ast.termType === "BlankNode") {
10706
+ return SUBRULE(blankNode, ast, void 0);
10707
+ }
10708
+ return SUBRULE(rdfLiteral, ast, void 0);
10709
+ }
10710
+ };
10711
+ var varOrIri = {
10712
+ name: "varOrIri",
10713
+ impl: ({ SUBRULE, OR }) => (C) => OR([
10714
+ { GATE: () => C.parseMode.has("canParseVars"), ALT: () => SUBRULE(var_, void 0) },
10715
+ { ALT: () => SUBRULE(iri2, void 0) }
10716
+ ])
10717
+ };
10718
+ var var_ = {
10719
+ name: "var",
10720
+ impl: ({ ACTION, CONSUME, OR }) => (C) => {
10721
+ const varVal = OR([
10722
+ { ALT: () => CONSUME(terminals_exports.var1).image.slice(1) },
10723
+ { ALT: () => CONSUME(terminals_exports.var2).image.slice(1) }
10724
+ ]);
10725
+ ACTION(() => {
10726
+ if (!C.parseMode.has("canParseVars")) {
10727
+ throw new Error("Variables are not allowed here");
10728
+ }
10729
+ });
10730
+ return ACTION(() => C.dataFactory.variable(varVal));
10731
+ },
10732
+ gImpl: () => (ast) => `?${ast.value}`
10733
+ };
10734
+ var graphTerm = {
10735
+ name: "graphTerm",
10736
+ impl: ({ ACTION, SUBRULE, CONSUME, OR }) => (C) => OR([
10737
+ { ALT: () => SUBRULE(iri2, void 0) },
10738
+ { ALT: () => SUBRULE(rdfLiteral, void 0) },
10739
+ { ALT: () => SUBRULE(numericLiteral, void 0) },
10740
+ { ALT: () => SUBRULE(booleanLiteral, void 0) },
10741
+ { GATE: () => C.parseMode.has("canCreateBlankNodes"), ALT: () => SUBRULE(blankNode, void 0) },
10742
+ {
10743
+ ALT: () => {
10744
+ CONSUME(terminals_exports.nil);
10745
+ return ACTION(() => C.dataFactory.namedNode("http://www.w3.org/1999/02/22-rdf-syntax-ns#nil" /* NIL */));
10746
+ }
10747
+ }
10748
+ ]),
10749
+ gImpl: ({ SUBRULE }) => (ast) => {
10750
+ switch (ast.termType) {
10751
+ case "BlankNode":
10752
+ return SUBRULE(blankNode, ast, void 0);
10753
+ case "NamedNode":
10754
+ return SUBRULE(iri2, ast, void 0);
10755
+ case "Literal":
10756
+ return SUBRULE(rdfLiteral, ast, void 0);
10757
+ }
10758
+ }
10759
+ };
10760
+
10761
+ // ../rules-sparql-1-1/lib/utils.ts
10762
+ function deGroupSingle(group) {
10763
+ return group.patterns.length === 1 ? group.patterns[0] : group;
10764
+ }
10765
+ function isVariable(term) {
10766
+ return "termType" in term && term.termType === "Variable";
10767
+ }
10586
10768
 
10587
10769
  // ../rules-sparql-1-1/lib/grammar/propertyPaths.ts
10588
10770
  var path = {
10589
10771
  name: "path",
10590
- impl: ({ SUBRULE }) => () => SUBRULE(pathAlternative, void 0)
10772
+ impl: ({ SUBRULE }) => () => SUBRULE(pathAlternative, void 0),
10773
+ gImpl: ({ SUBRULE }) => (ast) => {
10774
+ if ("type" in ast) {
10775
+ if (ast.pathType === "/" || ast.pathType === "|") {
10776
+ return `( ${ast.items.map((item) => SUBRULE(path, item, void 0)).join(ast.pathType)} )`;
10777
+ }
10778
+ if (ast.pathType === "^" || ast.pathType === "!") {
10779
+ return `${ast.pathType}${SUBRULE(path, ast.items[0], void 0)}`;
10780
+ }
10781
+ if (ast.pathType === "*" || ast.pathType === "+" || ast.pathType === "?") {
10782
+ return `( ${SUBRULE(path, ast.items[0], void 0)} )${ast.pathType}`;
10783
+ }
10784
+ }
10785
+ return SUBRULE(iri2, ast, void 0);
10786
+ }
10591
10787
  };
10592
10788
  function pathHelper(name, SEP, pathType, subRule) {
10593
10789
  return {
10594
10790
  name,
10595
- impl: ({ SUBRULE2, AT_LEAST_ONE_SEP }) => () => {
10791
+ impl: ({ SUBRULE, AT_LEAST_ONE_SEP }) => () => {
10596
10792
  const alternatives = [];
10597
10793
  AT_LEAST_ONE_SEP({
10598
10794
  DEF: () => {
10599
- alternatives.push(SUBRULE2(subRule, void 0));
10795
+ alternatives.push(SUBRULE(subRule, void 0));
10600
10796
  },
10601
10797
  SEP
10602
10798
  });
@@ -10711,7 +10907,10 @@ var pathNegatedPropertySet = {
10711
10907
  SEP: symbols_exports.pipe
10712
10908
  });
10713
10909
  CONSUME(symbols_exports.RParen);
10714
- return items.length === 1 ? items : [{
10910
+ if (items.length === 1) {
10911
+ return items;
10912
+ }
10913
+ return [{
10715
10914
  type: "path",
10716
10915
  pathType: "|",
10717
10916
  items
@@ -10743,19 +10942,42 @@ var pathOneInPropertySet = {
10743
10942
  };
10744
10943
 
10745
10944
  // ../rules-sparql-1-1/lib/grammar/tripleBlock.ts
10945
+ function triplesDotSeperated(subRule) {
10946
+ return ({ ACTION, AT_LEAST_ONE, SUBRULE, CONSUME, OPTION }) => () => {
10947
+ const triples = [];
10948
+ let parsedDot = true;
10949
+ AT_LEAST_ONE({
10950
+ GATE: () => parsedDot,
10951
+ DEF: () => {
10952
+ parsedDot = false;
10953
+ const template = SUBRULE(subRule, void 0);
10954
+ ACTION(() => {
10955
+ triples.push(...template);
10956
+ });
10957
+ OPTION(() => {
10958
+ CONSUME(symbols_exports.dot);
10959
+ parsedDot = true;
10960
+ });
10961
+ }
10962
+ });
10963
+ return triples;
10964
+ };
10965
+ }
10746
10966
  var triplesBlock = {
10747
10967
  name: "triplesBlock",
10748
- impl: ({ ACTION, SUBRULE, CONSUME, OPTION1, OPTION2 }) => () => {
10749
- const triples = SUBRULE(triplesSameSubjectPath, void 0);
10750
- const pattern = OPTION1(() => {
10751
- CONSUME(symbols_exports.dot);
10752
- return OPTION2(() => SUBRULE(triplesBlock, void 0));
10753
- });
10754
- return ACTION(() => ({
10755
- type: "bgp",
10756
- triples: [...triples, ...pattern?.triples ?? []]
10757
- }));
10758
- }
10968
+ impl: (implArgs) => (C) => ({
10969
+ type: "bgp",
10970
+ triples: triplesDotSeperated(triplesSameSubjectPath)(implArgs)(C, void 0)
10971
+ }),
10972
+ gImpl: ({ SUBRULE }) => (ast) => ast.triples.map((triple) => {
10973
+ const { subject, predicate, object: object3 } = triple;
10974
+ return [subject, predicate, object3].map((part) => {
10975
+ if ("type" in part) {
10976
+ return SUBRULE(path, part, void 0);
10977
+ }
10978
+ return SUBRULE(varOrTerm, part, void 0);
10979
+ }).join(" ");
10980
+ }).join(" .\n")
10759
10981
  };
10760
10982
  function triplesSameSubjectImpl(name, allowPaths) {
10761
10983
  return {
@@ -10782,6 +11004,10 @@ function triplesSameSubjectImpl(name, allowPaths) {
10782
11004
  }
10783
11005
  var triplesSameSubject = triplesSameSubjectImpl("triplesSameSubject", false);
10784
11006
  var triplesSameSubjectPath = triplesSameSubjectImpl("triplesSameSubjectPath", true);
11007
+ var triplesTemplate = {
11008
+ name: "triplesTemplate",
11009
+ impl: triplesDotSeperated(triplesSameSubject)
11010
+ };
10785
11011
  function propertyListImpl(name, allowPaths) {
10786
11012
  return {
10787
11013
  name,
@@ -10886,12 +11112,10 @@ function blankNodePropertyListImpl(name, allowPaths) {
10886
11112
  { subject: ACTION(() => blankNode2 = C.dataFactory.blankNode()) }
10887
11113
  );
10888
11114
  CONSUME(symbols_exports.RSquare);
10889
- return ACTION(() => {
10890
- return {
10891
- node: blankNode2,
10892
- triples: propList
10893
- };
10894
- });
11115
+ return ACTION(() => ({
11116
+ node: blankNode2,
11117
+ triples: propList
11118
+ }));
10895
11119
  }
10896
11120
  };
10897
11121
  }
@@ -10908,216 +11132,70 @@ function collectionImpl(name, allowPaths) {
10908
11132
  });
10909
11133
  CONSUME(symbols_exports.RParen);
10910
11134
  return ACTION(() => {
10911
- const triples = [];
10912
- const appendTriples = [];
10913
- const listHead = C.dataFactory.blankNode();
10914
- let iterHead = listHead;
10915
- const predFirst = C.dataFactory.namedNode("http://www.w3.org/1999/02/22-rdf-syntax-ns#first" /* FIRST */);
10916
- const predRest = C.dataFactory.namedNode("http://www.w3.org/1999/02/22-rdf-syntax-ns#rest" /* REST */);
10917
- for (const [index, term] of terms.entries()) {
10918
- const headTriple = {
10919
- subject: iterHead,
10920
- predicate: predFirst,
10921
- object: term.node
10922
- };
10923
- triples.push(headTriple);
10924
- appendTriples.push(...term.triples);
10925
- if (index === terms.length - 1) {
10926
- const nilTriple = {
10927
- subject: iterHead,
10928
- predicate: predRest,
10929
- object: C.dataFactory.namedNode("http://www.w3.org/1999/02/22-rdf-syntax-ns#nil" /* NIL */)
10930
- };
10931
- triples.push(nilTriple);
10932
- } else {
10933
- const tail = C.dataFactory.blankNode();
10934
- const linkTriple = {
10935
- subject: iterHead,
10936
- predicate: predRest,
10937
- object: tail
10938
- };
10939
- triples.push(linkTriple);
10940
- iterHead = tail;
10941
- }
10942
- }
10943
- return {
10944
- node: listHead,
10945
- triples: [...triples, ...appendTriples]
10946
- };
10947
- });
10948
- }
10949
- };
10950
- }
10951
- var collection = collectionImpl("collection", false);
10952
- var collectionPath = collectionImpl("collectionPath", true);
10953
- function graphNodeImpl(name, allowPaths) {
10954
- return {
10955
- name,
10956
- impl: ({ SUBRULE, OR }) => (C) => OR([
10957
- {
10958
- ALT: () => {
10959
- const val = SUBRULE(varOrTerm, void 0);
10960
- return {
10961
- node: val,
10962
- triples: []
10963
- };
10964
- }
10965
- },
10966
- {
10967
- GATE: () => C.parseMode.has("canCreateBlankNodes"),
10968
- ALT: () => SUBRULE(allowPaths ? triplesNodePath : triplesNode, void 0)
10969
- }
10970
- ])
10971
- };
10972
- }
10973
- var graphNode = graphNodeImpl("graphNode", false);
10974
- var graphNodePath = graphNodeImpl("graphNodePath", true);
10975
-
10976
- // ../rules-sparql-1-1/lib/grammar/general.ts
10977
- var prologue = {
10978
- name: "prologue",
10979
- impl: ({ ACTION, SUBRULE, MANY, OR }) => (C) => {
10980
- const result = ACTION(() => ({
10981
- prefixes: {},
10982
- ...C.baseIRI && { base: C.baseIRI }
10983
- }));
10984
- MANY(() => {
10985
- OR([
10986
- {
10987
- ALT: () => {
10988
- const base = SUBRULE(baseDecl2, void 0);
10989
- ACTION(() => result.base = base);
10990
- }
10991
- },
10992
- {
10993
- ALT: () => {
10994
- const pref = SUBRULE(prefixDecl2, void 0);
10995
- ACTION(() => {
10996
- const [name, value] = pref;
10997
- result.prefixes[name] = value;
10998
- });
10999
- }
11000
- }
11001
- ]);
11002
- });
11003
- return result;
11004
- }
11005
- };
11006
- var baseDecl2 = {
11007
- name: "baseDecl",
11008
- impl: ({ CONSUME, ACTION }) => (C) => {
11009
- CONSUME(baseDecl);
11010
- const base = CONSUME(terminals_exports.iriRef).image.slice(1, -1);
11011
- return ACTION(() => {
11012
- C.baseIRI = base;
11013
- return base;
11014
- });
11015
- }
11016
- };
11017
- var prefixDecl2 = {
11018
- name: "prefixDecl",
11019
- impl: ({ CONSUME, ACTION }) => (C) => {
11020
- CONSUME(prefixDecl);
11021
- const name = CONSUME(terminals_exports.pNameNs).image.slice(0, -1);
11022
- const value = CONSUME(terminals_exports.iriRef).image.slice(1, -1);
11023
- return ACTION(() => {
11024
- const fullIri = resolveIRI(value, C.baseIRI);
11025
- C.prefixes[name] = fullIri;
11026
- return [name, fullIri];
11027
- });
11028
- }
11029
- };
11030
- var triplesTemplate = {
11031
- name: "triplesTemplate",
11032
- impl: ({ ACTION, AT_LEAST_ONE, SUBRULE, CONSUME, OPTION }) => () => {
11033
- const triples = [];
11034
- let parsedDot = true;
11035
- AT_LEAST_ONE({
11036
- GATE: () => parsedDot,
11037
- DEF: () => {
11038
- parsedDot = false;
11039
- const template = SUBRULE(triplesSameSubject, void 0);
11040
- ACTION(() => {
11041
- triples.push(...template);
11042
- });
11043
- OPTION(() => {
11044
- CONSUME(symbols_exports.dot);
11045
- parsedDot = true;
11046
- });
11047
- }
11048
- });
11049
- return triples;
11050
- }
11051
- };
11052
- var verb = {
11053
- name: "verb",
11054
- impl: ({ SUBRULE, OR }) => () => OR([
11055
- { ALT: () => SUBRULE(varOrIri, void 0) },
11056
- {
11057
- ALT: () => SUBRULE(verbA, void 0)
11058
- }
11059
- ])
11060
- };
11061
- var verbA = {
11062
- name: "VerbA",
11063
- impl: ({ ACTION, CONSUME }) => (C) => {
11064
- CONSUME(a);
11065
- return ACTION(() => C.dataFactory.namedNode("http://www.w3.org/1999/02/22-rdf-syntax-ns#type" /* TYPE */));
11066
- }
11067
- };
11068
- var varOrTerm = {
11069
- name: "varOrTerm",
11070
- impl: ({ SUBRULE, OR }) => (C) => OR([
11071
- { GATE: () => C.parseMode.has("canParseVars"), ALT: () => SUBRULE(var_, void 0) },
11072
- { ALT: () => SUBRULE(graphTerm, void 0) }
11073
- ])
11074
- };
11075
- var varOrIri = {
11076
- name: "varOrIri",
11077
- impl: ({ SUBRULE, OR }) => (C) => OR([
11078
- { GATE: () => C.parseMode.has("canParseVars"), ALT: () => SUBRULE(var_, void 0) },
11079
- { ALT: () => SUBRULE(iri2, void 0) }
11080
- ])
11081
- };
11082
- var var_ = {
11083
- name: "var",
11084
- impl: ({ ACTION, CONSUME, OR }) => (C) => {
11085
- const varVal = OR([
11086
- { ALT: () => CONSUME(terminals_exports.var1).image.slice(1) },
11087
- { ALT: () => CONSUME(terminals_exports.var2).image.slice(1) }
11088
- ]);
11089
- ACTION(() => {
11090
- if (!C.parseMode.has("canParseVars")) {
11091
- throw new Error("Variables are not allowed here");
11092
- }
11093
- });
11094
- return ACTION(() => C.dataFactory.variable(varVal));
11095
- }
11096
- };
11097
- var graphTerm = {
11098
- name: "graphTerm",
11099
- impl: ({ ACTION, SUBRULE, CONSUME, OR }) => (C) => OR([
11100
- { ALT: () => SUBRULE(iri2, void 0) },
11101
- { ALT: () => SUBRULE(rdfLiteral, void 0) },
11102
- { ALT: () => SUBRULE(numericLiteral, void 0) },
11103
- { ALT: () => SUBRULE(booleanLiteral, void 0) },
11104
- { GATE: () => C.parseMode.has("canCreateBlankNodes"), ALT: () => SUBRULE(blankNode, void 0) },
11105
- {
11106
- ALT: () => {
11107
- CONSUME(terminals_exports.nil);
11108
- return ACTION(() => C.dataFactory.namedNode("http://www.w3.org/1999/02/22-rdf-syntax-ns#nil" /* NIL */));
11109
- }
11135
+ const triples = [];
11136
+ const appendTriples = [];
11137
+ const listHead = C.dataFactory.blankNode();
11138
+ let iterHead = listHead;
11139
+ const predFirst = C.dataFactory.namedNode("http://www.w3.org/1999/02/22-rdf-syntax-ns#first" /* FIRST */);
11140
+ const predRest = C.dataFactory.namedNode("http://www.w3.org/1999/02/22-rdf-syntax-ns#rest" /* REST */);
11141
+ for (const [index, term] of terms.entries()) {
11142
+ const headTriple = {
11143
+ subject: iterHead,
11144
+ predicate: predFirst,
11145
+ object: term.node
11146
+ };
11147
+ triples.push(headTriple);
11148
+ appendTriples.push(...term.triples);
11149
+ if (index === terms.length - 1) {
11150
+ const nilTriple = {
11151
+ subject: iterHead,
11152
+ predicate: predRest,
11153
+ object: C.dataFactory.namedNode("http://www.w3.org/1999/02/22-rdf-syntax-ns#nil" /* NIL */)
11154
+ };
11155
+ triples.push(nilTriple);
11156
+ } else {
11157
+ const tail = C.dataFactory.blankNode();
11158
+ const linkTriple = {
11159
+ subject: iterHead,
11160
+ predicate: predRest,
11161
+ object: tail
11162
+ };
11163
+ triples.push(linkTriple);
11164
+ iterHead = tail;
11165
+ }
11166
+ }
11167
+ return {
11168
+ node: listHead,
11169
+ triples: [...triples, ...appendTriples]
11170
+ };
11171
+ });
11110
11172
  }
11111
- ])
11112
- };
11113
-
11114
- // ../rules-sparql-1-1/lib/utils.ts
11115
- function deGroupSingle(group) {
11116
- return group.patterns.length === 1 ? group.patterns[0] : group;
11173
+ };
11117
11174
  }
11118
- function isVariable(term) {
11119
- return "termType" in term && term.termType === "Variable";
11175
+ var collection = collectionImpl("collection", false);
11176
+ var collectionPath = collectionImpl("collectionPath", true);
11177
+ function graphNodeImpl(name, allowPaths) {
11178
+ return {
11179
+ name,
11180
+ impl: ({ SUBRULE, OR }) => (C) => OR([
11181
+ {
11182
+ ALT: () => {
11183
+ const val = SUBRULE(varOrTerm, void 0);
11184
+ return {
11185
+ node: val,
11186
+ triples: []
11187
+ };
11188
+ }
11189
+ },
11190
+ {
11191
+ GATE: () => C.parseMode.has("canCreateBlankNodes"),
11192
+ ALT: () => SUBRULE(allowPaths ? triplesNodePath : triplesNode, void 0)
11193
+ }
11194
+ ])
11195
+ };
11120
11196
  }
11197
+ var graphNode = graphNodeImpl("graphNode", false);
11198
+ var graphNodePath = graphNodeImpl("graphNodePath", true);
11121
11199
 
11122
11200
  // ../rules-sparql-1-1/lib/grammar/whereClause.ts
11123
11201
  var whereClause = {
@@ -11143,6 +11221,21 @@ var groupGraphPattern = {
11143
11221
  type: "group",
11144
11222
  patterns
11145
11223
  };
11224
+ },
11225
+ gImpl: ({ SUBRULE }) => (ast) => {
11226
+ const patterns = ast.patterns;
11227
+ const builder = ["{\n"];
11228
+ for (const pattern of patterns) {
11229
+ if ("queryType" in pattern) {
11230
+ builder.push(SUBRULE(query, { ...pattern, prefixes: {} }, void 0));
11231
+ } else if (pattern.type === "bgp") {
11232
+ builder.push(SUBRULE(triplesBlock, pattern, void 0));
11233
+ } else {
11234
+ builder.push(SUBRULE(graphPatternNotTriples, pattern, void 0));
11235
+ }
11236
+ }
11237
+ builder.push("\n}");
11238
+ return builder.join(" ");
11146
11239
  }
11147
11240
  };
11148
11241
  function findBoundVarsFromGroupGraphPattern(pattern, boundedVars) {
@@ -11211,7 +11304,28 @@ var graphPatternNotTriples = {
11211
11304
  { ALT: () => SUBRULE(filter3, void 0) },
11212
11305
  { ALT: () => SUBRULE(bind2, void 0) },
11213
11306
  { ALT: () => SUBRULE(inlineData, void 0) }
11214
- ])
11307
+ ]),
11308
+ gImpl: ({ SUBRULE }) => (ast) => {
11309
+ switch (ast.type) {
11310
+ case "group":
11311
+ case "union":
11312
+ return SUBRULE(groupOrUnionGraphPattern, ast, void 0);
11313
+ case "optional":
11314
+ return SUBRULE(optionalGraphPattern, ast, void 0);
11315
+ case "minus":
11316
+ return SUBRULE(minusGraphPattern, ast, void 0);
11317
+ case "graph":
11318
+ return SUBRULE(graphGraphPattern, ast, void 0);
11319
+ case "service":
11320
+ return SUBRULE(serviceGraphPattern, ast, void 0);
11321
+ case "filter":
11322
+ return SUBRULE(filter3, ast, void 0);
11323
+ case "bind":
11324
+ return SUBRULE(bind2, ast, void 0);
11325
+ case "values":
11326
+ return SUBRULE(valuesClause, ast.values, void 0);
11327
+ }
11328
+ }
11215
11329
  };
11216
11330
  var optionalGraphPattern = {
11217
11331
  name: "optionalGraphPattern",
@@ -11222,7 +11336,8 @@ var optionalGraphPattern = {
11222
11336
  type: "optional",
11223
11337
  patterns: group.patterns
11224
11338
  }));
11225
- }
11339
+ },
11340
+ gImpl: ({ SUBRULE }) => (ast) => `OPTIONAL ${SUBRULE(groupGraphPattern, { type: "group", patterns: ast.patterns }, void 0)}`
11226
11341
  };
11227
11342
  var graphGraphPattern = {
11228
11343
  name: "graphGraphPattern",
@@ -11235,7 +11350,8 @@ var graphGraphPattern = {
11235
11350
  name,
11236
11351
  patterns: group.patterns
11237
11352
  }));
11238
- }
11353
+ },
11354
+ gImpl: ({ SUBRULE }) => (ast) => `GRAPH ${SUBRULE(varOrTerm, ast.name, void 0)} ${SUBRULE(groupGraphPattern, { type: "group", patterns: ast.patterns }, void 0)}`
11239
11355
  };
11240
11356
  var serviceGraphPattern = {
11241
11357
  name: "serviceGraphPattern",
@@ -11250,7 +11366,8 @@ var serviceGraphPattern = {
11250
11366
  silent: silent2,
11251
11367
  patterns: group.patterns
11252
11368
  };
11253
- }
11369
+ },
11370
+ gImpl: ({ SUBRULE }) => (ast) => `SERVICE ${ast.silent ? "SILENT " : ""}${SUBRULE(varOrTerm, ast.name, void 0)} ${SUBRULE(groupGraphPattern, { type: "group", patterns: ast.patterns }, void 0)}`
11254
11371
  };
11255
11372
  var bind2 = {
11256
11373
  name: "bind",
@@ -11266,7 +11383,8 @@ var bind2 = {
11266
11383
  variable,
11267
11384
  expression: expressionVal
11268
11385
  };
11269
- }
11386
+ },
11387
+ gImpl: ({ SUBRULE }) => (ast) => `BIND ( ${SUBRULE(expression, ast.expression, void 0)} AS ${SUBRULE(var_, ast.variable, void 0)} )`
11270
11388
  };
11271
11389
  var inlineData = {
11272
11390
  name: "inlineData",
@@ -11358,7 +11476,19 @@ var inlineDataFull = {
11358
11476
  return res;
11359
11477
  }
11360
11478
  }
11361
- ])
11479
+ ]),
11480
+ gImpl: ({ SUBRULE }) => (ast) => {
11481
+ const variables = Object.keys(ast[0]);
11482
+ const variableString = `( ${variables.join(" ")} )`;
11483
+ const values3 = ast.map((mapping) => {
11484
+ const valueString = variables.map((variable) => {
11485
+ const value = mapping[variable];
11486
+ return value ? SUBRULE(dataBlockValue, value, void 0) : "UNDEF";
11487
+ }).join(" ");
11488
+ return `( ${valueString} )`;
11489
+ });
11490
+ return `VALUES ${variableString} { ${values3.join(" ")} }`;
11491
+ }
11362
11492
  };
11363
11493
  var dataBlockValue = {
11364
11494
  name: "dataBlockValue",
@@ -11373,7 +11503,13 @@ var dataBlockValue = {
11373
11503
  return void 0;
11374
11504
  }
11375
11505
  }
11376
- ])
11506
+ ]),
11507
+ gImpl: ({ SUBRULE }) => (ast) => {
11508
+ if (ast) {
11509
+ return SUBRULE(graphTerm, ast, void 0);
11510
+ }
11511
+ return "UNDEF";
11512
+ }
11377
11513
  };
11378
11514
  var minusGraphPattern = {
11379
11515
  name: "minusGraphPattern",
@@ -11384,7 +11520,8 @@ var minusGraphPattern = {
11384
11520
  type: "minus",
11385
11521
  patterns: group.patterns
11386
11522
  }));
11387
- }
11523
+ },
11524
+ gImpl: ({ SUBRULE }) => (ast) => `MINUS ${SUBRULE(groupGraphPattern, { type: "group", patterns: ast.patterns }, void 0)}`
11388
11525
  };
11389
11526
  var groupOrUnionGraphPattern = {
11390
11527
  name: "groupOrUnionGraphPattern",
@@ -11401,6 +11538,15 @@ var groupOrUnionGraphPattern = {
11401
11538
  type: "union",
11402
11539
  patterns: groups.map((group) => deGroupSingle(group))
11403
11540
  };
11541
+ },
11542
+ gImpl: ({ SUBRULE }) => (ast) => {
11543
+ if (ast.type === "group") {
11544
+ return SUBRULE(groupGraphPattern, ast, void 0);
11545
+ }
11546
+ return ast.patterns.map((pattern) => SUBRULE(groupGraphPattern, {
11547
+ type: "group",
11548
+ patterns: [pattern]
11549
+ }, void 0)).join(" UNION ");
11404
11550
  }
11405
11551
  };
11406
11552
  var filter3 = {
@@ -11412,7 +11558,8 @@ var filter3 = {
11412
11558
  type: "filter",
11413
11559
  expression: expression2
11414
11560
  };
11415
- }
11561
+ },
11562
+ gImpl: ({ SUBRULE }) => (ast) => `FILTER ( ${SUBRULE(expression, ast.expression, void 0)} )`
11416
11563
  };
11417
11564
  var constraint = {
11418
11565
  name: "constraint",
@@ -11857,6 +12004,22 @@ var aggregate = {
11857
12004
  }
11858
12005
  });
11859
12006
  return result;
12007
+ },
12008
+ gImpl: ({ SUBRULE }) => (ast) => {
12009
+ const builder = [ast.aggregation, "("];
12010
+ if (ast.distinct) {
12011
+ builder.push("DISTINCT");
12012
+ }
12013
+ if ("termType" in ast.expression && ast.expression.termType === "Wildcard") {
12014
+ builder.push("*");
12015
+ } else {
12016
+ builder.push(SUBRULE(expression, ast.expression, void 0));
12017
+ }
12018
+ if (ast.separator !== void 0 && ast.separator !== " ") {
12019
+ builder.push(";", "SEPARATOR", "=", SUBRULE(string, ast.separator, void 0));
12020
+ }
12021
+ builder.push(")");
12022
+ return builder.join(" ");
11860
12023
  }
11861
12024
  };
11862
12025
 
@@ -11891,7 +12054,16 @@ var argList = {
11891
12054
  };
11892
12055
  }
11893
12056
  }
11894
- ])
12057
+ ]),
12058
+ gImpl: ({ SUBRULE }) => (ast) => {
12059
+ const builder = ["("];
12060
+ if (ast.distinct) {
12061
+ builder.push("DISTINCT");
12062
+ }
12063
+ builder.push(SUBRULE(expression, ast.args, void 0).slice(1, -1));
12064
+ builder.push(")");
12065
+ return builder.join(" ");
12066
+ }
11895
12067
  };
11896
12068
  var expressionList = {
11897
12069
  name: "expressionList",
@@ -11920,7 +12092,46 @@ var expressionList = {
11920
12092
  };
11921
12093
  var expression = {
11922
12094
  name: "expression",
11923
- impl: ({ SUBRULE }) => () => SUBRULE(conditionalOrExpression, void 0)
12095
+ impl: ({ SUBRULE }) => () => SUBRULE(conditionalOrExpression, void 0),
12096
+ gImpl: ({ SUBRULE }) => (ast) => {
12097
+ if (Array.isArray(ast)) {
12098
+ return `( ${ast.map((arg) => SUBRULE(expression, arg, void 0)).join(", ")} )`;
12099
+ }
12100
+ if ("type" in ast) {
12101
+ if (ast.type === "operation") {
12102
+ if (["||", "&&", "=", "!=", "<", ">", "<=", ">=", "in", "+", "-", "*", "/"].includes(ast.operator)) {
12103
+ const [left, right] = ast.args;
12104
+ return `( ${SUBRULE(expression, left, void 0)} ${ast.operator} ${SUBRULE(expression, right, void 0)} )`;
12105
+ }
12106
+ if (ast.operator === "notin") {
12107
+ const [left, right] = ast.args;
12108
+ return `( ${SUBRULE(expression, left, void 0)} NOT IN ${SUBRULE(expression, right, void 0)} )`;
12109
+ }
12110
+ if (["!", "UPLUS", "UMINUS"].includes(ast.operator)) {
12111
+ const [expr] = ast.args;
12112
+ return `${ast.operator}${SUBRULE(expression, expr, void 0)}`;
12113
+ }
12114
+ if (["in", "notin"].includes(ast.operator)) {
12115
+ const [first2, rest] = ast.args;
12116
+ const operator = ast.operator === "in" ? "IN" : "NOT IN";
12117
+ return `${SUBRULE(expression, first2, void 0)} ${operator} ( ${SUBRULE(expression, rest, void 0)} )`;
12118
+ }
12119
+ if (["exists", "notexists"].includes(ast.operator)) {
12120
+ const patterns = ast.args;
12121
+ const operator = ast.operator === "exists" ? "EXISTS" : "NOT EXISTS";
12122
+ return `${operator} ${SUBRULE(groupGraphPattern, { type: "group", patterns }, void 0)}`;
12123
+ }
12124
+ return `${ast.operator}( ${ast.args.map((arg) => SUBRULE(expression, arg, void 0)).join(", ")} )`;
12125
+ }
12126
+ if (ast.type === "functionCall") {
12127
+ return SUBRULE(iriOrFunction, ast, void 0);
12128
+ }
12129
+ if (ast.type === "aggregate") {
12130
+ return SUBRULE(aggregate, ast, void 0);
12131
+ }
12132
+ }
12133
+ return SUBRULE(varOrTerm, ast, void 0);
12134
+ }
11924
12135
  };
11925
12136
  function constructLeftDeep(startGenerator, restGenerator, ACTION, MANY) {
11926
12137
  let iterExpr = startGenerator();
@@ -12229,6 +12440,12 @@ var iriOrFunction = {
12229
12440
  ...args,
12230
12441
  function: iriVal
12231
12442
  } : iriVal;
12443
+ },
12444
+ gImpl: ({ SUBRULE }) => (ast) => {
12445
+ if ("function" in ast) {
12446
+ return `${SUBRULE(iri2, ast.function, void 0)}${SUBRULE(argList, ast, void 0)}`;
12447
+ }
12448
+ return SUBRULE(iri2, ast, void 0);
12232
12449
  }
12233
12450
  };
12234
12451
 
@@ -12246,6 +12463,13 @@ var solutionModifier = {
12246
12463
  ...having2 && { having: having2 },
12247
12464
  ...order2 && { order: order2 }
12248
12465
  }));
12466
+ },
12467
+ gImpl: ({ SUBRULE }) => (ast) => {
12468
+ const group = ast.group ? SUBRULE(groupClause, ast.group, void 0) : "";
12469
+ const having2 = ast.having ? SUBRULE(havingClause, ast.having, void 0) : "";
12470
+ const order2 = ast.order ? SUBRULE(orderClause, ast.order, void 0) : "";
12471
+ const limit2 = SUBRULE(limitOffsetClauses, ast, void 0);
12472
+ return [group, having2, order2, limit2].filter(Boolean).join(" ");
12249
12473
  }
12250
12474
  };
12251
12475
  var groupClause = {
@@ -12257,7 +12481,8 @@ var groupClause = {
12257
12481
  groupings.push(SUBRULE(groupCondition, void 0));
12258
12482
  });
12259
12483
  return groupings;
12260
- }
12484
+ },
12485
+ gImpl: ({ SUBRULE }) => (ast) => `GROUP BY ${ast.map((group) => SUBRULE(groupCondition, group, void 0)).join(" ")}`
12261
12486
  };
12262
12487
  var groupCondition = {
12263
12488
  name: "groupCondition",
@@ -12295,7 +12520,13 @@ var groupCondition = {
12295
12520
  expression: expression2
12296
12521
  };
12297
12522
  } }
12298
- ])
12523
+ ]),
12524
+ gImpl: ({ SUBRULE }) => (ast) => {
12525
+ if (ast.variable) {
12526
+ return `(${SUBRULE(expression, ast.expression, void 0)} AS ${SUBRULE(var_, ast.variable, void 0)})`;
12527
+ }
12528
+ return SUBRULE(expression, ast.expression, void 0);
12529
+ }
12299
12530
  };
12300
12531
  var havingClause = {
12301
12532
  name: "havingClause",
@@ -12308,7 +12539,8 @@ var havingClause = {
12308
12539
  });
12309
12540
  ACTION(() => !couldParseAgg && C.parseMode.delete("canParseAggregate"));
12310
12541
  return expressions;
12311
- }
12542
+ },
12543
+ gImpl: ({ SUBRULE }) => (ast) => `HAVING ${ast.map((having2) => `( ${SUBRULE(expression, having2, void 0)} )`).join(" ")}`
12312
12544
  };
12313
12545
  var havingCondition = {
12314
12546
  name: "havingCondition",
@@ -12325,7 +12557,8 @@ var orderClause = {
12325
12557
  });
12326
12558
  ACTION(() => !couldParseAgg && C.parseMode.delete("canParseAggregate"));
12327
12559
  return orderings;
12328
- }
12560
+ },
12561
+ gImpl: ({ SUBRULE }) => (ast) => `ORDER BY ${ast.map((order2) => SUBRULE(orderCondition, order2, void 0)).join(" ")}`
12329
12562
  };
12330
12563
  var orderCondition = {
12331
12564
  name: "orderCondition",
@@ -12361,7 +12594,15 @@ var orderCondition = {
12361
12594
  expression: expr
12362
12595
  };
12363
12596
  } }
12364
- ])
12597
+ ]),
12598
+ gImpl: ({ SUBRULE }) => (ast) => {
12599
+ const builder = [];
12600
+ if (ast.descending) {
12601
+ builder.push("DESC");
12602
+ }
12603
+ builder.push("(", SUBRULE(expression, ast.expression, void 0), ")");
12604
+ return builder.join(" ");
12605
+ }
12365
12606
  };
12366
12607
  var limitOffsetClauses = {
12367
12608
  name: "limitOffsetClauses",
@@ -12386,7 +12627,17 @@ var limitOffsetClauses = {
12386
12627
  };
12387
12628
  }
12388
12629
  }
12389
- ])
12630
+ ]),
12631
+ gImpl: () => (ast) => {
12632
+ const builder = [];
12633
+ if (ast.limit) {
12634
+ builder.push(`LIMIT ${String(ast.limit)}`);
12635
+ }
12636
+ if (ast.offset) {
12637
+ builder.push(`OFFSET ${String(ast.offset)}`);
12638
+ }
12639
+ return builder.join(" ");
12640
+ }
12390
12641
  };
12391
12642
  var limitClause = {
12392
12643
  name: "limitClause",
@@ -12425,6 +12676,26 @@ var query = {
12425
12676
  type: "query",
12426
12677
  ...values3 && { values: values3 }
12427
12678
  }));
12679
+ },
12680
+ gImpl: ({ SUBRULE }) => (ast) => {
12681
+ const prologueString = SUBRULE(prologue, ast, void 0);
12682
+ let queryString = "";
12683
+ switch (ast.queryType) {
12684
+ case "SELECT":
12685
+ queryString = SUBRULE(selectQuery, ast, void 0);
12686
+ break;
12687
+ case "CONSTRUCT":
12688
+ queryString = SUBRULE(constructQuery, ast, void 0);
12689
+ break;
12690
+ case "DESCRIBE":
12691
+ queryString = SUBRULE(describeQuery, ast, void 0);
12692
+ break;
12693
+ case "ASK":
12694
+ queryString = SUBRULE(askQuery, ast, void 0);
12695
+ break;
12696
+ }
12697
+ const valuesString = ast.values ? SUBRULE(valuesClause, ast.values, void 0) : "";
12698
+ return [prologueString, queryString, valuesString].filter(Boolean).join(" ");
12428
12699
  }
12429
12700
  };
12430
12701
  function extractFromOfDataSetClauses(ACTION, MANY, SUBRULE) {
@@ -12548,6 +12819,14 @@ var selectQuery = {
12548
12819
  where: where2,
12549
12820
  ...modifier
12550
12821
  };
12822
+ },
12823
+ gImpl: ({ SUBRULE }) => (ast) => {
12824
+ const selectString = SUBRULE(selectClause, ast, void 0);
12825
+ const fromDefaultString = ast.from?.default.map((clause) => `FROM ${SUBRULE(iri2, clause, void 0)}`).join(" ") ?? "";
12826
+ const fromNamedString = ast.from?.named.map((clause) => `FROM NAMED ${SUBRULE(iri2, clause, void 0)}`).join(" ") ?? "";
12827
+ const whereString = ast.where ? `WHERE ${SUBRULE(groupGraphPattern, { type: "group", patterns: ast.where }, void 0)}` : "";
12828
+ const modifierString = SUBRULE(solutionModifier, ast, void 0);
12829
+ return [selectString, fromDefaultString, fromNamedString, whereString, modifierString].filter(Boolean).join(" ");
12551
12830
  }
12552
12831
  };
12553
12832
  var subSelect = {
@@ -12627,6 +12906,26 @@ var selectClause = {
12627
12906
  ...distinctOrReduced,
12628
12907
  variables
12629
12908
  }));
12909
+ },
12910
+ gImpl: ({ SUBRULE }) => (ast) => {
12911
+ const builder = ["SELECT"];
12912
+ if (ast.distinct) {
12913
+ builder.push("DISTINCT");
12914
+ } else if (ast.reduced) {
12915
+ builder.push("REDUCED");
12916
+ }
12917
+ if (ast.variables.length === 1 && ast.variables[0] instanceof Wildcard) {
12918
+ builder.push("*");
12919
+ } else {
12920
+ for (const variable of ast.variables) {
12921
+ if ("expression" in variable) {
12922
+ builder.push(`( ${SUBRULE(expression, variable.expression, void 0)} AS ${SUBRULE(var_, variable.variable, void 0)} )`);
12923
+ } else {
12924
+ builder.push(SUBRULE(var_, variable, void 0));
12925
+ }
12926
+ }
12927
+ }
12928
+ return builder.join(" ");
12630
12929
  }
12631
12930
  };
12632
12931
  var constructQuery = {
@@ -12671,6 +12970,14 @@ var constructQuery = {
12671
12970
  }
12672
12971
  }
12673
12972
  ]);
12973
+ },
12974
+ gImpl: ({ SUBRULE }) => (ast) => {
12975
+ const constructString = SUBRULE(constructTemplate, ast.template, void 0);
12976
+ const fromDefaultString = ast.from?.default.map((clause) => `FROM ${SUBRULE(iri2, clause, void 0)}`).join(" ") ?? "";
12977
+ const fromNamedString = ast.from?.named.map((clause) => `FROM NAMED ${SUBRULE(iri2, clause, void 0)}`).join(" ") ?? "";
12978
+ const whereString = ast.where ? `WHERE ${SUBRULE(groupGraphPattern, { type: "group", patterns: ast.where }, void 0)}` : "";
12979
+ const modifierString = SUBRULE(solutionModifier, ast, void 0);
12980
+ return ["CONSTRUCT", constructString, fromDefaultString, fromNamedString, whereString, modifierString].filter(Boolean).join(" ");
12674
12981
  }
12675
12982
  };
12676
12983
  var describeQuery = {
@@ -12700,6 +13007,25 @@ var describeQuery = {
12700
13007
  from: from2,
12701
13008
  where: where2
12702
13009
  }));
13010
+ },
13011
+ gImpl: ({ SUBRULE }) => (ast) => {
13012
+ const builder = ["DESCRIBE"];
13013
+ for (const variable of ast.variables) {
13014
+ if (variable.termType === "Wildcard") {
13015
+ builder.push("*");
13016
+ } else {
13017
+ builder.push(SUBRULE(varOrTerm, variable, void 0));
13018
+ }
13019
+ }
13020
+ if (ast.from) {
13021
+ builder.push(ast.from.default.map((clause) => `FROM ${SUBRULE(iri2, clause, void 0)}`).join(" "));
13022
+ builder.push(ast.from.named.map((clause) => `FROM NAMED ${SUBRULE(iri2, clause, void 0)}`).join(" "));
13023
+ }
13024
+ if (ast.where) {
13025
+ builder.push(`WHERE ${SUBRULE(groupGraphPattern, { type: "group", patterns: ast.where }, void 0)}`);
13026
+ }
13027
+ builder.push(SUBRULE(solutionModifier, ast, void 0));
13028
+ return builder.join(" ");
12703
13029
  }
12704
13030
  };
12705
13031
  var askQuery = {
@@ -12715,6 +13041,18 @@ var askQuery = {
12715
13041
  from: from2,
12716
13042
  where: where2
12717
13043
  }));
13044
+ },
13045
+ gImpl: ({ SUBRULE }) => (ast) => {
13046
+ const builder = ["ASK"];
13047
+ if (ast.from) {
13048
+ builder.push(ast.from.default.map((clause) => `FROM ${SUBRULE(iri2, clause, void 0)}`).join(" "));
13049
+ builder.push(ast.from.named.map((clause) => `FROM NAMED ${SUBRULE(iri2, clause, void 0)}`).join(" "));
13050
+ }
13051
+ if (ast.where) {
13052
+ builder.push(`WHERE ${SUBRULE(groupGraphPattern, { type: "group", patterns: ast.where }, void 0)}`);
13053
+ }
13054
+ builder.push(SUBRULE(solutionModifier, ast, void 0));
13055
+ return builder.join(" ");
12718
13056
  }
12719
13057
  };
12720
13058
  var valuesClause = {
@@ -12722,7 +13060,13 @@ var valuesClause = {
12722
13060
  impl: ({ SUBRULE, CONSUME, OPTION }) => () => OPTION(() => {
12723
13061
  CONSUME(values2);
12724
13062
  return SUBRULE(dataBlock, void 0);
12725
- })
13063
+ }),
13064
+ gImpl: ({ SUBRULE }) => (ast) => {
13065
+ if (ast) {
13066
+ return `${SUBRULE(inlineDataFull, ast, void 0)}`;
13067
+ }
13068
+ return "";
13069
+ }
12726
13070
  };
12727
13071
  var constructTemplate = {
12728
13072
  name: "constructTemplate",
@@ -12731,21 +13075,14 @@ var constructTemplate = {
12731
13075
  const triples = OPTION(() => SUBRULE(constructTriples, void 0));
12732
13076
  CONSUME(symbols_exports.RCurly);
12733
13077
  return triples;
12734
- }
13078
+ },
13079
+ gImpl: ({ SUBRULE }) => (ast) => `{
13080
+ ${ast ? SUBRULE(triplesBlock, { type: "bgp", triples: ast }, void 0) : ""}
13081
+ }`
12735
13082
  };
12736
13083
  var constructTriples = {
12737
13084
  name: "constructTriples",
12738
- impl: ({ SUBRULE, CONSUME, OPTION1, OPTION2 }) => () => {
12739
- const triples = [];
12740
- triples.push(SUBRULE(triplesSameSubject, void 0));
12741
- OPTION1(() => {
12742
- CONSUME(symbols_exports.dot);
12743
- OPTION2(() => {
12744
- triples.push(SUBRULE(constructTriples, void 0));
12745
- });
12746
- });
12747
- return triples.flat(1);
12748
- }
13085
+ impl: triplesTemplate.impl
12749
13086
  };
12750
13087
 
12751
13088
  // ../rules-sparql-1-1/lib/grammar/updateUnit/updateUnit.ts
@@ -12759,30 +13096,37 @@ var updateUnit = {
12759
13096
  };
12760
13097
  var update = {
12761
13098
  name: "update",
12762
- impl: ({ ACTION, SUBRULE, CONSUME, OPTION1, OPTION2 }) => () => {
12763
- const prologueValues = SUBRULE(prologue, void 0);
13099
+ impl: ({ ACTION, SUBRULE, SUBRULE1, SUBRULE2, CONSUME, OPTION1, MANY }) => () => {
13100
+ const prologueValues = SUBRULE1(prologue, void 0);
12764
13101
  const result = {
12765
13102
  type: "update",
12766
13103
  base: prologueValues.base,
12767
13104
  prefixes: prologueValues.prefixes,
12768
13105
  updates: []
12769
13106
  };
12770
- OPTION1(() => {
12771
- const updateOperation = SUBRULE(update1, void 0);
12772
- const recursiveRes = OPTION2(() => {
12773
- CONSUME(symbols_exports.semi);
12774
- return SUBRULE(update, void 0);
12775
- });
12776
- return ACTION(() => {
13107
+ let parsedSemi = true;
13108
+ MANY({
13109
+ GATE: () => parsedSemi,
13110
+ DEF: () => {
13111
+ const updateOperation = SUBRULE(update1, void 0);
12777
13112
  result.updates.push(updateOperation);
12778
- if (recursiveRes) {
12779
- result.updates.push(...recursiveRes.updates);
12780
- result.base = recursiveRes.base ?? result.base;
12781
- result.prefixes = recursiveRes.prefixes ? { ...result.prefixes, ...recursiveRes.prefixes } : result.prefixes;
12782
- }
12783
- });
13113
+ OPTION1(() => {
13114
+ CONSUME(symbols_exports.semi);
13115
+ parsedSemi = true;
13116
+ SUBRULE2(prologue, void 0);
13117
+ ACTION(() => {
13118
+ result.base = prologueValues.base ?? result.base;
13119
+ result.prefixes = prologueValues.prefixes ? { ...result.prefixes, ...prologueValues.prefixes } : result.prefixes;
13120
+ });
13121
+ });
13122
+ }
12784
13123
  });
12785
13124
  return result;
13125
+ },
13126
+ gImpl: ({ SUBRULE }) => (ast) => {
13127
+ const prologueString = SUBRULE(prologue, ast, void 0);
13128
+ const updates = ast.updates.map((update2) => SUBRULE(update1, update2, void 0)).join(" ;\n");
13129
+ return `${prologueString} ${updates}`;
12786
13130
  }
12787
13131
  };
12788
13132
  var update1 = {
@@ -12799,7 +13143,37 @@ var update1 = {
12799
13143
  { ALT: () => SUBRULE(deleteData, void 0) },
12800
13144
  { ALT: () => SUBRULE(deleteWhere, void 0) },
12801
13145
  { ALT: () => SUBRULE(modify, void 0) }
12802
- ])
13146
+ ]),
13147
+ gImpl: ({ SUBRULE }) => (ast) => {
13148
+ if ("type" in ast) {
13149
+ switch (ast.type) {
13150
+ case "load":
13151
+ return SUBRULE(load2, ast, void 0);
13152
+ case "clear":
13153
+ return SUBRULE(clear2, ast, void 0);
13154
+ case "drop":
13155
+ return SUBRULE(drop3, ast, void 0);
13156
+ case "add":
13157
+ return SUBRULE(add2, ast, void 0);
13158
+ case "move":
13159
+ return SUBRULE(move2, ast, void 0);
13160
+ case "copy":
13161
+ return SUBRULE(copy2, ast, void 0);
13162
+ case "create":
13163
+ return SUBRULE(create2, ast, void 0);
13164
+ }
13165
+ }
13166
+ switch (ast.updateType) {
13167
+ case "insert":
13168
+ return SUBRULE(insertData, ast, void 0);
13169
+ case "delete":
13170
+ return SUBRULE(deleteData, ast, void 0);
13171
+ case "deletewhere":
13172
+ return SUBRULE(deleteWhere, ast, void 0);
13173
+ case "insertdelete":
13174
+ return SUBRULE(modify, ast, void 0);
13175
+ }
13176
+ }
12803
13177
  };
12804
13178
  var load2 = {
12805
13179
  name: "load",
@@ -12817,6 +13191,17 @@ var load2 = {
12817
13191
  source,
12818
13192
  ...destination && { destination }
12819
13193
  };
13194
+ },
13195
+ gImpl: ({ SUBRULE }) => (ast) => {
13196
+ const builder = ["LOAD"];
13197
+ if (ast.silent) {
13198
+ builder.push("SILENT");
13199
+ }
13200
+ builder.push(SUBRULE(iri2, ast.source, void 0));
13201
+ if (ast.destination) {
13202
+ builder.push("INTO", SUBRULE(graphRef, ast.destination, void 0));
13203
+ }
13204
+ return builder.join(" ");
12820
13205
  }
12821
13206
  };
12822
13207
  var clear2 = {
@@ -12830,6 +13215,14 @@ var clear2 = {
12830
13215
  silent: silent2,
12831
13216
  graph: graph2
12832
13217
  };
13218
+ },
13219
+ gImpl: ({ SUBRULE }) => (ast) => {
13220
+ const builder = ["CLEAR"];
13221
+ if (ast.silent) {
13222
+ builder.push("SILENT");
13223
+ }
13224
+ builder.push(SUBRULE(graphRefAll, ast.graph, void 0));
13225
+ return builder.join(" ");
12833
13226
  }
12834
13227
  };
12835
13228
  var drop3 = {
@@ -12843,6 +13236,14 @@ var drop3 = {
12843
13236
  silent: silent2,
12844
13237
  graph: graph2
12845
13238
  };
13239
+ },
13240
+ gImpl: ({ SUBRULE }) => (ast) => {
13241
+ const builder = ["DROP"];
13242
+ if (ast.silent) {
13243
+ builder.push("SILENT");
13244
+ }
13245
+ builder.push(SUBRULE(graphRefAll, ast.graph, void 0));
13246
+ return builder.join(" ");
12846
13247
  }
12847
13248
  };
12848
13249
  var create2 = {
@@ -12859,6 +13260,14 @@ var create2 = {
12859
13260
  name: graph2
12860
13261
  }
12861
13262
  };
13263
+ },
13264
+ gImpl: ({ SUBRULE }) => (ast) => {
13265
+ const builder = ["CREATE"];
13266
+ if (ast.silent) {
13267
+ builder.push("SILENT");
13268
+ }
13269
+ builder.push(SUBRULE(graphRef, ast.graph.name, void 0));
13270
+ return builder.join(" ");
12862
13271
  }
12863
13272
  };
12864
13273
  function copyMoveAddOperation(operation) {
@@ -12876,6 +13285,15 @@ function copyMoveAddOperation(operation) {
12876
13285
  source,
12877
13286
  destination
12878
13287
  };
13288
+ },
13289
+ gImpl: ({ SUBRULE }) => (ast) => {
13290
+ const builder = [operation.name.toUpperCase()];
13291
+ if (ast.silent) {
13292
+ builder.push("SILENT");
13293
+ }
13294
+ builder.push(SUBRULE(graphOrDefault, ast.source, void 0));
13295
+ builder.push("TO", SUBRULE(graphOrDefault, ast.destination, void 0));
13296
+ return builder.join(" ");
12879
13297
  }
12880
13298
  };
12881
13299
  }
@@ -12892,7 +13310,8 @@ var insertData = {
12892
13310
  updateType: "insert",
12893
13311
  insert
12894
13312
  };
12895
- }
13313
+ },
13314
+ gImpl: ({ SUBRULE }) => (ast) => `INSERT DATA ${SUBRULE(quadData, ast.insert, void 0)}`
12896
13315
  };
12897
13316
  var deleteData = {
12898
13317
  name: "deleteData",
@@ -12906,7 +13325,8 @@ var deleteData = {
12906
13325
  updateType: "delete",
12907
13326
  delete: del
12908
13327
  };
12909
- }
13328
+ },
13329
+ gImpl: ({ SUBRULE }) => (ast) => `DELETE DATA ${SUBRULE(quadData, ast.delete, void 0)}`
12910
13330
  };
12911
13331
  var deleteWhere = {
12912
13332
  name: "deleteWhere",
@@ -12920,7 +13340,8 @@ var deleteWhere = {
12920
13340
  updateType: "deletewhere",
12921
13341
  delete: del
12922
13342
  };
12923
- }
13343
+ },
13344
+ gImpl: ({ SUBRULE }) => (ast) => `DELETE WHERE ${SUBRULE(quadData, ast.delete, void 0)}`
12924
13345
  };
12925
13346
  var modify = {
12926
13347
  name: "modify",
@@ -12967,6 +13388,24 @@ var modify = {
12967
13388
  where: where2.patterns
12968
13389
  };
12969
13390
  });
13391
+ },
13392
+ gImpl: ({ SUBRULE }) => (ast) => {
13393
+ const builder = [];
13394
+ if (ast.graph) {
13395
+ builder.push(`WITH ${SUBRULE(iri2, ast.graph, void 0)}`);
13396
+ }
13397
+ if (ast.delete.length > 0) {
13398
+ builder.push(`DELETE ${SUBRULE(quadData, ast.delete, void 0)}`);
13399
+ }
13400
+ if (ast.insert.length > 0) {
13401
+ builder.push(`INSERT ${SUBRULE(quadData, ast.insert, void 0)}`);
13402
+ }
13403
+ if (ast.using) {
13404
+ builder.push(...ast.using.default.map((val) => `USING ${SUBRULE(iri2, val, void 0)}`));
13405
+ builder.push(...ast.using.named.map((val) => `USING NAMED ${SUBRULE(iri2, val, void 0)}`));
13406
+ }
13407
+ builder.push("WHERE", SUBRULE(groupGraphPattern, { type: "group", patterns: ast.where }, void 0));
13408
+ return builder.join(" ");
12970
13409
  }
12971
13410
  };
12972
13411
  var deleteClause2 = {
@@ -13022,14 +13461,21 @@ var graphOrDefault = {
13022
13461
  };
13023
13462
  }
13024
13463
  }
13025
- ])
13464
+ ]),
13465
+ gImpl: ({ SUBRULE }) => (ast) => {
13466
+ if (ast.default) {
13467
+ return "DEFAULT";
13468
+ }
13469
+ return SUBRULE(iri2, ast.name, void 0);
13470
+ }
13026
13471
  };
13027
13472
  var graphRef = {
13028
13473
  name: "graphRef",
13029
13474
  impl: ({ SUBRULE, CONSUME }) => () => {
13030
13475
  CONSUME(graph_exports.graph);
13031
13476
  return SUBRULE(iri2, void 0);
13032
- }
13477
+ },
13478
+ gImpl: ({ SUBRULE }) => (ast) => `GRAPH ${SUBRULE(iri2, ast, void 0)}`
13033
13479
  };
13034
13480
  var graphRefAll = {
13035
13481
  name: "graphRefAll",
@@ -13050,7 +13496,19 @@ var graphRefAll = {
13050
13496
  CONSUME(graph_exports.graphAll);
13051
13497
  return { all: true };
13052
13498
  } }
13053
- ])
13499
+ ]),
13500
+ gImpl: ({ SUBRULE }) => (ast) => {
13501
+ if (ast.all) {
13502
+ return "ALL";
13503
+ }
13504
+ if (ast.default) {
13505
+ return "DEFAULT";
13506
+ }
13507
+ if (ast.named) {
13508
+ return "NAMED";
13509
+ }
13510
+ return SUBRULE(graphRef, ast.name, void 0);
13511
+ }
13054
13512
  };
13055
13513
  var quadPattern = {
13056
13514
  name: "quadPattern",
@@ -13070,7 +13528,8 @@ var quadData = {
13070
13528
  ACTION(() => couldParseVars && C.parseMode.add("canParseVars"));
13071
13529
  CONSUME(symbols_exports.RCurly);
13072
13530
  return val;
13073
- }
13531
+ },
13532
+ gImpl: ({ SUBRULE }) => (ast) => `{ ${SUBRULE(quads, ast, void 0)} }`
13074
13533
  };
13075
13534
  var quads = {
13076
13535
  name: "quads",
@@ -13095,7 +13554,13 @@ var quads = {
13095
13554
  });
13096
13555
  });
13097
13556
  return quads2;
13098
- }
13557
+ },
13558
+ gImpl: ({ SUBRULE }) => (ast) => ast.map((quad) => {
13559
+ if (quad.type === "bgp") {
13560
+ return SUBRULE(triplesBlock, quad, void 0);
13561
+ }
13562
+ return SUBRULE(quadsNotTriples, quad, void 0);
13563
+ }).join(" ")
13099
13564
  };
13100
13565
  var quadsNotTriples = {
13101
13566
  name: "quadsNotTriples",
@@ -13110,10 +13575,34 @@ var quadsNotTriples = {
13110
13575
  name,
13111
13576
  triples
13112
13577
  };
13113
- }
13578
+ },
13579
+ gImpl: ({ SUBRULE }) => (ast) => `GRAPH ${SUBRULE(varOrTerm, ast.name, void 0)} {
13580
+ ${SUBRULE(triplesBlock, { ...ast, type: "bgp" }, void 0)}
13581
+ }`
13114
13582
  };
13115
13583
 
13116
13584
  // lib/lexer.ts
13585
+ var lexer_exports2 = {};
13586
+ __export(lexer_exports2, {
13587
+ LANG_DIR: () => LANG_DIR,
13588
+ annotationClose: () => annotationClose,
13589
+ annotationOpen: () => annotationOpen,
13590
+ builtinHasLang: () => builtinHasLang,
13591
+ builtinHasLangDir: () => builtinHasLangDir,
13592
+ builtinIsTRIPLE: () => builtinIsTRIPLE,
13593
+ builtinLangDir: () => builtinLangDir,
13594
+ builtinOBJECT: () => builtinOBJECT,
13595
+ builtinPREDICATE: () => builtinPREDICATE,
13596
+ builtinSUBJECT: () => builtinSUBJECT,
13597
+ builtinStrLangDir: () => builtinStrLangDir,
13598
+ builtinTRIPLE: () => builtinTRIPLE,
13599
+ reificationClose: () => reificationClose,
13600
+ reificationOpen: () => reificationOpen,
13601
+ sparql12Tokens: () => sparql12Tokens,
13602
+ tilde: () => tilde,
13603
+ tripleTermClose: () => tripleTermClose,
13604
+ tripleTermOpen: () => tripleTermOpen
13605
+ });
13117
13606
  var tilde = createToken2({ name: "Tilde", pattern: "~", label: "~" });
13118
13607
  var annotationOpen = createToken2({ name: "AnnotationOpen", pattern: "{|", label: `Annotation Open: {|` });
13119
13608
  var annotationClose = createToken2({ name: "AnnotationClose", pattern: "|}", label: "Annotation Close |}" });
@@ -13140,7 +13629,7 @@ var builtinPREDICATE = createToken2({ name: "BuiltInPredicate", pattern: /predic
13140
13629
  var builtinOBJECT = createToken2({ name: "BuiltInObject", pattern: /object/i, label: "OBJECT" });
13141
13630
  var LANG_DIR = createToken2({
13142
13631
  name: "LANG_DIR",
13143
- pattern: /@[A-Za-z]+(?:-[\dA-Za-z]+)*(?:--[A-Za-z]+)?/,
13632
+ pattern: /@[a-z]+(?:-[\da-z]+)*(?:--[a-z]+)?/i,
13144
13633
  label: "LANG_DIR"
13145
13634
  });
13146
13635
  var sparql12Tokens = LexerBuilder.create(lexer_exports.sparql11Tokens).addBefore(
@@ -13186,7 +13675,13 @@ var dataBlockValue2 = {
13186
13675
  impl: ($) => (C) => $.OR2([
13187
13676
  { ALT: () => grammar_exports.dataBlockValue.impl($)(C, void 0) },
13188
13677
  { ALT: () => $.SUBRULE(tripleTermData, void 0) }
13189
- ])
13678
+ ]),
13679
+ gImpl: ({ SUBRULE }) => (ast) => {
13680
+ if (ast) {
13681
+ return SUBRULE(varOrTerm2, ast, void 0);
13682
+ }
13683
+ return "UNDEF";
13684
+ }
13190
13685
  };
13191
13686
  var reifier = {
13192
13687
  name: "reifier",
@@ -13311,7 +13806,10 @@ function annotationBlockImpl(name, allowPaths) {
13311
13806
  name,
13312
13807
  impl: ({ ACTION, SUBRULE, CONSUME }) => (_, arg) => {
13313
13808
  CONSUME(annotationOpen);
13314
- const res = SUBRULE(allowPaths ? grammar_exports.propertyListPathNotEmpty : grammar_exports.propertyListNotEmpty, { subject: ACTION(() => arg.subject) });
13809
+ const res = SUBRULE(
13810
+ allowPaths ? grammar_exports.propertyListPathNotEmpty : grammar_exports.propertyListNotEmpty,
13811
+ { subject: ACTION(() => arg.subject) }
13812
+ );
13315
13813
  CONSUME(annotationClose);
13316
13814
  return res;
13317
13815
  }
@@ -13347,7 +13845,22 @@ var varOrTerm2 = {
13347
13845
  return ACTION(() => C.dataFactory.namedNode("http://www.w3.org/1999/02/22-rdf-syntax-ns#nil" /* NIL */));
13348
13846
  } },
13349
13847
  { ALT: () => SUBRULE(tripleTerm, void 0) }
13350
- ])
13848
+ ]),
13849
+ gImpl: ({ SUBRULE }) => (ast) => {
13850
+ if (ast.termType === "Variable") {
13851
+ return SUBRULE(grammar_exports.var_, ast, void 0);
13852
+ }
13853
+ if (ast.termType === "NamedNode") {
13854
+ return SUBRULE(grammar_exports.iri, ast, void 0);
13855
+ }
13856
+ if (ast.termType === "BlankNode") {
13857
+ return SUBRULE(grammar_exports.blankNode, ast, void 0);
13858
+ }
13859
+ if (ast.termType === "Quad") {
13860
+ return SUBRULE(tripleTerm, ast, void 0);
13861
+ }
13862
+ return SUBRULE(grammar_exports.rdfLiteral, ast, void 0);
13863
+ }
13351
13864
  };
13352
13865
  var reifiedTriple = {
13353
13866
  name: "reifiedTriple",
@@ -13403,7 +13916,8 @@ var tripleTerm = {
13403
13916
  const object3 = SUBRULE(tripleTermObject, void 0);
13404
13917
  CONSUME(tripleTermClose);
13405
13918
  return ACTION(() => C.dataFactory.quad(subject, predicate, object3));
13406
- }
13919
+ },
13920
+ gImpl: ({ SUBRULE }) => (ast) => `<<( ${SUBRULE(varOrTerm2, ast.subject, void 0)} ${SUBRULE(varOrTerm2, ast.predicate, void 0)} ${SUBRULE(varOrTerm2, ast.object, void 0)} )>>`
13407
13921
  };
13408
13922
  var tripleTermSubject = {
13409
13923
  name: "tripleTermSubject",
@@ -13548,6 +14062,9 @@ var rdfLiteral2 = {
13548
14062
  return ACTION(() => C.dataFactory.literal(value, langOrDataType));
13549
14063
  }
13550
14064
  };
14065
+
14066
+ // lib/sparql12Types.ts
14067
+ var sparql12Types_exports = {};
13551
14068
  /*! Bundled license information:
13552
14069
 
13553
14070
  lodash-es/lodash.js: