@traqula/generator-sparql-1-1 0.0.2 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.cjs CHANGED
@@ -161,7 +161,7 @@ var DynamicGenerator = class {
161
161
  this.origSource = "";
162
162
  this.generatedUntil = 0;
163
163
  this.stringBuilder = [];
164
- this.subrule = (cstDef, ast, arg) => {
164
+ this.subrule = (cstDef, ast, ...arg) => {
165
165
  const def = this.rules[cstDef.name];
166
166
  if (!def) {
167
167
  throw new Error(`Rule ${cstDef.name} not found`);
@@ -174,7 +174,7 @@ var DynamicGenerator = class {
174
174
  PRINT_WORDS: this.printWords,
175
175
  CATCHUP: this.catchup,
176
176
  HANDLE_LOC: this.handleLoc
177
- })(ast, this.getSafeContext(), arg);
177
+ })(ast, this.getSafeContext(), ...arg);
178
178
  if (this.factory.isLocalized(ast)) {
179
179
  this.handleLoc(ast, generate);
180
180
  } else {
@@ -11533,7 +11533,7 @@ function stringEscapedLexical(str2) {
11533
11533
  var rdfLiteral = {
11534
11534
  name: "rdfLiteral",
11535
11535
  impl: ({ ACTION, SUBRULE1, CONSUME, OPTION, OR }) => (C) => {
11536
- const value = SUBRULE1(string, void 0);
11536
+ const value = SUBRULE1(string);
11537
11537
  return OPTION(() => OR([
11538
11538
  { ALT: () => {
11539
11539
  const lang2 = CONSUME(terminals_exports.langTag);
@@ -11545,7 +11545,7 @@ var rdfLiteral = {
11545
11545
  } },
11546
11546
  { ALT: () => {
11547
11547
  CONSUME(symbols_exports.hathat);
11548
- const iriVal = SUBRULE1(iri2, void 0);
11548
+ const iriVal = SUBRULE1(iri2);
11549
11549
  return ACTION(() => C.factory.literalTerm(
11550
11550
  C.factory.sourceLocation(value, iriVal),
11551
11551
  value.value,
@@ -11561,7 +11561,7 @@ var rdfLiteral = {
11561
11561
  factory.printFilter(ast, () => PRINT("@", ast.langOrIri));
11562
11562
  } else {
11563
11563
  factory.printFilter(ast, () => PRINT("^^"));
11564
- SUBRULE(iri2, ast.langOrIri, void 0);
11564
+ SUBRULE(iri2, ast.langOrIri);
11565
11565
  }
11566
11566
  }
11567
11567
  }
@@ -11569,9 +11569,9 @@ var rdfLiteral = {
11569
11569
  var numericLiteral = {
11570
11570
  name: "numericLiteral",
11571
11571
  impl: ({ SUBRULE, OR }) => () => OR([
11572
- { ALT: () => SUBRULE(numericLiteralUnsigned, void 0) },
11573
- { ALT: () => SUBRULE(numericLiteralPositive, void 0) },
11574
- { ALT: () => SUBRULE(numericLiteralNegative, void 0) }
11572
+ { ALT: () => SUBRULE(numericLiteralUnsigned) },
11573
+ { ALT: () => SUBRULE(numericLiteralPositive) },
11574
+ { ALT: () => SUBRULE(numericLiteralNegative) }
11575
11575
  ])
11576
11576
  };
11577
11577
  var numericLiteralUnsigned = {
@@ -11679,10 +11679,10 @@ var string = {
11679
11679
  var iri2 = {
11680
11680
  name: "iri",
11681
11681
  impl: ({ SUBRULE, OR }) => () => OR([
11682
- { ALT: () => SUBRULE(iriFull, void 0) },
11683
- { ALT: () => SUBRULE(prefixedName, void 0) }
11682
+ { ALT: () => SUBRULE(iriFull) },
11683
+ { ALT: () => SUBRULE(prefixedName) }
11684
11684
  ]),
11685
- gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => F2.isTermNamedPrefixed(ast) ? SUBRULE(prefixedName, ast, void 0) : SUBRULE(iriFull, ast, void 0)
11685
+ gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => F2.isTermNamedPrefixed(ast) ? SUBRULE(prefixedName, ast) : SUBRULE(iriFull, ast)
11686
11686
  };
11687
11687
  var iriFull = {
11688
11688
  name: "iriFull",
@@ -11754,11 +11754,11 @@ function datasetClauseUsing(name, token) {
11754
11754
  const start = CONSUME(token);
11755
11755
  return OR([
11756
11756
  { ALT: () => {
11757
- const iri3 = SUBRULE(defaultGraphClause, void 0);
11757
+ const iri3 = SUBRULE(defaultGraphClause);
11758
11758
  return ACTION(() => C.factory.wrap({ clauseType: "default", value: iri3 }, C.factory.sourceLocation(start, iri3)));
11759
11759
  } },
11760
11760
  { ALT: () => {
11761
- const namedClause = SUBRULE(namedGraphClause, void 0);
11761
+ const namedClause = SUBRULE(namedGraphClause);
11762
11762
  return ACTION(() => C.factory.wrap({
11763
11763
  clauseType: "named",
11764
11764
  value: namedClause.val
@@ -11771,7 +11771,7 @@ function datasetClauseUsing(name, token) {
11771
11771
  var datasetClause = datasetClauseUsing("datasetClause", from);
11772
11772
  var defaultGraphClause = {
11773
11773
  name: "defaultGraphClause",
11774
- impl: ({ SUBRULE }) => () => SUBRULE(sourceSelector, void 0)
11774
+ impl: ({ SUBRULE }) => () => SUBRULE(sourceSelector)
11775
11775
  };
11776
11776
  var usingClause2 = datasetClauseUsing("usingClause", usingClause);
11777
11777
  function datasetClauseUsingStar(name, subRule, fromUsing) {
@@ -11780,7 +11780,7 @@ function datasetClauseUsingStar(name, subRule, fromUsing) {
11780
11780
  impl: ({ ACTION, MANY, SUBRULE }) => (C) => {
11781
11781
  const clauses = [];
11782
11782
  MANY(() => {
11783
- const clause = SUBRULE(subRule, void 0);
11783
+ const clause = SUBRULE(subRule);
11784
11784
  clauses.push(clause);
11785
11785
  });
11786
11786
  return ACTION(() => C.factory.datasetClauses(
@@ -11794,7 +11794,7 @@ function datasetClauseUsingStar(name, subRule, fromUsing) {
11794
11794
  if (clause.clauseType === "named") {
11795
11795
  F2.printFilter(ast, () => PRINT_WORD("NAMED"));
11796
11796
  }
11797
- SUBRULE(iri2, clause.value, void 0);
11797
+ SUBRULE(iri2, clause.value);
11798
11798
  }
11799
11799
  }
11800
11800
  };
@@ -11805,1389 +11805,1390 @@ var namedGraphClause = {
11805
11805
  name: "namedGraphClause",
11806
11806
  impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
11807
11807
  const named2 = CONSUME(graph_exports.named);
11808
- const iri3 = SUBRULE(sourceSelector, void 0);
11808
+ const iri3 = SUBRULE(sourceSelector);
11809
11809
  return ACTION(() => C.factory.wrap(iri3, C.factory.sourceLocation(named2, iri3)));
11810
11810
  }
11811
11811
  };
11812
11812
  var sourceSelector = {
11813
11813
  name: "sourceSelector",
11814
- impl: ({ SUBRULE }) => () => SUBRULE(iri2, void 0)
11814
+ impl: ({ SUBRULE }) => () => SUBRULE(iri2)
11815
11815
  };
11816
11816
 
11817
- // ../../packages/rules-sparql-1-1/lib/grammar/general.ts
11818
- var prologue = {
11819
- name: "prologue",
11820
- impl: ({ SUBRULE, MANY, OR }) => () => {
11821
- const result = [];
11822
- MANY(() => OR([
11823
- { ALT: () => result.push(SUBRULE(baseDecl2, void 0)) },
11824
- // TODO: the [spec](https://www.w3.org/TR/sparql11-query/#iriRefs) says you cannot redefine prefixes.
11825
- // We might need to check this.
11826
- { ALT: () => result.push(SUBRULE(prefixDecl2, void 0)) }
11827
- ]));
11828
- return result;
11829
- },
11830
- gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
11831
- for (const context of ast) {
11832
- if (F2.isContextDefinitionBase(context)) {
11833
- SUBRULE(baseDecl2, context, void 0);
11834
- } else if (F2.isContextDefinitionPrefix(context)) {
11835
- SUBRULE(prefixDecl2, context, void 0);
11836
- }
11837
- }
11838
- }
11839
- };
11840
- var baseDecl2 = {
11841
- name: "baseDecl",
11842
- impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {
11843
- const base = CONSUME(baseDecl);
11844
- const val = SUBRULE(iriFull, void 0);
11845
- return ACTION(() => C.factory.contextDefinitionBase(C.factory.sourceLocation(base, val), val));
11846
- },
11847
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
11848
- F2.printFilter(ast, () => PRINT_WORD("BASE"));
11849
- SUBRULE(iri2, ast.value, void 0);
11850
- }
11851
- };
11852
- var prefixDecl2 = {
11853
- name: "prefixDecl",
11854
- impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {
11855
- const prefix = CONSUME(prefixDecl);
11856
- const name = CONSUME(terminals_exports.pNameNs).image.slice(0, -1);
11857
- const value = SUBRULE(iriFull, void 0);
11858
- return ACTION(() => C.factory.contextDefinitionPrefix(C.factory.sourceLocation(prefix, value), name, value));
11859
- },
11860
- gImpl: ({ SUBRULE, PRINT_WORDS }) => (ast, { factory: F2 }) => {
11861
- F2.printFilter(ast, () => {
11862
- PRINT_WORDS("PREFIX", `${ast.key}:`);
11863
- });
11864
- SUBRULE(iri2, ast.value, void 0);
11865
- }
11866
- };
11867
- var verb = {
11868
- name: "verb",
11869
- impl: ({ SUBRULE, OR }) => () => OR([
11870
- { ALT: () => SUBRULE(varOrIri, void 0) },
11871
- { ALT: () => SUBRULE(verbA, void 0) }
11872
- ])
11873
- };
11874
- var varOrTerm = {
11875
- name: "varOrTerm",
11876
- impl: ({ SUBRULE, OR }) => (C) => OR([
11877
- { GATE: () => C.parseMode.has("canParseVars"), ALT: () => SUBRULE(var_, void 0) },
11878
- { ALT: () => SUBRULE(graphTerm, void 0) }
11879
- ]),
11880
- gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
11881
- if (F2.isTermVariable(ast)) {
11882
- return SUBRULE(var_, ast, void 0);
11883
- }
11884
- return SUBRULE(graphTerm, ast, void 0);
11885
- }
11886
- };
11887
- var varOrIri = {
11888
- name: "varOrIri",
11889
- impl: ({ SUBRULE, OR }) => (C) => OR([
11890
- { GATE: () => C.parseMode.has("canParseVars"), ALT: () => SUBRULE(var_, void 0) },
11891
- { ALT: () => SUBRULE(iri2, void 0) }
11892
- ])
11893
- };
11894
- var var_ = {
11895
- name: "var",
11896
- impl: ({ ACTION, CONSUME, OR }) => (C) => {
11897
- const varToken = OR([
11898
- { ALT: () => CONSUME(terminals_exports.var1) },
11899
- { ALT: () => CONSUME(terminals_exports.var2) }
11900
- ]);
11901
- return ACTION(() => C.factory.variable(varToken.image.slice(1), C.factory.sourceLocation(varToken)));
11902
- },
11903
- gImpl: ({ PRINT_WORD }) => (ast, { factory: F2 }) => {
11904
- F2.printFilter(ast, () => PRINT_WORD(`?${ast.value}`));
11905
- }
11906
- };
11907
- var graphTerm = {
11908
- name: "graphTerm",
11909
- impl: ({ ACTION, SUBRULE, CONSUME, OR }) => (C) => OR([
11910
- { ALT: () => SUBRULE(iri2, void 0) },
11911
- { ALT: () => SUBRULE(rdfLiteral, void 0) },
11912
- { ALT: () => SUBRULE(numericLiteral, void 0) },
11913
- { ALT: () => SUBRULE(booleanLiteral, void 0) },
11914
- { GATE: () => C.parseMode.has("canCreateBlankNodes"), ALT: () => SUBRULE(blankNode, void 0) },
11915
- { ALT: () => {
11916
- const tokenNil = CONSUME(terminals_exports.nil);
11917
- return ACTION(() => C.factory.namedNode(C.factory.sourceLocation(tokenNil), "http://www.w3.org/1999/02/22-rdf-syntax-ns#nil" /* NIL */));
11918
- } }
11919
- ]),
11920
- gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
11921
- if (F2.isTermNamed(ast)) {
11922
- SUBRULE(iri2, ast, void 0);
11923
- } else if (F2.isTermLiteral(ast)) {
11924
- SUBRULE(rdfLiteral, ast, void 0);
11925
- } else if (F2.isTermBlank(ast)) {
11926
- SUBRULE(blankNode, ast, void 0);
11927
- }
11928
- }
11929
- };
11930
-
11931
- // ../../packages/rules-sparql-1-1/lib/grammar/propertyPaths.ts
11932
- var path = {
11933
- name: "path",
11934
- impl: ({ SUBRULE }) => () => SUBRULE(pathAlternative, void 0)
11935
- };
11936
- var pathGenerator = {
11937
- name: "path",
11938
- gImpl: ({ PRINT, SUBRULE }) => (ast, { factory: F2 }, braces = true) => {
11939
- if (F2.isTerm(ast) && F2.isTermNamed(ast)) {
11940
- SUBRULE(iri2, ast, void 0);
11941
- } else {
11942
- F2.printFilter(ast, () => braces && PRINT("("));
11943
- switch (ast.subType) {
11944
- case "|":
11945
- case "/": {
11946
- const [head2, ...tail] = ast.items;
11947
- SUBRULE(pathGenerator, head2, braces);
11948
- for (const val of tail) {
11949
- F2.printFilter(ast, () => PRINT(ast.subType));
11950
- SUBRULE(pathGenerator, val, braces);
11951
- }
11952
- break;
11953
- }
11954
- case "^":
11955
- F2.printFilter(ast, () => PRINT("^"));
11956
- SUBRULE(pathGenerator, ast.items[0], braces);
11957
- break;
11958
- case "?":
11959
- case "*":
11960
- case "+":
11961
- SUBRULE(pathGenerator, ast.items[0], braces);
11962
- F2.printFilter(ast, () => PRINT(ast.subType));
11963
- break;
11964
- case "!":
11965
- F2.printFilter(ast, () => PRINT("!"));
11966
- F2.printFilter(ast, () => PRINT("("));
11967
- SUBRULE(pathGenerator, ast.items[0], false);
11968
- F2.printFilter(ast, () => PRINT(")"));
11969
- break;
11970
- }
11971
- F2.printFilter(ast, () => braces && PRINT(")"));
11972
- }
11973
- }
11974
- };
11975
- function pathChainHelper(name, SEP, subType, subRule) {
11817
+ // ../../packages/rules-sparql-1-1/lib/expressionHelpers.ts
11818
+ function funcExpr1(func) {
11976
11819
  return {
11977
- name,
11978
- impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, MANY }) => (C) => {
11979
- const head2 = SUBRULE1(subRule, void 0);
11980
- let tailEnd = head2;
11981
- const tail = [];
11982
- MANY(() => {
11983
- CONSUME(SEP);
11984
- tailEnd = SUBRULE2(subRule, void 0);
11985
- tail.push(tailEnd);
11986
- });
11987
- return ACTION(() => tail.length === 0 ? head2 : C.factory.path(subType, [head2, ...tail], C.factory.sourceLocation(head2, tailEnd)));
11820
+ name: unCapitalize(func.name),
11821
+ impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
11822
+ const operator = CONSUME(func);
11823
+ CONSUME(symbols_exports.LParen);
11824
+ const arg = SUBRULE(expression);
11825
+ const close = CONSUME(symbols_exports.RParen);
11826
+ return ACTION(() => C.factory.expressionOperation(operator.image, [arg], C.factory.sourceLocation(operator, close)));
11988
11827
  }
11989
11828
  };
11990
11829
  }
11991
- var pathEltOrInverse = {
11992
- name: "pathEltOrInverse",
11993
- impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, OR }) => (C) => OR([
11994
- { ALT: () => SUBRULE1(pathElt, void 0) },
11995
- { ALT: () => {
11996
- const hat2 = CONSUME(symbols_exports.hat);
11997
- const item = SUBRULE2(pathElt, void 0);
11998
- return ACTION(() => C.factory.path("^", [item], C.factory.sourceLocation(hat2, item)));
11999
- } }
12000
- ])
12001
- };
12002
- var pathSequence = pathChainHelper("pathSequence", symbols_exports.slash, "/", pathEltOrInverse);
12003
- var pathAlternative = pathChainHelper("pathAlternative", symbols_exports.pipe, "|", pathSequence);
12004
- var pathElt = {
12005
- name: "pathElt",
12006
- impl: ({ ACTION, SUBRULE, OPTION }) => (C) => {
12007
- const item = SUBRULE(pathPrimary, void 0);
12008
- const modification = OPTION(() => SUBRULE(pathMod, void 0));
12009
- return ACTION(() => modification === void 0 ? item : C.factory.path(modification.image, [item], C.factory.sourceLocation(item, modification)));
12010
- }
12011
- };
12012
- var pathMod = {
12013
- name: "pathMod",
12014
- impl: ({ CONSUME, OR }) => () => OR([
12015
- { ALT: () => CONSUME(symbols_exports.question) },
12016
- { ALT: () => CONSUME(symbols_exports.star) },
12017
- { ALT: () => CONSUME(symbols_exports.opPlus) }
12018
- ])
12019
- };
12020
- var pathPrimary = {
12021
- name: "pathPrimary",
12022
- impl: ({ SUBRULE, CONSUME, OR }) => () => OR([
12023
- { ALT: () => SUBRULE(iri2, void 0) },
12024
- { ALT: () => SUBRULE(verbA, void 0) },
12025
- { ALT: () => SUBRULE(pathNegatedPropertySet, void 0) },
12026
- { ALT: () => {
11830
+ function funcExpr2(func) {
11831
+ return {
11832
+ name: unCapitalize(func.name),
11833
+ impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2 }) => (C) => {
11834
+ const operator = CONSUME(func);
12027
11835
  CONSUME(symbols_exports.LParen);
12028
- const resRecursive = SUBRULE(path, void 0);
12029
- CONSUME(symbols_exports.RParen);
12030
- return resRecursive;
12031
- } }
12032
- ])
12033
- };
12034
- var pathNegatedPropertySet = {
12035
- name: "pathNegatedPropertySet",
12036
- impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, SUBRULE3, OR, MANY }) => (C) => {
12037
- const exclamation2 = CONSUME(symbols_exports.exclamation);
12038
- return OR([
12039
- { ALT: () => {
12040
- const noAlternative = SUBRULE1(pathOneInPropertySet, void 0);
12041
- return ACTION(() => C.factory.path("!", [noAlternative], C.factory.sourceLocation(exclamation2, noAlternative)));
12042
- } },
12043
- { ALT: () => {
12044
- const open = CONSUME(symbols_exports.LParen);
12045
- const head2 = SUBRULE2(pathOneInPropertySet, void 0);
12046
- const tail = [];
12047
- MANY(() => {
12048
- CONSUME(symbols_exports.pipe);
12049
- const item = SUBRULE3(pathOneInPropertySet, void 0);
12050
- tail.push(item);
12051
- });
12052
- const close = CONSUME(symbols_exports.RParen);
12053
- return ACTION(() => {
12054
- const F2 = C.factory;
12055
- if (tail.length === 0) {
12056
- return F2.path("!", [head2], F2.sourceLocation(exclamation2, close));
12057
- }
12058
- return F2.path(
12059
- "!",
12060
- [F2.path("|", [head2, ...tail], F2.sourceLocation(open, close))],
12061
- F2.sourceLocation(exclamation2, close)
12062
- );
12063
- });
12064
- } }
12065
- ]);
12066
- }
12067
- };
12068
- var pathOneInPropertySet = {
12069
- name: "pathOneInPropertySet",
12070
- impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, OR1, OR2 }) => (C) => OR1([
12071
- { ALT: () => SUBRULE1(iri2, void 0) },
12072
- { ALT: () => SUBRULE1(verbA, void 0) },
12073
- { ALT: () => {
12074
- const hat2 = CONSUME(symbols_exports.hat);
12075
- const item = OR2([
12076
- { ALT: () => SUBRULE2(iri2, void 0) },
12077
- { ALT: () => SUBRULE2(verbA, void 0) }
12078
- ]);
12079
- return ACTION(() => C.factory.path("^", [item], C.factory.sourceLocation(hat2, item)));
12080
- } }
12081
- ])
12082
- };
12083
-
12084
- // ../../packages/rules-sparql-1-1/lib/grammar/tripleBlock.ts
12085
- function triplesDotSeperated(triplesSameSubjectSubrule) {
12086
- return ({ ACTION, AT_LEAST_ONE, SUBRULE, CONSUME, OPTION }) => (C) => {
12087
- const triples = [];
12088
- let parsedDot = true;
12089
- let dotToken;
12090
- AT_LEAST_ONE({
12091
- GATE: () => parsedDot,
12092
- DEF: () => {
12093
- parsedDot = false;
12094
- const template = SUBRULE(triplesSameSubjectSubrule, void 0);
12095
- ACTION(() => {
12096
- triples.push(...template);
12097
- });
12098
- OPTION(() => {
12099
- dotToken = CONSUME(symbols_exports.dot);
12100
- parsedDot = true;
12101
- });
12102
- }
12103
- });
12104
- return ACTION(() => C.factory.patternBgp(triples, C.factory.sourceLocation(...triples, dotToken)));
12105
- };
12106
- }
12107
- var triplesBlock = {
12108
- name: "triplesBlock",
12109
- impl: (implArgs) => (C) => triplesDotSeperated(triplesSameSubjectPath)(implArgs)(C, void 0),
12110
- gImpl: ({ SUBRULE, PRINT_WORD, HANDLE_LOC }) => (ast, { factory: F2 }) => {
12111
- for (const [index, triple] of ast.triples.entries()) {
12112
- HANDLE_LOC(triple, () => {
12113
- const nextTriple = ast.triples.at(index);
12114
- if (F2.isTripleCollection(triple)) {
12115
- SUBRULE(graphNodePath, triple, void 0);
12116
- F2.printFilter(triple, () => PRINT_WORD("."));
12117
- } else {
12118
- SUBRULE(graphNodePath, triple.subject, void 0);
12119
- if (F2.isTerm(triple.predicate) && F2.isTermVariable(triple.predicate)) {
12120
- SUBRULE(varOrTerm, triple.predicate, void 0);
12121
- } else {
12122
- SUBRULE(pathGenerator, triple.predicate, void 0);
12123
- }
12124
- SUBRULE(graphNodePath, triple.object, void 0);
12125
- if (nextTriple === void 0 || F2.isTripleCollection(nextTriple) || !F2.isSourceLocationNoMaterialize(nextTriple.subject.loc)) {
12126
- F2.printFilter(ast, () => PRINT_WORD("."));
12127
- } else if (F2.isSourceLocationNoMaterialize(nextTriple.predicate.loc)) {
12128
- F2.printFilter(ast, () => PRINT_WORD(","));
12129
- } else {
12130
- F2.printFilter(ast, () => PRINT_WORD(";"));
12131
- }
12132
- }
12133
- });
11836
+ const arg1 = SUBRULE1(expression);
11837
+ CONSUME(symbols_exports.comma);
11838
+ const arg2 = SUBRULE2(expression);
11839
+ const close = CONSUME(symbols_exports.RParen);
11840
+ return ACTION(() => C.factory.expressionOperation(operator.image, [arg1, arg2], C.factory.sourceLocation(operator, close)));
12134
11841
  }
12135
- }
12136
- };
12137
- function triplesSameSubjectImpl(name, allowPaths) {
12138
- return {
12139
- name,
12140
- impl: ({ ACTION, SUBRULE, OR }) => (C) => OR([
12141
- { ALT: () => {
12142
- const subject = SUBRULE(varOrTerm, void 0);
12143
- const res = SUBRULE(
12144
- allowPaths ? propertyListPathNotEmpty : propertyListNotEmpty,
12145
- { subject: ACTION(() => C.factory.dematerialized(subject)) }
12146
- );
12147
- return ACTION(() => {
12148
- if (res.length > 0) {
12149
- res[0].subject = subject;
12150
- res[0].loc = C.factory.sourceLocation(subject, res[0]);
12151
- }
12152
- return res;
12153
- });
12154
- } },
12155
- { ALT: () => {
12156
- const subjectNode = SUBRULE(allowPaths ? triplesNodePath : triplesNode, void 0);
12157
- const restNode = SUBRULE(
12158
- allowPaths ? propertyListPath : propertyList,
12159
- { subject: ACTION(() => C.factory.graphNodeIdentifier(subjectNode)) }
12160
- );
12161
- return ACTION(() => {
12162
- if (restNode.length === 0) {
12163
- return [subjectNode];
12164
- }
12165
- restNode[0].subject = subjectNode;
12166
- restNode[0].loc = C.factory.sourceLocation(subjectNode, restNode[0]);
12167
- return restNode;
12168
- });
12169
- } }
12170
- ])
12171
11842
  };
12172
11843
  }
12173
- var triplesSameSubject = triplesSameSubjectImpl("triplesSameSubject", false);
12174
- var triplesSameSubjectPath = triplesSameSubjectImpl("triplesSameSubjectPath", true);
12175
- var triplesTemplate = {
12176
- name: "triplesTemplate",
12177
- impl: triplesDotSeperated(triplesSameSubject)
12178
- };
12179
- function propertyListImpl(name, allowPaths) {
11844
+ function funcExpr3(func) {
12180
11845
  return {
12181
- name,
12182
- impl: ({ SUBRULE, OPTION }) => (_, arg) => OPTION(() => SUBRULE(allowPaths ? propertyListPathNotEmpty : propertyListNotEmpty, arg)) ?? []
11846
+ name: unCapitalize(func.name),
11847
+ impl: ({ ACTION, CONSUME, CONSUME1, CONSUME2, SUBRULE1, SUBRULE2, SUBRULE3 }) => (C) => {
11848
+ const operator = CONSUME(func);
11849
+ CONSUME(symbols_exports.LParen);
11850
+ const arg1 = SUBRULE1(expression);
11851
+ CONSUME1(symbols_exports.comma);
11852
+ const arg2 = SUBRULE2(expression);
11853
+ CONSUME2(symbols_exports.comma);
11854
+ const arg3 = SUBRULE3(expression);
11855
+ const close = CONSUME(symbols_exports.RParen);
11856
+ return ACTION(() => C.factory.expressionOperation(operator.image, [arg1, arg2, arg3], C.factory.sourceLocation(operator, close)));
11857
+ }
12183
11858
  };
12184
11859
  }
12185
- var propertyList = propertyListImpl("propertyList", false);
12186
- var propertyListPath = propertyListImpl("propertyListPath", true);
12187
- function propertyListNotEmptyImplementation(name, allowPaths) {
11860
+ function funcVar1(func) {
12188
11861
  return {
12189
- name,
12190
- impl: ({ ACTION, CONSUME, AT_LEAST_ONE, SUBRULE1, MANY2, OR1 }) => (_, arg) => {
12191
- const result = [];
12192
- let parsedSemi = true;
12193
- AT_LEAST_ONE({
12194
- GATE: () => parsedSemi,
12195
- DEF: () => {
12196
- parsedSemi = false;
12197
- const predicate = allowPaths ? OR1([
12198
- { ALT: () => SUBRULE1(verbPath, void 0) },
12199
- { ALT: () => SUBRULE1(verbSimple, void 0) }
12200
- ]) : SUBRULE1(verb, void 0);
12201
- const triples = SUBRULE1(
12202
- allowPaths ? objectListPath : objectList,
12203
- ACTION(() => ({ subject: arg.subject, predicate }))
12204
- );
12205
- MANY2(() => {
12206
- CONSUME(symbols_exports.semi);
12207
- parsedSemi = true;
12208
- });
12209
- ACTION(() => {
12210
- result.push(...triples);
12211
- });
12212
- }
12213
- });
12214
- return result;
11862
+ name: unCapitalize(func.name),
11863
+ impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
11864
+ const operator = CONSUME(func);
11865
+ CONSUME(symbols_exports.LParen);
11866
+ const arg = SUBRULE(var_);
11867
+ const close = CONSUME(symbols_exports.RParen);
11868
+ return ACTION(() => C.factory.expressionOperation(operator.image, [arg], C.factory.sourceLocation(operator, close)));
12215
11869
  }
12216
11870
  };
12217
11871
  }
12218
- var propertyListNotEmpty = propertyListNotEmptyImplementation("propertyListNotEmpty", false);
12219
- var propertyListPathNotEmpty = propertyListNotEmptyImplementation("propertyListPathNotEmpty", true);
12220
- var verbPath = {
12221
- name: "verbPath",
12222
- impl: ({ SUBRULE }) => () => SUBRULE(path, void 0)
12223
- };
12224
- var verbSimple = {
12225
- name: "verbSimple",
12226
- impl: ({ SUBRULE }) => () => SUBRULE(var_, void 0)
12227
- };
12228
- function objectListImpl(name, allowPaths) {
11872
+ function funcExprOrNil1(func) {
12229
11873
  return {
12230
- name,
12231
- impl: ({ ACTION, SUBRULE, AT_LEAST_ONE_SEP }) => (_, arg) => {
12232
- const objects = [];
12233
- AT_LEAST_ONE_SEP({
12234
- SEP: symbols_exports.comma,
12235
- DEF: () => {
12236
- const objectTriple = SUBRULE(allowPaths ? objectPath : object, arg);
12237
- ACTION(() => {
12238
- objects.push(objectTriple);
12239
- });
12240
- }
12241
- });
12242
- return objects;
11874
+ name: unCapitalize(func.name),
11875
+ impl: ({ ACTION, CONSUME, OR, SUBRULE }) => (C) => {
11876
+ const operator = CONSUME(func);
11877
+ return OR([
11878
+ { ALT: () => {
11879
+ CONSUME(symbols_exports.LParen);
11880
+ const arg = SUBRULE(expression);
11881
+ const close = CONSUME(symbols_exports.RParen);
11882
+ return ACTION(() => C.factory.expressionOperation(operator.image, [arg], C.factory.sourceLocation(operator, close)));
11883
+ } },
11884
+ { ALT: () => {
11885
+ const nil2 = CONSUME(terminals_exports.nil);
11886
+ return ACTION(() => C.factory.expressionOperation(operator.image, [], C.factory.sourceLocation(operator, nil2)));
11887
+ } }
11888
+ ]);
12243
11889
  }
12244
11890
  };
12245
11891
  }
12246
- var objectList = objectListImpl("objectList", false);
12247
- var objectListPath = objectListImpl("objectListPath", true);
12248
- function objectImpl(name, allowPaths) {
11892
+ function funcNil1(func) {
12249
11893
  return {
12250
- name,
12251
- impl: ({ ACTION, SUBRULE }) => (C, arg) => {
12252
- const node = SUBRULE(allowPaths ? graphNodePath : graphNode, void 0);
12253
- return ACTION(() => C.factory.triple(arg.subject, arg.predicate, node));
11894
+ name: unCapitalize(func.name),
11895
+ impl: ({ ACTION, CONSUME }) => (C) => {
11896
+ const operator = CONSUME(func);
11897
+ const nil2 = CONSUME(terminals_exports.nil);
11898
+ return ACTION(() => C.factory.expressionOperation(operator.image, [], C.factory.sourceLocation(operator, nil2)));
12254
11899
  }
12255
11900
  };
12256
11901
  }
12257
- var object = objectImpl("object", false);
12258
- var objectPath = objectImpl("objectPath", true);
12259
- function collectionImpl(name, allowPaths) {
11902
+ function funcExprList1(func) {
12260
11903
  return {
12261
- name,
12262
- impl: ({ ACTION, AT_LEAST_ONE, SUBRULE, CONSUME }) => (C) => {
12263
- const terms = [];
12264
- const startToken = CONSUME(symbols_exports.LParen);
12265
- AT_LEAST_ONE(() => {
12266
- terms.push(SUBRULE(allowPaths ? graphNodePath : graphNode, void 0));
12267
- });
12268
- const endToken = CONSUME(symbols_exports.RParen);
12269
- return ACTION(() => {
12270
- const F2 = C.factory;
12271
- const triples = [];
12272
- const predFirst = F2.namedNode(F2.sourceLocationNoMaterialize(), "http://www.w3.org/1999/02/22-rdf-syntax-ns#first" /* FIRST */, void 0);
12273
- const predRest = F2.namedNode(F2.sourceLocationNoMaterialize(), "http://www.w3.org/1999/02/22-rdf-syntax-ns#rest" /* REST */, void 0);
12274
- const predNil = F2.namedNode(F2.sourceLocationNoMaterialize(), "http://www.w3.org/1999/02/22-rdf-syntax-ns#nil" /* NIL */, void 0);
12275
- const listHead = F2.blankNode(void 0, F2.sourceLocationNoMaterialize());
12276
- let iterHead = listHead;
12277
- for (const [index, term] of terms.entries()) {
12278
- const lastInList = index === terms.length - 1;
12279
- const headTriple = F2.triple(
12280
- iterHead,
12281
- predFirst,
12282
- term
12283
- );
12284
- triples.push(headTriple);
12285
- if (lastInList) {
12286
- const nilTriple = F2.triple(iterHead, predRest, predNil);
12287
- triples.push(nilTriple);
12288
- } else {
12289
- const tail = F2.blankNode(void 0, F2.sourceLocationNoMaterialize());
12290
- const linkTriple = F2.triple(iterHead, predRest, tail);
12291
- triples.push(linkTriple);
12292
- iterHead = tail;
12293
- }
12294
- }
12295
- return F2.tripleCollectionList(listHead, triples, F2.sourceLocation(startToken, endToken));
11904
+ name: unCapitalize(func.name),
11905
+ impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {
11906
+ const operator = CONSUME(func);
11907
+ const args = SUBRULE(expressionList);
11908
+ return ACTION(() => C.factory.expressionOperation(operator.image, args.val, C.factory.sourceLocation(operator, args)));
11909
+ }
11910
+ };
11911
+ }
11912
+ function funcExpr2or3(func) {
11913
+ return {
11914
+ name: unCapitalize(func.name),
11915
+ impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, SUBRULE3, CONSUME1, OPTION, CONSUME2 }) => (C) => {
11916
+ const operator = CONSUME(func);
11917
+ CONSUME(symbols_exports.LParen);
11918
+ const arg1 = SUBRULE1(expression);
11919
+ CONSUME1(symbols_exports.comma);
11920
+ const arg2 = SUBRULE2(expression);
11921
+ const arg3 = OPTION(() => {
11922
+ CONSUME2(symbols_exports.comma);
11923
+ return SUBRULE3(expression);
12296
11924
  });
12297
- },
12298
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12299
- F2.printFilter(ast, () => PRINT_WORD("("));
12300
- for (const [idx, triple] of ast.triples.entries()) {
12301
- if (idx % 2 === 0) {
12302
- SUBRULE(allowPaths ? graphNodePath : graphNode, triple.object, void 0);
12303
- }
12304
- }
12305
- F2.printFilter(ast, () => PRINT_WORD(")"));
11925
+ const close = CONSUME(symbols_exports.RParen);
11926
+ return ACTION(() => C.factory.expressionOperation(
11927
+ operator.image,
11928
+ arg3 ? [arg1, arg2, arg3] : [arg1, arg2],
11929
+ C.factory.sourceLocation(operator, close)
11930
+ ));
12306
11931
  }
12307
11932
  };
12308
11933
  }
12309
- var collection = collectionImpl("collection", false);
12310
- var collectionPath = collectionImpl("collectionPath", true);
12311
- function triplesNodeImpl(name, allowPaths) {
11934
+ function funcExpr3or4(func) {
12312
11935
  return {
12313
- name,
12314
- impl: ({ SUBRULE, OR }) => () => OR([
12315
- { ALT: () => SUBRULE(allowPaths ? collectionPath : collection, void 0) },
12316
- { ALT: () => SUBRULE(allowPaths ? blankNodePropertyListPath : blankNodePropertyList, void 0) }
12317
- ]),
12318
- gImpl: ({ SUBRULE }) => (ast) => ast.subType === "list" ? SUBRULE(allowPaths ? collectionPath : collection, ast, void 0) : SUBRULE(allowPaths ? blankNodePropertyListPath : blankNodePropertyList, ast, void 0)
11936
+ name: unCapitalize(func.name),
11937
+ impl: ({
11938
+ ACTION,
11939
+ CONSUME,
11940
+ SUBRULE1,
11941
+ SUBRULE2,
11942
+ SUBRULE3,
11943
+ SUBRULE4,
11944
+ CONSUME1,
11945
+ OPTION,
11946
+ CONSUME2,
11947
+ CONSUME3
11948
+ }) => (C) => {
11949
+ const operator = CONSUME(func);
11950
+ CONSUME(symbols_exports.LParen);
11951
+ const arg1 = SUBRULE1(expression);
11952
+ CONSUME1(symbols_exports.comma);
11953
+ const arg2 = SUBRULE2(expression);
11954
+ CONSUME2(symbols_exports.comma);
11955
+ const arg3 = SUBRULE3(expression);
11956
+ const arg4 = OPTION(() => {
11957
+ CONSUME3(symbols_exports.comma);
11958
+ return SUBRULE4(expression);
11959
+ });
11960
+ const close = CONSUME(symbols_exports.RParen);
11961
+ return ACTION(() => C.factory.expressionOperation(
11962
+ operator.image,
11963
+ arg4 ? [arg1, arg2, arg3, arg4] : [arg1, arg2, arg3],
11964
+ C.factory.sourceLocation(operator, close)
11965
+ ));
11966
+ }
12319
11967
  };
12320
11968
  }
12321
- var triplesNode = triplesNodeImpl("triplesNode", false);
12322
- var triplesNodePath = triplesNodeImpl("triplesNodePath", true);
12323
- function blankNodePropertyListImpl(name, allowPaths) {
12324
- const propertyPathNotEmptyImpl = allowPaths ? propertyListPathNotEmpty : propertyListNotEmpty;
11969
+ function funcGroupGraphPattern(func) {
12325
11970
  return {
12326
- name,
11971
+ name: unCapitalize(func.name),
12327
11972
  impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12328
- const startToken = CONSUME(symbols_exports.LSquare);
12329
- const blankNode2 = ACTION(() => C.factory.blankNode(void 0, C.factory.sourceLocationNoMaterialize()));
12330
- const propList = SUBRULE(propertyPathNotEmptyImpl, { subject: blankNode2 });
12331
- const endToken = CONSUME(symbols_exports.RSquare);
12332
- return ACTION(() => C.factory.tripleCollectionBlankNodeProperties(
12333
- blankNode2,
12334
- propList,
12335
- C.factory.sourceLocation(startToken, endToken)
11973
+ const operator = CONSUME(func);
11974
+ const group = SUBRULE(groupGraphPattern);
11975
+ return ACTION(() => C.factory.expressionPatternOperation(
11976
+ operator.image,
11977
+ group,
11978
+ C.factory.sourceLocation(operator, group)
12336
11979
  ));
12337
- },
12338
- gImpl: ({ SUBRULE, PRINT, PRINT_WORD, HANDLE_LOC }) => (ast, { factory: F2 }) => {
12339
- F2.printFilter(ast, () => PRINT("["));
12340
- for (const triple of ast.triples) {
12341
- HANDLE_LOC(triple, () => {
12342
- if (F2.isTerm(triple.predicate) && F2.isTermVariable(triple.predicate)) {
12343
- SUBRULE(varOrTerm, triple.predicate, void 0);
12344
- } else {
12345
- SUBRULE(pathGenerator, triple.predicate, void 0);
12346
- }
12347
- SUBRULE(graphNodePath, triple.object, void 0);
12348
- F2.printFilter(ast, () => PRINT_WORD(";"));
12349
- });
12350
- }
12351
- F2.printFilter(ast, () => PRINT("]"));
12352
11980
  }
12353
11981
  };
12354
11982
  }
12355
- var blankNodePropertyList = blankNodePropertyListImpl("blankNodePropertyList", false);
12356
- var blankNodePropertyListPath = blankNodePropertyListImpl("blankNodePropertyListPath", true);
12357
- function graphNodeImpl(name, allowPaths) {
12358
- const triplesNodeRule = allowPaths ? triplesNodePath : triplesNode;
11983
+ function baseAggregateFunc(func) {
12359
11984
  return {
12360
- name,
12361
- impl: ({ SUBRULE, OR }) => (C) => OR([
12362
- { ALT: () => SUBRULE(varOrTerm, void 0) },
12363
- {
12364
- GATE: () => C.parseMode.has("canCreateBlankNodes"),
12365
- ALT: () => SUBRULE(triplesNodeRule, void 0)
12366
- }
12367
- ]),
12368
- gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
12369
- if (F2.isTerm(ast)) {
12370
- SUBRULE(varOrTerm, ast, void 0);
12371
- } else {
12372
- SUBRULE(triplesNodeRule, ast, void 0);
12373
- }
11985
+ name: unCapitalize(func.name),
11986
+ impl: ({ ACTION, CONSUME, SUBRULE, OPTION }) => (C) => {
11987
+ const operator = CONSUME(func);
11988
+ CONSUME(symbols_exports.LParen);
11989
+ const distinct2 = OPTION(() => CONSUME(distinct));
11990
+ const expr1 = SUBRULE(expression);
11991
+ const close = CONSUME(symbols_exports.RParen);
11992
+ return ACTION(() => C.factory.aggregate(
11993
+ operator.image,
11994
+ distinct2 !== void 0,
11995
+ expr1,
11996
+ void 0,
11997
+ C.factory.sourceLocation(operator, close)
11998
+ ));
12374
11999
  }
12375
12000
  };
12376
12001
  }
12377
- var graphNode = graphNodeImpl("graphNode", false);
12378
- var graphNodePath = graphNodeImpl("graphNodePath", true);
12379
12002
 
12380
- // ../../packages/rules-sparql-1-1/lib/grammar/whereClause.ts
12381
- var whereClause = {
12382
- name: "whereClause",
12383
- impl: ({ ACTION, SUBRULE, CONSUME, OPTION }) => (C) => {
12384
- const where2 = OPTION(() => CONSUME(where));
12385
- const group = SUBRULE(groupGraphPattern, void 0);
12386
- return ACTION(() => C.factory.wrap(group, C.factory.sourceLocation(where2, group)));
12387
- },
12388
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12389
- F2.printFilter(ast, () => PRINT_WORD("WHERE"));
12390
- SUBRULE(groupGraphPattern, ast.val, void 0);
12003
+ // ../../packages/rules-sparql-1-1/lib/grammar/builtIn.ts
12004
+ var builtInStr = funcExpr1(BuildinCalls_exports.str);
12005
+ var builtInLang = funcExpr1(BuildinCalls_exports.lang);
12006
+ var builtInLangmatches = funcExpr2(BuildinCalls_exports.langmatches);
12007
+ var builtInDatatype = funcExpr1(BuildinCalls_exports.datatype);
12008
+ var builtInBound = funcVar1(BuildinCalls_exports.bound);
12009
+ var builtInIri = funcExpr1(BuildinCalls_exports.iri);
12010
+ var builtInUri = funcExpr1(BuildinCalls_exports.uri);
12011
+ var builtInBnodeSparqlJs = funcExprOrNil1(BuildinCalls_exports.bnode);
12012
+ var builtInRand = funcNil1(BuildinCalls_exports.rand);
12013
+ var builtInAbs = funcExpr1(BuildinCalls_exports.abs);
12014
+ var builtInCeil = funcExpr1(BuildinCalls_exports.ceil);
12015
+ var builtInFloor = funcExpr1(BuildinCalls_exports.floor);
12016
+ var builtInRound = funcExpr1(BuildinCalls_exports.round);
12017
+ var builtInConcat = funcExprList1(BuildinCalls_exports.concat);
12018
+ var builtInStrlen = funcExpr1(BuildinCalls_exports.strlen);
12019
+ var builtInUcase = funcExpr1(BuildinCalls_exports.ucase);
12020
+ var builtInLcase = funcExpr1(BuildinCalls_exports.lcase);
12021
+ var builtInEncode_for_uri = funcExpr1(BuildinCalls_exports.encode_for_uri);
12022
+ var builtInContains = funcExpr2(BuildinCalls_exports.contains);
12023
+ var builtInStrstarts = funcExpr2(BuildinCalls_exports.strstarts);
12024
+ var builtInStrends = funcExpr2(BuildinCalls_exports.strends);
12025
+ var builtInStrbefore = funcExpr2(BuildinCalls_exports.strbefore);
12026
+ var builtInStrafter = funcExpr2(BuildinCalls_exports.strafter);
12027
+ var builtInYear = funcExpr1(BuildinCalls_exports.year);
12028
+ var builtInMonth = funcExpr1(BuildinCalls_exports.month);
12029
+ var builtInDay = funcExpr1(BuildinCalls_exports.day);
12030
+ var builtInHours = funcExpr1(BuildinCalls_exports.hours);
12031
+ var builtInMinutes = funcExpr1(BuildinCalls_exports.minutes);
12032
+ var builtInSeconds = funcExpr1(BuildinCalls_exports.seconds);
12033
+ var builtInTimezone = funcExpr1(BuildinCalls_exports.timezone);
12034
+ var builtInTz = funcExpr1(BuildinCalls_exports.tz);
12035
+ var builtInNow = funcNil1(BuildinCalls_exports.now);
12036
+ var builtInUuid = funcNil1(BuildinCalls_exports.uuid);
12037
+ var builtInStruuid = funcNil1(BuildinCalls_exports.struuid);
12038
+ var builtInMd5 = funcExpr1(BuildinCalls_exports.md5);
12039
+ var builtInSha1 = funcExpr1(BuildinCalls_exports.sha1);
12040
+ var builtInSha256 = funcExpr1(BuildinCalls_exports.sha256);
12041
+ var builtInSha384 = funcExpr1(BuildinCalls_exports.sha384);
12042
+ var builtInSha512 = funcExpr1(BuildinCalls_exports.sha512);
12043
+ var builtInCoalesce = funcExprList1(BuildinCalls_exports.coalesce);
12044
+ var builtInIf = funcExpr3(BuildinCalls_exports.if_);
12045
+ var builtInStrlang = funcExpr2(BuildinCalls_exports.strlang);
12046
+ var builtInStrdt = funcExpr2(BuildinCalls_exports.strdt);
12047
+ var builtInSameterm = funcExpr2(BuildinCalls_exports.sameterm);
12048
+ var builtInIsiri = funcExpr1(BuildinCalls_exports.isiri);
12049
+ var builtInIsuri = funcExpr1(BuildinCalls_exports.isuri);
12050
+ var builtInIsblank = funcExpr1(BuildinCalls_exports.isblank);
12051
+ var builtInIsliteral = funcExpr1(BuildinCalls_exports.isliteral);
12052
+ var builtInIsnumeric = funcExpr1(BuildinCalls_exports.isnumeric);
12053
+ function builtInCallList(SUBRULE) {
12054
+ return [
12055
+ { ALT: () => SUBRULE(aggregate) },
12056
+ { ALT: () => SUBRULE(builtInStr) },
12057
+ { ALT: () => SUBRULE(builtInLang) },
12058
+ { ALT: () => SUBRULE(builtInLangmatches) },
12059
+ { ALT: () => SUBRULE(builtInDatatype) },
12060
+ { ALT: () => SUBRULE(builtInBound) },
12061
+ { ALT: () => SUBRULE(builtInIri) },
12062
+ { ALT: () => SUBRULE(builtInUri) },
12063
+ { ALT: () => SUBRULE(builtInBnodeSparqlJs) },
12064
+ { ALT: () => SUBRULE(builtInRand) },
12065
+ { ALT: () => SUBRULE(builtInAbs) },
12066
+ { ALT: () => SUBRULE(builtInCeil) },
12067
+ { ALT: () => SUBRULE(builtInFloor) },
12068
+ { ALT: () => SUBRULE(builtInRound) },
12069
+ { ALT: () => SUBRULE(builtInConcat) },
12070
+ { ALT: () => SUBRULE(substringExpression) },
12071
+ { ALT: () => SUBRULE(builtInStrlen) },
12072
+ { ALT: () => SUBRULE(strReplaceExpression) },
12073
+ { ALT: () => SUBRULE(builtInUcase) },
12074
+ { ALT: () => SUBRULE(builtInLcase) },
12075
+ { ALT: () => SUBRULE(builtInEncode_for_uri) },
12076
+ { ALT: () => SUBRULE(builtInContains) },
12077
+ { ALT: () => SUBRULE(builtInStrstarts) },
12078
+ { ALT: () => SUBRULE(builtInStrends) },
12079
+ { ALT: () => SUBRULE(builtInStrbefore) },
12080
+ { ALT: () => SUBRULE(builtInStrafter) },
12081
+ { ALT: () => SUBRULE(builtInYear) },
12082
+ { ALT: () => SUBRULE(builtInMonth) },
12083
+ { ALT: () => SUBRULE(builtInDay) },
12084
+ { ALT: () => SUBRULE(builtInHours) },
12085
+ { ALT: () => SUBRULE(builtInMinutes) },
12086
+ { ALT: () => SUBRULE(builtInSeconds) },
12087
+ { ALT: () => SUBRULE(builtInTimezone) },
12088
+ { ALT: () => SUBRULE(builtInTz) },
12089
+ { ALT: () => SUBRULE(builtInNow) },
12090
+ { ALT: () => SUBRULE(builtInUuid) },
12091
+ { ALT: () => SUBRULE(builtInStruuid) },
12092
+ { ALT: () => SUBRULE(builtInMd5) },
12093
+ { ALT: () => SUBRULE(builtInSha1) },
12094
+ { ALT: () => SUBRULE(builtInSha256) },
12095
+ { ALT: () => SUBRULE(builtInSha384) },
12096
+ { ALT: () => SUBRULE(builtInSha512) },
12097
+ { ALT: () => SUBRULE(builtInCoalesce) },
12098
+ { ALT: () => SUBRULE(builtInIf) },
12099
+ { ALT: () => SUBRULE(builtInStrlang) },
12100
+ { ALT: () => SUBRULE(builtInStrdt) },
12101
+ { ALT: () => SUBRULE(builtInSameterm) },
12102
+ { ALT: () => SUBRULE(builtInIsiri) },
12103
+ { ALT: () => SUBRULE(builtInIsuri) },
12104
+ { ALT: () => SUBRULE(builtInIsblank) },
12105
+ { ALT: () => SUBRULE(builtInIsliteral) },
12106
+ { ALT: () => SUBRULE(builtInIsnumeric) },
12107
+ { ALT: () => SUBRULE(regexExpression) },
12108
+ { ALT: () => SUBRULE(existsFunc) },
12109
+ { ALT: () => SUBRULE(notExistsFunc) }
12110
+ ];
12111
+ }
12112
+ var builtInCall = {
12113
+ name: "builtInCall",
12114
+ impl: ({ OR, SUBRULE, cache }) => () => {
12115
+ const cached = cache.get(builtInCall);
12116
+ if (cached) {
12117
+ return OR(cached);
12118
+ }
12119
+ const builtIns = builtInCallList(SUBRULE);
12120
+ cache.set(builtInCall, builtIns);
12121
+ return OR(builtIns);
12122
+ }
12123
+ };
12124
+ var regexExpression = funcExpr2or3(BuildinCalls_exports.regex);
12125
+ var substringExpression = funcExpr2or3(BuildinCalls_exports.substr);
12126
+ var strReplaceExpression = funcExpr3or4(BuildinCalls_exports.replace);
12127
+ var existsFunc = funcGroupGraphPattern(BuildinCalls_exports.exists);
12128
+ var notExistsFunc = funcGroupGraphPattern(BuildinCalls_exports.notexists);
12129
+ var aggregateCount = {
12130
+ name: unCapitalize(BuildinCalls_exports.count.name),
12131
+ impl: ({ ACTION, CONSUME, SUBRULE, OR, OPTION }) => (C) => {
12132
+ const operatorToken = CONSUME(BuildinCalls_exports.count);
12133
+ CONSUME(symbols_exports.LParen);
12134
+ const distinctToken = OPTION(() => CONSUME(distinct));
12135
+ const expressionVal = OR([
12136
+ { ALT: () => {
12137
+ const starToken = CONSUME(symbols_exports.star);
12138
+ return ACTION(() => C.factory.wildcard(C.factory.sourceLocation(starToken)));
12139
+ } },
12140
+ { ALT: () => SUBRULE(expression) }
12141
+ ]);
12142
+ const closeToken = CONSUME(symbols_exports.RParen);
12143
+ return ACTION(() => {
12144
+ const F2 = C.factory;
12145
+ if (C.factory.isWildcard(expressionVal)) {
12146
+ return F2.aggregate(
12147
+ operatorToken.image,
12148
+ Boolean(distinctToken),
12149
+ expressionVal,
12150
+ void 0,
12151
+ C.factory.sourceLocation(operatorToken, closeToken)
12152
+ );
12153
+ }
12154
+ return F2.aggregate(
12155
+ operatorToken.image,
12156
+ Boolean(distinctToken),
12157
+ expressionVal,
12158
+ void 0,
12159
+ C.factory.sourceLocation(operatorToken, closeToken)
12160
+ );
12161
+ });
12162
+ }
12163
+ };
12164
+ var aggregateSum = baseAggregateFunc(BuildinCalls_exports.sum);
12165
+ var aggregateMin = baseAggregateFunc(BuildinCalls_exports.min);
12166
+ var aggregateMax = baseAggregateFunc(BuildinCalls_exports.max);
12167
+ var aggregateAvg = baseAggregateFunc(BuildinCalls_exports.avg);
12168
+ var aggregateSample = baseAggregateFunc(BuildinCalls_exports.sample);
12169
+ var aggregateGroup_concat = {
12170
+ name: unCapitalize(BuildinCalls_exports.groupConcat.name),
12171
+ impl: ({ ACTION, CONSUME, OPTION1, SUBRULE, OPTION2 }) => (C) => {
12172
+ const operatorToken = CONSUME(BuildinCalls_exports.groupConcat);
12173
+ CONSUME(symbols_exports.LParen);
12174
+ const distinctToken = OPTION1(() => CONSUME(distinct));
12175
+ const expr = SUBRULE(expression);
12176
+ const sep = OPTION2(() => {
12177
+ CONSUME(symbols_exports.semi);
12178
+ CONSUME(separator);
12179
+ CONSUME(symbols_exports.equal);
12180
+ return SUBRULE(string);
12181
+ });
12182
+ const closeToken = CONSUME(symbols_exports.RParen);
12183
+ return ACTION(() => {
12184
+ const F2 = C.factory;
12185
+ return F2.aggregate(
12186
+ operatorToken.image,
12187
+ Boolean(distinctToken),
12188
+ expr,
12189
+ sep?.value ?? " ",
12190
+ F2.sourceLocation(operatorToken, closeToken)
12191
+ );
12192
+ });
12391
12193
  }
12392
12194
  };
12393
- var groupGraphPattern = {
12394
- name: "groupGraphPattern",
12395
- impl: ({ ACTION, SUBRULE, CONSUME, OR }) => (C) => {
12396
- const open = CONSUME(symbols_exports.LCurly);
12397
- const patterns = OR([
12398
- { ALT: () => [SUBRULE(subSelect, void 0)] },
12399
- { ALT: () => SUBRULE(groupGraphPatternSub, void 0) }
12195
+ var aggregate = {
12196
+ name: "aggregate",
12197
+ impl: ({ ACTION, SUBRULE, OR }) => (C) => {
12198
+ const wasInAggregate = ACTION(() => C.parseMode.has("inAggregate"));
12199
+ ACTION(() => C.parseMode.add("inAggregate"));
12200
+ const result = OR([
12201
+ { ALT: () => SUBRULE(aggregateCount) },
12202
+ { ALT: () => SUBRULE(aggregateSum) },
12203
+ { ALT: () => SUBRULE(aggregateMin) },
12204
+ { ALT: () => SUBRULE(aggregateMax) },
12205
+ { ALT: () => SUBRULE(aggregateAvg) },
12206
+ { ALT: () => SUBRULE(aggregateSample) },
12207
+ { ALT: () => SUBRULE(aggregateGroup_concat) }
12400
12208
  ]);
12401
- const close = CONSUME(symbols_exports.RCurly);
12402
- return ACTION(() => C.factory.patternGroup(patterns, C.factory.sourceLocation(open, close)));
12209
+ ACTION(() => !wasInAggregate && C.parseMode.delete("inAggregate"));
12210
+ ACTION(() => {
12211
+ if (!C.parseMode.has("canParseAggregate")) {
12212
+ throw new Error("Aggregates are only allowed in SELECT, HAVING, and ORDER BY clauses.");
12213
+ }
12214
+ if (C.parseMode.has("inAggregate")) {
12215
+ throw new Error("An aggregate function is not allowed within an aggregate function.");
12216
+ }
12217
+ });
12218
+ return result;
12403
12219
  },
12404
12220
  gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12405
- F2.printFilter(ast, () => PRINT_WORD("{"));
12406
- for (const pattern of ast.patterns) {
12407
- SUBRULE(generatePattern, pattern, void 0);
12221
+ F2.printFilter(ast, () => {
12222
+ PRINT_WORD(ast.aggregation, "(");
12223
+ if (ast.distinct) {
12224
+ PRINT_WORD("DISTINCT");
12225
+ }
12226
+ });
12227
+ const arg = ast.expression[0];
12228
+ if (F2.isWildcard(arg)) {
12229
+ F2.printFilter(ast, () => PRINT_WORD("*"));
12230
+ } else {
12231
+ SUBRULE(expression, arg);
12408
12232
  }
12409
- F2.printFilter(ast, () => PRINT_WORD("}"));
12233
+ if (F2.isExpressionAggregateSeparator(ast)) {
12234
+ F2.printFilter(ast, () => PRINT_WORD(";", "SEPARATOR", "=", stringEscapedLexical(ast.separator)));
12235
+ }
12236
+ F2.printFilter(ast, () => PRINT_WORD(")"));
12410
12237
  }
12411
12238
  };
12412
- var generatePattern = {
12413
- name: "generatePattern",
12239
+
12240
+ // ../../packages/rules-sparql-1-1/lib/grammar/general.ts
12241
+ var prologue = {
12242
+ name: "prologue",
12243
+ impl: ({ SUBRULE, MANY, OR }) => () => {
12244
+ const result = [];
12245
+ MANY(() => OR([
12246
+ { ALT: () => result.push(SUBRULE(baseDecl2)) },
12247
+ // TODO: the [spec](https://www.w3.org/TR/sparql11-query/#iriRefs) says you cannot redefine prefixes.
12248
+ // We might need to check this.
12249
+ { ALT: () => result.push(SUBRULE(prefixDecl2)) }
12250
+ ]));
12251
+ return result;
12252
+ },
12414
12253
  gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
12415
- if (ast.type === "query") {
12416
- SUBRULE(query, F2.querySelect({
12417
- context: [],
12418
- datasets: F2.datasetClauses([], F2.sourceLocation()),
12419
- where: ast.where,
12420
- variables: ast.variables,
12421
- solutionModifiers: ast.solutionModifiers,
12422
- values: ast.values,
12423
- distinct: ast.distinct,
12424
- reduced: ast.reduced
12425
- }, ast.loc), void 0);
12426
- } else if (ast.subType === "group") {
12427
- SUBRULE(groupGraphPattern, ast, void 0);
12428
- } else if (ast.subType === "bgp") {
12429
- SUBRULE(triplesBlock, ast, void 0);
12430
- } else {
12431
- SUBRULE(graphPatternNotTriples, ast, void 0);
12254
+ for (const context of ast) {
12255
+ if (F2.isContextDefinitionBase(context)) {
12256
+ SUBRULE(baseDecl2, context);
12257
+ } else if (F2.isContextDefinitionPrefix(context)) {
12258
+ SUBRULE(prefixDecl2, context);
12259
+ }
12432
12260
  }
12433
12261
  }
12434
12262
  };
12435
- var groupGraphPatternSub = {
12436
- name: "groupGraphPatternSub",
12437
- impl: ({ ACTION, SUBRULE, CONSUME, MANY, SUBRULE1, SUBRULE2, OPTION1, OPTION2, OPTION3 }) => () => {
12438
- const patterns = [];
12439
- const bgpPattern = OPTION1(() => SUBRULE1(triplesBlock, void 0));
12440
- if (bgpPattern) {
12441
- patterns.push(bgpPattern);
12442
- }
12443
- MANY(() => {
12444
- const notTriples = SUBRULE(graphPatternNotTriples, void 0);
12445
- patterns.push(notTriples);
12446
- OPTION2(() => CONSUME(symbols_exports.dot));
12447
- const moreTriples = OPTION3(() => SUBRULE2(triplesBlock, void 0));
12448
- if (moreTriples) {
12449
- patterns.push(moreTriples);
12450
- }
12263
+ var baseDecl2 = {
12264
+ name: "baseDecl",
12265
+ impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {
12266
+ const base = CONSUME(baseDecl);
12267
+ const val = SUBRULE(iriFull);
12268
+ return ACTION(() => C.factory.contextDefinitionBase(C.factory.sourceLocation(base, val), val));
12269
+ },
12270
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12271
+ F2.printFilter(ast, () => PRINT_WORD("BASE"));
12272
+ SUBRULE(iri2, ast.value);
12273
+ }
12274
+ };
12275
+ var prefixDecl2 = {
12276
+ name: "prefixDecl",
12277
+ impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {
12278
+ const prefix = CONSUME(prefixDecl);
12279
+ const name = CONSUME(terminals_exports.pNameNs).image.slice(0, -1);
12280
+ const value = SUBRULE(iriFull);
12281
+ return ACTION(() => C.factory.contextDefinitionPrefix(C.factory.sourceLocation(prefix, value), name, value));
12282
+ },
12283
+ gImpl: ({ SUBRULE, PRINT_WORDS }) => (ast, { factory: F2 }) => {
12284
+ F2.printFilter(ast, () => {
12285
+ PRINT_WORDS("PREFIX", `${ast.key}:`);
12451
12286
  });
12452
- ACTION(() => checkNote13(patterns));
12453
- return patterns;
12287
+ SUBRULE(iri2, ast.value);
12454
12288
  }
12455
12289
  };
12456
- var graphPatternNotTriples = {
12457
- name: "graphPatternNotTriples",
12290
+ var verb = {
12291
+ name: "verb",
12458
12292
  impl: ({ SUBRULE, OR }) => () => OR([
12459
- { ALT: () => SUBRULE(groupOrUnionGraphPattern, void 0) },
12460
- { ALT: () => SUBRULE(optionalGraphPattern, void 0) },
12461
- { ALT: () => SUBRULE(minusGraphPattern, void 0) },
12462
- { ALT: () => SUBRULE(graphGraphPattern, void 0) },
12463
- { ALT: () => SUBRULE(serviceGraphPattern, void 0) },
12464
- { ALT: () => SUBRULE(filter3, void 0) },
12465
- { ALT: () => SUBRULE(bind2, void 0) },
12466
- { ALT: () => SUBRULE(inlineData, void 0) }
12293
+ { ALT: () => SUBRULE(varOrIri) },
12294
+ { ALT: () => SUBRULE(verbA) }
12295
+ ])
12296
+ };
12297
+ var varOrTerm = {
12298
+ name: "varOrTerm",
12299
+ impl: ({ SUBRULE, OR }) => (C) => OR([
12300
+ { GATE: () => C.parseMode.has("canParseVars"), ALT: () => SUBRULE(var_) },
12301
+ { ALT: () => SUBRULE(graphTerm) }
12467
12302
  ]),
12468
- gImpl: ({ SUBRULE }) => (ast) => {
12469
- switch (ast.subType) {
12470
- case "group":
12471
- case "union":
12472
- SUBRULE(groupOrUnionGraphPattern, ast, void 0);
12473
- break;
12474
- case "optional":
12475
- SUBRULE(optionalGraphPattern, ast, void 0);
12476
- break;
12477
- case "minus":
12478
- SUBRULE(minusGraphPattern, ast, void 0);
12479
- break;
12480
- case "graph":
12481
- SUBRULE(graphGraphPattern, ast, void 0);
12482
- break;
12483
- case "service":
12484
- SUBRULE(serviceGraphPattern, ast, void 0);
12485
- break;
12486
- case "filter":
12487
- SUBRULE(filter3, ast, void 0);
12488
- break;
12489
- case "bind":
12490
- SUBRULE(bind2, ast, void 0);
12491
- break;
12492
- case "values":
12493
- SUBRULE(inlineData, ast, void 0);
12494
- break;
12303
+ gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
12304
+ if (F2.isTermVariable(ast)) {
12305
+ return SUBRULE(var_, ast);
12495
12306
  }
12307
+ return SUBRULE(graphTerm, ast);
12496
12308
  }
12497
12309
  };
12498
- var optionalGraphPattern = {
12499
- name: "optionalGraphPattern",
12500
- impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12501
- const optional2 = CONSUME(optional);
12502
- const group = SUBRULE(groupGraphPattern, void 0);
12503
- return ACTION(() => C.factory.patternOptional(group.patterns, C.factory.sourceLocation(optional2, group)));
12504
- },
12505
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12506
- F2.printFilter(ast, () => PRINT_WORD("OPTIONAL"));
12507
- SUBRULE(groupGraphPattern, F2.patternGroup(ast.patterns, ast.loc), void 0);
12508
- }
12310
+ var varOrIri = {
12311
+ name: "varOrIri",
12312
+ impl: ({ SUBRULE, OR }) => (C) => OR([
12313
+ { GATE: () => C.parseMode.has("canParseVars"), ALT: () => SUBRULE(var_) },
12314
+ { ALT: () => SUBRULE(iri2) }
12315
+ ])
12509
12316
  };
12510
- var graphGraphPattern = {
12511
- name: "graphGraphPattern",
12512
- impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12513
- const graph2 = CONSUME(graph_exports.graph);
12514
- const name = SUBRULE(varOrIri, void 0);
12515
- const group = SUBRULE(groupGraphPattern, void 0);
12516
- return ACTION(() => C.factory.patternGraph(name, group.patterns, C.factory.sourceLocation(graph2, group)));
12317
+ var var_ = {
12318
+ name: "var",
12319
+ impl: ({ ACTION, CONSUME, OR }) => (C) => {
12320
+ const varToken = OR([
12321
+ { ALT: () => CONSUME(terminals_exports.var1) },
12322
+ { ALT: () => CONSUME(terminals_exports.var2) }
12323
+ ]);
12324
+ return ACTION(() => C.factory.variable(varToken.image.slice(1), C.factory.sourceLocation(varToken)));
12517
12325
  },
12518
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12519
- F2.printFilter(ast, () => PRINT_WORD("GRAPH"));
12520
- SUBRULE(varOrTerm, ast.name, void 0);
12521
- SUBRULE(groupGraphPattern, F2.patternGroup(ast.patterns, ast.loc), void 0);
12326
+ gImpl: ({ PRINT_WORD }) => (ast, { factory: F2 }) => {
12327
+ F2.printFilter(ast, () => PRINT_WORD(`?${ast.value}`));
12522
12328
  }
12523
12329
  };
12524
- var serviceGraphPattern = {
12525
- name: "serviceGraphPattern",
12526
- impl: ({ ACTION, SUBRULE1, CONSUME, OPTION }) => (C) => {
12527
- const service2 = CONSUME(service);
12528
- const silent2 = OPTION(() => {
12529
- CONSUME(silent);
12530
- return true;
12531
- }) ?? false;
12532
- const name = SUBRULE1(varOrIri, void 0);
12533
- const group = SUBRULE1(groupGraphPattern, void 0);
12534
- return ACTION(() => C.factory.patternService(name, group.patterns, silent2, C.factory.sourceLocation(service2, group)));
12535
- },
12536
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12537
- F2.printFilter(ast, () => {
12538
- PRINT_WORD("SERVICE");
12539
- if (ast.silent) {
12540
- PRINT_WORD("SILENT");
12541
- }
12542
- });
12543
- SUBRULE(varOrTerm, ast.name, void 0);
12544
- SUBRULE(groupGraphPattern, F2.patternGroup(ast.patterns, ast.loc), void 0);
12330
+ var graphTerm = {
12331
+ name: "graphTerm",
12332
+ impl: ({ ACTION, SUBRULE, CONSUME, OR }) => (C) => OR([
12333
+ { ALT: () => SUBRULE(iri2) },
12334
+ { ALT: () => SUBRULE(rdfLiteral) },
12335
+ { ALT: () => SUBRULE(numericLiteral) },
12336
+ { ALT: () => SUBRULE(booleanLiteral) },
12337
+ { GATE: () => C.parseMode.has("canCreateBlankNodes"), ALT: () => SUBRULE(blankNode) },
12338
+ { ALT: () => {
12339
+ const tokenNil = CONSUME(terminals_exports.nil);
12340
+ return ACTION(() => C.factory.namedNode(C.factory.sourceLocation(tokenNil), "http://www.w3.org/1999/02/22-rdf-syntax-ns#nil" /* NIL */));
12341
+ } }
12342
+ ]),
12343
+ gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
12344
+ if (F2.isTermNamed(ast)) {
12345
+ SUBRULE(iri2, ast);
12346
+ } else if (F2.isTermLiteral(ast)) {
12347
+ SUBRULE(rdfLiteral, ast);
12348
+ } else if (F2.isTermBlank(ast)) {
12349
+ SUBRULE(blankNode, ast);
12350
+ }
12545
12351
  }
12546
12352
  };
12547
- var bind2 = {
12548
- name: "bind",
12549
- impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12550
- const bind3 = CONSUME(bind);
12551
- CONSUME(symbols_exports.LParen);
12552
- const expressionVal = SUBRULE(expression, void 0);
12553
- CONSUME(as);
12554
- const variable = SUBRULE(var_, void 0);
12555
- const close = CONSUME(symbols_exports.RParen);
12556
- return ACTION(() => C.factory.patternBind(expressionVal, variable, C.factory.sourceLocation(bind3, close)));
12557
- },
12558
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12559
- F2.printFilter(ast, () => PRINT_WORD("BIND", "("));
12560
- SUBRULE(expression, ast.expression, void 0);
12561
- F2.printFilter(ast, () => PRINT_WORD("AS"));
12562
- SUBRULE(var_, ast.variable, void 0);
12563
- F2.printFilter(ast, () => PRINT_WORD(")"));
12564
- }
12353
+
12354
+ // ../../packages/rules-sparql-1-1/lib/grammar/propertyPaths.ts
12355
+ var path = {
12356
+ name: "path",
12357
+ impl: ({ SUBRULE }) => () => SUBRULE(pathAlternative)
12565
12358
  };
12566
- var inlineData = {
12567
- name: "inlineData",
12568
- impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12569
- const values3 = CONSUME(values2);
12570
- const datablock = SUBRULE(dataBlock, void 0);
12571
- return ACTION(() => C.factory.patternValues(datablock.val, C.factory.sourceLocation(values3, datablock)));
12572
- },
12573
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12574
- const variables = Object.keys(ast.values[0]);
12575
- F2.printFilter(ast, () => {
12576
- PRINT_WORD("VALUES", "(");
12577
- for (const variable of variables) {
12578
- PRINT_WORD(`?${variable}`);
12579
- }
12580
- PRINT_WORD(")", "{");
12581
- });
12582
- for (const mapping of ast.values) {
12583
- F2.printFilter(ast, () => PRINT_WORD("("));
12584
- for (const variable of variables) {
12585
- if (mapping[variable] === void 0) {
12586
- F2.printFilter(ast, () => PRINT_WORD("UNDEF"));
12587
- } else {
12588
- SUBRULE(graphNodePath, mapping[variable], void 0);
12359
+ var pathGenerator = {
12360
+ name: "path",
12361
+ gImpl: ({ PRINT, SUBRULE }) => (ast, { factory: F2 }, braces = true) => {
12362
+ if (F2.isTerm(ast) && F2.isTermNamed(ast)) {
12363
+ SUBRULE(iri2, ast);
12364
+ } else {
12365
+ F2.printFilter(ast, () => braces && PRINT("("));
12366
+ switch (ast.subType) {
12367
+ case "|":
12368
+ case "/": {
12369
+ const [head2, ...tail] = ast.items;
12370
+ SUBRULE(pathGenerator, head2, braces);
12371
+ for (const val of tail) {
12372
+ F2.printFilter(ast, () => PRINT(ast.subType));
12373
+ SUBRULE(pathGenerator, val, braces);
12374
+ }
12375
+ break;
12589
12376
  }
12377
+ case "^":
12378
+ F2.printFilter(ast, () => PRINT("^"));
12379
+ SUBRULE(pathGenerator, ast.items[0], braces);
12380
+ break;
12381
+ case "?":
12382
+ case "*":
12383
+ case "+":
12384
+ SUBRULE(pathGenerator, ast.items[0], braces);
12385
+ F2.printFilter(ast, () => PRINT(ast.subType));
12386
+ break;
12387
+ case "!":
12388
+ F2.printFilter(ast, () => PRINT("!"));
12389
+ F2.printFilter(ast, () => PRINT("("));
12390
+ SUBRULE(pathGenerator, ast.items[0], false);
12391
+ F2.printFilter(ast, () => PRINT(")"));
12392
+ break;
12590
12393
  }
12591
- F2.printFilter(ast, () => PRINT_WORD(")"));
12394
+ F2.printFilter(ast, () => braces && PRINT(")"));
12592
12395
  }
12593
- F2.printFilter(ast, () => PRINT_WORD("}"));
12594
12396
  }
12595
12397
  };
12596
- var dataBlock = {
12597
- name: "dataBlock",
12598
- impl: ({ SUBRULE, OR }) => () => OR([
12599
- { ALT: () => SUBRULE(inlineDataOneVar, void 0) },
12600
- { ALT: () => SUBRULE(inlineDataFull, void 0) }
12398
+ function pathChainHelper(name, SEP, subType, subRule) {
12399
+ return {
12400
+ name,
12401
+ impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, MANY }) => (C) => {
12402
+ const head2 = SUBRULE1(subRule);
12403
+ let tailEnd = head2;
12404
+ const tail = [];
12405
+ MANY(() => {
12406
+ CONSUME(SEP);
12407
+ tailEnd = SUBRULE2(subRule);
12408
+ tail.push(tailEnd);
12409
+ });
12410
+ return ACTION(() => tail.length === 0 ? head2 : C.factory.path(subType, [head2, ...tail], C.factory.sourceLocation(head2, tailEnd)));
12411
+ }
12412
+ };
12413
+ }
12414
+ var pathEltOrInverse = {
12415
+ name: "pathEltOrInverse",
12416
+ impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, OR }) => (C) => OR([
12417
+ { ALT: () => SUBRULE1(pathElt) },
12418
+ { ALT: () => {
12419
+ const hat2 = CONSUME(symbols_exports.hat);
12420
+ const item = SUBRULE2(pathElt);
12421
+ return ACTION(() => C.factory.path("^", [item], C.factory.sourceLocation(hat2, item)));
12422
+ } }
12601
12423
  ])
12602
12424
  };
12603
- var inlineDataOneVar = {
12604
- name: "inlineDataOneVar",
12605
- impl: ({ ACTION, SUBRULE, CONSUME, MANY }) => (C) => {
12606
- const res = [];
12607
- const varVal = SUBRULE(var_, void 0);
12608
- CONSUME(symbols_exports.LCurly);
12609
- MANY(() => {
12610
- const value = SUBRULE(dataBlockValue, void 0);
12611
- ACTION(() => {
12612
- res.push({ [varVal.value]: value });
12613
- });
12614
- });
12615
- const close = CONSUME(symbols_exports.RCurly);
12616
- return ACTION(() => C.factory.wrap(res, C.factory.sourceLocation(varVal, close)));
12425
+ var pathSequence = pathChainHelper("pathSequence", symbols_exports.slash, "/", pathEltOrInverse);
12426
+ var pathAlternative = pathChainHelper("pathAlternative", symbols_exports.pipe, "|", pathSequence);
12427
+ var pathElt = {
12428
+ name: "pathElt",
12429
+ impl: ({ ACTION, SUBRULE, OPTION }) => (C) => {
12430
+ const item = SUBRULE(pathPrimary);
12431
+ const modification = OPTION(() => SUBRULE(pathMod));
12432
+ return ACTION(() => modification === void 0 ? item : C.factory.path(modification.image, [item], C.factory.sourceLocation(item, modification)));
12617
12433
  }
12618
12434
  };
12619
- var inlineDataFull = {
12620
- name: "inlineDataFull",
12621
- impl: ({
12622
- ACTION,
12623
- OR,
12624
- MANY1,
12625
- MANY2,
12626
- MANY3,
12627
- MANY4,
12628
- SUBRULE,
12629
- CONSUME1,
12630
- CONSUME2
12631
- }) => (C) => {
12632
- const res = [];
12633
- const vars = [];
12435
+ var pathMod = {
12436
+ name: "pathMod",
12437
+ impl: ({ CONSUME, OR }) => () => OR([
12438
+ { ALT: () => CONSUME(symbols_exports.question) },
12439
+ { ALT: () => CONSUME(symbols_exports.star) },
12440
+ { ALT: () => CONSUME(symbols_exports.opPlus) }
12441
+ ])
12442
+ };
12443
+ var pathPrimary = {
12444
+ name: "pathPrimary",
12445
+ impl: ({ SUBRULE, CONSUME, OR }) => () => OR([
12446
+ { ALT: () => SUBRULE(iri2) },
12447
+ { ALT: () => SUBRULE(verbA) },
12448
+ { ALT: () => SUBRULE(pathNegatedPropertySet) },
12449
+ { ALT: () => {
12450
+ CONSUME(symbols_exports.LParen);
12451
+ const resRecursive = SUBRULE(path);
12452
+ CONSUME(symbols_exports.RParen);
12453
+ return resRecursive;
12454
+ } }
12455
+ ])
12456
+ };
12457
+ var pathNegatedPropertySet = {
12458
+ name: "pathNegatedPropertySet",
12459
+ impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, SUBRULE3, OR, MANY }) => (C) => {
12460
+ const exclamation2 = CONSUME(symbols_exports.exclamation);
12634
12461
  return OR([
12635
12462
  { ALT: () => {
12636
- const nil2 = CONSUME1(terminals_exports.nil);
12637
- CONSUME1(symbols_exports.LCurly);
12638
- MANY1(() => {
12639
- CONSUME2(terminals_exports.nil);
12640
- res.push({});
12641
- });
12642
- const close = CONSUME1(symbols_exports.RCurly);
12643
- return ACTION(() => C.factory.wrap(res, C.factory.sourceLocation(nil2, close)));
12463
+ const noAlternative = SUBRULE1(pathOneInPropertySet);
12464
+ return ACTION(() => C.factory.path("!", [noAlternative], C.factory.sourceLocation(exclamation2, noAlternative)));
12644
12465
  } },
12645
12466
  { ALT: () => {
12646
- const open = CONSUME1(symbols_exports.LParen);
12647
- MANY2(() => {
12648
- vars.push(SUBRULE(var_, void 0));
12467
+ const open = CONSUME(symbols_exports.LParen);
12468
+ const head2 = SUBRULE2(pathOneInPropertySet);
12469
+ const tail = [];
12470
+ MANY(() => {
12471
+ CONSUME(symbols_exports.pipe);
12472
+ const item = SUBRULE3(pathOneInPropertySet);
12473
+ tail.push(item);
12649
12474
  });
12650
- CONSUME1(symbols_exports.RParen);
12651
- CONSUME2(symbols_exports.LCurly);
12652
- MANY3(() => {
12653
- let parsedValues = 0;
12654
- const currentRow = {};
12655
- CONSUME2(symbols_exports.LParen);
12656
- MANY4(() => {
12657
- if (parsedValues >= vars.length) {
12658
- throw new Error("Number of dataBlockValues does not match number of variables. Too much values.");
12659
- }
12660
- const value = SUBRULE(dataBlockValue, void 0);
12661
- ACTION(() => {
12662
- currentRow[vars[parsedValues].value] = value;
12663
- parsedValues++;
12664
- });
12665
- });
12666
- CONSUME2(symbols_exports.RParen);
12667
- ACTION(() => {
12668
- res.push(currentRow);
12669
- if (vars.length !== parsedValues) {
12670
- throw new Error("Number of dataBlockValues does not match number of variables. Too few values.");
12671
- }
12672
- });
12475
+ const close = CONSUME(symbols_exports.RParen);
12476
+ return ACTION(() => {
12477
+ const F2 = C.factory;
12478
+ if (tail.length === 0) {
12479
+ return F2.path("!", [head2], F2.sourceLocation(exclamation2, close));
12480
+ }
12481
+ return F2.path(
12482
+ "!",
12483
+ [F2.path("|", [head2, ...tail], F2.sourceLocation(open, close))],
12484
+ F2.sourceLocation(exclamation2, close)
12485
+ );
12673
12486
  });
12674
- const close = CONSUME2(symbols_exports.RCurly);
12675
- return ACTION(() => C.factory.wrap(res, C.factory.sourceLocation(open, close)));
12676
12487
  } }
12677
12488
  ]);
12678
12489
  }
12679
12490
  };
12680
- var dataBlockValue = {
12681
- name: "dataBlockValue",
12682
- impl: ({ SUBRULE, CONSUME, OR }) => () => OR([
12683
- { ALT: () => SUBRULE(iri2, void 0) },
12684
- { ALT: () => SUBRULE(rdfLiteral, void 0) },
12685
- { ALT: () => SUBRULE(numericLiteral, void 0) },
12686
- { ALT: () => SUBRULE(booleanLiteral, void 0) },
12491
+ var pathOneInPropertySet = {
12492
+ name: "pathOneInPropertySet",
12493
+ impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, OR1, OR2 }) => (C) => OR1([
12494
+ { ALT: () => SUBRULE1(iri2) },
12495
+ { ALT: () => SUBRULE1(verbA) },
12687
12496
  { ALT: () => {
12688
- CONSUME(undef);
12689
- return void 0;
12497
+ const hat2 = CONSUME(symbols_exports.hat);
12498
+ const item = OR2([
12499
+ { ALT: () => SUBRULE2(iri2) },
12500
+ { ALT: () => SUBRULE2(verbA) }
12501
+ ]);
12502
+ return ACTION(() => C.factory.path("^", [item], C.factory.sourceLocation(hat2, item)));
12690
12503
  } }
12691
12504
  ])
12692
12505
  };
12693
- var minusGraphPattern = {
12694
- name: "minusGraphPattern",
12695
- impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12696
- const minus2 = CONSUME(minus);
12697
- const group = SUBRULE(groupGraphPattern, void 0);
12698
- return ACTION(() => C.factory.patternMinus(group.patterns, C.factory.sourceLocation(minus2, group)));
12699
- },
12700
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12701
- F2.printFilter(ast, () => PRINT_WORD("MINUS"));
12702
- SUBRULE(groupGraphPattern, F2.patternGroup(ast.patterns, ast.loc), void 0);
12703
- }
12704
- };
12705
- var groupOrUnionGraphPattern = {
12706
- name: "groupOrUnionGraphPattern",
12707
- impl: ({ ACTION, MANY, SUBRULE1, SUBRULE2, CONSUME }) => (C) => {
12708
- const groups = [];
12709
- const group = SUBRULE1(groupGraphPattern, void 0);
12710
- groups.push(group);
12711
- MANY(() => {
12712
- CONSUME(union);
12713
- const group2 = SUBRULE2(groupGraphPattern, void 0);
12714
- groups.push(group2);
12715
- });
12716
- return ACTION(() => groups.length === 1 ? groups[0] : C.factory.patternUnion(
12717
- groups,
12718
- C.factory.sourceLocation(group, groups.at(-1))
12719
- ));
12720
- },
12721
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12722
- if (F2.isPatternUnion(ast)) {
12723
- const [head2, ...tail] = ast.patterns;
12724
- SUBRULE(groupGraphPattern, head2, void 0);
12725
- for (const pattern of tail) {
12726
- F2.printFilter(ast, () => PRINT_WORD("UNION"));
12727
- SUBRULE(groupGraphPattern, pattern, void 0);
12728
- }
12729
- } else {
12730
- SUBRULE(groupGraphPattern, ast, void 0);
12731
- }
12732
- }
12733
- };
12734
- var filter3 = {
12735
- name: "filter",
12736
- impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12737
- const filterToken = CONSUME(filter2);
12738
- const expression2 = SUBRULE(constraint, void 0);
12739
- return ACTION(() => C.factory.patternFilter(expression2, C.factory.sourceLocation(filterToken, expression2)));
12740
- },
12741
- gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12742
- F2.printFilter(ast, () => PRINT_WORD("FILTER ("));
12743
- SUBRULE(expression, ast.expression, void 0);
12744
- F2.printFilter(ast, () => PRINT_WORD(")"));
12745
- }
12746
- };
12747
- var constraint = {
12748
- name: "constraint",
12749
- impl: ({ SUBRULE, OR }) => () => OR([
12750
- { ALT: () => SUBRULE(brackettedExpression, void 0) },
12751
- { ALT: () => SUBRULE(builtInCall, void 0) },
12752
- { ALT: () => SUBRULE(functionCall, void 0) }
12753
- ])
12754
- };
12755
- var functionCall = {
12756
- name: "functionCall",
12757
- impl: ({ ACTION, SUBRULE }) => (C) => {
12758
- const func = SUBRULE(iri2, void 0);
12759
- const args = SUBRULE(argList, void 0);
12760
- return ACTION(() => C.factory.expressionFunctionCall(
12761
- func,
12762
- args.val.args,
12763
- args.val.distinct,
12764
- C.factory.sourceLocation(func, args)
12765
- ));
12766
- }
12767
- };
12768
12506
 
12769
- // ../../packages/rules-sparql-1-1/lib/expressionHelpers.ts
12770
- function funcExpr1(func) {
12771
- return {
12772
- name: unCapitalize(func.name),
12773
- impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12774
- const operator = CONSUME(func);
12775
- CONSUME(symbols_exports.LParen);
12776
- const arg = SUBRULE(expression, void 0);
12777
- const close = CONSUME(symbols_exports.RParen);
12778
- return ACTION(() => C.factory.expressionOperation(operator.image, [arg], C.factory.sourceLocation(operator, close)));
12779
- }
12507
+ // ../../packages/rules-sparql-1-1/lib/grammar/tripleBlock.ts
12508
+ function triplesDotSeperated(triplesSameSubjectSubrule) {
12509
+ return ({ ACTION, AT_LEAST_ONE, SUBRULE, CONSUME, OPTION }) => (C) => {
12510
+ const triples = [];
12511
+ let parsedDot = true;
12512
+ let dotToken;
12513
+ AT_LEAST_ONE({
12514
+ GATE: () => parsedDot,
12515
+ DEF: () => {
12516
+ parsedDot = false;
12517
+ const template = SUBRULE(triplesSameSubjectSubrule);
12518
+ ACTION(() => {
12519
+ triples.push(...template);
12520
+ });
12521
+ OPTION(() => {
12522
+ dotToken = CONSUME(symbols_exports.dot);
12523
+ parsedDot = true;
12524
+ });
12525
+ }
12526
+ });
12527
+ return ACTION(() => C.factory.patternBgp(triples, C.factory.sourceLocation(...triples, dotToken)));
12780
12528
  };
12781
12529
  }
12782
- function funcExpr2(func) {
12783
- return {
12784
- name: unCapitalize(func.name),
12785
- impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2 }) => (C) => {
12786
- const operator = CONSUME(func);
12787
- CONSUME(symbols_exports.LParen);
12788
- const arg1 = SUBRULE1(expression, void 0);
12789
- CONSUME(symbols_exports.comma);
12790
- const arg2 = SUBRULE2(expression, void 0);
12791
- const close = CONSUME(symbols_exports.RParen);
12792
- return ACTION(() => C.factory.expressionOperation(operator.image, [arg1, arg2], C.factory.sourceLocation(operator, close)));
12530
+ var triplesBlock = {
12531
+ name: "triplesBlock",
12532
+ impl: (implArgs) => (C) => triplesDotSeperated(triplesSameSubjectPath)(implArgs)(C),
12533
+ gImpl: ({ SUBRULE, PRINT_WORD, HANDLE_LOC }) => (ast, { factory: F2 }) => {
12534
+ for (const [index, triple] of ast.triples.entries()) {
12535
+ HANDLE_LOC(triple, () => {
12536
+ const nextTriple = ast.triples.at(index);
12537
+ if (F2.isTripleCollection(triple)) {
12538
+ SUBRULE(graphNodePath, triple);
12539
+ F2.printFilter(triple, () => PRINT_WORD("."));
12540
+ } else {
12541
+ SUBRULE(graphNodePath, triple.subject);
12542
+ if (F2.isTerm(triple.predicate) && F2.isTermVariable(triple.predicate)) {
12543
+ SUBRULE(varOrTerm, triple.predicate);
12544
+ } else {
12545
+ SUBRULE(pathGenerator, triple.predicate, void 0);
12546
+ }
12547
+ SUBRULE(graphNodePath, triple.object);
12548
+ if (nextTriple === void 0 || F2.isTripleCollection(nextTriple) || !F2.isSourceLocationNoMaterialize(nextTriple.subject.loc)) {
12549
+ F2.printFilter(ast, () => PRINT_WORD("."));
12550
+ } else if (F2.isSourceLocationNoMaterialize(nextTriple.predicate.loc)) {
12551
+ F2.printFilter(ast, () => PRINT_WORD(","));
12552
+ } else {
12553
+ F2.printFilter(ast, () => PRINT_WORD(";"));
12554
+ }
12555
+ }
12556
+ });
12793
12557
  }
12794
- };
12795
- }
12796
- function funcExpr3(func) {
12558
+ }
12559
+ };
12560
+ function triplesSameSubjectImpl(name, allowPaths) {
12797
12561
  return {
12798
- name: unCapitalize(func.name),
12799
- impl: ({ ACTION, CONSUME, CONSUME1, CONSUME2, SUBRULE1, SUBRULE2, SUBRULE3 }) => (C) => {
12800
- const operator = CONSUME(func);
12801
- CONSUME(symbols_exports.LParen);
12802
- const arg1 = SUBRULE1(expression, void 0);
12803
- CONSUME1(symbols_exports.comma);
12804
- const arg2 = SUBRULE2(expression, void 0);
12805
- CONSUME2(symbols_exports.comma);
12806
- const arg3 = SUBRULE3(expression, void 0);
12807
- const close = CONSUME(symbols_exports.RParen);
12808
- return ACTION(() => C.factory.expressionOperation(operator.image, [arg1, arg2, arg3], C.factory.sourceLocation(operator, close)));
12809
- }
12562
+ name,
12563
+ impl: ({ ACTION, SUBRULE, OR }) => (C) => OR([
12564
+ { ALT: () => {
12565
+ const subject = SUBRULE(varOrTerm);
12566
+ const res = SUBRULE(
12567
+ allowPaths ? propertyListPathNotEmpty : propertyListNotEmpty,
12568
+ ACTION(() => C.factory.dematerialized(subject))
12569
+ );
12570
+ return ACTION(() => {
12571
+ if (res.length > 0) {
12572
+ res[0].subject = subject;
12573
+ res[0].loc = C.factory.sourceLocation(subject, res[0]);
12574
+ }
12575
+ return res;
12576
+ });
12577
+ } },
12578
+ { ALT: () => {
12579
+ const subjectNode = SUBRULE(allowPaths ? triplesNodePath : triplesNode);
12580
+ const restNode = SUBRULE(
12581
+ allowPaths ? propertyListPath : propertyList,
12582
+ ACTION(() => C.factory.graphNodeIdentifier(subjectNode))
12583
+ );
12584
+ return ACTION(() => {
12585
+ if (restNode.length === 0) {
12586
+ return [subjectNode];
12587
+ }
12588
+ restNode[0].subject = subjectNode;
12589
+ restNode[0].loc = C.factory.sourceLocation(subjectNode, restNode[0]);
12590
+ return restNode;
12591
+ });
12592
+ } }
12593
+ ])
12810
12594
  };
12811
12595
  }
12812
- function funcVar1(func) {
12596
+ var triplesSameSubject = triplesSameSubjectImpl("triplesSameSubject", false);
12597
+ var triplesSameSubjectPath = triplesSameSubjectImpl("triplesSameSubjectPath", true);
12598
+ var triplesTemplate = {
12599
+ name: "triplesTemplate",
12600
+ impl: triplesDotSeperated(triplesSameSubject)
12601
+ };
12602
+ function propertyListImpl(name, allowPaths) {
12813
12603
  return {
12814
- name: unCapitalize(func.name),
12815
- impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12816
- const operator = CONSUME(func);
12817
- CONSUME(symbols_exports.LParen);
12818
- const arg = SUBRULE(var_, void 0);
12819
- const close = CONSUME(symbols_exports.RParen);
12820
- return ACTION(() => C.factory.expressionOperation(operator.image, [arg], C.factory.sourceLocation(operator, close)));
12821
- }
12604
+ name,
12605
+ impl: ({ SUBRULE, OPTION }) => (_, subject) => OPTION(() => SUBRULE(allowPaths ? propertyListPathNotEmpty : propertyListNotEmpty, subject)) ?? []
12822
12606
  };
12823
12607
  }
12824
- function funcExprOrNil1(func) {
12608
+ var propertyList = propertyListImpl("propertyList", false);
12609
+ var propertyListPath = propertyListImpl("propertyListPath", true);
12610
+ function propertyListNotEmptyImplementation(name, allowPaths) {
12825
12611
  return {
12826
- name: unCapitalize(func.name),
12827
- impl: ({ ACTION, CONSUME, OR, SUBRULE }) => (C) => {
12828
- const operator = CONSUME(func);
12829
- return OR([
12830
- { ALT: () => {
12831
- CONSUME(symbols_exports.LParen);
12832
- const arg = SUBRULE(expression, void 0);
12833
- const close = CONSUME(symbols_exports.RParen);
12834
- return ACTION(() => C.factory.expressionOperation(operator.image, [arg], C.factory.sourceLocation(operator, close)));
12835
- } },
12836
- { ALT: () => {
12837
- const nil2 = CONSUME(terminals_exports.nil);
12838
- return ACTION(() => C.factory.expressionOperation(operator.image, [], C.factory.sourceLocation(operator, nil2)));
12839
- } }
12840
- ]);
12612
+ name,
12613
+ impl: ({ ACTION, CONSUME, AT_LEAST_ONE, SUBRULE1, MANY2, OR1 }) => (_, subject) => {
12614
+ const result = [];
12615
+ let parsedSemi = true;
12616
+ AT_LEAST_ONE({
12617
+ GATE: () => parsedSemi,
12618
+ DEF: () => {
12619
+ parsedSemi = false;
12620
+ const predicate = allowPaths ? OR1([
12621
+ { ALT: () => SUBRULE1(verbPath) },
12622
+ { ALT: () => SUBRULE1(verbSimple) }
12623
+ ]) : SUBRULE1(verb);
12624
+ const triples = SUBRULE1(
12625
+ allowPaths ? objectListPath : objectList,
12626
+ subject,
12627
+ predicate
12628
+ );
12629
+ MANY2(() => {
12630
+ CONSUME(symbols_exports.semi);
12631
+ parsedSemi = true;
12632
+ });
12633
+ ACTION(() => {
12634
+ result.push(...triples);
12635
+ });
12636
+ }
12637
+ });
12638
+ return result;
12841
12639
  }
12842
12640
  };
12843
12641
  }
12844
- function funcNil1(func) {
12642
+ var propertyListNotEmpty = propertyListNotEmptyImplementation("propertyListNotEmpty", false);
12643
+ var propertyListPathNotEmpty = propertyListNotEmptyImplementation("propertyListPathNotEmpty", true);
12644
+ var verbPath = {
12645
+ name: "verbPath",
12646
+ impl: ({ SUBRULE }) => () => SUBRULE(path)
12647
+ };
12648
+ var verbSimple = {
12649
+ name: "verbSimple",
12650
+ impl: ({ SUBRULE }) => () => SUBRULE(var_)
12651
+ };
12652
+ function objectListImpl(name, allowPaths) {
12845
12653
  return {
12846
- name: unCapitalize(func.name),
12847
- impl: ({ ACTION, CONSUME }) => (C) => {
12848
- const operator = CONSUME(func);
12849
- const nil2 = CONSUME(terminals_exports.nil);
12850
- return ACTION(() => C.factory.expressionOperation(operator.image, [], C.factory.sourceLocation(operator, nil2)));
12654
+ name,
12655
+ impl: ({ ACTION, SUBRULE, AT_LEAST_ONE_SEP }) => (_, subj, pred) => {
12656
+ const objects = [];
12657
+ AT_LEAST_ONE_SEP({
12658
+ SEP: symbols_exports.comma,
12659
+ DEF: () => {
12660
+ const objectTriple = SUBRULE(allowPaths ? objectPath : object, subj, pred);
12661
+ ACTION(() => {
12662
+ objects.push(objectTriple);
12663
+ });
12664
+ }
12665
+ });
12666
+ return objects;
12851
12667
  }
12852
12668
  };
12853
12669
  }
12854
- function funcExprList1(func) {
12670
+ var objectList = objectListImpl("objectList", false);
12671
+ var objectListPath = objectListImpl("objectListPath", true);
12672
+ function objectImpl(name, allowPaths) {
12855
12673
  return {
12856
- name: unCapitalize(func.name),
12857
- impl: ({ ACTION, CONSUME, SUBRULE }) => (C) => {
12858
- const operator = CONSUME(func);
12859
- const args = SUBRULE(expressionList, void 0);
12860
- return ACTION(() => C.factory.expressionOperation(operator.image, args.val, C.factory.sourceLocation(operator, args)));
12674
+ name,
12675
+ impl: ({ ACTION, SUBRULE }) => (C, subject, predicate) => {
12676
+ const node = SUBRULE(allowPaths ? graphNodePath : graphNode);
12677
+ return ACTION(() => C.factory.triple(subject, predicate, node));
12861
12678
  }
12862
12679
  };
12863
12680
  }
12864
- function funcExpr2or3(func) {
12681
+ var object = objectImpl("object", false);
12682
+ var objectPath = objectImpl("objectPath", true);
12683
+ function collectionImpl(name, allowPaths) {
12865
12684
  return {
12866
- name: unCapitalize(func.name),
12867
- impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, SUBRULE3, CONSUME1, OPTION, CONSUME2 }) => (C) => {
12868
- const operator = CONSUME(func);
12869
- CONSUME(symbols_exports.LParen);
12870
- const arg1 = SUBRULE1(expression, void 0);
12871
- CONSUME1(symbols_exports.comma);
12872
- const arg2 = SUBRULE2(expression, void 0);
12873
- const arg3 = OPTION(() => {
12874
- CONSUME2(symbols_exports.comma);
12875
- return SUBRULE3(expression, void 0);
12685
+ name,
12686
+ impl: ({ ACTION, AT_LEAST_ONE, SUBRULE, CONSUME }) => (C) => {
12687
+ const terms = [];
12688
+ const startToken = CONSUME(symbols_exports.LParen);
12689
+ AT_LEAST_ONE(() => {
12690
+ terms.push(SUBRULE(allowPaths ? graphNodePath : graphNode));
12876
12691
  });
12877
- const close = CONSUME(symbols_exports.RParen);
12878
- return ACTION(() => C.factory.expressionOperation(
12879
- operator.image,
12880
- arg3 ? [arg1, arg2, arg3] : [arg1, arg2],
12881
- C.factory.sourceLocation(operator, close)
12882
- ));
12692
+ const endToken = CONSUME(symbols_exports.RParen);
12693
+ return ACTION(() => {
12694
+ const F2 = C.factory;
12695
+ const triples = [];
12696
+ const predFirst = F2.namedNode(F2.sourceLocationNoMaterialize(), "http://www.w3.org/1999/02/22-rdf-syntax-ns#first" /* FIRST */, void 0);
12697
+ const predRest = F2.namedNode(F2.sourceLocationNoMaterialize(), "http://www.w3.org/1999/02/22-rdf-syntax-ns#rest" /* REST */, void 0);
12698
+ const predNil = F2.namedNode(F2.sourceLocationNoMaterialize(), "http://www.w3.org/1999/02/22-rdf-syntax-ns#nil" /* NIL */, void 0);
12699
+ const listHead = F2.blankNode(void 0, F2.sourceLocationNoMaterialize());
12700
+ let iterHead = listHead;
12701
+ for (const [index, term] of terms.entries()) {
12702
+ const lastInList = index === terms.length - 1;
12703
+ const headTriple = F2.triple(
12704
+ iterHead,
12705
+ predFirst,
12706
+ term
12707
+ );
12708
+ triples.push(headTriple);
12709
+ if (lastInList) {
12710
+ const nilTriple = F2.triple(iterHead, predRest, predNil);
12711
+ triples.push(nilTriple);
12712
+ } else {
12713
+ const tail = F2.blankNode(void 0, F2.sourceLocationNoMaterialize());
12714
+ const linkTriple = F2.triple(iterHead, predRest, tail);
12715
+ triples.push(linkTriple);
12716
+ iterHead = tail;
12717
+ }
12718
+ }
12719
+ return F2.tripleCollectionList(listHead, triples, F2.sourceLocation(startToken, endToken));
12720
+ });
12721
+ },
12722
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12723
+ F2.printFilter(ast, () => PRINT_WORD("("));
12724
+ for (const [idx, triple] of ast.triples.entries()) {
12725
+ if (idx % 2 === 0) {
12726
+ SUBRULE(allowPaths ? graphNodePath : graphNode, triple.object);
12727
+ }
12728
+ }
12729
+ F2.printFilter(ast, () => PRINT_WORD(")"));
12883
12730
  }
12884
12731
  };
12885
12732
  }
12886
- function funcExpr3or4(func) {
12733
+ var collection = collectionImpl("collection", false);
12734
+ var collectionPath = collectionImpl("collectionPath", true);
12735
+ function triplesNodeImpl(name, allowPaths) {
12887
12736
  return {
12888
- name: unCapitalize(func.name),
12889
- impl: ({
12890
- ACTION,
12891
- CONSUME,
12892
- SUBRULE1,
12893
- SUBRULE2,
12894
- SUBRULE3,
12895
- SUBRULE4,
12896
- CONSUME1,
12897
- OPTION,
12898
- CONSUME2,
12899
- CONSUME3
12900
- }) => (C) => {
12901
- const operator = CONSUME(func);
12902
- CONSUME(symbols_exports.LParen);
12903
- const arg1 = SUBRULE1(expression, void 0);
12904
- CONSUME1(symbols_exports.comma);
12905
- const arg2 = SUBRULE2(expression, void 0);
12906
- CONSUME2(symbols_exports.comma);
12907
- const arg3 = SUBRULE3(expression, void 0);
12908
- const arg4 = OPTION(() => {
12909
- CONSUME3(symbols_exports.comma);
12910
- return SUBRULE4(expression, void 0);
12911
- });
12912
- const close = CONSUME(symbols_exports.RParen);
12913
- return ACTION(() => C.factory.expressionOperation(
12914
- operator.image,
12915
- arg4 ? [arg1, arg2, arg3, arg4] : [arg1, arg2, arg3],
12916
- C.factory.sourceLocation(operator, close)
12917
- ));
12918
- }
12737
+ name,
12738
+ impl: ({ SUBRULE, OR }) => () => OR([
12739
+ { ALT: () => SUBRULE(allowPaths ? collectionPath : collection) },
12740
+ { ALT: () => SUBRULE(allowPaths ? blankNodePropertyListPath : blankNodePropertyList) }
12741
+ ]),
12742
+ gImpl: ({ SUBRULE }) => (ast) => ast.subType === "list" ? SUBRULE(allowPaths ? collectionPath : collection, ast) : SUBRULE(allowPaths ? blankNodePropertyListPath : blankNodePropertyList, ast)
12919
12743
  };
12920
12744
  }
12921
- function funcGroupGraphPattern(func) {
12745
+ var triplesNode = triplesNodeImpl("triplesNode", false);
12746
+ var triplesNodePath = triplesNodeImpl("triplesNodePath", true);
12747
+ function blankNodePropertyListImpl(name, allowPaths) {
12748
+ const propertyPathNotEmptyImpl = allowPaths ? propertyListPathNotEmpty : propertyListNotEmpty;
12922
12749
  return {
12923
- name: unCapitalize(func.name),
12750
+ name,
12924
12751
  impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12925
- const operator = CONSUME(func);
12926
- const group = SUBRULE(groupGraphPattern, void 0);
12927
- return ACTION(() => C.factory.expressionPatternOperation(
12928
- operator.image,
12929
- group,
12930
- C.factory.sourceLocation(operator, group)
12752
+ const startToken = CONSUME(symbols_exports.LSquare);
12753
+ const blankNode2 = ACTION(() => C.factory.blankNode(void 0, C.factory.sourceLocationNoMaterialize()));
12754
+ const propList = SUBRULE(propertyPathNotEmptyImpl, blankNode2);
12755
+ const endToken = CONSUME(symbols_exports.RSquare);
12756
+ return ACTION(() => C.factory.tripleCollectionBlankNodeProperties(
12757
+ blankNode2,
12758
+ propList,
12759
+ C.factory.sourceLocation(startToken, endToken)
12931
12760
  ));
12761
+ },
12762
+ gImpl: ({ SUBRULE, PRINT, PRINT_WORD, HANDLE_LOC }) => (ast, { factory: F2 }) => {
12763
+ F2.printFilter(ast, () => PRINT("["));
12764
+ for (const triple of ast.triples) {
12765
+ HANDLE_LOC(triple, () => {
12766
+ if (F2.isTerm(triple.predicate) && F2.isTermVariable(triple.predicate)) {
12767
+ SUBRULE(varOrTerm, triple.predicate);
12768
+ } else {
12769
+ SUBRULE(pathGenerator, triple.predicate, void 0);
12770
+ }
12771
+ SUBRULE(graphNodePath, triple.object);
12772
+ F2.printFilter(ast, () => PRINT_WORD(";"));
12773
+ });
12774
+ }
12775
+ F2.printFilter(ast, () => PRINT("]"));
12932
12776
  }
12933
12777
  };
12934
12778
  }
12935
- function baseAggregateFunc(func) {
12779
+ var blankNodePropertyList = blankNodePropertyListImpl("blankNodePropertyList", false);
12780
+ var blankNodePropertyListPath = blankNodePropertyListImpl("blankNodePropertyListPath", true);
12781
+ function graphNodeImpl(name, allowPaths) {
12782
+ const triplesNodeRule = allowPaths ? triplesNodePath : triplesNode;
12936
12783
  return {
12937
- name: unCapitalize(func.name),
12938
- impl: ({ ACTION, CONSUME, SUBRULE, OPTION }) => (C) => {
12939
- const operator = CONSUME(func);
12940
- CONSUME(symbols_exports.LParen);
12941
- const distinct2 = OPTION(() => CONSUME(distinct));
12942
- const expr1 = SUBRULE(expression, void 0);
12943
- const close = CONSUME(symbols_exports.RParen);
12944
- return ACTION(() => C.factory.aggregate(
12945
- operator.image,
12946
- distinct2 !== void 0,
12947
- expr1,
12948
- void 0,
12949
- C.factory.sourceLocation(operator, close)
12950
- ));
12784
+ name,
12785
+ impl: ({ SUBRULE, OR }) => (C) => OR([
12786
+ { ALT: () => SUBRULE(varOrTerm) },
12787
+ {
12788
+ GATE: () => C.parseMode.has("canCreateBlankNodes"),
12789
+ ALT: () => SUBRULE(triplesNodeRule)
12790
+ }
12791
+ ]),
12792
+ gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
12793
+ if (F2.isTerm(ast)) {
12794
+ SUBRULE(varOrTerm, ast);
12795
+ } else {
12796
+ SUBRULE(triplesNodeRule, ast);
12797
+ }
12951
12798
  }
12952
12799
  };
12953
12800
  }
12801
+ var graphNode = graphNodeImpl("graphNode", false);
12802
+ var graphNodePath = graphNodeImpl("graphNodePath", true);
12954
12803
 
12955
- // ../../packages/rules-sparql-1-1/lib/grammar/builtIn.ts
12956
- var builtInStr = funcExpr1(BuildinCalls_exports.str);
12957
- var builtInLang = funcExpr1(BuildinCalls_exports.lang);
12958
- var builtInLangmatches = funcExpr2(BuildinCalls_exports.langmatches);
12959
- var builtInDatatype = funcExpr1(BuildinCalls_exports.datatype);
12960
- var builtInBound = funcVar1(BuildinCalls_exports.bound);
12961
- var builtInIri = funcExpr1(BuildinCalls_exports.iri);
12962
- var builtInUri = funcExpr1(BuildinCalls_exports.uri);
12963
- var builtInBnodeSparqlJs = funcExprOrNil1(BuildinCalls_exports.bnode);
12964
- var builtInRand = funcNil1(BuildinCalls_exports.rand);
12965
- var builtInAbs = funcExpr1(BuildinCalls_exports.abs);
12966
- var builtInCeil = funcExpr1(BuildinCalls_exports.ceil);
12967
- var builtInFloor = funcExpr1(BuildinCalls_exports.floor);
12968
- var builtInRound = funcExpr1(BuildinCalls_exports.round);
12969
- var builtInConcat = funcExprList1(BuildinCalls_exports.concat);
12970
- var builtInStrlen = funcExpr1(BuildinCalls_exports.strlen);
12971
- var builtInUcase = funcExpr1(BuildinCalls_exports.ucase);
12972
- var builtInLcase = funcExpr1(BuildinCalls_exports.lcase);
12973
- var builtInEncode_for_uri = funcExpr1(BuildinCalls_exports.encode_for_uri);
12974
- var builtInContains = funcExpr2(BuildinCalls_exports.contains);
12975
- var builtInStrstarts = funcExpr2(BuildinCalls_exports.strstarts);
12976
- var builtInStrends = funcExpr2(BuildinCalls_exports.strends);
12977
- var builtInStrbefore = funcExpr2(BuildinCalls_exports.strbefore);
12978
- var builtInStrafter = funcExpr2(BuildinCalls_exports.strafter);
12979
- var builtInYear = funcExpr1(BuildinCalls_exports.year);
12980
- var builtInMonth = funcExpr1(BuildinCalls_exports.month);
12981
- var builtInDay = funcExpr1(BuildinCalls_exports.day);
12982
- var builtInHours = funcExpr1(BuildinCalls_exports.hours);
12983
- var builtInMinutes = funcExpr1(BuildinCalls_exports.minutes);
12984
- var builtInSeconds = funcExpr1(BuildinCalls_exports.seconds);
12985
- var builtInTimezone = funcExpr1(BuildinCalls_exports.timezone);
12986
- var builtInTz = funcExpr1(BuildinCalls_exports.tz);
12987
- var builtInNow = funcNil1(BuildinCalls_exports.now);
12988
- var builtInUuid = funcNil1(BuildinCalls_exports.uuid);
12989
- var builtInStruuid = funcNil1(BuildinCalls_exports.struuid);
12990
- var builtInMd5 = funcExpr1(BuildinCalls_exports.md5);
12991
- var builtInSha1 = funcExpr1(BuildinCalls_exports.sha1);
12992
- var builtInSha256 = funcExpr1(BuildinCalls_exports.sha256);
12993
- var builtInSha384 = funcExpr1(BuildinCalls_exports.sha384);
12994
- var builtInSha512 = funcExpr1(BuildinCalls_exports.sha512);
12995
- var builtInCoalesce = funcExprList1(BuildinCalls_exports.coalesce);
12996
- var builtInIf = funcExpr3(BuildinCalls_exports.if_);
12997
- var builtInStrlang = funcExpr2(BuildinCalls_exports.strlang);
12998
- var builtInStrdt = funcExpr2(BuildinCalls_exports.strdt);
12999
- var builtInSameterm = funcExpr2(BuildinCalls_exports.sameterm);
13000
- var builtInIsiri = funcExpr1(BuildinCalls_exports.isiri);
13001
- var builtInIsuri = funcExpr1(BuildinCalls_exports.isuri);
13002
- var builtInIsblank = funcExpr1(BuildinCalls_exports.isblank);
13003
- var builtInIsliteral = funcExpr1(BuildinCalls_exports.isliteral);
13004
- var builtInIsnumeric = funcExpr1(BuildinCalls_exports.isnumeric);
13005
- function builtInCallList(SUBRULE) {
13006
- return [
13007
- { ALT: () => SUBRULE(aggregate, void 0) },
13008
- { ALT: () => SUBRULE(builtInStr, void 0) },
13009
- { ALT: () => SUBRULE(builtInLang, void 0) },
13010
- { ALT: () => SUBRULE(builtInLangmatches, void 0) },
13011
- { ALT: () => SUBRULE(builtInDatatype, void 0) },
13012
- { ALT: () => SUBRULE(builtInBound, void 0) },
13013
- { ALT: () => SUBRULE(builtInIri, void 0) },
13014
- { ALT: () => SUBRULE(builtInUri, void 0) },
13015
- { ALT: () => SUBRULE(builtInBnodeSparqlJs, void 0) },
13016
- { ALT: () => SUBRULE(builtInRand, void 0) },
13017
- { ALT: () => SUBRULE(builtInAbs, void 0) },
13018
- { ALT: () => SUBRULE(builtInCeil, void 0) },
13019
- { ALT: () => SUBRULE(builtInFloor, void 0) },
13020
- { ALT: () => SUBRULE(builtInRound, void 0) },
13021
- { ALT: () => SUBRULE(builtInConcat, void 0) },
13022
- { ALT: () => SUBRULE(substringExpression, void 0) },
13023
- { ALT: () => SUBRULE(builtInStrlen, void 0) },
13024
- { ALT: () => SUBRULE(strReplaceExpression, void 0) },
13025
- { ALT: () => SUBRULE(builtInUcase, void 0) },
13026
- { ALT: () => SUBRULE(builtInLcase, void 0) },
13027
- { ALT: () => SUBRULE(builtInEncode_for_uri, void 0) },
13028
- { ALT: () => SUBRULE(builtInContains, void 0) },
13029
- { ALT: () => SUBRULE(builtInStrstarts, void 0) },
13030
- { ALT: () => SUBRULE(builtInStrends, void 0) },
13031
- { ALT: () => SUBRULE(builtInStrbefore, void 0) },
13032
- { ALT: () => SUBRULE(builtInStrafter, void 0) },
13033
- { ALT: () => SUBRULE(builtInYear, void 0) },
13034
- { ALT: () => SUBRULE(builtInMonth, void 0) },
13035
- { ALT: () => SUBRULE(builtInDay, void 0) },
13036
- { ALT: () => SUBRULE(builtInHours, void 0) },
13037
- { ALT: () => SUBRULE(builtInMinutes, void 0) },
13038
- { ALT: () => SUBRULE(builtInSeconds, void 0) },
13039
- { ALT: () => SUBRULE(builtInTimezone, void 0) },
13040
- { ALT: () => SUBRULE(builtInTz, void 0) },
13041
- { ALT: () => SUBRULE(builtInNow, void 0) },
13042
- { ALT: () => SUBRULE(builtInUuid, void 0) },
13043
- { ALT: () => SUBRULE(builtInStruuid, void 0) },
13044
- { ALT: () => SUBRULE(builtInMd5, void 0) },
13045
- { ALT: () => SUBRULE(builtInSha1, void 0) },
13046
- { ALT: () => SUBRULE(builtInSha256, void 0) },
13047
- { ALT: () => SUBRULE(builtInSha384, void 0) },
13048
- { ALT: () => SUBRULE(builtInSha512, void 0) },
13049
- { ALT: () => SUBRULE(builtInCoalesce, void 0) },
13050
- { ALT: () => SUBRULE(builtInIf, void 0) },
13051
- { ALT: () => SUBRULE(builtInStrlang, void 0) },
13052
- { ALT: () => SUBRULE(builtInStrdt, void 0) },
13053
- { ALT: () => SUBRULE(builtInSameterm, void 0) },
13054
- { ALT: () => SUBRULE(builtInIsiri, void 0) },
13055
- { ALT: () => SUBRULE(builtInIsuri, void 0) },
13056
- { ALT: () => SUBRULE(builtInIsblank, void 0) },
13057
- { ALT: () => SUBRULE(builtInIsliteral, void 0) },
13058
- { ALT: () => SUBRULE(builtInIsnumeric, void 0) },
13059
- { ALT: () => SUBRULE(regexExpression, void 0) },
13060
- { ALT: () => SUBRULE(existsFunc, void 0) },
13061
- { ALT: () => SUBRULE(notExistsFunc, void 0) }
13062
- ];
13063
- }
13064
- var builtInCall = {
13065
- name: "builtInCall",
13066
- impl: ({ OR, SUBRULE, cache }) => () => {
13067
- const cached = cache.get(builtInCall);
13068
- if (cached) {
13069
- return OR(cached);
13070
- }
13071
- const builtIns = builtInCallList(SUBRULE);
13072
- cache.set(builtInCall, builtIns);
13073
- return OR(builtIns);
12804
+ // ../../packages/rules-sparql-1-1/lib/grammar/whereClause.ts
12805
+ var whereClause = {
12806
+ name: "whereClause",
12807
+ impl: ({ ACTION, SUBRULE, CONSUME, OPTION }) => (C) => {
12808
+ const where2 = OPTION(() => CONSUME(where));
12809
+ const group = SUBRULE(groupGraphPattern);
12810
+ return ACTION(() => C.factory.wrap(group, C.factory.sourceLocation(where2, group)));
12811
+ },
12812
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12813
+ F2.printFilter(ast, () => PRINT_WORD("WHERE"));
12814
+ SUBRULE(groupGraphPattern, ast.val);
13074
12815
  }
13075
12816
  };
13076
- var regexExpression = funcExpr2or3(BuildinCalls_exports.regex);
13077
- var substringExpression = funcExpr2or3(BuildinCalls_exports.substr);
13078
- var strReplaceExpression = funcExpr3or4(BuildinCalls_exports.replace);
13079
- var existsFunc = funcGroupGraphPattern(BuildinCalls_exports.exists);
13080
- var notExistsFunc = funcGroupGraphPattern(BuildinCalls_exports.notexists);
13081
- var aggregateCount = {
13082
- name: unCapitalize(BuildinCalls_exports.count.name),
13083
- impl: ({ ACTION, CONSUME, SUBRULE, OR, OPTION }) => (C) => {
13084
- const operatorToken = CONSUME(BuildinCalls_exports.count);
13085
- CONSUME(symbols_exports.LParen);
13086
- const distinctToken = OPTION(() => CONSUME(distinct));
13087
- const expressionVal = OR([
13088
- { ALT: () => {
13089
- const starToken = CONSUME(symbols_exports.star);
13090
- return ACTION(() => C.factory.wildcard(C.factory.sourceLocation(starToken)));
13091
- } },
13092
- { ALT: () => SUBRULE(expression, void 0) }
12817
+ var groupGraphPattern = {
12818
+ name: "groupGraphPattern",
12819
+ impl: ({ ACTION, SUBRULE, CONSUME, OR }) => (C) => {
12820
+ const open = CONSUME(symbols_exports.LCurly);
12821
+ const patterns = OR([
12822
+ { ALT: () => [SUBRULE(subSelect)] },
12823
+ { ALT: () => SUBRULE(groupGraphPatternSub) }
13093
12824
  ]);
13094
- const closeToken = CONSUME(symbols_exports.RParen);
13095
- return ACTION(() => {
13096
- const F2 = C.factory;
13097
- if (C.factory.isWildcard(expressionVal)) {
13098
- return F2.aggregate(
13099
- operatorToken.image,
13100
- Boolean(distinctToken),
13101
- expressionVal,
13102
- void 0,
13103
- C.factory.sourceLocation(operatorToken, closeToken)
13104
- );
12825
+ const close = CONSUME(symbols_exports.RCurly);
12826
+ return ACTION(() => C.factory.patternGroup(patterns, C.factory.sourceLocation(open, close)));
12827
+ },
12828
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12829
+ F2.printFilter(ast, () => PRINT_WORD("{"));
12830
+ for (const pattern of ast.patterns) {
12831
+ SUBRULE(generatePattern, pattern);
12832
+ }
12833
+ F2.printFilter(ast, () => PRINT_WORD("}"));
12834
+ }
12835
+ };
12836
+ var generatePattern = {
12837
+ name: "generatePattern",
12838
+ gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
12839
+ if (ast.type === "query") {
12840
+ SUBRULE(query, F2.querySelect({
12841
+ context: [],
12842
+ datasets: F2.datasetClauses([], F2.sourceLocation()),
12843
+ where: ast.where,
12844
+ variables: ast.variables,
12845
+ solutionModifiers: ast.solutionModifiers,
12846
+ values: ast.values,
12847
+ distinct: ast.distinct,
12848
+ reduced: ast.reduced
12849
+ }, ast.loc));
12850
+ } else if (ast.subType === "group") {
12851
+ SUBRULE(groupGraphPattern, ast);
12852
+ } else if (ast.subType === "bgp") {
12853
+ SUBRULE(triplesBlock, ast);
12854
+ } else {
12855
+ SUBRULE(graphPatternNotTriples, ast);
12856
+ }
12857
+ }
12858
+ };
12859
+ var groupGraphPatternSub = {
12860
+ name: "groupGraphPatternSub",
12861
+ impl: ({ ACTION, SUBRULE, CONSUME, MANY, SUBRULE1, SUBRULE2, OPTION1, OPTION2, OPTION3 }) => () => {
12862
+ const patterns = [];
12863
+ const bgpPattern = OPTION1(() => SUBRULE1(triplesBlock));
12864
+ if (bgpPattern) {
12865
+ patterns.push(bgpPattern);
12866
+ }
12867
+ MANY(() => {
12868
+ const notTriples = SUBRULE(graphPatternNotTriples);
12869
+ patterns.push(notTriples);
12870
+ OPTION2(() => CONSUME(symbols_exports.dot));
12871
+ const moreTriples = OPTION3(() => SUBRULE2(triplesBlock));
12872
+ if (moreTriples) {
12873
+ patterns.push(moreTriples);
12874
+ }
12875
+ });
12876
+ ACTION(() => checkNote13(patterns));
12877
+ return patterns;
12878
+ }
12879
+ };
12880
+ var graphPatternNotTriples = {
12881
+ name: "graphPatternNotTriples",
12882
+ impl: ({ SUBRULE, OR }) => () => OR([
12883
+ { ALT: () => SUBRULE(groupOrUnionGraphPattern) },
12884
+ { ALT: () => SUBRULE(optionalGraphPattern) },
12885
+ { ALT: () => SUBRULE(minusGraphPattern) },
12886
+ { ALT: () => SUBRULE(graphGraphPattern) },
12887
+ { ALT: () => SUBRULE(serviceGraphPattern) },
12888
+ { ALT: () => SUBRULE(filter3) },
12889
+ { ALT: () => SUBRULE(bind2) },
12890
+ { ALT: () => SUBRULE(inlineData) }
12891
+ ]),
12892
+ gImpl: ({ SUBRULE }) => (ast) => {
12893
+ switch (ast.subType) {
12894
+ case "group":
12895
+ case "union":
12896
+ SUBRULE(groupOrUnionGraphPattern, ast);
12897
+ break;
12898
+ case "optional":
12899
+ SUBRULE(optionalGraphPattern, ast);
12900
+ break;
12901
+ case "minus":
12902
+ SUBRULE(minusGraphPattern, ast);
12903
+ break;
12904
+ case "graph":
12905
+ SUBRULE(graphGraphPattern, ast);
12906
+ break;
12907
+ case "service":
12908
+ SUBRULE(serviceGraphPattern, ast);
12909
+ break;
12910
+ case "filter":
12911
+ SUBRULE(filter3, ast);
12912
+ break;
12913
+ case "bind":
12914
+ SUBRULE(bind2, ast);
12915
+ break;
12916
+ case "values":
12917
+ SUBRULE(inlineData, ast);
12918
+ break;
12919
+ }
12920
+ }
12921
+ };
12922
+ var optionalGraphPattern = {
12923
+ name: "optionalGraphPattern",
12924
+ impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12925
+ const optional2 = CONSUME(optional);
12926
+ const group = SUBRULE(groupGraphPattern);
12927
+ return ACTION(() => C.factory.patternOptional(group.patterns, C.factory.sourceLocation(optional2, group)));
12928
+ },
12929
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12930
+ F2.printFilter(ast, () => PRINT_WORD("OPTIONAL"));
12931
+ SUBRULE(groupGraphPattern, F2.patternGroup(ast.patterns, ast.loc));
12932
+ }
12933
+ };
12934
+ var graphGraphPattern = {
12935
+ name: "graphGraphPattern",
12936
+ impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12937
+ const graph2 = CONSUME(graph_exports.graph);
12938
+ const name = SUBRULE(varOrIri);
12939
+ const group = SUBRULE(groupGraphPattern);
12940
+ return ACTION(() => C.factory.patternGraph(name, group.patterns, C.factory.sourceLocation(graph2, group)));
12941
+ },
12942
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12943
+ F2.printFilter(ast, () => PRINT_WORD("GRAPH"));
12944
+ SUBRULE(varOrTerm, ast.name);
12945
+ SUBRULE(groupGraphPattern, F2.patternGroup(ast.patterns, ast.loc));
12946
+ }
12947
+ };
12948
+ var serviceGraphPattern = {
12949
+ name: "serviceGraphPattern",
12950
+ impl: ({ ACTION, SUBRULE1, CONSUME, OPTION }) => (C) => {
12951
+ const service2 = CONSUME(service);
12952
+ const silent2 = OPTION(() => {
12953
+ CONSUME(silent);
12954
+ return true;
12955
+ }) ?? false;
12956
+ const name = SUBRULE1(varOrIri);
12957
+ const group = SUBRULE1(groupGraphPattern);
12958
+ return ACTION(() => C.factory.patternService(name, group.patterns, silent2, C.factory.sourceLocation(service2, group)));
12959
+ },
12960
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12961
+ F2.printFilter(ast, () => {
12962
+ PRINT_WORD("SERVICE");
12963
+ if (ast.silent) {
12964
+ PRINT_WORD("SILENT");
13105
12965
  }
13106
- return F2.aggregate(
13107
- operatorToken.image,
13108
- Boolean(distinctToken),
13109
- expressionVal,
13110
- void 0,
13111
- C.factory.sourceLocation(operatorToken, closeToken)
13112
- );
13113
12966
  });
12967
+ SUBRULE(varOrTerm, ast.name);
12968
+ SUBRULE(groupGraphPattern, F2.patternGroup(ast.patterns, ast.loc));
13114
12969
  }
13115
12970
  };
13116
- var aggregateSum = baseAggregateFunc(BuildinCalls_exports.sum);
13117
- var aggregateMin = baseAggregateFunc(BuildinCalls_exports.min);
13118
- var aggregateMax = baseAggregateFunc(BuildinCalls_exports.max);
13119
- var aggregateAvg = baseAggregateFunc(BuildinCalls_exports.avg);
13120
- var aggregateSample = baseAggregateFunc(BuildinCalls_exports.sample);
13121
- var aggregateGroup_concat = {
13122
- name: unCapitalize(BuildinCalls_exports.groupConcat.name),
13123
- impl: ({ ACTION, CONSUME, OPTION1, SUBRULE, OPTION2 }) => (C) => {
13124
- const operatorToken = CONSUME(BuildinCalls_exports.groupConcat);
12971
+ var bind2 = {
12972
+ name: "bind",
12973
+ impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12974
+ const bind3 = CONSUME(bind);
13125
12975
  CONSUME(symbols_exports.LParen);
13126
- const distinctToken = OPTION1(() => CONSUME(distinct));
13127
- const expr = SUBRULE(expression, void 0);
13128
- const sep = OPTION2(() => {
13129
- CONSUME(symbols_exports.semi);
13130
- CONSUME(separator);
13131
- CONSUME(symbols_exports.equal);
13132
- return SUBRULE(string, void 0);
12976
+ const expressionVal = SUBRULE(expression);
12977
+ CONSUME(as);
12978
+ const variable = SUBRULE(var_);
12979
+ const close = CONSUME(symbols_exports.RParen);
12980
+ return ACTION(() => C.factory.patternBind(expressionVal, variable, C.factory.sourceLocation(bind3, close)));
12981
+ },
12982
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12983
+ F2.printFilter(ast, () => PRINT_WORD("BIND", "("));
12984
+ SUBRULE(expression, ast.expression);
12985
+ F2.printFilter(ast, () => PRINT_WORD("AS"));
12986
+ SUBRULE(var_, ast.variable);
12987
+ F2.printFilter(ast, () => PRINT_WORD(")"));
12988
+ }
12989
+ };
12990
+ var inlineData = {
12991
+ name: "inlineData",
12992
+ impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
12993
+ const values3 = CONSUME(values2);
12994
+ const datablock = SUBRULE(dataBlock);
12995
+ return ACTION(() => C.factory.patternValues(datablock.val, C.factory.sourceLocation(values3, datablock)));
12996
+ },
12997
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
12998
+ const variables = Object.keys(ast.values[0]);
12999
+ F2.printFilter(ast, () => {
13000
+ PRINT_WORD("VALUES", "(");
13001
+ for (const variable of variables) {
13002
+ PRINT_WORD(`?${variable}`);
13003
+ }
13004
+ PRINT_WORD(")", "{");
13133
13005
  });
13134
- const closeToken = CONSUME(symbols_exports.RParen);
13135
- return ACTION(() => {
13136
- const F2 = C.factory;
13137
- return F2.aggregate(
13138
- operatorToken.image,
13139
- Boolean(distinctToken),
13140
- expr,
13141
- sep?.value ?? " ",
13142
- F2.sourceLocation(operatorToken, closeToken)
13143
- );
13006
+ for (const mapping of ast.values) {
13007
+ F2.printFilter(ast, () => PRINT_WORD("("));
13008
+ for (const variable of variables) {
13009
+ if (mapping[variable] === void 0) {
13010
+ F2.printFilter(ast, () => PRINT_WORD("UNDEF"));
13011
+ } else {
13012
+ SUBRULE(graphNodePath, mapping[variable]);
13013
+ }
13014
+ }
13015
+ F2.printFilter(ast, () => PRINT_WORD(")"));
13016
+ }
13017
+ F2.printFilter(ast, () => PRINT_WORD("}"));
13018
+ }
13019
+ };
13020
+ var dataBlock = {
13021
+ name: "dataBlock",
13022
+ impl: ({ SUBRULE, OR }) => () => OR([
13023
+ { ALT: () => SUBRULE(inlineDataOneVar) },
13024
+ { ALT: () => SUBRULE(inlineDataFull) }
13025
+ ])
13026
+ };
13027
+ var inlineDataOneVar = {
13028
+ name: "inlineDataOneVar",
13029
+ impl: ({ ACTION, SUBRULE, CONSUME, MANY }) => (C) => {
13030
+ const res = [];
13031
+ const varVal = SUBRULE(var_);
13032
+ CONSUME(symbols_exports.LCurly);
13033
+ MANY(() => {
13034
+ const value = SUBRULE(dataBlockValue);
13035
+ ACTION(() => {
13036
+ res.push({ [varVal.value]: value });
13037
+ });
13144
13038
  });
13039
+ const close = CONSUME(symbols_exports.RCurly);
13040
+ return ACTION(() => C.factory.wrap(res, C.factory.sourceLocation(varVal, close)));
13145
13041
  }
13146
13042
  };
13147
- var aggregate = {
13148
- name: "aggregate",
13149
- impl: ({ ACTION, SUBRULE, OR }) => (C) => {
13150
- const wasInAggregate = ACTION(() => C.parseMode.has("inAggregate"));
13151
- ACTION(() => C.parseMode.add("inAggregate"));
13152
- const result = OR([
13153
- { ALT: () => SUBRULE(aggregateCount, void 0) },
13154
- { ALT: () => SUBRULE(aggregateSum, void 0) },
13155
- { ALT: () => SUBRULE(aggregateMin, void 0) },
13156
- { ALT: () => SUBRULE(aggregateMax, void 0) },
13157
- { ALT: () => SUBRULE(aggregateAvg, void 0) },
13158
- { ALT: () => SUBRULE(aggregateSample, void 0) },
13159
- { ALT: () => SUBRULE(aggregateGroup_concat, void 0) }
13043
+ var inlineDataFull = {
13044
+ name: "inlineDataFull",
13045
+ impl: ({
13046
+ ACTION,
13047
+ OR,
13048
+ MANY1,
13049
+ MANY2,
13050
+ MANY3,
13051
+ MANY4,
13052
+ SUBRULE,
13053
+ CONSUME1,
13054
+ CONSUME2
13055
+ }) => (C) => {
13056
+ const res = [];
13057
+ const vars = [];
13058
+ return OR([
13059
+ { ALT: () => {
13060
+ const nil2 = CONSUME1(terminals_exports.nil);
13061
+ CONSUME1(symbols_exports.LCurly);
13062
+ MANY1(() => {
13063
+ CONSUME2(terminals_exports.nil);
13064
+ res.push({});
13065
+ });
13066
+ const close = CONSUME1(symbols_exports.RCurly);
13067
+ return ACTION(() => C.factory.wrap(res, C.factory.sourceLocation(nil2, close)));
13068
+ } },
13069
+ { ALT: () => {
13070
+ const open = CONSUME1(symbols_exports.LParen);
13071
+ MANY2(() => {
13072
+ vars.push(SUBRULE(var_));
13073
+ });
13074
+ CONSUME1(symbols_exports.RParen);
13075
+ CONSUME2(symbols_exports.LCurly);
13076
+ MANY3(() => {
13077
+ let parsedValues = 0;
13078
+ const currentRow = {};
13079
+ CONSUME2(symbols_exports.LParen);
13080
+ MANY4(() => {
13081
+ if (parsedValues >= vars.length) {
13082
+ throw new Error("Number of dataBlockValues does not match number of variables. Too much values.");
13083
+ }
13084
+ const value = SUBRULE(dataBlockValue);
13085
+ ACTION(() => {
13086
+ currentRow[vars[parsedValues].value] = value;
13087
+ parsedValues++;
13088
+ });
13089
+ });
13090
+ CONSUME2(symbols_exports.RParen);
13091
+ ACTION(() => {
13092
+ res.push(currentRow);
13093
+ if (vars.length !== parsedValues) {
13094
+ throw new Error("Number of dataBlockValues does not match number of variables. Too few values.");
13095
+ }
13096
+ });
13097
+ });
13098
+ const close = CONSUME2(symbols_exports.RCurly);
13099
+ return ACTION(() => C.factory.wrap(res, C.factory.sourceLocation(open, close)));
13100
+ } }
13160
13101
  ]);
13161
- ACTION(() => !wasInAggregate && C.parseMode.delete("inAggregate"));
13162
- ACTION(() => {
13163
- if (!C.parseMode.has("canParseAggregate")) {
13164
- throw new Error("Aggregates are only allowed in SELECT, HAVING, and ORDER BY clauses.");
13165
- }
13166
- if (C.parseMode.has("inAggregate")) {
13167
- throw new Error("An aggregate function is not allowed within an aggregate function.");
13168
- }
13102
+ }
13103
+ };
13104
+ var dataBlockValue = {
13105
+ name: "dataBlockValue",
13106
+ impl: ({ SUBRULE, CONSUME, OR }) => () => OR([
13107
+ { ALT: () => SUBRULE(iri2) },
13108
+ { ALT: () => SUBRULE(rdfLiteral) },
13109
+ { ALT: () => SUBRULE(numericLiteral) },
13110
+ { ALT: () => SUBRULE(booleanLiteral) },
13111
+ { ALT: () => {
13112
+ CONSUME(undef);
13113
+ return void 0;
13114
+ } }
13115
+ ])
13116
+ };
13117
+ var minusGraphPattern = {
13118
+ name: "minusGraphPattern",
13119
+ impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
13120
+ const minus2 = CONSUME(minus);
13121
+ const group = SUBRULE(groupGraphPattern);
13122
+ return ACTION(() => C.factory.patternMinus(group.patterns, C.factory.sourceLocation(minus2, group)));
13123
+ },
13124
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
13125
+ F2.printFilter(ast, () => PRINT_WORD("MINUS"));
13126
+ SUBRULE(groupGraphPattern, F2.patternGroup(ast.patterns, ast.loc));
13127
+ }
13128
+ };
13129
+ var groupOrUnionGraphPattern = {
13130
+ name: "groupOrUnionGraphPattern",
13131
+ impl: ({ ACTION, MANY, SUBRULE1, SUBRULE2, CONSUME }) => (C) => {
13132
+ const groups = [];
13133
+ const group = SUBRULE1(groupGraphPattern);
13134
+ groups.push(group);
13135
+ MANY(() => {
13136
+ CONSUME(union);
13137
+ const group2 = SUBRULE2(groupGraphPattern);
13138
+ groups.push(group2);
13169
13139
  });
13170
- return result;
13140
+ return ACTION(() => groups.length === 1 ? groups[0] : C.factory.patternUnion(
13141
+ groups,
13142
+ C.factory.sourceLocation(group, groups.at(-1))
13143
+ ));
13171
13144
  },
13172
13145
  gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
13173
- F2.printFilter(ast, () => {
13174
- PRINT_WORD(ast.aggregation, "(");
13175
- if (ast.distinct) {
13176
- PRINT_WORD("DISTINCT");
13146
+ if (F2.isPatternUnion(ast)) {
13147
+ const [head2, ...tail] = ast.patterns;
13148
+ SUBRULE(groupGraphPattern, head2);
13149
+ for (const pattern of tail) {
13150
+ F2.printFilter(ast, () => PRINT_WORD("UNION"));
13151
+ SUBRULE(groupGraphPattern, pattern);
13177
13152
  }
13178
- });
13179
- const arg = ast.expression[0];
13180
- if (F2.isWildcard(arg)) {
13181
- F2.printFilter(ast, () => PRINT_WORD("*"));
13182
13153
  } else {
13183
- SUBRULE(expression, arg, void 0);
13184
- }
13185
- if (F2.isExpressionAggregateSeparator(ast)) {
13186
- F2.printFilter(ast, () => PRINT_WORD(";", "SEPARATOR", "=", stringEscapedLexical(ast.separator)));
13154
+ SUBRULE(groupGraphPattern, ast);
13187
13155
  }
13156
+ }
13157
+ };
13158
+ var filter3 = {
13159
+ name: "filter",
13160
+ impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
13161
+ const filterToken = CONSUME(filter2);
13162
+ const expression2 = SUBRULE(constraint);
13163
+ return ACTION(() => C.factory.patternFilter(expression2, C.factory.sourceLocation(filterToken, expression2)));
13164
+ },
13165
+ gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
13166
+ F2.printFilter(ast, () => PRINT_WORD("FILTER ("));
13167
+ SUBRULE(expression, ast.expression);
13188
13168
  F2.printFilter(ast, () => PRINT_WORD(")"));
13189
13169
  }
13190
13170
  };
13171
+ var constraint = {
13172
+ name: "constraint",
13173
+ impl: ({ SUBRULE, OR }) => () => OR([
13174
+ { ALT: () => SUBRULE(brackettedExpression) },
13175
+ { ALT: () => SUBRULE(builtInCall) },
13176
+ { ALT: () => SUBRULE(functionCall) }
13177
+ ])
13178
+ };
13179
+ var functionCall = {
13180
+ name: "functionCall",
13181
+ impl: ({ ACTION, SUBRULE }) => (C) => {
13182
+ const func = SUBRULE(iri2);
13183
+ const args = SUBRULE(argList);
13184
+ return ACTION(() => C.factory.expressionFunctionCall(
13185
+ func,
13186
+ args.val.args,
13187
+ args.val.distinct,
13188
+ C.factory.sourceLocation(func, args)
13189
+ ));
13190
+ }
13191
+ };
13191
13192
 
13192
13193
  // ../../packages/rules-sparql-1-1/lib/grammar/expression.ts
13193
13194
  var argList = {
@@ -13207,7 +13208,7 @@ var argList = {
13207
13208
  AT_LEAST_ONE_SEP({
13208
13209
  SEP: symbols_exports.comma,
13209
13210
  DEF: () => {
13210
- const arg = SUBRULE1(expression, void 0);
13211
+ const arg = SUBRULE1(expression);
13211
13212
  args.push(arg);
13212
13213
  }
13213
13214
  });
@@ -13224,11 +13225,11 @@ var argList = {
13224
13225
  });
13225
13226
  const [head2, ...tail] = ast.val.args;
13226
13227
  if (head2) {
13227
- SUBRULE(expression, head2, void 0);
13228
+ SUBRULE(expression, head2);
13228
13229
  }
13229
13230
  for (const expr of tail) {
13230
13231
  F2.printFilter(ast, () => PRINT_WORD(","));
13231
- SUBRULE(expression, expr, void 0);
13232
+ SUBRULE(expression, expr);
13232
13233
  }
13233
13234
  F2.printFilter(ast, () => PRINT_WORD(")"));
13234
13235
  }
@@ -13242,11 +13243,11 @@ var expressionList = {
13242
13243
  } },
13243
13244
  { ALT: () => {
13244
13245
  const open = CONSUME(symbols_exports.LParen);
13245
- const expr1 = SUBRULE1(expression, void 0);
13246
+ const expr1 = SUBRULE1(expression);
13246
13247
  const args = [expr1];
13247
13248
  MANY(() => {
13248
13249
  CONSUME(symbols_exports.comma);
13249
- const expr = SUBRULE2(expression, void 0);
13250
+ const expr = SUBRULE2(expression);
13250
13251
  args.push(expr);
13251
13252
  });
13252
13253
  const close = CONSUME(symbols_exports.RParen);
@@ -13258,15 +13259,15 @@ var infixOperators = /* @__PURE__ */ new Set(["in", "notin", "||", "&&", "=", "!
13258
13259
  var prefixOperator = /* @__PURE__ */ new Set(["!", "UPLUS", "UMINUS"]);
13259
13260
  var expression = {
13260
13261
  name: "expression",
13261
- impl: ({ SUBRULE }) => () => SUBRULE(conditionalOrExpression, void 0),
13262
+ impl: ({ SUBRULE }) => () => SUBRULE(conditionalOrExpression),
13262
13263
  gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
13263
13264
  if (F2.isTerm(ast)) {
13264
- SUBRULE(varOrTerm, ast, void 0);
13265
+ SUBRULE(varOrTerm, ast);
13265
13266
  } else if (F2.isExpressionOperator(ast)) {
13266
13267
  if (infixOperators.has(ast.operator)) {
13267
13268
  const [left, ...right] = ast.args;
13268
13269
  F2.printFilter(ast, () => PRINT_WORD("("));
13269
- SUBRULE(expression, left, void 0);
13270
+ SUBRULE(expression, left);
13270
13271
  F2.printFilter(ast, () => {
13271
13272
  if (ast.operator === "notin") {
13272
13273
  PRINT_WORD("NOT IN");
@@ -13277,35 +13278,35 @@ var expression = {
13277
13278
  }
13278
13279
  });
13279
13280
  if (right.length === 1) {
13280
- SUBRULE(expression, right[0], void 0);
13281
+ SUBRULE(expression, right[0]);
13281
13282
  } else {
13282
- SUBRULE(argList, F2.wrap({ args: right, distinct: false }, ast.loc), void 0);
13283
+ SUBRULE(argList, F2.wrap({ args: right, distinct: false }, ast.loc));
13283
13284
  }
13284
13285
  F2.printFilter(ast, () => PRINT_WORD(")"));
13285
13286
  } else if (prefixOperator.has(ast.operator)) {
13286
13287
  const [expr] = ast.args;
13287
13288
  F2.printFilter(ast, () => PRINT_WORD(ast.operator));
13288
- SUBRULE(expression, expr, void 0);
13289
+ SUBRULE(expression, expr);
13289
13290
  } else {
13290
13291
  F2.printFilter(ast, () => PRINT_WORD(ast.operator, "("));
13291
13292
  const [head2, ...tail] = ast.args;
13292
13293
  if (head2) {
13293
- SUBRULE(expression, head2, void 0);
13294
+ SUBRULE(expression, head2);
13294
13295
  }
13295
13296
  for (const arg of tail) {
13296
13297
  F2.printFilter(ast, () => PRINT_WORD(","));
13297
- SUBRULE(expression, arg, void 0);
13298
+ SUBRULE(expression, arg);
13298
13299
  }
13299
13300
  F2.printFilter(ast, () => PRINT_WORD(")"));
13300
13301
  }
13301
13302
  } else if (F2.isExpressionPatternOperation(ast)) {
13302
13303
  const patterns = ast.args;
13303
13304
  F2.printFilter(ast, () => PRINT_WORD(ast.operator === "exists" ? "EXISTS" : "NOT EXISTS"));
13304
- SUBRULE(groupGraphPattern, patterns, void 0);
13305
+ SUBRULE(groupGraphPattern, patterns);
13305
13306
  } else if (F2.isExpressionFunctionCall(ast)) {
13306
- SUBRULE(iriOrFunction, ast, void 0);
13307
+ SUBRULE(iriOrFunction, ast);
13307
13308
  } else if (F2.isExpressionAggregate(ast)) {
13308
- SUBRULE(aggregate, ast, void 0);
13309
+ SUBRULE(aggregate, ast);
13309
13310
  }
13310
13311
  }
13311
13312
  };
@@ -13322,10 +13323,10 @@ function constructLeftDeep(startGenerator, restGenerator, ACTION, MANY) {
13322
13323
  var conditionalOrExpression = {
13323
13324
  name: "conditionalOrExpression",
13324
13325
  impl: ({ ACTION, MANY, CONSUME, SUBRULE1, SUBRULE2 }) => (C) => constructLeftDeep(
13325
- () => SUBRULE1(conditionalAndExpression, void 0),
13326
+ () => SUBRULE1(conditionalAndExpression),
13326
13327
  () => {
13327
13328
  CONSUME(symbols_exports.logicOr);
13328
- const args = SUBRULE2(conditionalAndExpression, void 0);
13329
+ const args = SUBRULE2(conditionalAndExpression);
13329
13330
  return (left) => ACTION(() => C.factory.expressionOperation("||", [left, args], C.factory.sourceLocation(left, args)));
13330
13331
  },
13331
13332
  ACTION,
@@ -13335,10 +13336,10 @@ var conditionalOrExpression = {
13335
13336
  var conditionalAndExpression = {
13336
13337
  name: "conditionalAndExpression",
13337
13338
  impl: ({ ACTION, MANY, SUBRULE1, SUBRULE2, CONSUME }) => (C) => constructLeftDeep(
13338
- () => SUBRULE1(valueLogical, void 0),
13339
+ () => SUBRULE1(valueLogical),
13339
13340
  () => {
13340
13341
  CONSUME(symbols_exports.logicAnd);
13341
- const arg = SUBRULE2(valueLogical, void 0);
13342
+ const arg = SUBRULE2(valueLogical);
13342
13343
  return (left) => ACTION(() => C.factory.expressionOperation("&&", [left, arg], C.factory.sourceLocation(left, arg)));
13343
13344
  },
13344
13345
  ACTION,
@@ -13347,12 +13348,12 @@ var conditionalAndExpression = {
13347
13348
  };
13348
13349
  var valueLogical = {
13349
13350
  name: "valueLogical",
13350
- impl: ({ SUBRULE }) => () => SUBRULE(relationalExpression, void 0)
13351
+ impl: ({ SUBRULE }) => () => SUBRULE(relationalExpression)
13351
13352
  };
13352
13353
  var relationalExpression = {
13353
13354
  name: "relationalExpression",
13354
13355
  impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, OPTION, OR1, OR2, OR3 }) => (C) => {
13355
- const args1 = SUBRULE1(numericExpression, void 0);
13356
+ const args1 = SUBRULE1(numericExpression);
13356
13357
  const expression2 = OPTION(() => OR1([
13357
13358
  { ALT: () => {
13358
13359
  const operator = OR2([
@@ -13363,7 +13364,7 @@ var relationalExpression = {
13363
13364
  { ALT: () => CONSUME(symbols_exports.lessThanEqual) },
13364
13365
  { ALT: () => CONSUME(symbols_exports.greaterThanEqual) }
13365
13366
  ]);
13366
- const expr = SUBRULE2(numericExpression, void 0);
13367
+ const expr = SUBRULE2(numericExpression);
13367
13368
  return ACTION(() => C.factory.expressionOperation(
13368
13369
  operator.image,
13369
13370
  [args1, expr],
@@ -13375,7 +13376,7 @@ var relationalExpression = {
13375
13376
  { ALT: () => CONSUME(in_) },
13376
13377
  { ALT: () => CONSUME(notIn) }
13377
13378
  ]);
13378
- const args = SUBRULE1(expressionList, void 0);
13379
+ const args = SUBRULE1(expressionList);
13379
13380
  return ACTION(() => C.factory.expressionOperation(
13380
13381
  operator.image,
13381
13382
  [args1, ...args.val],
@@ -13388,25 +13389,25 @@ var relationalExpression = {
13388
13389
  };
13389
13390
  var numericExpression = {
13390
13391
  name: "numericExpression",
13391
- impl: ({ SUBRULE }) => () => SUBRULE(additiveExpression, void 0)
13392
+ impl: ({ SUBRULE }) => () => SUBRULE(additiveExpression)
13392
13393
  };
13393
13394
  var additiveExpression = {
13394
13395
  name: "additiveExpression",
13395
13396
  impl: ({ ACTION, SUBRULE, CONSUME, SUBRULE1, SUBRULE2, MANY1, MANY2, OR1, OR2, OR3, OR4 }) => (C) => constructLeftDeep(
13396
- () => SUBRULE1(multiplicativeExpression, void 0),
13397
+ () => SUBRULE1(multiplicativeExpression),
13397
13398
  () => OR1([
13398
13399
  { ALT: () => {
13399
13400
  const operator = OR2([
13400
13401
  { ALT: () => CONSUME(symbols_exports.opPlus) },
13401
13402
  { ALT: () => CONSUME(symbols_exports.opMinus) }
13402
13403
  ]);
13403
- const arg = SUBRULE2(multiplicativeExpression, void 0);
13404
+ const arg = SUBRULE2(multiplicativeExpression);
13404
13405
  return ACTION(() => (left) => C.factory.expressionOperation(operator.image, [left, arg], C.factory.sourceLocation(left, arg)));
13405
13406
  } },
13406
13407
  { ALT: () => {
13407
13408
  const { operator, startInt } = OR3([
13408
13409
  { ALT: () => {
13409
- const integer2 = SUBRULE(numericLiteralPositive, void 0);
13410
+ const integer2 = SUBRULE(numericLiteralPositive);
13410
13411
  return ACTION(() => {
13411
13412
  integer2.value = integer2.value.replace(/^\+/u, "");
13412
13413
  return {
@@ -13416,7 +13417,7 @@ var additiveExpression = {
13416
13417
  });
13417
13418
  } },
13418
13419
  { ALT: () => {
13419
- const integer2 = SUBRULE(numericLiteralNegative, void 0);
13420
+ const integer2 = SUBRULE(numericLiteralNegative);
13420
13421
  return ACTION(() => {
13421
13422
  integer2.value = integer2.value.replace(/^-/u, "");
13422
13423
  return {
@@ -13433,7 +13434,7 @@ var additiveExpression = {
13433
13434
  { ALT: () => CONSUME(symbols_exports.star) },
13434
13435
  { ALT: () => CONSUME(symbols_exports.slash) }
13435
13436
  ]);
13436
- const innerExpr = SUBRULE1(unaryExpression, void 0);
13437
+ const innerExpr = SUBRULE1(unaryExpression);
13437
13438
  return ACTION(() => (leftInner) => C.factory.expressionOperation(
13438
13439
  innerOperator.image,
13439
13440
  [leftInner, innerExpr],
@@ -13457,13 +13458,13 @@ var additiveExpression = {
13457
13458
  var multiplicativeExpression = {
13458
13459
  name: "multiplicativeExpression",
13459
13460
  impl: ({ ACTION, CONSUME, MANY, SUBRULE1, SUBRULE2, OR }) => (C) => constructLeftDeep(
13460
- () => SUBRULE1(unaryExpression, void 0),
13461
+ () => SUBRULE1(unaryExpression),
13461
13462
  () => {
13462
13463
  const operator = OR([
13463
13464
  { ALT: () => CONSUME(symbols_exports.star) },
13464
13465
  { ALT: () => CONSUME(symbols_exports.slash) }
13465
13466
  ]);
13466
- const expr = SUBRULE2(unaryExpression, void 0);
13467
+ const expr = SUBRULE2(unaryExpression);
13467
13468
  return (left) => ({
13468
13469
  type: "expression",
13469
13470
  subType: "operation",
@@ -13479,14 +13480,14 @@ var multiplicativeExpression = {
13479
13480
  var unaryExpression = {
13480
13481
  name: "unaryExpression",
13481
13482
  impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, OR1, OR2 }) => (C) => OR1([
13482
- { ALT: () => SUBRULE1(primaryExpression, void 0) },
13483
+ { ALT: () => SUBRULE1(primaryExpression) },
13483
13484
  { ALT: () => {
13484
13485
  const operator = OR2([
13485
13486
  { ALT: () => CONSUME(symbols_exports.exclamation) },
13486
13487
  { ALT: () => CONSUME(symbols_exports.opPlus) },
13487
13488
  { ALT: () => CONSUME(symbols_exports.opMinus) }
13488
13489
  ]);
13489
- const expr = SUBRULE2(primaryExpression, void 0);
13490
+ const expr = SUBRULE2(primaryExpression);
13490
13491
  return ACTION(() => ({
13491
13492
  type: "expression",
13492
13493
  subType: "operation",
@@ -13500,20 +13501,20 @@ var unaryExpression = {
13500
13501
  var primaryExpression = {
13501
13502
  name: "primaryExpression",
13502
13503
  impl: ({ SUBRULE, OR }) => () => OR([
13503
- { ALT: () => SUBRULE(brackettedExpression, void 0) },
13504
- { ALT: () => SUBRULE(builtInCall, void 0) },
13505
- { ALT: () => SUBRULE(iriOrFunction, void 0) },
13506
- { ALT: () => SUBRULE(rdfLiteral, void 0) },
13507
- { ALT: () => SUBRULE(numericLiteral, void 0) },
13508
- { ALT: () => SUBRULE(booleanLiteral, void 0) },
13509
- { ALT: () => SUBRULE(var_, void 0) }
13504
+ { ALT: () => SUBRULE(brackettedExpression) },
13505
+ { ALT: () => SUBRULE(builtInCall) },
13506
+ { ALT: () => SUBRULE(iriOrFunction) },
13507
+ { ALT: () => SUBRULE(rdfLiteral) },
13508
+ { ALT: () => SUBRULE(numericLiteral) },
13509
+ { ALT: () => SUBRULE(booleanLiteral) },
13510
+ { ALT: () => SUBRULE(var_) }
13510
13511
  ])
13511
13512
  };
13512
13513
  var brackettedExpression = {
13513
13514
  name: "brackettedExpression",
13514
13515
  impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
13515
13516
  const open = CONSUME(symbols_exports.LParen);
13516
- const expr = SUBRULE(expression, void 0);
13517
+ const expr = SUBRULE(expression);
13517
13518
  const close = CONSUME(symbols_exports.RParen);
13518
13519
  return ACTION(() => {
13519
13520
  expr.loc = C.factory.sourceLocation(open, close);
@@ -13524,9 +13525,9 @@ var brackettedExpression = {
13524
13525
  var iriOrFunction = {
13525
13526
  name: "iriOrFunction",
13526
13527
  impl: ({ ACTION, SUBRULE, OPTION }) => (C) => {
13527
- const iriVal = SUBRULE(iri2, void 0);
13528
+ const iriVal = SUBRULE(iri2);
13528
13529
  const functionCall2 = OPTION(() => {
13529
- const args = SUBRULE(argList, void 0);
13530
+ const args = SUBRULE(argList);
13530
13531
  return ACTION(() => {
13531
13532
  const distinct2 = args.val.distinct;
13532
13533
  if (!C.parseMode.has("canParseAggregate") && distinct2) {
@@ -13546,10 +13547,10 @@ var iriOrFunction = {
13546
13547
  },
13547
13548
  gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
13548
13549
  if (F2.isTermNamed(ast)) {
13549
- SUBRULE(iri2, ast, void 0);
13550
+ SUBRULE(iri2, ast);
13550
13551
  } else {
13551
- SUBRULE(iri2, ast.function, void 0);
13552
- SUBRULE(argList, F2.wrap({ args: ast.args, distinct: ast.distinct }, ast.loc), void 0);
13552
+ SUBRULE(iri2, ast.function);
13553
+ SUBRULE(argList, F2.wrap({ args: ast.args, distinct: ast.distinct }, ast.loc));
13553
13554
  }
13554
13555
  }
13555
13556
  };
@@ -13558,10 +13559,10 @@ var iriOrFunction = {
13558
13559
  var solutionModifier = {
13559
13560
  name: "solutionModifier",
13560
13561
  impl: ({ ACTION, SUBRULE, OPTION1, OPTION2, OPTION3, OPTION4 }) => () => {
13561
- const group = OPTION1(() => SUBRULE(groupClause, void 0));
13562
- const having2 = OPTION2(() => SUBRULE(havingClause, void 0));
13563
- const order2 = OPTION3(() => SUBRULE(orderClause, void 0));
13564
- const limitOffset = OPTION4(() => SUBRULE(limitOffsetClauses, void 0));
13562
+ const group = OPTION1(() => SUBRULE(groupClause));
13563
+ const having2 = OPTION2(() => SUBRULE(havingClause));
13564
+ const order2 = OPTION3(() => SUBRULE(orderClause));
13565
+ const limitOffset = OPTION4(() => SUBRULE(limitOffsetClauses));
13565
13566
  return ACTION(() => ({
13566
13567
  ...limitOffset && { limitOffset },
13567
13568
  ...group && { group },
@@ -13571,16 +13572,16 @@ var solutionModifier = {
13571
13572
  },
13572
13573
  gImpl: ({ SUBRULE }) => (ast) => {
13573
13574
  if (ast.group) {
13574
- SUBRULE(groupClause, ast.group, void 0);
13575
+ SUBRULE(groupClause, ast.group);
13575
13576
  }
13576
13577
  if (ast.having) {
13577
- SUBRULE(havingClause, ast.having, void 0);
13578
+ SUBRULE(havingClause, ast.having);
13578
13579
  }
13579
13580
  if (ast.order) {
13580
- SUBRULE(orderClause, ast.order, void 0);
13581
+ SUBRULE(orderClause, ast.order);
13581
13582
  }
13582
13583
  if (ast.limitOffset) {
13583
- SUBRULE(limitOffsetClauses, ast.limitOffset, void 0);
13584
+ SUBRULE(limitOffsetClauses, ast.limitOffset);
13584
13585
  }
13585
13586
  }
13586
13587
  };
@@ -13591,7 +13592,7 @@ var groupClause = {
13591
13592
  const start = CONSUME(groupByGroup);
13592
13593
  CONSUME(by);
13593
13594
  AT_LEAST_ONE(() => {
13594
- groupings.push(SUBRULE1(groupCondition, void 0));
13595
+ groupings.push(SUBRULE1(groupCondition));
13595
13596
  });
13596
13597
  return ACTION(() => ({
13597
13598
  type: "solutionModifier",
@@ -13604,12 +13605,12 @@ var groupClause = {
13604
13605
  F2.printFilter(ast, () => PRINT_WORDS("GROUP", "BY"));
13605
13606
  for (const grouping of ast.groupings) {
13606
13607
  if (F2.isExpression(grouping)) {
13607
- SUBRULE(expression, grouping, void 0);
13608
+ SUBRULE(expression, grouping);
13608
13609
  } else {
13609
13610
  F2.printFilter(ast, () => PRINT_WORDS("("));
13610
- SUBRULE(expression, grouping.value, void 0);
13611
+ SUBRULE(expression, grouping.value);
13611
13612
  F2.printFilter(ast, () => PRINT_WORDS("AS"));
13612
- SUBRULE(var_, grouping.variable, void 0);
13613
+ SUBRULE(var_, grouping.variable);
13613
13614
  F2.printFilter(ast, () => PRINT_WORDS(")"));
13614
13615
  }
13615
13616
  }
@@ -13618,16 +13619,16 @@ var groupClause = {
13618
13619
  var groupCondition = {
13619
13620
  name: "groupCondition",
13620
13621
  impl: ({ ACTION, SUBRULE, CONSUME, SUBRULE1, SUBRULE2, OPTION, OR }) => (C) => OR([
13621
- { ALT: () => SUBRULE(builtInCall, void 0) },
13622
- { ALT: () => SUBRULE(functionCall, void 0) },
13623
- { ALT: () => SUBRULE2(var_, void 0) },
13622
+ { ALT: () => SUBRULE(builtInCall) },
13623
+ { ALT: () => SUBRULE(functionCall) },
13624
+ { ALT: () => SUBRULE2(var_) },
13624
13625
  {
13625
13626
  ALT: () => {
13626
13627
  const open = CONSUME(symbols_exports.LParen);
13627
- const expressionValue = SUBRULE(expression, void 0);
13628
+ const expressionValue = SUBRULE(expression);
13628
13629
  const variable = OPTION(() => {
13629
13630
  CONSUME(as);
13630
- return SUBRULE1(var_, void 0);
13631
+ return SUBRULE1(var_);
13631
13632
  });
13632
13633
  const close = CONSUME(symbols_exports.RParen);
13633
13634
  return ACTION(() => {
@@ -13651,7 +13652,7 @@ var havingClause = {
13651
13652
  const expressions = [];
13652
13653
  const couldParseAgg = ACTION(() => C.parseMode.has("canParseAggregate") || !C.parseMode.add("canParseAggregate"));
13653
13654
  AT_LEAST_ONE(() => {
13654
- expressions.push(SUBRULE(havingCondition, void 0));
13655
+ expressions.push(SUBRULE(havingCondition));
13655
13656
  });
13656
13657
  ACTION(() => !couldParseAgg && C.parseMode.delete("canParseAggregate"));
13657
13658
  return ACTION(() => C.factory.solutionModifierHaving(expressions, C.factory.sourceLocation(having2, expressions.at(-1))));
@@ -13659,13 +13660,13 @@ var havingClause = {
13659
13660
  gImpl: ({ PRINT_WORD, SUBRULE }) => (ast, { factory: F2 }) => {
13660
13661
  F2.printFilter(ast, () => PRINT_WORD("HAVING"));
13661
13662
  for (const having2 of ast.having) {
13662
- SUBRULE(expression, having2, void 0);
13663
+ SUBRULE(expression, having2);
13663
13664
  }
13664
13665
  }
13665
13666
  };
13666
13667
  var havingCondition = {
13667
13668
  name: "havingCondition",
13668
- impl: ({ SUBRULE }) => () => SUBRULE(constraint, void 0)
13669
+ impl: ({ SUBRULE }) => () => SUBRULE(constraint)
13669
13670
  };
13670
13671
  var orderClause = {
13671
13672
  name: "orderClause",
@@ -13675,7 +13676,7 @@ var orderClause = {
13675
13676
  const orderings = [];
13676
13677
  const couldParseAgg = ACTION(() => C.parseMode.has("canParseAggregate") || !C.parseMode.add("canParseAggregate"));
13677
13678
  AT_LEAST_ONE(() => {
13678
- orderings.push(SUBRULE1(orderCondition, void 0));
13679
+ orderings.push(SUBRULE1(orderCondition));
13679
13680
  });
13680
13681
  ACTION(() => !couldParseAgg && C.parseMode.delete("canParseAggregate"));
13681
13682
  return ACTION(() => C.factory.solutionModifierOrder(orderings, C.factory.sourceLocation(order2, orderings.at(-1))));
@@ -13689,7 +13690,7 @@ var orderClause = {
13689
13690
  F2.printFilter(ast, () => PRINT_WORDS("ASC"));
13690
13691
  }
13691
13692
  F2.printFilter(ast, () => PRINT_WORDS("("));
13692
- SUBRULE(expression, ordering.expression, void 0);
13693
+ SUBRULE(expression, ordering.expression);
13693
13694
  F2.printFilter(ast, () => PRINT_WORDS(")"));
13694
13695
  }
13695
13696
  }
@@ -13708,7 +13709,7 @@ var orderCondition = {
13708
13709
  return [true, token];
13709
13710
  } }
13710
13711
  ]);
13711
- const expr = SUBRULE(brackettedExpression, void 0);
13712
+ const expr = SUBRULE(brackettedExpression);
13712
13713
  return ACTION(() => ({
13713
13714
  expression: expr,
13714
13715
  descending: descending[0],
@@ -13716,11 +13717,11 @@ var orderCondition = {
13716
13717
  }));
13717
13718
  } },
13718
13719
  { ALT: () => {
13719
- const expr = SUBRULE(constraint, void 0);
13720
+ const expr = SUBRULE(constraint);
13720
13721
  return ACTION(() => ({ expression: expr, descending: false, loc: expr.loc }));
13721
13722
  } },
13722
13723
  { ALT: () => {
13723
- const expr = SUBRULE(var_, void 0);
13724
+ const expr = SUBRULE(var_);
13724
13725
  return ACTION(() => ({ expression: expr, descending: false, loc: expr.loc }));
13725
13726
  } }
13726
13727
  ])
@@ -13729,8 +13730,8 @@ var limitOffsetClauses = {
13729
13730
  name: "limitOffsetClauses",
13730
13731
  impl: ({ ACTION, SUBRULE1, SUBRULE2, OPTION1, OPTION2, OR }) => (C) => OR([
13731
13732
  { ALT: () => {
13732
- const limit2 = SUBRULE1(limitClause, void 0);
13733
- const offset2 = OPTION1(() => SUBRULE1(offsetClause, void 0));
13733
+ const limit2 = SUBRULE1(limitClause);
13734
+ const offset2 = OPTION1(() => SUBRULE1(offsetClause));
13734
13735
  return ACTION(() => C.factory.solutionModifierLimitOffset(
13735
13736
  limit2.val,
13736
13737
  offset2?.val,
@@ -13738,8 +13739,8 @@ var limitOffsetClauses = {
13738
13739
  ));
13739
13740
  } },
13740
13741
  { ALT: () => {
13741
- const offset2 = SUBRULE2(offsetClause, void 0);
13742
- const limit2 = OPTION2(() => SUBRULE2(limitClause, void 0));
13742
+ const offset2 = SUBRULE2(offsetClause);
13743
+ const limit2 = OPTION2(() => SUBRULE2(limitClause));
13743
13744
  return ACTION(() => C.factory.solutionModifierLimitOffset(
13744
13745
  limit2?.val,
13745
13746
  offset2.val,
@@ -13777,22 +13778,22 @@ var offsetClause = {
13777
13778
  }
13778
13779
  };
13779
13780
 
13780
- // ../../packages/rules-sparql-1-1/lib/grammar/queryUnit/queryUnit.ts
13781
+ // ../../packages/rules-sparql-1-1/lib/grammar/queryUnit.ts
13781
13782
  var queryUnit = {
13782
13783
  name: "queryUnit",
13783
- impl: ({ SUBRULE }) => () => SUBRULE(query, void 0)
13784
+ impl: ({ SUBRULE }) => () => SUBRULE(query)
13784
13785
  };
13785
13786
  var query = {
13786
13787
  name: "query",
13787
13788
  impl: ({ ACTION, SUBRULE, OR }) => (C) => {
13788
- const prologueValues = SUBRULE(prologue, void 0);
13789
+ const prologueValues = SUBRULE(prologue);
13789
13790
  const subType = OR([
13790
- { ALT: () => SUBRULE(selectQuery, void 0) },
13791
- { ALT: () => SUBRULE(constructQuery, void 0) },
13792
- { ALT: () => SUBRULE(describeQuery, void 0) },
13793
- { ALT: () => SUBRULE(askQuery, void 0) }
13791
+ { ALT: () => SUBRULE(selectQuery) },
13792
+ { ALT: () => SUBRULE(constructQuery) },
13793
+ { ALT: () => SUBRULE(describeQuery) },
13794
+ { ALT: () => SUBRULE(askQuery) }
13794
13795
  ]);
13795
- const values3 = SUBRULE(valuesClause, void 0);
13796
+ const values3 = SUBRULE(valuesClause);
13796
13797
  return ACTION(() => ({
13797
13798
  context: prologueValues,
13798
13799
  ...subType,
@@ -13806,28 +13807,28 @@ var query = {
13806
13807
  }));
13807
13808
  },
13808
13809
  gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
13809
- SUBRULE(prologue, ast.context, void 0);
13810
+ SUBRULE(prologue, ast.context);
13810
13811
  if (F2.isQuerySelect(ast)) {
13811
- SUBRULE(selectQuery, ast, void 0);
13812
+ SUBRULE(selectQuery, ast);
13812
13813
  } else if (F2.isQueryConstruct(ast)) {
13813
- SUBRULE(constructQuery, ast, void 0);
13814
+ SUBRULE(constructQuery, ast);
13814
13815
  } else if (F2.isQueryDescribe(ast)) {
13815
- SUBRULE(describeQuery, ast, void 0);
13816
+ SUBRULE(describeQuery, ast);
13816
13817
  } else if (F2.isQueryAsk(ast)) {
13817
- SUBRULE(askQuery, ast, void 0);
13818
+ SUBRULE(askQuery, ast);
13818
13819
  }
13819
13820
  if (ast.values) {
13820
- SUBRULE(inlineData, ast.values, void 0);
13821
+ SUBRULE(inlineData, ast.values);
13821
13822
  }
13822
13823
  }
13823
13824
  };
13824
13825
  var selectQuery = {
13825
13826
  name: "selectQuery",
13826
13827
  impl: ({ ACTION, SUBRULE }) => (C) => {
13827
- const selectVal = SUBRULE(selectClause, void 0);
13828
- const from2 = SUBRULE(datasetClauseStar, void 0);
13829
- const where2 = SUBRULE(whereClause, void 0);
13830
- const modifiers = SUBRULE(solutionModifier, void 0);
13828
+ const selectVal = SUBRULE(selectClause);
13829
+ const from2 = SUBRULE(datasetClauseStar);
13830
+ const where2 = SUBRULE(whereClause);
13831
+ const modifiers = SUBRULE(solutionModifier);
13831
13832
  return ACTION(() => {
13832
13833
  const ret = {
13833
13834
  subType: "select",
@@ -13853,19 +13854,19 @@ var selectQuery = {
13853
13854
  variables: ast.variables,
13854
13855
  distinct: ast.distinct,
13855
13856
  reduced: ast.reduced
13856
- }, F2.sourceLocation(...ast.variables)), void 0);
13857
- SUBRULE(datasetClauseStar, ast.datasets, void 0);
13858
- SUBRULE(whereClause, F2.wrap(ast.where, ast.where.loc), void 0);
13859
- SUBRULE(solutionModifier, ast.solutionModifiers, void 0);
13857
+ }, F2.sourceLocation(...ast.variables)));
13858
+ SUBRULE(datasetClauseStar, ast.datasets);
13859
+ SUBRULE(whereClause, F2.wrap(ast.where, ast.where.loc));
13860
+ SUBRULE(solutionModifier, ast.solutionModifiers);
13860
13861
  }
13861
13862
  };
13862
13863
  var subSelect = {
13863
13864
  name: "subSelect",
13864
13865
  impl: ({ ACTION, SUBRULE }) => (C) => {
13865
- const selectVal = SUBRULE(selectClause, void 0);
13866
- const where2 = SUBRULE(whereClause, void 0);
13867
- const modifiers = SUBRULE(solutionModifier, void 0);
13868
- const values3 = SUBRULE(valuesClause, void 0);
13866
+ const selectVal = SUBRULE(selectClause);
13867
+ const where2 = SUBRULE(whereClause);
13868
+ const modifiers = SUBRULE(solutionModifier);
13869
+ const values3 = SUBRULE(valuesClause);
13869
13870
  return ACTION(() => C.factory.querySelect({
13870
13871
  where: where2.val,
13871
13872
  datasets: C.factory.datasetClauses([], C.factory.sourceLocation()),
@@ -13930,7 +13931,7 @@ var selectClause = {
13930
13931
  const variables = [];
13931
13932
  AT_LEAST_ONE(() => OR3([
13932
13933
  { ALT: () => {
13933
- const raw = SUBRULE1(var_, void 0);
13934
+ const raw = SUBRULE1(var_);
13934
13935
  ACTION(() => {
13935
13936
  if (usedVars.some((v) => v.value === raw.value)) {
13936
13937
  throw new Error(`Variable ${raw.value} used more than once in SELECT clause`);
@@ -13942,9 +13943,9 @@ var selectClause = {
13942
13943
  } },
13943
13944
  { ALT: () => {
13944
13945
  const open = CONSUME(symbols_exports.LParen);
13945
- const expr = SUBRULE1(expression, void 0);
13946
+ const expr = SUBRULE1(expression);
13946
13947
  CONSUME(as);
13947
- const variable = SUBRULE2(var_, void 0);
13948
+ const variable = SUBRULE2(var_);
13948
13949
  const close = CONSUME(symbols_exports.RParen);
13949
13950
  ACTION(() => {
13950
13951
  last2 = close;
@@ -13975,12 +13976,12 @@ var selectClause = {
13975
13976
  if (F2.isWildcard(variable)) {
13976
13977
  F2.printFilter(ast, () => PRINT_WORD("*"));
13977
13978
  } else if (F2.isTerm(variable)) {
13978
- SUBRULE(var_, variable, void 0);
13979
+ SUBRULE(var_, variable);
13979
13980
  } else {
13980
13981
  F2.printFilter(ast, () => PRINT_WORD("("));
13981
- SUBRULE(expression, variable.expression, void 0);
13982
+ SUBRULE(expression, variable.expression);
13982
13983
  F2.printFilter(ast, () => PRINT_WORD("AS"));
13983
- SUBRULE(var_, variable.variable, void 0);
13984
+ SUBRULE(var_, variable.variable);
13984
13985
  F2.printFilter(ast, () => PRINT_WORD(")"));
13985
13986
  }
13986
13987
  }
@@ -13992,10 +13993,10 @@ var constructQuery = {
13992
13993
  const construct2 = CONSUME(construct);
13993
13994
  return OR([
13994
13995
  { ALT: () => {
13995
- const template = SUBRULE1(constructTemplate, void 0);
13996
- const from2 = SUBRULE1(datasetClauseStar, void 0);
13997
- const where2 = SUBRULE1(whereClause, void 0);
13998
- const modifiers = SUBRULE1(solutionModifier, void 0);
13996
+ const template = SUBRULE1(constructTemplate);
13997
+ const from2 = SUBRULE1(datasetClauseStar);
13998
+ const where2 = SUBRULE1(whereClause);
13999
+ const modifiers = SUBRULE1(solutionModifier);
13999
14000
  return ACTION(() => ({
14000
14001
  subType: "construct",
14001
14002
  template: template.val,
@@ -14013,10 +14014,10 @@ var constructQuery = {
14013
14014
  }));
14014
14015
  } },
14015
14016
  { ALT: () => {
14016
- const from2 = SUBRULE2(datasetClauseStar, void 0);
14017
+ const from2 = SUBRULE2(datasetClauseStar);
14017
14018
  CONSUME(where);
14018
- const template = SUBRULE2(constructTemplate, void 0);
14019
- const modifiers = SUBRULE2(solutionModifier, void 0);
14019
+ const template = SUBRULE2(constructTemplate);
14020
+ const modifiers = SUBRULE2(solutionModifier);
14020
14021
  return ACTION(() => ({
14021
14022
  subType: "construct",
14022
14023
  template: template.val,
@@ -14039,16 +14040,16 @@ var constructQuery = {
14039
14040
  F2.printFilter(ast, () => PRINT_WORD("CONSTRUCT"));
14040
14041
  if (!F2.isSourceLocationNoMaterialize(ast.where.loc)) {
14041
14042
  F2.printFilter(ast, () => PRINT_WORD("{"));
14042
- SUBRULE(triplesBlock, ast.template, void 0);
14043
+ SUBRULE(triplesBlock, ast.template);
14043
14044
  F2.printFilter(ast, () => PRINT_WORD("}"));
14044
14045
  }
14045
- SUBRULE(datasetClauseStar, ast.datasets, void 0);
14046
+ SUBRULE(datasetClauseStar, ast.datasets);
14046
14047
  if (F2.isSourceLocationNoMaterialize(ast.where.loc)) {
14047
- SUBRULE(whereClause, F2.wrap(F2.patternGroup([ast.template], ast.template.loc), ast.template.loc), void 0);
14048
+ SUBRULE(whereClause, F2.wrap(F2.patternGroup([ast.template], ast.template.loc), ast.template.loc));
14048
14049
  } else {
14049
- SUBRULE(whereClause, F2.wrap(ast.where, ast.where.loc), void 0);
14050
+ SUBRULE(whereClause, F2.wrap(ast.where, ast.where.loc));
14050
14051
  }
14051
- SUBRULE(solutionModifier, ast.solutionModifiers, void 0);
14052
+ SUBRULE(solutionModifier, ast.solutionModifiers);
14052
14053
  }
14053
14054
  };
14054
14055
  var describeQuery = {
@@ -14059,7 +14060,7 @@ var describeQuery = {
14059
14060
  { ALT: () => {
14060
14061
  const variables2 = [];
14061
14062
  AT_LEAST_ONE(() => {
14062
- variables2.push(SUBRULE1(varOrIri, void 0));
14063
+ variables2.push(SUBRULE1(varOrIri));
14063
14064
  });
14064
14065
  return variables2;
14065
14066
  } },
@@ -14068,9 +14069,9 @@ var describeQuery = {
14068
14069
  return [ACTION(() => C.factory.wildcard(C.factory.sourceLocation(star2)))];
14069
14070
  } }
14070
14071
  ]);
14071
- const from2 = SUBRULE1(datasetClauseStar, void 0);
14072
- const where2 = OPTION(() => SUBRULE1(whereClause, void 0));
14073
- const modifiers = SUBRULE1(solutionModifier, void 0);
14072
+ const from2 = SUBRULE1(datasetClauseStar);
14073
+ const where2 = OPTION(() => SUBRULE1(whereClause));
14074
+ const modifiers = SUBRULE1(solutionModifier);
14074
14075
  return ACTION(() => ({
14075
14076
  subType: "describe",
14076
14077
  variables,
@@ -14095,23 +14096,23 @@ var describeQuery = {
14095
14096
  F2.printFilter(ast, () => PRINT_WORD("*"));
14096
14097
  } else {
14097
14098
  for (const variable of ast.variables) {
14098
- SUBRULE(varOrTerm, variable, void 0);
14099
+ SUBRULE(varOrTerm, variable);
14099
14100
  }
14100
14101
  }
14101
- SUBRULE(datasetClauseStar, ast.datasets, void 0);
14102
+ SUBRULE(datasetClauseStar, ast.datasets);
14102
14103
  if (ast.where) {
14103
- SUBRULE(whereClause, F2.wrap(ast.where, ast.loc), void 0);
14104
+ SUBRULE(whereClause, F2.wrap(ast.where, ast.loc));
14104
14105
  }
14105
- SUBRULE(solutionModifier, ast.solutionModifiers, void 0);
14106
+ SUBRULE(solutionModifier, ast.solutionModifiers);
14106
14107
  }
14107
14108
  };
14108
14109
  var askQuery = {
14109
14110
  name: "askQuery",
14110
14111
  impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
14111
14112
  const ask2 = CONSUME(ask);
14112
- const from2 = SUBRULE(datasetClauseStar, void 0);
14113
- const where2 = SUBRULE(whereClause, void 0);
14114
- const modifiers = SUBRULE(solutionModifier, void 0);
14113
+ const from2 = SUBRULE(datasetClauseStar);
14114
+ const where2 = SUBRULE(whereClause);
14115
+ const modifiers = SUBRULE(solutionModifier);
14115
14116
  return ACTION(() => ({
14116
14117
  subType: "ask",
14117
14118
  datasets: from2,
@@ -14130,20 +14131,20 @@ var askQuery = {
14130
14131
  },
14131
14132
  gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
14132
14133
  F2.printFilter(ast, () => PRINT_WORD("ASK"));
14133
- SUBRULE(datasetClauseStar, ast.datasets, void 0);
14134
- SUBRULE(whereClause, F2.wrap(ast.where, ast.loc), void 0);
14135
- SUBRULE(solutionModifier, ast.solutionModifiers, void 0);
14134
+ SUBRULE(datasetClauseStar, ast.datasets);
14135
+ SUBRULE(whereClause, F2.wrap(ast.where, ast.loc));
14136
+ SUBRULE(solutionModifier, ast.solutionModifiers);
14136
14137
  }
14137
14138
  };
14138
14139
  var valuesClause = {
14139
14140
  name: "valuesClause",
14140
- impl: ({ OPTION, SUBRULE }) => () => OPTION(() => SUBRULE(inlineData, void 0))
14141
+ impl: ({ OPTION, SUBRULE }) => () => OPTION(() => SUBRULE(inlineData))
14141
14142
  };
14142
14143
  var constructTemplate = {
14143
14144
  name: "constructTemplate",
14144
14145
  impl: ({ ACTION, SUBRULE1, CONSUME, OPTION }) => (C) => {
14145
14146
  const open = CONSUME(symbols_exports.LCurly);
14146
- const triples = OPTION(() => SUBRULE1(constructTriples, void 0));
14147
+ const triples = OPTION(() => SUBRULE1(constructTriples));
14147
14148
  const close = CONSUME(symbols_exports.RCurly);
14148
14149
  return ACTION(() => C.factory.wrap(
14149
14150
  triples ?? C.factory.patternBgp([], C.factory.sourceLocation()),
@@ -14156,27 +14157,27 @@ var constructTriples = {
14156
14157
  impl: triplesTemplate.impl
14157
14158
  };
14158
14159
 
14159
- // ../../packages/rules-sparql-1-1/lib/grammar/updateUnit/updateUnit.ts
14160
+ // ../../packages/rules-sparql-1-1/lib/grammar/updateUnit.ts
14160
14161
  var updateUnit = {
14161
14162
  name: "updateUnit",
14162
- impl: ({ SUBRULE }) => () => SUBRULE(update, void 0)
14163
+ impl: ({ SUBRULE }) => () => SUBRULE(update)
14163
14164
  };
14164
14165
  var update = {
14165
14166
  name: "update",
14166
14167
  impl: ({ ACTION, SUBRULE, SUBRULE1, SUBRULE2, CONSUME, OPTION1, MANY }) => (C) => {
14167
14168
  const updates = [];
14168
- const prologueValues = SUBRULE1(prologue, void 0);
14169
+ const prologueValues = SUBRULE1(prologue);
14169
14170
  updates.push({ context: prologueValues });
14170
14171
  let parsedSemi = true;
14171
14172
  MANY({
14172
14173
  GATE: () => parsedSemi,
14173
14174
  DEF: () => {
14174
14175
  parsedSemi = false;
14175
- updates.at(-1).operation = SUBRULE(update1, void 0);
14176
+ updates.at(-1).operation = SUBRULE(update1);
14176
14177
  OPTION1(() => {
14177
14178
  CONSUME(symbols_exports.semi);
14178
14179
  parsedSemi = true;
14179
- const innerPrologue = SUBRULE2(prologue, void 0);
14180
+ const innerPrologue = SUBRULE2(prologue);
14180
14181
  updates.push({ context: innerPrologue });
14181
14182
  });
14182
14183
  }
@@ -14198,9 +14199,9 @@ var update = {
14198
14199
  },
14199
14200
  gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
14200
14201
  for (const update2 of ast.updates) {
14201
- SUBRULE(prologue, update2.context, void 0);
14202
+ SUBRULE(prologue, update2.context);
14202
14203
  if (update2.operation) {
14203
- SUBRULE(update1, update2.operation, void 0);
14204
+ SUBRULE(update1, update2.operation);
14204
14205
  F2.printFilter(ast, () => PRINT_WORD(" ;\n"));
14205
14206
  }
14206
14207
  }
@@ -14209,52 +14210,52 @@ var update = {
14209
14210
  var update1 = {
14210
14211
  name: "update1",
14211
14212
  impl: ({ SUBRULE, OR }) => () => OR([
14212
- { ALT: () => SUBRULE(load2, void 0) },
14213
- { ALT: () => SUBRULE(clear2, void 0) },
14214
- { ALT: () => SUBRULE(drop3, void 0) },
14215
- { ALT: () => SUBRULE(add2, void 0) },
14216
- { ALT: () => SUBRULE(move2, void 0) },
14217
- { ALT: () => SUBRULE(copy2, void 0) },
14218
- { ALT: () => SUBRULE(create2, void 0) },
14219
- { ALT: () => SUBRULE(insertData, void 0) },
14220
- { ALT: () => SUBRULE(deleteData, void 0) },
14221
- { ALT: () => SUBRULE(deleteWhere, void 0) },
14222
- { ALT: () => SUBRULE(modify, void 0) }
14213
+ { ALT: () => SUBRULE(load2) },
14214
+ { ALT: () => SUBRULE(clear2) },
14215
+ { ALT: () => SUBRULE(drop3) },
14216
+ { ALT: () => SUBRULE(add2) },
14217
+ { ALT: () => SUBRULE(move2) },
14218
+ { ALT: () => SUBRULE(copy2) },
14219
+ { ALT: () => SUBRULE(create2) },
14220
+ { ALT: () => SUBRULE(insertData) },
14221
+ { ALT: () => SUBRULE(deleteData) },
14222
+ { ALT: () => SUBRULE(deleteWhere) },
14223
+ { ALT: () => SUBRULE(modify) }
14223
14224
  ]),
14224
14225
  gImpl: ({ SUBRULE }) => (ast) => {
14225
14226
  switch (ast.subType) {
14226
14227
  case "load":
14227
- SUBRULE(load2, ast, void 0);
14228
+ SUBRULE(load2, ast);
14228
14229
  break;
14229
14230
  case "clear":
14230
- SUBRULE(clear2, ast, void 0);
14231
+ SUBRULE(clear2, ast);
14231
14232
  break;
14232
14233
  case "drop":
14233
- SUBRULE(drop3, ast, void 0);
14234
+ SUBRULE(drop3, ast);
14234
14235
  break;
14235
14236
  case "add":
14236
- SUBRULE(add2, ast, void 0);
14237
+ SUBRULE(add2, ast);
14237
14238
  break;
14238
14239
  case "move":
14239
- SUBRULE(move2, ast, void 0);
14240
+ SUBRULE(move2, ast);
14240
14241
  break;
14241
14242
  case "copy":
14242
- SUBRULE(copy2, ast, void 0);
14243
+ SUBRULE(copy2, ast);
14243
14244
  break;
14244
14245
  case "create":
14245
- SUBRULE(create2, ast, void 0);
14246
+ SUBRULE(create2, ast);
14246
14247
  break;
14247
14248
  case "insertdata":
14248
- SUBRULE(insertData, ast, void 0);
14249
+ SUBRULE(insertData, ast);
14249
14250
  break;
14250
14251
  case "deletedata":
14251
- SUBRULE(deleteData, ast, void 0);
14252
+ SUBRULE(deleteData, ast);
14252
14253
  break;
14253
14254
  case "deletewhere":
14254
- SUBRULE(deleteWhere, ast, void 0);
14255
+ SUBRULE(deleteWhere, ast);
14255
14256
  break;
14256
14257
  case "modify":
14257
- SUBRULE(modify, ast, void 0);
14258
+ SUBRULE(modify, ast);
14258
14259
  break;
14259
14260
  }
14260
14261
  }
@@ -14264,10 +14265,10 @@ var load2 = {
14264
14265
  impl: ({ ACTION, SUBRULE1, CONSUME, OPTION1, OPTION2 }) => (C) => {
14265
14266
  const loadToken = CONSUME(load);
14266
14267
  const silent2 = OPTION1(() => CONSUME(silent));
14267
- const source = SUBRULE1(iri2, void 0);
14268
+ const source = SUBRULE1(iri2);
14268
14269
  const destination = OPTION2(() => {
14269
14270
  CONSUME(loadInto);
14270
- return SUBRULE1(graphRef, void 0);
14271
+ return SUBRULE1(graphRef);
14271
14272
  });
14272
14273
  return ACTION(() => C.factory.updateOperationLoad(
14273
14274
  C.factory.sourceLocation(loadToken, source, destination),
@@ -14283,10 +14284,10 @@ var load2 = {
14283
14284
  PRINT_WORD("SILENT");
14284
14285
  }
14285
14286
  });
14286
- SUBRULE(iri2, ast.source, void 0);
14287
+ SUBRULE(iri2, ast.source);
14287
14288
  if (ast.destination) {
14288
14289
  F2.printFilter(ast, () => PRINT_WORD("INTO"));
14289
- SUBRULE(graphRefAll, ast.destination, void 0);
14290
+ SUBRULE(graphRefAll, ast.destination);
14290
14291
  }
14291
14292
  }
14292
14293
  };
@@ -14296,7 +14297,7 @@ function clearOrDrop(operation) {
14296
14297
  impl: ({ ACTION, SUBRULE1, CONSUME, OPTION }) => (C) => {
14297
14298
  const opToken = CONSUME(operation);
14298
14299
  const silent2 = OPTION(() => CONSUME(silent));
14299
- const destination = SUBRULE1(graphRefAll, void 0);
14300
+ const destination = SUBRULE1(graphRefAll);
14300
14301
  return ACTION(() => C.factory.updateOperationClearDrop(
14301
14302
  unCapitalize(operation.name),
14302
14303
  Boolean(silent2),
@@ -14311,7 +14312,7 @@ function clearOrDrop(operation) {
14311
14312
  PRINT_WORD("SILENT");
14312
14313
  }
14313
14314
  });
14314
- SUBRULE(graphRefAll, ast.destination, void 0);
14315
+ SUBRULE(graphRefAll, ast.destination);
14315
14316
  }
14316
14317
  };
14317
14318
  }
@@ -14322,7 +14323,7 @@ var create2 = {
14322
14323
  impl: ({ ACTION, SUBRULE1, CONSUME, OPTION }) => (C) => {
14323
14324
  const createToken3 = CONSUME(create);
14324
14325
  const silent2 = OPTION(() => CONSUME(silent));
14325
- const destination = SUBRULE1(graphRef, void 0);
14326
+ const destination = SUBRULE1(graphRef);
14326
14327
  return ACTION(() => C.factory.updateOperationCreate(
14327
14328
  destination,
14328
14329
  Boolean(silent2),
@@ -14336,7 +14337,7 @@ var create2 = {
14336
14337
  PRINT_WORD("SILENT");
14337
14338
  }
14338
14339
  });
14339
- SUBRULE(graphRefAll, ast.destination, void 0);
14340
+ SUBRULE(graphRefAll, ast.destination);
14340
14341
  }
14341
14342
  };
14342
14343
  function copyMoveAddOperation(operation) {
@@ -14345,9 +14346,9 @@ function copyMoveAddOperation(operation) {
14345
14346
  impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, OPTION }) => (C) => {
14346
14347
  const op = CONSUME(operation);
14347
14348
  const silent2 = OPTION(() => CONSUME(silent));
14348
- const source = SUBRULE1(graphOrDefault, void 0);
14349
+ const source = SUBRULE1(graphOrDefault);
14349
14350
  CONSUME(to);
14350
- const destination = SUBRULE2(graphOrDefault, void 0);
14351
+ const destination = SUBRULE2(graphOrDefault);
14351
14352
  return ACTION(() => C.factory.updateOperationAddMoveCopy(
14352
14353
  unCapitalize(operation.name),
14353
14354
  source,
@@ -14363,9 +14364,9 @@ function copyMoveAddOperation(operation) {
14363
14364
  PRINT_WORD("SILENT");
14364
14365
  }
14365
14366
  });
14366
- SUBRULE(graphRefAll, ast.source, void 0);
14367
+ SUBRULE(graphRefAll, ast.source);
14367
14368
  F2.printFilter(ast, () => PRINT_WORD("TO"));
14368
- SUBRULE(graphRefAll, ast.destination, void 0);
14369
+ SUBRULE(graphRefAll, ast.destination);
14369
14370
  }
14370
14371
  };
14371
14372
  }
@@ -14376,7 +14377,7 @@ var quadPattern = {
14376
14377
  name: "quadPattern",
14377
14378
  impl: ({ ACTION, SUBRULE1, CONSUME }) => (C) => {
14378
14379
  const open = CONSUME(symbols_exports.LCurly);
14379
- const val = SUBRULE1(quads, void 0);
14380
+ const val = SUBRULE1(quads);
14380
14381
  const close = CONSUME(symbols_exports.RCurly);
14381
14382
  return ACTION(() => C.factory.wrap(val.val, C.factory.sourceLocation(open, close)));
14382
14383
  }
@@ -14386,7 +14387,7 @@ var quadData = {
14386
14387
  impl: ({ ACTION, SUBRULE1, CONSUME }) => (C) => {
14387
14388
  const open = CONSUME(symbols_exports.LCurly);
14388
14389
  const couldParseVars = ACTION(() => C.parseMode.delete("canParseVars"));
14389
- const val = SUBRULE1(quads, void 0);
14390
+ const val = SUBRULE1(quads);
14390
14391
  ACTION(() => couldParseVars && C.parseMode.add("canParseVars"));
14391
14392
  const close = CONSUME(symbols_exports.RCurly);
14392
14393
  return ACTION(() => C.factory.wrap(val.val, C.factory.sourceLocation(open, close)));
@@ -14402,7 +14403,7 @@ function insertDeleteDelWhere(name, subType, cons1, cons2, dataRule) {
14402
14403
  if (name !== "insertData") {
14403
14404
  couldCreateBlankNodes = ACTION(() => C.parseMode.delete("canCreateBlankNodes"));
14404
14405
  }
14405
- const data = SUBRULE1(dataRule, void 0);
14406
+ const data = SUBRULE1(dataRule);
14406
14407
  if (name !== "insertData") {
14407
14408
  ACTION(() => couldCreateBlankNodes && C.parseMode.add("canCreateBlankNodes"));
14408
14409
  }
@@ -14413,7 +14414,7 @@ function insertDeleteDelWhere(name, subType, cons1, cons2, dataRule) {
14413
14414
  subType === "insertdata" ? "INSERT DATA" : subType === "deletedata" ? "DELETE DATA" : "DELETE WHERE",
14414
14415
  "{"
14415
14416
  ));
14416
- SUBRULE(quads, F2.wrap(ast.data, ast.loc), void 0);
14417
+ SUBRULE(quads, F2.wrap(ast.data, ast.loc));
14417
14418
  F2.printFilter(ast, () => PRINT_WORD("}"));
14418
14419
  }
14419
14420
  };
@@ -14426,23 +14427,23 @@ var modify = {
14426
14427
  impl: ({ ACTION, CONSUME, SUBRULE1, SUBRULE2, OPTION1, OPTION2, OR }) => (C) => {
14427
14428
  const graph2 = OPTION1(() => {
14428
14429
  const withToken = CONSUME(modifyWith);
14429
- const graph3 = SUBRULE1(iri2, void 0);
14430
+ const graph3 = SUBRULE1(iri2);
14430
14431
  return { withToken, graph: graph3 };
14431
14432
  });
14432
14433
  const { insert, del } = OR([
14433
14434
  { ALT: () => {
14434
- const del2 = SUBRULE1(deleteClause2, void 0);
14435
- const insert2 = OPTION2(() => SUBRULE1(insertClause2, void 0));
14435
+ const del2 = SUBRULE1(deleteClause2);
14436
+ const insert2 = OPTION2(() => SUBRULE1(insertClause2));
14436
14437
  return { del: del2, insert: insert2 };
14437
14438
  } },
14438
14439
  { ALT: () => {
14439
- const insert2 = SUBRULE2(insertClause2, void 0);
14440
+ const insert2 = SUBRULE2(insertClause2);
14440
14441
  return { insert: insert2, del: void 0 };
14441
14442
  } }
14442
14443
  ]);
14443
- const using = SUBRULE1(usingClauseStar, void 0);
14444
+ const using = SUBRULE1(usingClauseStar);
14444
14445
  CONSUME(where);
14445
- const where2 = SUBRULE1(groupGraphPattern, void 0);
14446
+ const where2 = SUBRULE1(groupGraphPattern);
14446
14447
  return ACTION(() => C.factory.updateOperationModify(
14447
14448
  C.factory.sourceLocation(graph2?.withToken, del, insert, where2),
14448
14449
  insert?.val ?? [],
@@ -14455,21 +14456,21 @@ var modify = {
14455
14456
  gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
14456
14457
  if (ast.graph) {
14457
14458
  F2.printFilter(ast, () => PRINT_WORD("WITH"));
14458
- SUBRULE(iri2, ast.graph, void 0);
14459
+ SUBRULE(iri2, ast.graph);
14459
14460
  }
14460
14461
  if (ast.delete.length > 0) {
14461
14462
  F2.printFilter(ast, () => PRINT_WORD("DELETE", "{"));
14462
- SUBRULE(quads, F2.wrap(ast.delete, ast.loc), void 0);
14463
+ SUBRULE(quads, F2.wrap(ast.delete, ast.loc));
14463
14464
  F2.printFilter(ast, () => PRINT_WORD("}"));
14464
14465
  }
14465
14466
  if (ast.insert.length > 0) {
14466
14467
  F2.printFilter(ast, () => PRINT_WORD("INSERT", "{"));
14467
- SUBRULE(quads, F2.wrap(ast.insert, ast.loc), void 0);
14468
+ SUBRULE(quads, F2.wrap(ast.insert, ast.loc));
14468
14469
  F2.printFilter(ast, () => PRINT_WORD("}"));
14469
14470
  }
14470
- SUBRULE(usingClauseStar, ast.from, void 0);
14471
+ SUBRULE(usingClauseStar, ast.from);
14471
14472
  F2.printFilter(ast, () => PRINT_WORD("WHERE"));
14472
- SUBRULE(groupGraphPattern, ast.where, void 0);
14473
+ SUBRULE(groupGraphPattern, ast.where);
14473
14474
  }
14474
14475
  };
14475
14476
  var deleteClause2 = {
@@ -14477,7 +14478,7 @@ var deleteClause2 = {
14477
14478
  impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
14478
14479
  const delToken = CONSUME(deleteClause);
14479
14480
  const couldCreateBlankNodes = ACTION(() => C.parseMode.delete("canCreateBlankNodes"));
14480
- const del = SUBRULE(quadPattern, void 0);
14481
+ const del = SUBRULE(quadPattern);
14481
14482
  ACTION(() => couldCreateBlankNodes && C.parseMode.add("canCreateBlankNodes"));
14482
14483
  return ACTION(() => C.factory.wrap(del.val, C.factory.sourceLocation(delToken, del)));
14483
14484
  }
@@ -14486,7 +14487,7 @@ var insertClause2 = {
14486
14487
  name: "insertClause",
14487
14488
  impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
14488
14489
  const insertToken = CONSUME(insertClause);
14489
- const insert = SUBRULE(quadPattern, void 0);
14490
+ const insert = SUBRULE(quadPattern);
14490
14491
  return ACTION(() => C.factory.wrap(insert.val, C.factory.sourceLocation(insertToken, insert)));
14491
14492
  }
14492
14493
  };
@@ -14499,7 +14500,7 @@ var graphOrDefault = {
14499
14500
  } },
14500
14501
  { ALT: () => {
14501
14502
  const graph2 = OPTION(() => CONSUME(graph_exports.graph));
14502
- const name = SUBRULE1(iri2, void 0);
14503
+ const name = SUBRULE1(iri2);
14503
14504
  return ACTION(() => C.factory.graphRefSpecific(name, C.factory.sourceLocation(graph2, name)));
14504
14505
  } }
14505
14506
  ])
@@ -14508,18 +14509,18 @@ var graphRef = {
14508
14509
  name: "graphRef",
14509
14510
  impl: ({ ACTION, SUBRULE, CONSUME }) => (C) => {
14510
14511
  const graph2 = CONSUME(graph_exports.graph);
14511
- const val = SUBRULE(iri2, void 0);
14512
+ const val = SUBRULE(iri2);
14512
14513
  return ACTION(() => C.factory.graphRefSpecific(val, C.factory.sourceLocation(graph2, val)));
14513
14514
  },
14514
14515
  gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
14515
14516
  F2.printFilter(ast, () => PRINT_WORD("GRAPH"));
14516
- SUBRULE(iri2, ast.graph, void 0);
14517
+ SUBRULE(iri2, ast.graph);
14517
14518
  }
14518
14519
  };
14519
14520
  var graphRefAll = {
14520
14521
  name: "graphRefAll",
14521
14522
  impl: ({ ACTION, SUBRULE, CONSUME, OR }) => (C) => OR([
14522
- { ALT: () => SUBRULE(graphRef, void 0) },
14523
+ { ALT: () => SUBRULE(graphRef) },
14523
14524
  { ALT: () => {
14524
14525
  const def = CONSUME(graph_exports.default_);
14525
14526
  return ACTION(() => C.factory.graphRefDefault(C.factory.sourceLocation(def)));
@@ -14535,7 +14536,7 @@ var graphRefAll = {
14535
14536
  ]),
14536
14537
  gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
14537
14538
  if (F2.isGraphRefSpecific(ast)) {
14538
- SUBRULE(graphRef, ast, void 0);
14539
+ SUBRULE(graphRef, ast);
14539
14540
  } else if (F2.isGraphRefDefault(ast)) {
14540
14541
  F2.printFilter(ast, () => PRINT_WORD("DEFAULT"));
14541
14542
  } else if (F2.isGraphRefNamed(ast)) {
@@ -14551,12 +14552,12 @@ var quads = {
14551
14552
  const quads2 = [];
14552
14553
  let last2;
14553
14554
  OPTION1(() => {
14554
- const triples = SUBRULE1(triplesTemplate, void 0);
14555
+ const triples = SUBRULE1(triplesTemplate);
14555
14556
  last2 = triples;
14556
14557
  ACTION(() => quads2.push(triples));
14557
14558
  });
14558
14559
  MANY(() => {
14559
- const notTriples = SUBRULE(quadsNotTriples, void 0);
14560
+ const notTriples = SUBRULE(quadsNotTriples);
14560
14561
  last2 = notTriples;
14561
14562
  quads2.push(notTriples);
14562
14563
  OPTION2(() => {
@@ -14565,7 +14566,7 @@ var quads = {
14565
14566
  return dotToken;
14566
14567
  });
14567
14568
  OPTION3(() => {
14568
- const triples = SUBRULE2(triplesTemplate, void 0);
14569
+ const triples = SUBRULE2(triplesTemplate);
14569
14570
  last2 = triples;
14570
14571
  ACTION(() => quads2.push(triples));
14571
14572
  });
@@ -14575,9 +14576,9 @@ var quads = {
14575
14576
  gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
14576
14577
  for (const quad of ast.val) {
14577
14578
  if (F2.isPattern(quad)) {
14578
- SUBRULE(triplesBlock, quad, void 0);
14579
+ SUBRULE(triplesBlock, quad);
14579
14580
  } else {
14580
- SUBRULE(quadsNotTriples, quad, void 0);
14581
+ SUBRULE(quadsNotTriples, quad);
14581
14582
  }
14582
14583
  }
14583
14584
  }
@@ -14586,9 +14587,9 @@ var quadsNotTriples = {
14586
14587
  name: "quadsNotTriples",
14587
14588
  impl: ({ ACTION, SUBRULE1, CONSUME, OPTION }) => (C) => {
14588
14589
  const graph2 = CONSUME(graph_exports.graph);
14589
- const name = SUBRULE1(varOrIri, void 0);
14590
+ const name = SUBRULE1(varOrIri);
14590
14591
  CONSUME(symbols_exports.LCurly);
14591
- const triples = OPTION(() => SUBRULE1(triplesTemplate, void 0));
14592
+ const triples = OPTION(() => SUBRULE1(triplesTemplate));
14592
14593
  const close = CONSUME(symbols_exports.RCurly);
14593
14594
  return ACTION(() => C.factory.graphQuads(
14594
14595
  name,
@@ -14598,9 +14599,9 @@ var quadsNotTriples = {
14598
14599
  },
14599
14600
  gImpl: ({ SUBRULE, PRINT_WORD }) => (ast, { factory: F2 }) => {
14600
14601
  F2.printFilter(ast, () => PRINT_WORD("GRAPH"));
14601
- SUBRULE(varOrTerm, ast.graph, void 0);
14602
+ SUBRULE(varOrTerm, ast.graph);
14602
14603
  F2.printFilter(ast, () => PRINT_WORD("{"));
14603
- SUBRULE(triplesBlock, ast.triples, void 0);
14604
+ SUBRULE(triplesBlock, ast.triples);
14604
14605
  F2.printFilter(ast, () => PRINT_WORD("}"));
14605
14606
  }
14606
14607
  };
@@ -14610,9 +14611,9 @@ var queryOrUpdate = {
14610
14611
  name: "queryOrUpdate",
14611
14612
  gImpl: ({ SUBRULE }) => (ast, { factory: F2 }) => {
14612
14613
  if (F2.isQuery(ast)) {
14613
- SUBRULE(grammar_exports.query, ast, void 0);
14614
+ SUBRULE(grammar_exports.query, ast);
14614
14615
  } else {
14615
- SUBRULE(grammar_exports.update, ast, void 0);
14616
+ SUBRULE(grammar_exports.update, ast);
14616
14617
  }
14617
14618
  }
14618
14619
  };
@@ -14697,7 +14698,7 @@ var Generator = class {
14697
14698
  factory: this.factory,
14698
14699
  offset: 0,
14699
14700
  origSource
14700
- }, void 0);
14701
+ });
14701
14702
  }
14702
14703
  generatePath(ast, origSource = "") {
14703
14704
  return this.generator.path(ast, {