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

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
@@ -22,7 +22,7 @@ var index_exports = {};
22
22
  __export(index_exports, {
23
23
  CommonIRIs: () => CommonIRIs,
24
24
  Factory: () => Factory,
25
- SparqlParser: () => SparqlParser,
25
+ MinimalSparqlParser: () => MinimalSparqlParser,
26
26
  baseAggregateFunc: () => baseAggregateFunc,
27
27
  checkNote13: () => checkNote13,
28
28
  completeParseContext: () => completeParseContext,
@@ -228,6 +228,7 @@ __export(grammar_exports, {
228
228
  quads: () => quads,
229
229
  quadsNotTriples: () => quadsNotTriples,
230
230
  query: () => query,
231
+ queryOrUpdate: () => queryOrUpdate,
231
232
  queryUnit: () => queryUnit,
232
233
  rdfLiteral: () => rdfLiteral,
233
234
  regexExpression: () => regexExpression,
@@ -276,7 +277,7 @@ __export(lexer_exports, {
276
277
  ask: () => ask,
277
278
  baseDecl: () => baseDecl,
278
279
  bind: () => bind,
279
- builtIn: () => BuildinCalls_exports,
280
+ builtIn: () => BuiltInCalls_exports,
280
281
  by: () => by,
281
282
  clear: () => clear,
282
283
  construct: () => construct,
@@ -313,7 +314,7 @@ __export(lexer_exports, {
313
314
  separator: () => separator,
314
315
  service: () => service,
315
316
  silent: () => silent,
316
- sparql11Tokens: () => sparql11Tokens,
317
+ sparql11LexerBuilder: () => sparql11LexerBuilder,
317
318
  symbols: () => symbols_exports,
318
319
  terminals: () => terminals_exports,
319
320
  to: () => to,
@@ -325,10 +326,10 @@ __export(lexer_exports, {
325
326
  where: () => where
326
327
  });
327
328
 
328
- // lib/lexer/BuildinCalls.ts
329
- var BuildinCalls_exports = {};
330
- __export(BuildinCalls_exports, {
331
- BuildInCalls: () => BuildInCalls,
329
+ // lib/lexer/BuiltInCalls.ts
330
+ var BuiltInCalls_exports = {};
331
+ __export(BuiltInCalls_exports, {
332
+ BuiltInCalls: () => BuiltInCalls,
332
333
  abs: () => abs,
333
334
  allBuiltInCalls: () => allBuiltInCalls,
334
335
  avg: () => avg,
@@ -721,10 +722,10 @@ var coreJsData = root_default["__core-js_shared__"];
721
722
  var coreJsData_default = coreJsData;
722
723
 
723
724
  // ../../node_modules/lodash-es/_isMasked.js
724
- var maskSrcKey = function() {
725
+ var maskSrcKey = (function() {
725
726
  var uid = /[^.]+$/.exec(coreJsData_default && coreJsData_default.keys && coreJsData_default.keys.IE_PROTO || "");
726
727
  return uid ? "Symbol(src)_1." + uid : "";
727
- }();
728
+ })();
728
729
  function isMasked(func) {
729
730
  return !!maskSrcKey && maskSrcKey in func;
730
731
  }
@@ -786,7 +787,7 @@ var WeakMap_default = WeakMap;
786
787
 
787
788
  // ../../node_modules/lodash-es/_baseCreate.js
788
789
  var objectCreate = Object.create;
789
- var baseCreate = /* @__PURE__ */ function() {
790
+ var baseCreate = /* @__PURE__ */ (function() {
790
791
  function object2() {
791
792
  }
792
793
  return function(proto) {
@@ -801,7 +802,7 @@ var baseCreate = /* @__PURE__ */ function() {
801
802
  object2.prototype = void 0;
802
803
  return result;
803
804
  };
804
- }();
805
+ })();
805
806
  var baseCreate_default = baseCreate;
806
807
 
807
808
  // ../../node_modules/lodash-es/_apply.js
@@ -866,14 +867,14 @@ function constant(value) {
866
867
  var constant_default = constant;
867
868
 
868
869
  // ../../node_modules/lodash-es/_defineProperty.js
869
- var defineProperty = function() {
870
+ var defineProperty = (function() {
870
871
  try {
871
872
  var func = getNative_default(Object, "defineProperty");
872
873
  func({}, "", {});
873
874
  return func;
874
875
  } catch (e) {
875
876
  }
876
- }();
877
+ })();
877
878
  var defineProperty_default = defineProperty;
878
879
 
879
880
  // ../../node_modules/lodash-es/_baseSetToString.js
@@ -1111,9 +1112,9 @@ var baseIsArguments_default = baseIsArguments;
1111
1112
  var objectProto6 = Object.prototype;
1112
1113
  var hasOwnProperty4 = objectProto6.hasOwnProperty;
1113
1114
  var propertyIsEnumerable = objectProto6.propertyIsEnumerable;
1114
- var isArguments = baseIsArguments_default(/* @__PURE__ */ function() {
1115
+ var isArguments = baseIsArguments_default(/* @__PURE__ */ (function() {
1115
1116
  return arguments;
1116
- }()) ? baseIsArguments_default : function(value) {
1117
+ })()) ? baseIsArguments_default : function(value) {
1117
1118
  return isObjectLike_default(value) && hasOwnProperty4.call(value, "callee") && !propertyIsEnumerable.call(value, "callee");
1118
1119
  };
1119
1120
  var isArguments_default = isArguments;
@@ -1179,7 +1180,7 @@ var freeExports2 = typeof exports == "object" && exports && !exports.nodeType &&
1179
1180
  var freeModule2 = freeExports2 && typeof module == "object" && module && !module.nodeType && module;
1180
1181
  var moduleExports2 = freeModule2 && freeModule2.exports === freeExports2;
1181
1182
  var freeProcess = moduleExports2 && freeGlobal_default.process;
1182
- var nodeUtil = function() {
1183
+ var nodeUtil = (function() {
1183
1184
  try {
1184
1185
  var types = freeModule2 && freeModule2.require && freeModule2.require("util").types;
1185
1186
  if (types) {
@@ -1188,7 +1189,7 @@ var nodeUtil = function() {
1188
1189
  return freeProcess && freeProcess.binding && freeProcess.binding("util");
1189
1190
  } catch (e) {
1190
1191
  }
1191
- }();
1192
+ })();
1192
1193
  var nodeUtil_default = nodeUtil;
1193
1194
 
1194
1195
  // ../../node_modules/lodash-es/isTypedArray.js
@@ -9733,6 +9734,7 @@ applyMixins(Parser, [
9733
9734
 
9734
9735
  // ../core/lib/lexer-builder/LexerBuilder.ts
9735
9736
  var LexerBuilder = class _LexerBuilder {
9737
+ tokens;
9736
9738
  static create(starter) {
9737
9739
  return new _LexerBuilder(starter);
9738
9740
  }
@@ -9890,71 +9892,71 @@ var Transformer = class {
9890
9892
  }
9891
9893
  };
9892
9894
 
9893
- // lib/lexer/BuildinCalls.ts
9894
- var BuildInCalls = /* @__PURE__ */ ((BuildInCalls2) => {
9895
- BuildInCalls2["Str"] = "builtInStr";
9896
- BuildInCalls2["Lang"] = "builtInLang";
9897
- BuildInCalls2["Langmatches"] = "builtInLangmatches";
9898
- BuildInCalls2["Datatype"] = "builtInDatatype";
9899
- BuildInCalls2["Bound"] = "builtInBound";
9900
- BuildInCalls2["Iri"] = "builtInIri";
9901
- BuildInCalls2["Uri"] = "builtInUri";
9902
- BuildInCalls2["Bnode"] = "builtInBnode";
9903
- BuildInCalls2["Rand"] = "builtInRand";
9904
- BuildInCalls2["Abs"] = "builtInAbs";
9905
- BuildInCalls2["Ceil"] = "builtInCeil";
9906
- BuildInCalls2["Floor"] = "builtInFloor";
9907
- BuildInCalls2["Round"] = "builtInRound";
9908
- BuildInCalls2["Concat"] = "builtInConcat";
9909
- BuildInCalls2["Strlen"] = "builtInStrlen";
9910
- BuildInCalls2["Ucase"] = "builtInUcase";
9911
- BuildInCalls2["Lcase"] = "builtInLcase";
9912
- BuildInCalls2["Encode_for_uri"] = "builtInEncode_for_uri";
9913
- BuildInCalls2["Contains"] = "builtInContains";
9914
- BuildInCalls2["Strstarts"] = "builtInStrstarts";
9915
- BuildInCalls2["Strends"] = "builtInStrends";
9916
- BuildInCalls2["Strbefore"] = "builtInStrbefore";
9917
- BuildInCalls2["Strafter"] = "builtInStrafter";
9918
- BuildInCalls2["Year"] = "builtInYear";
9919
- BuildInCalls2["Month"] = "builtInMonth";
9920
- BuildInCalls2["Day"] = "builtInDay";
9921
- BuildInCalls2["Hours"] = "builtInHours";
9922
- BuildInCalls2["Minutes"] = "builtInMinutes";
9923
- BuildInCalls2["Seconds"] = "builtInSeconds";
9924
- BuildInCalls2["Timezone"] = "builtInTimezone";
9925
- BuildInCalls2["Tz"] = "builtInTz";
9926
- BuildInCalls2["Now"] = "builtInNow";
9927
- BuildInCalls2["Uuid"] = "builtInUuid";
9928
- BuildInCalls2["Struuid"] = "builtInStruuid";
9929
- BuildInCalls2["Md5"] = "builtInMd5";
9930
- BuildInCalls2["Sha1"] = "builtInSha1";
9931
- BuildInCalls2["Sha256"] = "builtInSha256";
9932
- BuildInCalls2["Sha384"] = "builtInSha384";
9933
- BuildInCalls2["Sha512"] = "builtInSha512";
9934
- BuildInCalls2["Coalesce"] = "builtInCoalesce";
9935
- BuildInCalls2["If"] = "builtInIf";
9936
- BuildInCalls2["Strlang"] = "builtInStrlang";
9937
- BuildInCalls2["Strdt"] = "builtInStrdt";
9938
- BuildInCalls2["Sameterm"] = "builtInSameterm";
9939
- BuildInCalls2["Isiri"] = "builtInIsiri";
9940
- BuildInCalls2["Isuri"] = "builtInIsuri";
9941
- BuildInCalls2["Isblank"] = "builtInIsblank";
9942
- BuildInCalls2["Isliteral"] = "builtInIsliteral";
9943
- BuildInCalls2["Isnumeric"] = "builtInIsnumeric";
9944
- BuildInCalls2["Regex"] = "builtInRegex";
9945
- BuildInCalls2["Substr"] = "builtInSubstr";
9946
- BuildInCalls2["Replace"] = "builtInReplace";
9947
- BuildInCalls2["Exists"] = "builtInExists";
9948
- BuildInCalls2["Notexists"] = "builtInNotexists";
9949
- BuildInCalls2["Count"] = "builtInCount";
9950
- BuildInCalls2["Sum"] = "builtInSum";
9951
- BuildInCalls2["Min"] = "builtInMin";
9952
- BuildInCalls2["Max"] = "builtInMax";
9953
- BuildInCalls2["Avg"] = "builtInAvg";
9954
- BuildInCalls2["Sample"] = "builtInSample";
9955
- BuildInCalls2["Group_concat"] = "builtInGroup_concat";
9956
- return BuildInCalls2;
9957
- })(BuildInCalls || {});
9895
+ // lib/lexer/BuiltInCalls.ts
9896
+ var BuiltInCalls = /* @__PURE__ */ ((BuiltInCalls2) => {
9897
+ BuiltInCalls2["Str"] = "builtInStr";
9898
+ BuiltInCalls2["Lang"] = "builtInLang";
9899
+ BuiltInCalls2["Langmatches"] = "builtInLangmatches";
9900
+ BuiltInCalls2["Datatype"] = "builtInDatatype";
9901
+ BuiltInCalls2["Bound"] = "builtInBound";
9902
+ BuiltInCalls2["Iri"] = "builtInIri";
9903
+ BuiltInCalls2["Uri"] = "builtInUri";
9904
+ BuiltInCalls2["Bnode"] = "builtInBnode";
9905
+ BuiltInCalls2["Rand"] = "builtInRand";
9906
+ BuiltInCalls2["Abs"] = "builtInAbs";
9907
+ BuiltInCalls2["Ceil"] = "builtInCeil";
9908
+ BuiltInCalls2["Floor"] = "builtInFloor";
9909
+ BuiltInCalls2["Round"] = "builtInRound";
9910
+ BuiltInCalls2["Concat"] = "builtInConcat";
9911
+ BuiltInCalls2["Strlen"] = "builtInStrlen";
9912
+ BuiltInCalls2["Ucase"] = "builtInUcase";
9913
+ BuiltInCalls2["Lcase"] = "builtInLcase";
9914
+ BuiltInCalls2["Encode_for_uri"] = "builtInEncode_for_uri";
9915
+ BuiltInCalls2["Contains"] = "builtInContains";
9916
+ BuiltInCalls2["Strstarts"] = "builtInStrstarts";
9917
+ BuiltInCalls2["Strends"] = "builtInStrends";
9918
+ BuiltInCalls2["Strbefore"] = "builtInStrbefore";
9919
+ BuiltInCalls2["Strafter"] = "builtInStrafter";
9920
+ BuiltInCalls2["Year"] = "builtInYear";
9921
+ BuiltInCalls2["Month"] = "builtInMonth";
9922
+ BuiltInCalls2["Day"] = "builtInDay";
9923
+ BuiltInCalls2["Hours"] = "builtInHours";
9924
+ BuiltInCalls2["Minutes"] = "builtInMinutes";
9925
+ BuiltInCalls2["Seconds"] = "builtInSeconds";
9926
+ BuiltInCalls2["Timezone"] = "builtInTimezone";
9927
+ BuiltInCalls2["Tz"] = "builtInTz";
9928
+ BuiltInCalls2["Now"] = "builtInNow";
9929
+ BuiltInCalls2["Uuid"] = "builtInUuid";
9930
+ BuiltInCalls2["Struuid"] = "builtInStruuid";
9931
+ BuiltInCalls2["Md5"] = "builtInMd5";
9932
+ BuiltInCalls2["Sha1"] = "builtInSha1";
9933
+ BuiltInCalls2["Sha256"] = "builtInSha256";
9934
+ BuiltInCalls2["Sha384"] = "builtInSha384";
9935
+ BuiltInCalls2["Sha512"] = "builtInSha512";
9936
+ BuiltInCalls2["Coalesce"] = "builtInCoalesce";
9937
+ BuiltInCalls2["If"] = "builtInIf";
9938
+ BuiltInCalls2["Strlang"] = "builtInStrlang";
9939
+ BuiltInCalls2["Strdt"] = "builtInStrdt";
9940
+ BuiltInCalls2["Sameterm"] = "builtInSameterm";
9941
+ BuiltInCalls2["Isiri"] = "builtInIsiri";
9942
+ BuiltInCalls2["Isuri"] = "builtInIsuri";
9943
+ BuiltInCalls2["Isblank"] = "builtInIsblank";
9944
+ BuiltInCalls2["Isliteral"] = "builtInIsliteral";
9945
+ BuiltInCalls2["Isnumeric"] = "builtInIsnumeric";
9946
+ BuiltInCalls2["Regex"] = "builtInRegex";
9947
+ BuiltInCalls2["Substr"] = "builtInSubstr";
9948
+ BuiltInCalls2["Replace"] = "builtInReplace";
9949
+ BuiltInCalls2["Exists"] = "builtInExists";
9950
+ BuiltInCalls2["Notexists"] = "builtInNotexists";
9951
+ BuiltInCalls2["Count"] = "builtInCount";
9952
+ BuiltInCalls2["Sum"] = "builtInSum";
9953
+ BuiltInCalls2["Min"] = "builtInMin";
9954
+ BuiltInCalls2["Max"] = "builtInMax";
9955
+ BuiltInCalls2["Avg"] = "builtInAvg";
9956
+ BuiltInCalls2["Sample"] = "builtInSample";
9957
+ BuiltInCalls2["Group_concat"] = "builtInGroup_concat";
9958
+ return BuiltInCalls2;
9959
+ })(BuiltInCalls || {});
9958
9960
  function capitalize(string2) {
9959
9961
  return string2.charAt(0).toUpperCase() + string2.slice(1);
9960
9962
  }
@@ -10458,7 +10460,7 @@ var allBaseTokens = LexerBuilder.create().add(
10458
10460
  notIn,
10459
10461
  separator
10460
10462
  );
10461
- var sparql11Tokens = LexerBuilder.create(allTerminals).merge(allBaseTokens).merge(allBuiltInCalls).merge(allGraphTokens).merge(allSymbols).moveBefore(datatype, dataClause).moveAfter(avg, a).moveBefore(a, graphAll).moveAfter(groupConcat, groupByGroup);
10463
+ var sparql11LexerBuilder = LexerBuilder.create(allTerminals).merge(allBaseTokens).merge(allBuiltInCalls).merge(allGraphTokens).merge(allSymbols).moveBefore(datatype, dataClause).moveAfter(avg, a).moveBefore(a, graphAll).moveAfter(groupConcat, groupByGroup);
10462
10464
 
10463
10465
  // lib/factoryMixins/ContextFactory.ts
10464
10466
  var nodeType = "contextDef";
@@ -10903,10 +10905,7 @@ function SolutionModifiersFactoryMixin(Base) {
10903
10905
  var nodeType8 = "term";
10904
10906
  function TermFactoryMixin(Base) {
10905
10907
  return class TermFactory extends Base {
10906
- constructor() {
10907
- super(...arguments);
10908
- this.__blankNodeCounter = 0;
10909
- }
10908
+ __blankNodeCounter = 0;
10910
10909
  resetBlankNodeCounter() {
10911
10910
  this.__blankNodeCounter = 0;
10912
10911
  }
@@ -11657,6 +11656,120 @@ var verbA = {
11657
11656
  }
11658
11657
  };
11659
11658
 
11659
+ // lib/grammar/general.ts
11660
+ var prologue = {
11661
+ name: "prologue",
11662
+ impl: ({ SUBRULE, MANY, OR }) => () => {
11663
+ const result = [];
11664
+ MANY(() => OR([
11665
+ { ALT: () => result.push(SUBRULE(baseDecl2)) },
11666
+ // TODO: the [spec](https://www.w3.org/TR/sparql11-query/#iriRefs) says you cannot redefine prefixes.
11667
+ // We might need to check this.
11668
+ { ALT: () => result.push(SUBRULE(prefixDecl2)) }
11669
+ ]));
11670
+ return result;
11671
+ },
11672
+ gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
11673
+ for (const context of ast) {
11674
+ if (F2.isContextDefinitionBase(context)) {
11675
+ SUBRULE(baseDecl2, context);
11676
+ } else if (F2.isContextDefinitionPrefix(context)) {
11677
+ SUBRULE(prefixDecl2, context);
11678
+ }
11679
+ }
11680
+ }
11681
+ };
11682
+ var baseDecl2 = {
11683
+ name: "baseDecl",
11684
+ impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {
11685
+ const base = CONSUME(baseDecl);
11686
+ const val = SUBRULE(iriFull);
11687
+ return ACTION(() => C.factory.contextDefinitionBase(C.factory.sourceLocation(base, val), val));
11688
+ },
11689
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
11690
+ F2.printFilter(ast, () => PRINT_WORD("BASE"));
11691
+ SUBRULE(iri2, ast.value);
11692
+ }
11693
+ };
11694
+ var prefixDecl2 = {
11695
+ name: "prefixDecl",
11696
+ impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {
11697
+ const prefix = CONSUME(prefixDecl);
11698
+ const name = CONSUME(terminals_exports.pNameNs).image.slice(0, -1);
11699
+ const value = SUBRULE(iriFull);
11700
+ return ACTION(() => C.factory.contextDefinitionPrefix(C.factory.sourceLocation(prefix, value), name, value));
11701
+ },
11702
+ gImpl: ({ SUBRULE, PRINT_WORDS }) => (ast, { factory: F2 }) => {
11703
+ F2.printFilter(ast, () => {
11704
+ PRINT_WORDS("PREFIX", `${ast.key}:`);
11705
+ });
11706
+ SUBRULE(iri2, ast.value);
11707
+ }
11708
+ };
11709
+ var verb = {
11710
+ name: "verb",
11711
+ impl: ({ SUBRULE, OR }) => () => OR([
11712
+ { ALT: () => SUBRULE(varOrIri) },
11713
+ { ALT: () => SUBRULE(verbA) }
11714
+ ])
11715
+ };
11716
+ var varOrTerm = {
11717
+ name: "varOrTerm",
11718
+ impl: ({ SUBRULE, OR }) => (C) => OR([
11719
+ { GATE: () => C.parseMode.has("canParseVars"), ALT: () => SUBRULE(var_) },
11720
+ { ALT: () => SUBRULE(graphTerm) }
11721
+ ]),
11722
+ gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
11723
+ if (F2.isTermVariable(ast)) {
11724
+ return SUBRULE(var_, ast);
11725
+ }
11726
+ return SUBRULE(graphTerm, ast);
11727
+ }
11728
+ };
11729
+ var varOrIri = {
11730
+ name: "varOrIri",
11731
+ impl: ({ SUBRULE, OR }) => (C) => OR([
11732
+ { GATE: () => C.parseMode.has("canParseVars"), ALT: () => SUBRULE(var_) },
11733
+ { ALT: () => SUBRULE(iri2) }
11734
+ ])
11735
+ };
11736
+ var var_ = {
11737
+ name: "var",
11738
+ impl: ({ ACTION, CONSUME, OR }) => (C) => {
11739
+ const varToken = OR([
11740
+ { ALT: () => CONSUME(terminals_exports.var1) },
11741
+ { ALT: () => CONSUME(terminals_exports.var2) }
11742
+ ]);
11743
+ return ACTION(() => C.factory.variable(varToken.image.slice(1), C.factory.sourceLocation(varToken)));
11744
+ },
11745
+ gImpl: ({ PRINT_WORD }) => (ast, { factory: F2 }) => {
11746
+ F2.printFilter(ast, () => PRINT_WORD(`?${ast.value}`));
11747
+ }
11748
+ };
11749
+ var graphTerm = {
11750
+ name: "graphTerm",
11751
+ impl: ({ ACTION, SUBRULE, CONSUME, OR }) => (C) => OR([
11752
+ { ALT: () => SUBRULE(iri2) },
11753
+ { ALT: () => SUBRULE(rdfLiteral) },
11754
+ { ALT: () => SUBRULE(numericLiteral) },
11755
+ { ALT: () => SUBRULE(booleanLiteral) },
11756
+ { GATE: () => C.parseMode.has("canCreateBlankNodes"), ALT: () => SUBRULE(blankNode) },
11757
+ { ALT: () => {
11758
+ const tokenNil = CONSUME(terminals_exports.nil);
11759
+ return ACTION(() => C.factory.namedNode(C.factory.sourceLocation(tokenNil), "http://www.w3.org/1999/02/22-rdf-syntax-ns#nil" /* NIL */));
11760
+ } }
11761
+ ]),
11762
+ gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
11763
+ if (F2.isTermNamed(ast)) {
11764
+ SUBRULE(iri2, ast);
11765
+ } else if (F2.isTermLiteral(ast)) {
11766
+ SUBRULE(rdfLiteral, ast);
11767
+ } else if (F2.isTermBlank(ast)) {
11768
+ SUBRULE(blankNode, ast);
11769
+ }
11770
+ }
11771
+ };
11772
+
11660
11773
  // lib/grammar/dataSetClause.ts
11661
11774
  function datasetClauseUsing(name, token) {
11662
11775
  return {
@@ -11912,55 +12025,55 @@ function baseAggregateFunc(func) {
11912
12025
  }
11913
12026
 
11914
12027
  // lib/grammar/builtIn.ts
11915
- var builtInStr = funcExpr1(BuildinCalls_exports.str);
11916
- var builtInLang = funcExpr1(BuildinCalls_exports.lang);
11917
- var builtInLangmatches = funcExpr2(BuildinCalls_exports.langmatches);
11918
- var builtInDatatype = funcExpr1(BuildinCalls_exports.datatype);
11919
- var builtInBound = funcVar1(BuildinCalls_exports.bound);
11920
- var builtInIri = funcExpr1(BuildinCalls_exports.iri);
11921
- var builtInUri = funcExpr1(BuildinCalls_exports.uri);
11922
- var builtInBnodeSparqlJs = funcExprOrNil1(BuildinCalls_exports.bnode);
11923
- var builtInRand = funcNil1(BuildinCalls_exports.rand);
11924
- var builtInAbs = funcExpr1(BuildinCalls_exports.abs);
11925
- var builtInCeil = funcExpr1(BuildinCalls_exports.ceil);
11926
- var builtInFloor = funcExpr1(BuildinCalls_exports.floor);
11927
- var builtInRound = funcExpr1(BuildinCalls_exports.round);
11928
- var builtInConcat = funcExprList1(BuildinCalls_exports.concat);
11929
- var builtInStrlen = funcExpr1(BuildinCalls_exports.strlen);
11930
- var builtInUcase = funcExpr1(BuildinCalls_exports.ucase);
11931
- var builtInLcase = funcExpr1(BuildinCalls_exports.lcase);
11932
- var builtInEncode_for_uri = funcExpr1(BuildinCalls_exports.encode_for_uri);
11933
- var builtInContains = funcExpr2(BuildinCalls_exports.contains);
11934
- var builtInStrstarts = funcExpr2(BuildinCalls_exports.strstarts);
11935
- var builtInStrends = funcExpr2(BuildinCalls_exports.strends);
11936
- var builtInStrbefore = funcExpr2(BuildinCalls_exports.strbefore);
11937
- var builtInStrafter = funcExpr2(BuildinCalls_exports.strafter);
11938
- var builtInYear = funcExpr1(BuildinCalls_exports.year);
11939
- var builtInMonth = funcExpr1(BuildinCalls_exports.month);
11940
- var builtInDay = funcExpr1(BuildinCalls_exports.day);
11941
- var builtInHours = funcExpr1(BuildinCalls_exports.hours);
11942
- var builtInMinutes = funcExpr1(BuildinCalls_exports.minutes);
11943
- var builtInSeconds = funcExpr1(BuildinCalls_exports.seconds);
11944
- var builtInTimezone = funcExpr1(BuildinCalls_exports.timezone);
11945
- var builtInTz = funcExpr1(BuildinCalls_exports.tz);
11946
- var builtInNow = funcNil1(BuildinCalls_exports.now);
11947
- var builtInUuid = funcNil1(BuildinCalls_exports.uuid);
11948
- var builtInStruuid = funcNil1(BuildinCalls_exports.struuid);
11949
- var builtInMd5 = funcExpr1(BuildinCalls_exports.md5);
11950
- var builtInSha1 = funcExpr1(BuildinCalls_exports.sha1);
11951
- var builtInSha256 = funcExpr1(BuildinCalls_exports.sha256);
11952
- var builtInSha384 = funcExpr1(BuildinCalls_exports.sha384);
11953
- var builtInSha512 = funcExpr1(BuildinCalls_exports.sha512);
11954
- var builtInCoalesce = funcExprList1(BuildinCalls_exports.coalesce);
11955
- var builtInIf = funcExpr3(BuildinCalls_exports.if_);
11956
- var builtInStrlang = funcExpr2(BuildinCalls_exports.strlang);
11957
- var builtInStrdt = funcExpr2(BuildinCalls_exports.strdt);
11958
- var builtInSameterm = funcExpr2(BuildinCalls_exports.sameterm);
11959
- var builtInIsiri = funcExpr1(BuildinCalls_exports.isiri);
11960
- var builtInIsuri = funcExpr1(BuildinCalls_exports.isuri);
11961
- var builtInIsblank = funcExpr1(BuildinCalls_exports.isblank);
11962
- var builtInIsliteral = funcExpr1(BuildinCalls_exports.isliteral);
11963
- var builtInIsnumeric = funcExpr1(BuildinCalls_exports.isnumeric);
12028
+ var builtInStr = funcExpr1(BuiltInCalls_exports.str);
12029
+ var builtInLang = funcExpr1(BuiltInCalls_exports.lang);
12030
+ var builtInLangmatches = funcExpr2(BuiltInCalls_exports.langmatches);
12031
+ var builtInDatatype = funcExpr1(BuiltInCalls_exports.datatype);
12032
+ var builtInBound = funcVar1(BuiltInCalls_exports.bound);
12033
+ var builtInIri = funcExpr1(BuiltInCalls_exports.iri);
12034
+ var builtInUri = funcExpr1(BuiltInCalls_exports.uri);
12035
+ var builtInBnodeSparqlJs = funcExprOrNil1(BuiltInCalls_exports.bnode);
12036
+ var builtInRand = funcNil1(BuiltInCalls_exports.rand);
12037
+ var builtInAbs = funcExpr1(BuiltInCalls_exports.abs);
12038
+ var builtInCeil = funcExpr1(BuiltInCalls_exports.ceil);
12039
+ var builtInFloor = funcExpr1(BuiltInCalls_exports.floor);
12040
+ var builtInRound = funcExpr1(BuiltInCalls_exports.round);
12041
+ var builtInConcat = funcExprList1(BuiltInCalls_exports.concat);
12042
+ var builtInStrlen = funcExpr1(BuiltInCalls_exports.strlen);
12043
+ var builtInUcase = funcExpr1(BuiltInCalls_exports.ucase);
12044
+ var builtInLcase = funcExpr1(BuiltInCalls_exports.lcase);
12045
+ var builtInEncode_for_uri = funcExpr1(BuiltInCalls_exports.encode_for_uri);
12046
+ var builtInContains = funcExpr2(BuiltInCalls_exports.contains);
12047
+ var builtInStrstarts = funcExpr2(BuiltInCalls_exports.strstarts);
12048
+ var builtInStrends = funcExpr2(BuiltInCalls_exports.strends);
12049
+ var builtInStrbefore = funcExpr2(BuiltInCalls_exports.strbefore);
12050
+ var builtInStrafter = funcExpr2(BuiltInCalls_exports.strafter);
12051
+ var builtInYear = funcExpr1(BuiltInCalls_exports.year);
12052
+ var builtInMonth = funcExpr1(BuiltInCalls_exports.month);
12053
+ var builtInDay = funcExpr1(BuiltInCalls_exports.day);
12054
+ var builtInHours = funcExpr1(BuiltInCalls_exports.hours);
12055
+ var builtInMinutes = funcExpr1(BuiltInCalls_exports.minutes);
12056
+ var builtInSeconds = funcExpr1(BuiltInCalls_exports.seconds);
12057
+ var builtInTimezone = funcExpr1(BuiltInCalls_exports.timezone);
12058
+ var builtInTz = funcExpr1(BuiltInCalls_exports.tz);
12059
+ var builtInNow = funcNil1(BuiltInCalls_exports.now);
12060
+ var builtInUuid = funcNil1(BuiltInCalls_exports.uuid);
12061
+ var builtInStruuid = funcNil1(BuiltInCalls_exports.struuid);
12062
+ var builtInMd5 = funcExpr1(BuiltInCalls_exports.md5);
12063
+ var builtInSha1 = funcExpr1(BuiltInCalls_exports.sha1);
12064
+ var builtInSha256 = funcExpr1(BuiltInCalls_exports.sha256);
12065
+ var builtInSha384 = funcExpr1(BuiltInCalls_exports.sha384);
12066
+ var builtInSha512 = funcExpr1(BuiltInCalls_exports.sha512);
12067
+ var builtInCoalesce = funcExprList1(BuiltInCalls_exports.coalesce);
12068
+ var builtInIf = funcExpr3(BuiltInCalls_exports.if_);
12069
+ var builtInStrlang = funcExpr2(BuiltInCalls_exports.strlang);
12070
+ var builtInStrdt = funcExpr2(BuiltInCalls_exports.strdt);
12071
+ var builtInSameterm = funcExpr2(BuiltInCalls_exports.sameterm);
12072
+ var builtInIsiri = funcExpr1(BuiltInCalls_exports.isiri);
12073
+ var builtInIsuri = funcExpr1(BuiltInCalls_exports.isuri);
12074
+ var builtInIsblank = funcExpr1(BuiltInCalls_exports.isblank);
12075
+ var builtInIsliteral = funcExpr1(BuiltInCalls_exports.isliteral);
12076
+ var builtInIsnumeric = funcExpr1(BuiltInCalls_exports.isnumeric);
11964
12077
  function builtInCallList(SUBRULE) {
11965
12078
  return [
11966
12079
  { ALT: () => SUBRULE(aggregate) },
@@ -12032,15 +12145,15 @@ var builtInCall = {
12032
12145
  return OR(builtIns);
12033
12146
  }
12034
12147
  };
12035
- var regexExpression = funcExpr2or3(BuildinCalls_exports.regex);
12036
- var substringExpression = funcExpr2or3(BuildinCalls_exports.substr);
12037
- var strReplaceExpression = funcExpr3or4(BuildinCalls_exports.replace);
12038
- var existsFunc = funcGroupGraphPattern(BuildinCalls_exports.exists);
12039
- var notExistsFunc = funcGroupGraphPattern(BuildinCalls_exports.notexists);
12148
+ var regexExpression = funcExpr2or3(BuiltInCalls_exports.regex);
12149
+ var substringExpression = funcExpr2or3(BuiltInCalls_exports.substr);
12150
+ var strReplaceExpression = funcExpr3or4(BuiltInCalls_exports.replace);
12151
+ var existsFunc = funcGroupGraphPattern(BuiltInCalls_exports.exists);
12152
+ var notExistsFunc = funcGroupGraphPattern(BuiltInCalls_exports.notexists);
12040
12153
  var aggregateCount = {
12041
- name: unCapitalize(BuildinCalls_exports.count.name),
12154
+ name: unCapitalize(BuiltInCalls_exports.count.name),
12042
12155
  impl: ({ ACTION, CONSUME, SUBRULE, OR, OPTION }) => (C) => {
12043
- const operatorToken = CONSUME(BuildinCalls_exports.count);
12156
+ const operatorToken = CONSUME(BuiltInCalls_exports.count);
12044
12157
  CONSUME(symbols_exports.LParen);
12045
12158
  const distinctToken = OPTION(() => CONSUME(distinct));
12046
12159
  const expressionVal = OR([
@@ -12072,15 +12185,15 @@ var aggregateCount = {
12072
12185
  });
12073
12186
  }
12074
12187
  };
12075
- var aggregateSum = baseAggregateFunc(BuildinCalls_exports.sum);
12076
- var aggregateMin = baseAggregateFunc(BuildinCalls_exports.min);
12077
- var aggregateMax = baseAggregateFunc(BuildinCalls_exports.max);
12078
- var aggregateAvg = baseAggregateFunc(BuildinCalls_exports.avg);
12079
- var aggregateSample = baseAggregateFunc(BuildinCalls_exports.sample);
12188
+ var aggregateSum = baseAggregateFunc(BuiltInCalls_exports.sum);
12189
+ var aggregateMin = baseAggregateFunc(BuiltInCalls_exports.min);
12190
+ var aggregateMax = baseAggregateFunc(BuiltInCalls_exports.max);
12191
+ var aggregateAvg = baseAggregateFunc(BuiltInCalls_exports.avg);
12192
+ var aggregateSample = baseAggregateFunc(BuiltInCalls_exports.sample);
12080
12193
  var aggregateGroup_concat = {
12081
- name: unCapitalize(BuildinCalls_exports.groupConcat.name),
12194
+ name: unCapitalize(BuiltInCalls_exports.groupConcat.name),
12082
12195
  impl: ({ ACTION, CONSUME, OPTION1, SUBRULE, OPTION2 }) => (C) => {
12083
- const operatorToken = CONSUME(BuildinCalls_exports.groupConcat);
12196
+ const operatorToken = CONSUME(BuiltInCalls_exports.groupConcat);
12084
12197
  CONSUME(symbols_exports.LParen);
12085
12198
  const distinctToken = OPTION1(() => CONSUME(distinct));
12086
12199
  const expr = SUBRULE(expression);
@@ -12148,120 +12261,6 @@ var aggregate = {
12148
12261
  }
12149
12262
  };
12150
12263
 
12151
- // lib/grammar/general.ts
12152
- var prologue = {
12153
- name: "prologue",
12154
- impl: ({ SUBRULE, MANY, OR }) => () => {
12155
- const result = [];
12156
- MANY(() => OR([
12157
- { ALT: () => result.push(SUBRULE(baseDecl2)) },
12158
- // TODO: the [spec](https://www.w3.org/TR/sparql11-query/#iriRefs) says you cannot redefine prefixes.
12159
- // We might need to check this.
12160
- { ALT: () => result.push(SUBRULE(prefixDecl2)) }
12161
- ]));
12162
- return result;
12163
- },
12164
- gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
12165
- for (const context of ast) {
12166
- if (F2.isContextDefinitionBase(context)) {
12167
- SUBRULE(baseDecl2, context);
12168
- } else if (F2.isContextDefinitionPrefix(context)) {
12169
- SUBRULE(prefixDecl2, context);
12170
- }
12171
- }
12172
- }
12173
- };
12174
- var baseDecl2 = {
12175
- name: "baseDecl",
12176
- impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {
12177
- const base = CONSUME(baseDecl);
12178
- const val = SUBRULE(iriFull);
12179
- return ACTION(() => C.factory.contextDefinitionBase(C.factory.sourceLocation(base, val), val));
12180
- },
12181
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12182
- F2.printFilter(ast, () => PRINT_WORD("BASE"));
12183
- SUBRULE(iri2, ast.value);
12184
- }
12185
- };
12186
- var prefixDecl2 = {
12187
- name: "prefixDecl",
12188
- impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {
12189
- const prefix = CONSUME(prefixDecl);
12190
- const name = CONSUME(terminals_exports.pNameNs).image.slice(0, -1);
12191
- const value = SUBRULE(iriFull);
12192
- return ACTION(() => C.factory.contextDefinitionPrefix(C.factory.sourceLocation(prefix, value), name, value));
12193
- },
12194
- gImpl: ({ SUBRULE, PRINT_WORDS }) => (ast, { factory: F2 }) => {
12195
- F2.printFilter(ast, () => {
12196
- PRINT_WORDS("PREFIX", `${ast.key}:`);
12197
- });
12198
- SUBRULE(iri2, ast.value);
12199
- }
12200
- };
12201
- var verb = {
12202
- name: "verb",
12203
- impl: ({ SUBRULE, OR }) => () => OR([
12204
- { ALT: () => SUBRULE(varOrIri) },
12205
- { ALT: () => SUBRULE(verbA) }
12206
- ])
12207
- };
12208
- var varOrTerm = {
12209
- name: "varOrTerm",
12210
- impl: ({ SUBRULE, OR }) => (C) => OR([
12211
- { GATE: () => C.parseMode.has("canParseVars"), ALT: () => SUBRULE(var_) },
12212
- { ALT: () => SUBRULE(graphTerm) }
12213
- ]),
12214
- gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
12215
- if (F2.isTermVariable(ast)) {
12216
- return SUBRULE(var_, ast);
12217
- }
12218
- return SUBRULE(graphTerm, ast);
12219
- }
12220
- };
12221
- var varOrIri = {
12222
- name: "varOrIri",
12223
- impl: ({ SUBRULE, OR }) => (C) => OR([
12224
- { GATE: () => C.parseMode.has("canParseVars"), ALT: () => SUBRULE(var_) },
12225
- { ALT: () => SUBRULE(iri2) }
12226
- ])
12227
- };
12228
- var var_ = {
12229
- name: "var",
12230
- impl: ({ ACTION, CONSUME, OR }) => (C) => {
12231
- const varToken = OR([
12232
- { ALT: () => CONSUME(terminals_exports.var1) },
12233
- { ALT: () => CONSUME(terminals_exports.var2) }
12234
- ]);
12235
- return ACTION(() => C.factory.variable(varToken.image.slice(1), C.factory.sourceLocation(varToken)));
12236
- },
12237
- gImpl: ({ PRINT_WORD }) => (ast, { factory: F2 }) => {
12238
- F2.printFilter(ast, () => PRINT_WORD(`?${ast.value}`));
12239
- }
12240
- };
12241
- var graphTerm = {
12242
- name: "graphTerm",
12243
- impl: ({ ACTION, SUBRULE, CONSUME, OR }) => (C) => OR([
12244
- { ALT: () => SUBRULE(iri2) },
12245
- { ALT: () => SUBRULE(rdfLiteral) },
12246
- { ALT: () => SUBRULE(numericLiteral) },
12247
- { ALT: () => SUBRULE(booleanLiteral) },
12248
- { GATE: () => C.parseMode.has("canCreateBlankNodes"), ALT: () => SUBRULE(blankNode) },
12249
- { ALT: () => {
12250
- const tokenNil = CONSUME(terminals_exports.nil);
12251
- return ACTION(() => C.factory.namedNode(C.factory.sourceLocation(tokenNil), "http://www.w3.org/1999/02/22-rdf-syntax-ns#nil" /* NIL */));
12252
- } }
12253
- ]),
12254
- gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
12255
- if (F2.isTermNamed(ast)) {
12256
- SUBRULE(iri2, ast);
12257
- } else if (F2.isTermLiteral(ast)) {
12258
- SUBRULE(rdfLiteral, ast);
12259
- } else if (F2.isTermBlank(ast)) {
12260
- SUBRULE(blankNode, ast);
12261
- }
12262
- }
12263
- };
12264
-
12265
12264
  // lib/grammar/propertyPaths.ts
12266
12265
  var path = {
12267
12266
  name: "path",
@@ -14517,7 +14516,69 @@ var quadsNotTriples = {
14517
14516
  }
14518
14517
  };
14519
14518
 
14520
- // lib/SparqlParser.ts
14519
+ // lib/grammar/index.ts
14520
+ var queryOrUpdate = {
14521
+ name: "queryOrUpdate",
14522
+ impl: ({ ACTION, SUBRULE, OR1, OR2, MANY, OPTION1, CONSUME, SUBRULE2 }) => (C) => {
14523
+ const prologueValues = SUBRULE(prologue);
14524
+ return OR1([
14525
+ { ALT: () => {
14526
+ const subType = OR2([
14527
+ { ALT: () => SUBRULE(selectQuery) },
14528
+ { ALT: () => SUBRULE(constructQuery) },
14529
+ { ALT: () => SUBRULE(describeQuery) },
14530
+ { ALT: () => SUBRULE(askQuery) }
14531
+ ]);
14532
+ const values3 = SUBRULE(valuesClause);
14533
+ return ACTION(() => ({
14534
+ context: prologueValues,
14535
+ ...subType,
14536
+ type: "query",
14537
+ ...values3 && { values: values3 },
14538
+ loc: C.factory.sourceLocation(
14539
+ prologueValues.at(0),
14540
+ subType,
14541
+ values3
14542
+ )
14543
+ }));
14544
+ } },
14545
+ { ALT: () => {
14546
+ const updates = [];
14547
+ updates.push({ context: prologueValues });
14548
+ let parsedSemi = true;
14549
+ MANY({
14550
+ GATE: () => parsedSemi,
14551
+ DEF: () => {
14552
+ parsedSemi = false;
14553
+ updates.at(-1).operation = SUBRULE(update1);
14554
+ OPTION1(() => {
14555
+ CONSUME(symbols_exports.semi);
14556
+ parsedSemi = true;
14557
+ const innerPrologue = SUBRULE2(prologue);
14558
+ updates.push({ context: innerPrologue });
14559
+ });
14560
+ }
14561
+ });
14562
+ return ACTION(() => {
14563
+ const update2 = {
14564
+ type: "update",
14565
+ updates,
14566
+ loc: C.factory.sourceLocation(
14567
+ ...updates[0].context,
14568
+ updates[0].operation,
14569
+ ...updates.at(-1).context,
14570
+ updates.at(-1)?.operation
14571
+ )
14572
+ };
14573
+ updateNoReuseBlankNodeLabels(update2);
14574
+ return update2;
14575
+ });
14576
+ } }
14577
+ ]);
14578
+ }
14579
+ };
14580
+
14581
+ // lib/MinimalSparqlParser.ts
14521
14582
  function completeParseContext(context) {
14522
14583
  return {
14523
14584
  factory: context.factory ?? new Factory(),
@@ -14529,11 +14590,11 @@ function completeParseContext(context) {
14529
14590
  skipValidation: context.skipValidation ?? false
14530
14591
  };
14531
14592
  }
14532
- var SparqlParser = class {
14593
+ var MinimalSparqlParser = class {
14533
14594
  constructor(parser) {
14534
14595
  this.parser = parser;
14535
- this.F = new Factory();
14536
14596
  }
14597
+ F = new Factory();
14537
14598
  parse(query2, context = {}) {
14538
14599
  return this.parser.queryOrUpdate(query2, completeParseContext(context));
14539
14600
  }